You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

三星Android15设备SpeechRecognizer后TTS onDone回调未触发问题

语音助手设置流程:SpeechRecognizer会话结束后TextToSpeech引擎挂起故障

环境信息

  • 设备:Samsung SM-A736B
  • 系统:Android 15(One UI 7)
  • STT组件:系统原生android.speech.SpeechRecognizer
  • TTS组件:显式绑定的Google TTS Engine(com.google.android.tts)

故障触发流程(经Logcat确认)

  1. 前台服务VoiceSessionService中创建SpeechRecognizer实例并启动监听
  2. 用户语音输入后,onResults回调正常触发,返回转录文本
  3. 立即调用stopListening()和destroy()销毁SpeechRecognizer实例,服务自行停止
  4. 主线程通过Handler.postDelayed设置500ms延迟
  5. 延迟结束后,通过AudioFocusRequest.Builder成功获取音频焦点(返回AUDIOFOCUS_REQUEST_GRANTED)
  6. 调用TextToSpeech.speak()播放确认语句
  7. 故障点:TextToSpeech无报错接受请求,但无声音输出,且UtteranceProgressListener的onDone/onError回调完全不触发,导致应用逻辑因等待回调永久阻塞

已尝试的解决方案(均无效)

  • 显式绑定Google TTS Engine,问题依旧
  • 完全销毁SpeechRecognizer实例,未解决资源占用问题
  • 在销毁SpeechRecognizer与调用TTS之间增加500ms延迟,无效
  • 使用AudioFocusRequest.Builder请求音频焦点,虽成功获取但TTS仍挂起
  • 强制重启TTS引擎,故障未消除

核心疑问

遵循官方文档最佳实践且已成功获取音频焦点的前提下,为什么SpeechRecognizer会话结束后,TextToSpeech会出现挂起且不触发回调的情况?


内容的提问来源于stack exchange,提问作者Andrei Babenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 06:12:09