iOS SDK接入

一、在线ASR SDK 介绍

DUI Speech API允许开发者通过易用API来接入,享用由强大的深度网络模型优化的语音转文字功能。而思必驰推出的DUI Lite-在线ASR正是市场的需求,可支持DUI 语音API接入, 还可通过集成DUI Lite-ASR的SDK获取从采集音频到识别结果输出的全链路支持。另外,SDK结合了DUI平台强大的可定制语言模型的特性,通过上传说法和词表的方式,对偏僻的说法以及用户相关内容的识别效果进行优化。

二、功能特性

2.1 内置录音机

DUI Lite - 在线ASR SDK按平台内置有录音机,可完成识别过程中的音频采集任务。

2.2 支持音频文件上传

支持符合16Khz采样率 16bit数据位宽的PCM音频文件上传做识别,实现批量转录任务。

2.3 音频压缩可选

可选择上传至DUI云端的音频是否数据压缩。

ogg(压缩)和wav(不压缩)
见3.1参数配置K_COMPRESS

2.4 VAD(语音活动检测)可选

可选择开启本地的语音活动检测功能,允许设置VAD后端点检测超时时间。

开启后若说话停顿时长超过阈值,则主动结束本次识别的输入。

2.5 识别结果实时反馈

全双工模式,支持流式返回识别结果。

当用户开口说话时,当部分识别结果就绪后,能立即展示该部分结果。

三、SDK使用说明

在使用DUILite 在线ASR的SDK时,请先授权,否则禁止使用。授权操作详见文档授权说明

3.1 参数与配置

需要由开发者在初始化时填写的配置项:

参数名 取值 说明 是否必须 默认值
K_LOCAL_VAD_RES_NAME 字符串VAD资源名 设置本地VAD的资源名 必须 N/A
K_LOCAL_VAD_RES_PATH 字符串VAD资源路径 设置本地VAD的路径(使用本地VAD,则必须设置) 必须 N/A
K_REAL_BACK 布尔值 YES / NO 设置是否开启实时反馈 非必须 NO
K_PAUSE_TIME 整型 设置VAD右边界的时间,单位是毫秒(本地VAD值为YES时有效) 非必须 300
K_CLOUD_VAD_ENABLE 布尔值 YES / NO 设置是否启用服务端VAD 非必须 NO
K_LOCAL_VAD_ENABLE 布尔值 YES / NO 设置是否启动本地VAD 非必须 YES
K_COMPRESS 布尔值 YES / NO 设置是否压缩音频文件,YES为ogg格式;NO为不压缩 非必须 YES
K_USER_CUSTOM_FEED 布尔值 YES / NO 设置是否使用第三方录音引擎 非必须 NO
K_CLOUD_PUNCTUATION 布尔值 YES / NO 设置是否开启识别标点功能,仅支持配置项K_ASR_RES(comm、airobot、custom) 非必须 NO
K_ASR_RES 字符串 comm(通用) / airobot(机器人) / aihome(家居) / aicar(车载)/ custom(自定义) 设置识别的语言模型资源类型 非必须 comm

3.2 使用Log测试服务

使用Log测试请先在程序入口处调用如下代码,打开Log开关。

log开关设置

[DUILiteAuth setLogEnabled:YES];

3.3 初始化

使用以下方法来初始化SDK:

初始化

//设置音频策略
- (void)setAudioConfig{
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
}
 
//初始化引擎,设置相关参数
-(void)initAsrEngine{
    NSMutableDictionary *asrEngineConfigDic = [[NSMutableDictionary alloc] init];
    [asrEngineConfigDic setObject:[NSNumber numberWithBool:NO] forKey:K_LOCAL_VAD_ENABLE];
    [asrEngineConfigDic setObject:[NSNumber numberWithBool:YES] forKey:K_COMPRESS];
      
    NSMutableDictionary *authConfigDic = [[NSMutableDictionary alloc] init];
    [authConfigDic setObject:@"xxxxxxxxxxx" forKey:K_PRODUCT_ID];
    [authConfigDic setObject:@"xxxxxxxxxxx" forKey:K_USER_ID];
    [authConfigDic setObject:@"xxxxxxxxxxxxxxxxxx" forKey:K_API_KEYS];
    [authConfigDic setObject:@"xxxxxxxxxx" forKey:K_PRODUCT_KEYS];
    [authConfigDic setObject:@"xxxxxxxxxx" forKey:K_PRODUCT_SECRET];
      
    [DUILiteAuth setAuthConfig:self config:authConfigDic];
    [[AICloudASREngine sharedInstance] asrEngineInit:self config:asrEngineConfigDic];
}

/** 引擎初始化成功回调 */ -(void)onAICloudASREngineInitSuccess{ NSLog(@"out onAICloudASREngineInitSuccess"); } /*! 开始语音识别成功回调 */ -(void)onAICloudASREngineStartSuccess{ NSLog(@"out onAICloudASREngineStartSuccess"); } //实现回调函数 -(void)onResults:(NSString *)result{ NSLog(@"最终识别结果: %@", result); } -(void)onRealbackResults:(NSString *)result{ NSLog(@"实时反馈的结果t: %@", result); } -(void)onRmsChanged:(NSNumber*)rmsdB{ NSLog(@" 音量大小: %f", [rmsdB floatValue]); } -(void)onError:(NSString *)error{ NSLog(@"错误信息: %@", error); } -(void)onBufferReceived:(NSData *)buffer{ NSLog(@"录音数据返回!"); } //需启用VAD -(void)onBeginningOfSpeech{ NSLog(@" 检测到用户开始说话!"); } //需启用VAD -(void)onEndOfSpeech{ NSLog(@" 检测到用户结束说话!"); }

3.4 功能列表

3.4.1 打开识别引擎,可以说话

识别启动接口

[[AICloudASREngine sharedInstance] startAsrEngine];

3.4.2 关闭识别引擎,等待识别结果

识别关闭接口

[[AICloudASREngine sharedInstance] stopAsrEngine];

3.4.3 关闭识别引擎,取消本次识别

取消本次识别接口

[[AICloudASREngine sharedInstance] cancel];

3.4.4 第三方录音引擎接口

您如果有自己的录音机,可以通过以下方法将录音数据(data为NSData类型)传给SDK。

第三方录音机接口

[[AICloudASREngine sharedInstance] feedData:data];

3.4.5 释放识别引擎

释放引擎接口

[AICloudASREngine dellocInstance];

3.5 错误码描述

error id 错误描述 原因及解决办法
070910 vad path is nil 检查配置参数K_LOCAL_VAD_RES_PATH的值
070911 network abnormal 请检查网络是否畅通, 检查是否是基础技术产品、检查产品是否已经发布
070922 asr result is nil 请检查是否有音频
070923 custom language model must set lmid 请检查配置参数K_CUSTOM_LMID的值
070924 releasing cloud asr engine is failed 请联系客服
070925 stopping cloud asr engine is failed 请联系客服
070926 starting cloud asr engine is failed 请联系客服
070927 init cloud asr engine is failed 请联系客服
070928 start cloud asr recorder is cloud asr failed 请重启引擎或者联系客服