RealtimeVAD: 比 Silero 提前 110 毫秒检测语音结束
Show HN: RealtimeVAD – trading false positives for 110ms earlier end-of-speech
RealtimeVAD 是一款专为语音助手和实时语音管道设计的高效语音活动检测工具。它保留了 Silero VAD 的精准识别能力,同时引入了一套更快的检测机制,能在音频静音后的 10 毫秒内发出信号,比传统方案提前约 110 毫秒判断用户停止说话。这意味着语音识别、LLM 调用和语音输出的等待时间大幅缩短,显著提升了交互流畅度。项目仅需 numpy 和 onnxruntime,无需 torch,单线程即可运行,完美适配 LiveKit 等实时语音框架,是追求极致低延迟开发者的理想选择。
在语音助手的世界里,每一毫秒都至关重要。RealtimeVAD 让系统在用户话音刚落、甚至还在停顿的瞬间,就提前预判结束,将原本数百毫秒的等待压缩到几乎无形。
- nowittyusername
你也可以完全避开这个问题。我搞了一套“投机式再生成”管道(至少我是这么叫的),已经用了好几个月,效果很棒。只要你能访问推理服务器,就能跑起来。思路是这样的:每检测到 n 毫秒的静音(我通常是 300ms),就立刻把 ASR 转录文本发给 LLM 处理。让模型开始生成回答,但如果用户在结束标记(end of turn token)出现前又开始说话,就取消生成,重新等待 300ms。如此循环。同时还要设置一个安全窗口,确保无论推理速度如何,最终的 LLM 回答都能被确定下来。效果堪称完美。基本上,用户在那段“静音”窗口感受到的延迟最高也就是 300ms。所以剩下的延迟问题,你只需要担心 LLM 推理速度、ASR 和 TTS 的延迟。在我的管道里,用户话音刚落,模型就已经在 900ms 到 1.2 秒内开始响应了。我用的是 Gemma 26B MoE 模型,4bit 量化,开启 thinking 模式,配合 MTP 能达到约 300 tokens/秒……ASR 和 TTS 加起来都在 350ms 以内。当然,如果关掉 thinking 模式速度还能更快,但我喜欢我的语音助手够聪明,毕竟一旦关掉 thinking,它的工具调用能力和常识推理能力就会大打折扣……真是有趣!
- LeoisNotAI
哪个模型对你来说速度最快?
- com2kid
这大概是我第三次发这个建议了——
跑一个超快的小型烂 LLM,或者更好的是,现在试试用决策模型(decision model)。
把上一轮对话以及目前为止所有的 STT(ASR 输出)喂给它,只让它判断用户说完话的概率。
利用这个概率来缩短你的 VAD 等待时间。
虽然这比不上真正的端到端语音模型,但相比纯 VAD,它能省下几百毫秒。另外还有个好处:当用户还没说完时,你可以多等一会儿。