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_USE_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 | 请重启引擎或者联系客服 |