语音开放平台android sdk尝鲜版


(chen.zhang) #1

2017-10-26更新:
云端vad
2017-08-30更新:

  1. 修正sdk无响应问题
  2. 不再需要roots.pem文件
    2017-07-28更新:
    修正asr偶现请求无响应问题
    2017-07-21更新:
  3. 修正一些稳定性问题
  4. sdk接口变化
    增加了一些高级功能(声强,声纹等),普通用户无需理会。
    android speech, asr回调接口变化,详见SpeechDemo示例源码
    2017-05-17更新:
  5. 支持android4.4及android6.0
  6. 修正一系列稳定性问题

speech sdk for android 4.4
speech_sdk_android-19.tgz (1.0 MB)
speech sdk for android 6.0
speech_sdk_android-23.tgz (1.3 MB)
rokid语音系统演示程序for android

压缩包目录结构如下

sdk的核心是c++编写,虽然是android sdk,但实质上还是调用c++动态库完成主要功能的。
lib目录下就是核心sdk动态库,需要把它们放到安卓设备能被应用动态链接到的地方,一般是/system/lib/下

cd lib
adb push . /system/lib/

etc目录下是sdk需要的一些文件,需要放到安卓设备的/system/etc目录下
其中speech_sdk.json提供sdk需要的配置信息,包括连接服务器的认证信息。
首先需要将你们从平台申请的认证信息填入到此文件中,再push到设备上。
具体来说,需要修改如下几项
key
device_type_id
secret
而device_id是你的设备标识,可以随你喜好修改,不影响认证结果。

cd etc
adb push . /system/etc/

jar目录下是android speech sdk包,将它们加入到你们的应用工程中即可使用。
android sdk源码
android sdk接口说明文档
示例请看 example目录下的几个java文件

apk目录是一个demo应用。
内有两个service,一个演示tts功能,一个演示speech功能

cd apk
adb install RKSpeechDemo.apk
adb shell am startservice -a com.rokid.speech.example.TtsDemo
adb shell am startservice -a com.rokid.speech.example.SpeechDemo

下面也给出此应用的卸载命令

adb uninstall com.rokid.speech.example

tts演示程序会播放一段tts语音
speech演示程序没有直接可见的反应,需要看log才知道是否运行成功

example目录下是演示程序的源码,供参考


Android手机如何接入Rokid语音测试?
appjie接入TTS语音合成功能问题求教
rokid-openvoice-sdk有没有app可以直接调用的sdk?
有没有单独的TTS开发接口
需要SDK开发包请问如何联系啊
(chao.xuc) #2

Cool!


(ypxgxf) #3

为什么要去申请systemuid?:sweat_smile:


(1968823042) #4

必须要android6.0以上的系统? 目前很多还是基于android4.4版本的


(ypxgxf) #5

请问auth_key对应的是账户邮件里的ACCCOUNT还是KEY?
用这俩替换了auth_key都不行:
04-15 04:43:00.777 11320-11320/com.example.rokiddemo D/speech.SpeechConnection: auth failed, 14,
04-15 04:43:00.809 11320-11320/com.example.rokiddemo D/speech.jni: prepare failed


(chen.zhang) #6

这个错误应该是服务器连不上
你用telnet确认下服务器是通的


(chen.zhang) #7

demo程序要求android 6.0,因为用了android 6.0的音频播放接口。

sdk没有这个要求,你如果是android4.4,你不要运行我给出的demo程序,自己写个android 4.4的程序就可以了


(chao.xuc) #8

(孙耀东) #9

dlopen 失败是什么原因?还有就是,哪一个才是auth_key,哪一个才是device_id?认证注册成功之后,除了device_type_id,和secret以外,剩下的两个根本不知道是在哪看,求解答,谢谢!


集成 TTS 的相关问题
(chen.zhang) #10

dlopen失败的问题解决了
主楼下载链接已经更新,请重新下载。
原因是比较旧的android系统不支持jni动态库GUN_HASH

auth_key就是key,刚更新的版本已经统一改为key,没有auth_key这个名字了
key, device_id都是在语音平台注册时会给到你的吧?


(孙耀东) #11

公司/个人ID,这个是device_id吗?我还是没找到关于生成的device_id的字眼。我重新试了一下,还是dlopen失败,我的是4.4版本的,是不是不能加载成功?有没有什么办法解决一下尼?还有就是主楼更新的资源中是不是只改变了etc里面的一个key?还有什么其他的变动吗?谢谢!


(chen.zhang) #12

这次dlopen失败是什么错误?错误信息发来看看
主楼更新了两个so文件,就是你上次dlopen报错的librokid_tts_jni.so, librokid_speech_jni.so,不知道你有没有重新push到设备上?


(yitang) #13

sdk中的company_id对应页面上的公司/个人ID;
可以通过 https://developer.rokid.com/voice/#/ 生成device_type_id:


(zhaolin) #14

device id是给开发者自己区分设备使用,device id您可以自己生成一个8或者16长度的随机字母加数字。


(孙耀东) #15

我已经重新push过了的,然后还是不行,错误日志java.lang.UnsatisfiedLinkError: dlopen failed: empty/missing DT_HASH in “librokid_tts_jni.so” (built with --hash-style=gnu?)
如果4.4的版本不能加载动态库的话,是不是就不能集成了呢?
还有Demo中的关于AudioTrack的API是6.0以上才有的?那4.4的该怎么办呢?


(chen.zhang) #16

dlopen的问题我再尝试解一下,我手头没有4.4的设备,所以无法验证正确性,有更新我会再回复你。
另外我们的sdk是不包括播放音频这种功能的,我只是写了一个基于android 6.0 的demo程序,如果你要在android4.4上播放音频,请参照android 4.4的文档写自己的音频播放程序。


(孙耀东) #17

好的,非常感谢,具体音频播放方式我会自己处理。


(chen.zhang) #18

很奇怪,dlopen的问题应该是解决了的。你把你设备上的librokid_tts_jni.so发给我看看


(孙耀东) #19

怎么发给你呢?我没上传的权限…还有就是,除了需要在etc中push sdk_tts.json,还有在lib中push librokid_tts_jni.so以外,还有其他操作吗?是不是可以直接导入sdk进行开发了?


(chen.zhang) #20

可以私信我吧?
操作步骤全部在主楼写了,如果你全部做了就可以开发了。