1. 安装 Android Studio 开发软件
根据计算机操作系统安装相应的 Android Studio 开发软件。
注意:对于当前平板的 Android 版本,可以使用最新的安装包,但为了更好地适应 Pepper SDK 的开发,建议使用 Android Studio 的 Bumblebee 版本。
2. SDK 集成指南
2.1 SpeechDemo 运行步骤
软银机器人已经打包了 SpeechDemo 应用程序。下载此 Android 项目并导入。它包含一个简单且可执行的演示程序。
下载 SDK 后,将其解压到相应的路径。以 Android Studio 集成开发工具为例,建议直接在真实设备上进行测试。
方法 1(导入项目):
打开 Android Studio,在菜单栏选择文件 --> 新建 --> 导入项目,使用在线服务功能选择导入 SpeechDemo,如下所示:
导入成功后,直接在 Android Studio 中运行导入的 Speechdemo。生成的 apk 可以直接安装在相应的 Pepper 机器人上,如下图所示:
如果在编译时出现错误 "ERROR: 未找到插件 'com.android.application'",请在您的 build.gradle 文件中添加以下代码。
"""
buildscript {
repositories {
google()
jcenter()
}
dependencies {
//Please change the version number according to your own gradle plugin version number
classpath 'com.android.tools.build:gradle:3.4.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
"""
方法 2(模块导入):
打开 Android Studio,转到菜单栏文件 --> 新建 --> 导入模块,选择当前解压的 SDK 路径,并使用在线服务功能选择导入 SpeechDemo。导入成功后,运行同步编译。如果编译正确,您可以连接手机,打开 Pepper 端的 USB 开发调试模式,并直接在 Android Studio 中运行导入的 Speechdemo。生成的 apk 可以直接安装在相应的手机上。
2.2 项目集成步骤
2.2.1 SDK 包描述
《Android SDK 目录结构概述》
manifests:
android configuration application permission file
sample:
related online capability demo (voice dictation IatDemo)
assets:
SDK related resource configuration file
Libs:
dynamic library and jar package
res:
UI file and related layout file xml
readme description (must read)
release version description
· manifests:android 配置应用程序权限文件
· sample:相关在线功能演示(语音听写 IatDemo)
· assets:SDK 相关资源配置文件
· Libs:动态库和 jar 包
· res:UI 文件和相关布局文件 xml
· readme 描述(必须阅读)
· 发布版本描述
2.2.2 导入 SDK
将 Android SDK 压缩包中的 libs 目录下的所有子文件复制到 Android 项目的 libs 目录中。如下图所示:
注意:
1. arm 版本已淘汰。arm 架构推荐使用 armeabi-v7a。
2. 如果需要将应用程序推送到设备,请将与设备 cpu 指令集相对应的 libmsc.so 推送到 /system/lib。
3. 要集成到项目中,需要将 sdk 中 Demo/src/main/ 下的文件复制到项目的 main 中。以 AS 为例,需要在项目的 main 文件夹中创建 Jnilibs 并将 libmsc.so 复制到其中。
4. msc.jar 需要复制到项目 libs 中,并右键点击 jar 添加为库。
5. sdk 下的 main/assets/ 文件夹有自己的 UI 页面(iflytek 文件夹)和其他相关服务资源文件(语法文件、音频示例、词汇表)。当使用内置 UI 界面时,可以将 assets/iflytek 文件复制到项目中;
2.2.3 添加用户权限
在项目的 AndroidManifest.xml 文件中添加以下权限
"""
<!--Connect to the network, used to execute cloud voice capabilities -->
<uses-permission android:name="android.permission.INTERNET"/>
<!--Get the permission to use the mobile phone recorder. This permission is required for dictation, recognition, and semantic understanding -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<!--Read network information status -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--Get the current wifi status -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--Allow the program to change the network connection status -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<!--Read mobile phone information permission -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!--Read contacts permission, this permission is required to upload contacts -->
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<!--External storage write permission, this permission is required to build the syntax -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--External storage read permission, this permission is required to build the syntax -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!--Configuration permissions, used to record application configuration information -->
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<!--Mobile phone location information is used to provide location for semantic functions and provide more accurate services-->
<!--Location information is sensitive information, and you can turn off the location request through Setting.setLocationEnable(false) -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--If you need to use face recognition, you also need to add: camera permissions, which are required for taking photos -->
<uses-permission android:name="android.permission.CAMERA" />
"""
注意:如果您在打包或生成 APK 时需要混淆,请在 proguard.cfg 中添加以下代码:
"""
-keep class com.iflytek.**{*;}
-keepattributes Signature
"""
2.2.4 初始化
初始化意味着创建一个语音配置对象。只有在初始化之后,您才能使用 MSC 的各种服务。建议将初始化放在程序入口(例如应用程序和活动的 onCreate 方法)中。初始化代码如下:
"""
// Replace "12345678" with the APPID you applied for, application address: http://www.xfyun.cn
// Do not add any empty characters or escape characters between "=" and appid
SpeechUtility.createUtility(context, SpeechConstant.APPID +"=12345678");
"""