语音唤醒

语音唤醒,需要配置所需语言模型文件(基础资源文件)及官网导出的自定义唤醒词文件,配置后加载引擎,即可进行开始唤醒。需要注意的是,唤醒引擎开启后会保持录音机为启动状态,用户说出正确的唤醒词后会触发唤醒,通过相关回调反馈给应用程序。

语音唤醒为离线功能,需配置离线授权信息(APP_ID),加载唤醒所需语言模型文件,接口与语音识别接口相同。

基于多种因素考虑,在App进入后台后,唤醒将会被打断。

代码示例

// 创建语音识别对象
self.wakeupEventManager = [BDSEventManager createEventManagerWithName:BDS_WAKEUP_NAME];
// 设置语音唤醒代理
[self.wakeupEventManager setDelegate:self];
// 参数配置:离线授权APPID
[self.wakeupEventManager setParameter:APP_ID forKey:BDS_WAKEUP_APP_CODE];
// 参数配置:唤醒语言模型文件路径, 默认文件名为 bds_easr_basic_model.dat
[self.wakeupEventManager setParameter:@"唤醒语言模型文件路径" forKey:BDS_WAKEUP_DAT_FILE_PATH];
// 发送指令:加载语音唤醒引擎
[self.wakeupEventManager sendCommand:BDS_WP_CMD_LOAD_ENGINE];
//设置唤醒词文件路径
// 默认的唤醒词文件为"bds_easr_wakeup_words.dat",包含的唤醒词为"百度一下"
// 如需自定义唤醒词,请在 http://ai.baidu.com/tech/speech/wake 中评估并下载唤醒词文件,替换此参数
[self.asrEventManager setParameter:@"唤醒词文件路径" forKey:BDS_WAKEUP_WORDS_FIEL_PATH]
// 发送指令:启动唤醒
[self.wakeupEventManager sendCommand:BDS_WP_CMD_START];

唤醒功能回调接口

@protocol BDSClientWakeupDelegate<NSObject>
- (void)WakeupClientWorkStatus:(int)workStatus obj:(id)aObj;
@end

唤醒辅助识别

使用唤醒的一种需求场景是唤醒后立刻识别,以唤醒词为百度一下举例,用户可能的输入为百度一下,北京天气怎么样?如果开发者需要对该种场景进行支持,请按如下操作:

  1. 正确配置唤醒引擎,语言模型文件及唤醒词文件,并加载引擎;
  2. 开启唤醒,接收用户语音输入;
  3. 在唤醒的唤醒词触发回调中,配置BDS_ASR_NEED_CACHE_AUDIO为YES到识别引擎,正常识别请将该值设为NO;
  4. 调用识别引擎开启识别过程;
// 如需要唤醒后立刻进行识别,为保证不丢音,启动语音识别前请添加如下配置,获取录音缓存:
[self.asrEventManager setParameter:@(YES) forKey:BDS_ASR_NEED_CACHE_AUDIO];