SDK集成
SDK下载
SDK下载地址:Nuwa-NLU-SDK-1.0.0.zip
MD5:8eb2be80e834ddab9695fa8141ef81b7
最近更新:2018-07-24
开发运行环境
- 开发环境:Android Studio
- 运行环境:支持 Android 4.3 及以上系统版本;支持armv7/armv7a/arm64架构的so库;可在所有架构的真机上运行。
组件及资源介绍
解压后,文件目录如下:
├── Baidu-Cloud-Nuwa-SDK-
其中:
demo为demo示例;
doc为javadoc文档;
libs目录下为各模块的jar包;
jniLibs目录下为so文件;
demo目录
demo 存放着 SDK 的示例工程,展示了如何使用 SDK 结合百度智能云智能机器人平台实现业务咨询、天气查询、闲聊、人脸识别、动作展示等业务场景。
doc目录
该目录为SDK内各接口的javadoc文档,方便开发者对各接口的使用方式进行查找。
jniLibs目录
存放着适配了三种指令集的底层动态链接库,该目录下每个文件夹存储的动态链接库文件名称虽然相同,但适配的指令集不同,用户在使用时需注意不可将不同指令集的文件混用或错用,否则会造成应用闪退。
具体动态链接库文件的含义如下表所示:
文件名 | 说明 |
---|---|
libBaiduSpeechSDK.so | 语音识别基础库 |
libbd_etts.so | 离线TTS算法库 |
libBDSpeechDecoder_V1.so | 语音压缩算法库 |
libbdSpilWakeup.so | 唤醒算法库 |
libbdTinyEasrAndroid.so | 语音识别算法库 |
libbdtts.so | 在线TTS算法库 |
libgnustl_shared.so | STL库 |
libturbonet.so | HTTP协议处理库 |
libs目录
存放 SDK 的 Java 依赖包:
文件名 说明 robot-asr.jar 负责处理底层语音识别接口调用 robot-comm.jar 通用处理模块 robot-nlu.jar 自然语言交互处理模块 robot-tts.jar 负责TTS底层接口调用 turbonet.jar 自定义HTTP协议栈,提升HTTP请求响应的速度
工程配置
-
配置Java依赖包
将robot-comm.jar、robot-nlu.jar等jar包复制到您工程的app/libs目录下,并在app模块的gradle文件中注明jar包所在路径,如下所示:
dependencies { compile fileTree(include: [‘*.jar’], dir: ‘libs) }
-
配置so库
将armeabi-v7a arm64-v8a等so库文件夹复制到 app/src/main/jniLibs目录下。
注意: 如果您使用了其他的so库,请务必保证各个CPU架构下的so文件数完全相等。如armeabi-v7a与arm64-v8a(若有)文件夹下的so文件数量完全相等。因为手机在安装Apk时,安装器仅会将相应CPU架构的文件夹内容复制到/data/data/com.your.package/lib目录下,若手机主CPU架构文件夹没有,则复制副CPU架构(多数手机副CPU架构为armeabi-v7a,模拟器一般无副CPU架构)的文件夹内容。我们的SDK提供了arm平台两个so库的支持,如果您同时使用了其他产品SDK,请取所有家SDK的so库架构的交集。
app/src/main/jniLibs目录为Android Studio默认的so打包路径。如果您习惯将so文件放到app/libs目录下,需要额外配置gradle文件下的jniLibs.srcDirs = ['libs']
-
权限声明
请将下列权限加入到工程的AndroidManifest.xml中:
<uses-permission android:name=“android.permission.INTERNET” /> <uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE” /> <uses-permission android:name=“android.permission.MODIFY_AUDIO_SETTINGS” />
-
混淆设置
将以下语句加入到您的proguard混淆配置文件中:
-keep class com.baidu.robot.**{ *;}
鉴权设置
获取鉴权信息
用户在使用 SDK 之前需要获取机器人ID和密钥,该ID和密钥与用户创建的机器人一一对应。在百度机器人平台申请账号并创建机器人,在控制台的「基本信息」页面可以看到「机器人ID」和「机器人密钥」字段。在使用SDK之前必须先填写这两个字段。
设置机器人ID和密钥
机器人ID和密钥,与创建的机器人一一对应。调用SDK的AuthManager类的静态方法setCredentials来设置,具体代码如下:
AuthManager.setCredentials(/*deviceID goes here*/,
/*robot id goes here*/,
/*robot secret key goes here*/);
参数说明: 第一个参数是deviceID,用来唯一标识你的机器人硬件设备名; 第二个参数是robotID,即从控制台拿到的机器人ID; 第三个参数是robotSecretKey,即从控制台拿到的机器人密钥。