Android SDK

一. 在线ASR 概述

DUI Lite SDK 为您提供易用的 API 来接入经由强大的深度网络模型优化的语音转文字能力。

DUI Lite SDK 支持 Android 和 iOS 平台的 DUI 语音 API 接入,您通过集成 DUI Lite SDK 获取从音频采集到识别的全流程支持。

结合DUI平台强大的可定制语言模型的特性,您可以通过上传说法和词表的方式,对偏僻的说法以及相关内容的识别效果进行优化。

二.参数说明

2.1初始化参数

详细见javaDoc  AICloudASRConfig

参数名

类型

是否必须

取值实例

说明

setLocalVadEnable(boolean localVadEnable) boolean true/false 置是否启用本地vad,一般都会打开,
setVadResource(String vadResource) String 开启本地vad,必须设置资源

 

编译配置信息(更新词库使用),没有特殊需求,不需要配

2.2 开启参数

详细见javaDoc  AICloudASRIntentRIntent

参数名

类型

是否必须

取值实例

说明

setEnablePunctuation(boolean enablePunctuation)
boolean true/false 设置是否启用标点符号识别,默认是false

setEnableNumberConvert(boolean enableNumberConvert)

boolean
true/false
设置是否启用识别结果汉字数字转阿拉伯数字功能,默认是false

setRealback(boolean realback)

boolean
true/false
设置是否使用实时反馈功能, 默认是false
setEnableSensitiveWdsNorm(boolean enableSensitiveWdsNorm) boolean true/false 敏感词过滤,默认是true
putExtraParam(String key, Object value) String   定制的特殊字段,使用此接口

三. 接入

3.1 创建引擎并初始化引擎

创建引擎并初始化引擎,AILocalNluEngine.createInstance(),调用引擎的init方法通过AILocalNluListener#onInit的回调,确认是否初始化成功如果初始化错误,会有对应AILocalNluListenerstener#onError错误信息

protected void initEngine() {
    AICloudASRConfig config = new AICloudASRConfig();
    config.setLocalVadEnable(true);
    config.setVadResource(SampleConstants.VAD_RES);
 
    mEngine = AICloudASREngine.createInstance();
    mEngine.init(config, new AICloudASRListenerImpl());
}
 
 
protected class AICloudASRListenerImpl implements AIASRListener {
 
    @Override
    public void onReadyForSpeech() {
 
    }
 
    @Override
    public void onResultDataReceived(byte[] buffer, int size, int wakeupType) {
 
    }
 
    @Override
    public void onBeginningOfSpeech() {
    }
 
    @Override
    public void onEndOfSpeech() {
 
    }
 
    @Override
    public void onRmsChanged(float rmsdB) {
        showTip("RmsDB = " + rmsdB);
    }
 
    @Override
    public void onError(AIError error) {
        Log.e(tag, "error:" + error.toString());
    }
 
    @Override
    public void onResults(AIResult results) {
        if (results.isLast() && results.getResultType() == AIConstant.AIENGINE_MESSAGE_TYPE_JSON) {
            String recordId = results.getRecordId();
            Log.i(tag, "recordId = " + recordId);
            Log.i(tag, "识别结果 JSON = " + results.getResultObject().toString());
        }
    }
 
    @Override
    public void onInit(int status) {
        Log.i(tag, "Init result " + (status == AIConstant.OPT_SUCCESS ? "初始化成功!" "初始化失败"));
    }
 
    @Override
    public void onResultDataReceived(byte[] buffer, int size) {
        //do nothing
    }
 
    @Override
    public void onRawDataReceived(byte[] buffer, int size) {
        //do nothing
    }
 
    @Override
    public void onNotOneShot() {
        //do nothing
    }
}

3.2 开始

AICloudASRIntent aiCloudASRIntent = new AICloudASRIntent();
aiCloudASRIntent.setEnablePunctuation(false);//设置是否启用标点符号识别,默认为false关闭
aiCloudASRIntent.setResourceType("aihome");//设置识别引擎的资源类型,默认为comm
aiCloudASRIntent.setEnableNumberConvert(true);//设置启用识别结果汉字数字转阿拉伯数字功能
aiCloudASRIntent.setEnableAlignment(true);
aiCloudASRIntent.setPauseTime(500);
aiCloudASRIntent.setWaitingTimeout(5000);//设置等待识别结果超时时长,默认5000ms
aiCloudASRIntent.setNoSpeechTimeOut(2000);
aiCloudASRIntent.setRealback(true);
mEngine.start(aiCloudASRIntent);

 

3.3 结果

{"recordId":"0267e3791f7c41e49059d671426e61f5","result":{"strong_wakeup_filtered":0,"conf":0,"rec":"明天天气怎么样","sn_end_time":2306,"nlu_rec":"明天天气怎么样","res":"interact.comm_gpu_v104_sp01","sn_start_time":1720,"processedWavTime":2300,"avg_conf":1,"sn_rec_time":3420,"pinyin":"ming tian tian qi zen me yang","vadtime":1820,"alignment":[],"eof":1,"rawrec":"明天 天气 怎么样","allText":"明天天气怎么样"},"requestId":"0267e3791f7c41e49059d671426e61f5","eof":1}
 
"eof":1  表示最终结果
"eof":0  是最终结果