单项技术概述(Android)

DUI Lite 2.0 (Android)

1. 概述

DUI Lite SDK 提供语音唤醒,在线语音识别,在线语音合成等单项语音服务。您可以选择接入一项或者多项技术。

目前DUI平台提供的单项语音服务如下:
1) 在线语音识别(Automatic Speech Recognition,ASR):识别语音内容,转化为相应的文字。

2) 离线语法+离线语音识别(Automatic Speech Recognition,ASR):识别语音内容,转化为相应的文字。

3) 在线语音合成(Text to Speech,TTS):将文字信息转变为可以听得懂的、流利的汉语。

4) 离线语音合成(Text to Speech,TTS):将文字信息转变为可以听得懂的、流利的汉语。

5) 离线语音唤醒 (VoiceWake up): 通过识别辨认特定的词汇来返回预置好的结果(唤醒设备)。

2. SDK集成前提

  1. 在 DUI开发平台 上创建账号
  2. 创建 "单项技术" 的产品
  3. 在授权管理标签申请 apiKey,这样可获取产品 apiKey, productId,productKey, productSecret 
  4. 下载 DUI Lite SDK,可在 SDK下载页 或者 发布管理 页下载 SDK,SDK 包含 demo,javadoc,jar,so 以及相应的资源文件

 

 

 

3. 集成

DUI Lite SDK 包括 jar、JavaDoc 、so 动态库以及功能对应的资源。

DUI Lite SDK 支持 Android 4.0及以上系统,so 动态库目前支持 arm64-v8a, armeabi, armeabi-v7a, x86, x86_64,若需支持其它架构,请提工单申请。

您可以先下载 Demo,体验 SDK 提供的各个功能,有个整体了解。 git仓库地址 https://gitee.com/szaispeech/dui-lite-android-sdk-samples

 

1、从官网下载对应功能的 SDK 添加到项目的 libs 文件夹下,对应的 JNI 库请放在 jniLibs 目录下,如图所示:

 

2、在gradle文件中添加对SDK的依赖

DUI Lite SDK依赖于okhttp网络库,所以在你的项目里需要依赖 okhttp
gradle

dependencies {

implementation files('libs/DUI-lite-SDK-for-Android-2.0.0.jar')

//dui lite sdk依赖于 okhttp 必须外部依赖或导入,否则报错

implementation 'com.squareup.okhttp3:okhttp:3.12.12'

}

 

3、添加需要的权限

<!--获取手机录音机使用权限,识别、语义理解需要用到此权限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />

<!-- 授权需要 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--保存文件需要用到此权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!--保存文件需要用到此权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--云端功能需要用到此权限 -->
<uses-permission android:name="android.permission.INTERNET" />

<!-- 授权需要 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

 

4、如果项目中配置了混淆项,需要在proguard-rules.pro文件中添加如下代码:

-keepclassmembers class com.aispeech.kernel.**{
   public static native <methods>;
}
 
-keep interface com.aispeech.kernel.**$*{
   public *;
}
 
 
-keepclasseswithmembernames class * {
    native <methods>;
}

4. 授权

使用某个功能前首先要进行授权,授权成功后才能正常使用引擎。授权说明



授权

// 产品认证需设置 apiKey, productId, productKey, productSecret
DUILiteConfig config = new DUILiteConfig("d3c265662929841215092b415c257bd6", "278578021",
"cfbdf9df02d199a602ed6f666a2494a3",
"b06adce105c97ba926da3f18365a69f3");


 
// 初始化数据及授权
DUILiteSDK.init(getApplicationContext(), config, new DUILiteSDK.InitListener() {
    @Override
    public void success() {
        Log.d(TAG, "授权成功! ");
    }
 
    @Override
    public void error(String errorCode,String errorInfo) {
        Log.d(TAG, "授权失败, errorcode: "+errorCode+",errorInfo:"+errorInfo);
    }
});

 

授权过程中可能遇到的错误码请参见 DUI Lite 2.0 - 错误码

5. 使用引擎的通用流程

以 wakeup 引擎为例,说明一般引擎的使用流程。

上图即唤醒引擎的使用流程图,以下是补充说明:

  1. 创建引擎对象,创建引擎对象有2种方法: createInstance (多实例) 或 getInstance (单例模式)
  2. 初始化引擎,调用 init 方法
  3. 启动引擎,调用 start 方法
  4. 默认使用Android的录音机获取音频数据,如需自行输入音频数据,可以使用 feedData 方法
  5. 此时引擎内部处理音频数据中,有唤醒结果或其它错误信息会从回调中返回。部分引擎可以动态调整少量参数。
  6. 停止引擎,调用 stop 方法
  7. 停止引擎后可以调用 start 方法重新启动引擎
  8. 销毁引擎,调用 destroy 方法

在 init 和 start 时会有很多参数设置,Demo 已经为常见情况做了示例,详细说明请查看 JavaDoc。

6. 错误码

DUI Lite 2.0 - 错误码

7. 接口文档

javadoc   https://www.duiopen.com/duilite-doc/android