美文网首页
同时使用百度asr和tts sdk时,无法唤醒

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

作者: 字节码 | 来源:发表于2019-04-26 17:43 被阅读0次

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

分析步骤:

  • 1.通过在公司的app中调试AVAudioSession的-setActive:error:方法,发觉每次tts播报完成后,就会在百度tts内部的线程中将active设置为NO,导致 ASR iOS SDK无法进行语音录制,所以无法唤醒和语义识别。
  • 2.到现在问题已经很明确了,是AVAudioSession的激活状态被解除了,通过设置离线在线语音合成 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];
   //---------------

相关文章

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

    App中同时使用了ASR iOS SDK和离线在线语音合成 iOS SDK,主要使用的功能:语音唤醒、语义识别、语...

  • 无标题文章

    百度地图语音播报TTS 授权失败语音播报 SDK内置百度TTS语音播报功能,需要对应用进行授权验证才能够使用,因此...

  • 分享:基于Asterisk和TTS/ASR语音识别配置示例

    智能客服的开发基于ASR和TTS的处理是一个非常关键的技术点。通过软交换平台直接和一些大公司的ASR和TTS接口进...

  • 语音交互流程

    一、流程概述 语音交互的完整流程大致为:唤醒→语音识别(ASR)→自然语音处理(NLP)→语音合成(TTS)可以类...

  • swift填坑记录

    使用Cocoapods时,Swift无法同时在podfile文件中使用OC和Swift的SDK 【引用】https...

  • 关于iOS百度导航 TTS授权失败

    1.问题描述 项目中用的是旧版的百度导航SDK,进入到导航界面会提示TTS授权失败且语言播报功能无法正常使用。 2...

  • 百度语音识别

    实现百度语音识别。首先去https://ai.baidu.com/sdk#asr下载语音识别sdk。下载的demo...

  • Android TTS 小试

    前言 让app具备tts能力,有两种方式,一种是直接集成第三方tts sdk,比如科大讯飞、百度等等,调用sdk的...

  • 百度语音识别生成的PCM播放问题

    在百度文档 http://ai.baidu.com/docs#/ASR-Android-SDK/top中,对于识别...

  • iOS 未通过授权,暂不能使用百度导航SDK

    百度导航SDK v3.2.0版本之后,TTS白名单授权网站失效。解决应用中导航失败:“未通过授权,暂不能使用百度导...

网友评论

      本文标题:同时使用百度asr和tts sdk时,无法唤醒

      本文链接:https://www.haomeiwen.com/subject/dtvqnqtx.html