附录

语音识别

预定义命令

语音识别目前支持的命令如下:

命令 功能描述
BDS_ASR_CMD_START 启动识别
BDS_ASR_CMD_STOP 结束语音输入,等待识别完成
BDS_ASR_CMD_CANCEL 取消本次识别
BDS_ASR_CMD_LOAD_ENGINE 加载离线引擎,如使用离线识别,在启动识别前需调用此命令
BDS_ASR_CMD_UNLOAD_ENGINE 卸载离线引擎,如改变离线配置参数,需重新加载离线引擎

识别状态

语音识别回调状态如下:

识别状态 返回值说明 功能描述
EVoiceRecognitionClientWorkStatusStartWorkIng nil 识别工作开始,开始采集及处理数据
EVoiceRecognitionClientWorkStatusStart nil 检测到用户开始说话
EVoiceRecognitionClientWorkStatusEnd nil 本地声音采集结束结束,等待识别结果返回并结束录音
EVoiceRecognitionClientWorkStatusNewRecordData NSData-原始音频数据 录音数据回调
EVoiceRecognitionClientWorkStatusFlushData NSDictionary-中间结果 连续上屏
EVoiceRecognitionClientWorkStatusFinish NSDictionary-最终识别结果 语音识别功能完成,服务器返回正确结果
EVoiceRecognitionClientWorkStatusMeterLevel NSNumber:int-当前音量 当前音量回调
EVoiceRecognitionClientWorkStatusCancel nil 用户取消
EVoiceRecognitionClientWorkStatusError NSError-错误信息 发生错误
EVoiceRecognitionClientWorkStatusLoaded nil 离线引擎加载完成
EVoiceRecognitionClientWorkStatusUnLoaded nil 离线引擎卸载完成
EVoiceRecognitionClientWorkStatusChunkThirdData NSData CHUNK: 识别结果中的第三方数据
EVoiceRecognitionClientWorkStatusChunkNlu NSData CHUNK: 识别结果中的语义结果
EVoiceRecognitionClientWorkStatusChunkEnd NSString CHUNK: 识别过程结束
EVoiceRecognitionClientWorkStatusFeedback NSString Feedback: 识别过程反馈的打点数据
EVoiceRecognitionClientWorkStatusRecorderEnd nil 录音机关闭,页面跳转需检测此时间,规避状态条 (iOS)
EVoiceRecognitionClientWorkStatusLongSpeechEnd nil 长语音结束状态

参数说明

通过配置不同的参数,语音识别提供丰富的功能,说明如下:

在线引擎身份验证

参数名称 说明
BDS_ASR_API_SECRET_KEYS 开放平台设置API_KEY and SECRET_KEY
BDS_ASR_PRODUCT_ID 内部产品设置产品ID

离线引擎身份验证

参数名称 说明
BDS_ASR_OFFLINE_LICENSE_FILE_PATH 离线授权文件路径
BDS_ASR_OFFLINE_APP_CODE 离线授权所需APPCODE(APPID),
如使用该方式进行正式授权,请移除临时授权文件

识别器参数配置

参数名称 说明
BDS_ASR_SAMPLE_RATE 设置录音采样率,自动模式根据当前网络情况自行调整
BDS_ASR_STRATEGY 语音识别策略
BDS_ASR_LANGUAGE 设置识别语言
BDS_ASR_ENABLE_NLU 开启语义解析,将返回包含语义的json串
BDS_ASR_DISABLE_PUNCTUATION 关闭输出标点
BDS_ASR_ENABLE_LOCAL_VAD 是否需要对录音数据进行端点检测,如果关闭,请同时关闭服务端提前返回
BDS_ASR_ENABLE_EARLY_RETURN 服务端开启提前返回,即允许服务端在未收到客户端发送的结束标志前提前结束识别过程
BDS_ASR_ENABLE_MODEL_VAD 是否使用ModelVAD,打开需配置资源文件参数
BDS_ASR_MODEL_VAD_DAT_FILE ModelVAD所需资源文件路径
BDS_ASR_VAD_ENABLE_LONG_PRESS 设置VAD模式为长按(特殊情况设置)
BDS_ASR_MFE_DNN_DAT_FILE 设置MFE模型文件
BDS_ASR_MFE_CMVN_DAT_FILE 设置MFE CMVN文件路径
BDS_ASR_MFE_MAX_WAIT_DURATION 设置DNNMFE最大等待语音时间
BDS_ASR_MFE_MAX_SPEECH_PAUSE 设置DNNMFE切分门限
BDS_ASR_ENABLE_LONG_SPEECH 是否启用长语音识别

音频相关

参数名称 说明
BDS_ASR_AUDIO_FILE_PATH 设置音频文件路径(数据源)
BDS_ASR_AUDIO_INPUT_STREAM 设置音频输入流(数据源)
BDS_ASR_PLAY_TONE 识别提示音设置,需添加相应声音文件,可替换
BDS_ASR_DISABLE_AUDIO_OPERATION 屏蔽SDK内部设置AudioSession的Active状态

