同时使用百度asr和tts sdk时,无法唤醒

2019-04-26  本文已影响0人  字节码

App中同时使用了ASR iOS SDK离线在线语音合成 iOS SDK,主要使用的功能:语音唤醒、语义识别、语音合成。在未集成离线在线语音合成 iOS SDK时可以正常使用唤醒和语音识别功能,一旦集成了离线在线语音合成 iOS SDK,这两个功能无法使用。

分析步骤:

下面是引用自语音合成中的AudioSession

合成SDK默认会将AudioSession的Category设置为AVAudioSessionCategoryPlayback,并在必要的时候调用setActive:接口对外部音频进行打断及恢复,如果开发者不希望SDK对AudioSession进行操作,可以通过参数配置接口,把BDS_SYNTHESIZER_PARAM_ENABLE_AVSESSION_MGMT对应的value设置为NO,即可屏蔽SDK内部的操作,按照需求,自行配置AudioSession。

//--------------- 以下参照百度地图tts参数
   // 语速
   [[BDSSpeechSynthesizer sharedInstance] setSynthParam:@(6) forKey:BDS_SYNTHESIZER_PARAM_SPEED];
   [[BDSSpeechSynthesizer sharedInstance] setSynthParam:@(0) forKey:BDS_SYNTHESIZER_PARAM_USER_AGENT];
   [[BDSSpeechSynthesizer sharedInstance] setSynthParam:@(0) forKey:BDS_SYNTHESIZER_PARAM_ONLINE_TTS_THRESHOLD];
// 禁用百度sdk的AudioSession
   [[BDSSpeechSynthesizer sharedInstance] setSynthParam:@(NO) forKey:BDS_SYNTHESIZER_PARAM_ENABLE_AVSESSION_MGMT];
   [[BDSSpeechSynthesizer sharedInstance] setSynthParam:@(9) forKey:BDS_SYNTHESIZER_PARAM_VOLUME];
   [[BDSSpeechSynthesizer sharedInstance] setSynthParam:@(ETTS_AUDIO_TYPE_PCM_8K) forKey:BDS_SYNTHESIZER_PARAM_ETTS_AUDIO_FORMAT];
   [[BDSSpeechSynthesizer sharedInstance] setSynthParam:@(1) forKey:BDS_SYNTHESIZER_PARAM_ETTS_DOMAIN_SYNTH];
   [[BDSSpeechSynthesizer sharedInstance] setSynthParam:@(1) forKey:21];
   [[BDSSpeechSynthesizer sharedInstance] setSynthParam:@(NO) forKey:BDS_SYNTHESIZER_PARAM_AUDIO_SESSION_CATEGORY_OPTIONS];
   //---------------
上一篇 下一篇

猜你喜欢

热点阅读