You need to enable JavaScript to run this app. 如何在CMU Sphinx4中修改speechresult关闭前的无语音时长?
优惠活动
大模型
产品
解决方案
定价
更多

如何在CMU Sphinx4中修改speechresult关闭前的无语音时长?

CMU Sphinx4 自定义语音结果判定终止时长实现

目标效果说明

将引擎默认的短停顿即拆分语音结果的逻辑,修改为持续3秒无语音输入才判定当前轮次识别结束,实现短停顿场景下的连续语音自动合并。

原有自定义方案失效原因

你之前尝试通过倒计时线程拼接speechresult.getHypothesis()返回值的方案不生效,核心原因是Sphinx4内置的语音活动检测(VAD)会在达到默认静音阈值时,主动清空识别上下文、输出独立的识别结果;此时线程后续获取的假说内容已经属于全新的识别轮次,和之前的内容没有关联,自然无法拼接成功。

零侵入配置调整方案

不需要编写复杂的自定义逻辑,仅需修改引擎初始化时的VAD参数即可实现需求:

  • 定位示例代码中初始化语音识别器的配置加载位置
  • 修改核心参数vadLeaveSilenceMs的取值为3000:该参数直接控制VAD判定“语音段结束”所需的连续静音时长,默认值通常在300ms-1000ms区间,修改后即可满足3秒静音才终止判定的要求
  • 保留vadEntrySilenceMs的默认值即可,该参数仅控制识别启动前的静音检测逻辑,不影响语音段中途停顿的合并效果
  • 无需调整识别结果返回的等待缓冲参数speechResultWaitingMs,该参数不参与静音段的判定逻辑

效果验证标准

配置生效后可按以下场景测试:

  1. 先说"Hello",停顿1秒后再说"Hi",两段内容会被合并为同一个speechresult返回,不会拆分为独立结果
  2. 持续3秒无语音输入时,引擎会正常结束当前轮次判定,输出最终识别结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 00:15:07