语音助手经常会出现明显的延迟,因为它们必须等待“语音停止”信号才能触发大语言模型 (LLM) 调用或生成音频输出。RealtimeVAD 通过提供一个比标准 Silero VAD 模型中位值提前 100ms 发生的“暂停”事件来解决这一瓶颈,从而实现生成式语音流水线中更快的转换。
更快检测的机制
RealtimeVAD 保留使用 Silero VAD 模型来判断什么是语音,但叠加了一个高频检查。每 10ms,系统会将当前的音频水平与环境房间噪声以及说话者的自身音量进行对比。
一旦音频相对于这些基准变安静,系统就会触发“暂停”事件。这发生在 Silero 模型内部概率得分下降到足以发出轮次结束信号之前很久。
HN Digest 绘制的图表(源自 github.com 报告的数值;数值按原文显示)。
“RealtimeVAD 让它变得更早。它保留 Silero VAD 来决定什么是语音,并增加了一个更快的二次检查:每 10 毫秒,它将音频水平与房间噪声以及说话者的自身水平进行对比。”
— GitHub - KoljaB/RealtimeVAD: Faster speech off signals for spec gen voice pipelines
性能基准与权衡
在对 3,279 次真实语音助手轮次的测试中,RealtimeVAD 的“暂停”事件在 82% 的情况下早于 Silero 的结束信号到达。然而,这种速度伴随着更高的误报频率;该工具在每一次呼吸或塞音停止时都会触发,这意味着它识别出的许多“暂停”实际上只是单个句子内的短暂间隔。
开发人员可以使用这些频繁的“暂停”事件开始推测性工作,例如准备转录文本或预取 LLM 数据,如果说话者继续说话,这些操作随后可以被取消。如果系统无法处理快速取消,它可以忽略“暂停”事件并等待最终的“结束”信号,该信号仍比 Silero 的默认设置到达得更快。
环境限制与局限性
100ms 的领先优势很大程度上取决于音频环境。在环境噪声与说话者音量差距在 20dB 以内的房间中,这种领先优势会消失,因为系统无法将轻微的语音结尾与背景噪声区分开来。
此外,该工具需要 16 kHz 单声道音频,并在启用噪声抑制时表现最佳。对于非常安静或窄带语音(如电话线路),系统仍可能触及底层 Silero 模型固有的限制。