日志级别

参数名称 说明
BDS_ASR_DEBUG_LOG_LEVEL 指定调试日志级别

离线识别相关

参数名称 说明
BDS_ASR_OFFLINE_ENGINE_TYPE 离线识别引擎类型
BDS_ASR_OFFLINE_ENGINE_DAT_FILE_PATH 离线识别资源文件路径
BDS_ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH 离线识别语法文件路径
BDS_ASR_OFFLINE_ENGINE_GRAMMER_SLOT 语法模式离线语法槽,使用该参数更新离线语法文件

唤醒后立刻识别相关

参数名称 说明
BDS_ASR_OFFLINE_ENGINE_WAKEUP_WORDS_FILE_PATH 唤醒词文件路径,使用了唤醒并使用离线语法识别的情况下需要设置,其他情况请忽略该参数
BDS_ASR_OFFLINE_ENGINE_TRIGGERED_WAKEUP_WORD 当前触发唤醒词,唤醒后立即调用识别的情况下配置,其他情况请忽略该参数
BDS_ASR_NEED_CACHE_AUDIO 唤醒后立刻进行识别需开启该参数,其他情况请忽略该参数

服务端配置相关

参数名称 说明
BDS_ASR_SERVER_URL 设置服务器地址
BDS_ASR_BROWSER_USER_AGENT 设置浏览器标识(Http request header),资源返回时会根据UA适配

语音唤醒

预定义命令

语音唤醒目前支持的命令如下:

命令 功能描述
BDS_WP_CMD_START 启动唤醒
BDS_WP_CMD_STOP 关闭唤醒,释放内存需调用卸载命令
BDS_WP_CMD_LOAD_ENGINE 加载唤醒引擎
BDS_WP_CMD_UNLOAD_ENGINE 卸载唤醒引擎,如改变了引擎参数,请重新加载

唤醒状态

唤醒状态 返回值说明 功能描述
EWakeupEngineWorkStatusStarted nil 引擎开始工作
EWakeupEngineWorkStatusStopped nil 引擎关闭完成
EWakeupEngineWorkStatusLoaded nil 唤醒引擎加载完成
EWakeupEngineWorkStatusUnLoaded nil 唤醒引擎卸载完成
EWakeupEngineWorkStatusTriggered NSString-唤醒词 命中唤醒词
EWakeupEngineWorkStatusError NSError-错误信息 引擎发生错误

参数说明

为使唤醒引擎正常工作,开发者需了解以下参数:

基本配置

参数名称 说明
BDS_WAKEUP_WORDS_FILE_PATH 唤醒词文件路径,从开放平台获取该文件
BDS_WAKEUP_DAT_FILE_PATH 唤醒引擎模型文件路径
BDS_WAKEUP_APP_CODE 离线正式授权所需APPCODE,即APPID
BDS_WAKEUP_LICENSE_FILE_PATH 离线授权文件路径,正式授权需移除该文件
BDS_WAKEUP_WORK_QUEUE 指定SDK工作队列

音频相关

音频相关的参数与识别引擎共享,如同时使用,只需配置一次

参数名称 说明
BDS_WAKEUP_AUDIO_FILE_PATH 设置音频文件路径(数据源)
BDS_WAKEUP_AUDIO_INPUT_STREAM 设置音频输入流(数据源)
BDS_WAKEUP_DISABLE_AUDIO_OPERATION 屏蔽SDK内部设置AudioSession的Active状态

错误码说明

识别过程中服务器返回错误状态:

错误码 说明
-3001 协议参数错误
-3002 识别过程出错
-3003 没有找到匹配结果
-3004 PID设置错误
-3005 声音质量不符合要求
-3006 语音录入过长,请勿超过60s

离线引擎错误状态:

错误码 说明
2228230 dat模型文件不可用,请设置 BDS_ASR_OFFLINE_ENGINE_DAT_FILE_PATH
2228231 grammar文件无效 ,请设置 BDS_ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH
2228236 识别失败,无法识别。(语法模式下,可能为语音不在自定义的语法规则之下)
2228226 [KWS] no license. 首次使用离线引擎请联网,并配置正确的app_id BDS_ASR_OFFLINE_APP_CODE, 绑定BundleId
2225219 server speech quality problem。音频质量过低,无法识别。

录音设备错误状态

错误码 说明
655361 录音设备异常
655362 无录音权限
655363 录音设备不可用
655364 录音中断

网络错误状态

错误码 说明
1966081 网络意外出错
1966082 网络不可用
2031617 网络请求超时
2225213 日志中有字样 err_no is: -3011. Server unknown error. 一般是网络有代理导致。联网请不要走代理。