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

Flutter Speech-to-text包无法识别单个‘yes’问题排查求助

Flutter Speech-to-text 单个"yes"识别异常问题排查

我们开发的移动应用内置语音助手,存在大量需向用户请求确认的业务场景,用户仅需说出“yes”即可完成确认操作。但目前遇到异常问题:Flutter Speech-to-text包无法识别单个“yes”词汇,却能正常识别“yes please”“yes of course”“yes proceed”这类带后缀的表述。我们无法强制用户使用此类长句式进行确认,以下是可能的原因排查及配置调整建议:

当前配置

listenFor: Duration(seconds: 60),
pauseFor: Duration(seconds: 20),
//listenMode: spd.ListenMode.dictation,
cancelOnError: false,
partialResults: true,
localeId: 'en-IN')

可能的原因及解决方法

  • 监听模式未启用听写模式:当前注释掉了listenMode: spd.ListenMode.dictation,默认模式可能更适配连续长文本识别,对单个短词汇的敏感度不足。尝试开启听写模式,该模式更适合自由语音输入,能提升短词汇的识别率。
  • Partial Results干扰短词汇识别:partialResults: true会返回中间识别结果,单个“yes”可能被当成未完成的输入而被忽略。建议关闭该选项,让引擎等待语音输入停顿后返回完整结果,避免短词汇被过滤。
  • 地区语言包适配问题:使用的en-IN(印度英语)语言包,部分引擎对该地区的短词汇训练数据覆盖不足。可以切换为en-US或en-GB等通用英语语言包测试,验证是否是地区语言模型的问题。
  • 停顿等待时长设置过长:pauseFor: Duration(seconds: 20)的阈值太高,单个“yes”发音极短,引擎会持续等待后续输入,未触发识别完成逻辑。建议将该值调至1-2秒,让引擎在用户短停顿后快速完成识别。
  • 引擎默认过滤短词汇:部分底层语音识别引擎(如Android Google Speech、iOS SFSpeechRecognizer)默认会过滤极短词汇以减少误触发。如果Speech-to-text包支持,可以尝试设置识别候选词列表,将“yes”加入强制候选,提升其识别优先级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 17:17:26