语音活动检测:实现指南
检测并分割音频流中的语音
语音活动检测:实现指南
检测并分割音频流中的语音
语音活动检测(VAD)实现指南(2026):在转写/语音 Agent 前判断哪段是语音,省钱降延迟、判断说话结束。Silero vs webrtcvad、真实代码、VAD→分段→ASR 管线与实时 end-of-turn 调参。
语音活动检测:实现指南(2026)
语音活动检测(VAD)决定音频流的哪些部分包含语音,哪些是静音或噪声。它是转写和语音 Agent 的守门员:仅在语音段上运行昂贵的 ASR,并检测用户何时停止说话(“说话结束”),以便 Agent 可以响应。
为什么需要它
没有 VAD,你会转写静音、浪费 API 调用,并且无法判断说话者何时结束。有了它,你可以降低成本、减少延迟,并在语音 Agent 中实现自然的轮流说话。
实用选项
python
pip install silero-vad torch torchaudio
from silero_vad import load_silero_vad, read_audio, get_speech_timestampsmodel = load_silero_vad()
wav = read_audio("call.wav", sampling_rate=16000)
segments = get_speech_timestamps(wav, model, sampling_rate=16000)
segments = [{'start': 1280, 'end': 20480}, ...] → 只将这些段送入 ASR
将 VAD 与转写结合使用
标准管线:VAD → 分段 → ASR。将音频切片成语音段,然后将每个段发送给 Whisper 或流式 ASR。这避免了转写无声部分并提高了准确性。关于 ASR 步骤,请参阅多语言 ASR和OpenAI Whisper API。
为实时 Agent 调优
FAQ
webrtcvad 还是 Silero? 噪声环境下选 Silero 以获得准确性;需要极小且超快时选 webrtcvad。 VAD 会转写吗? 不会——它只标记语音区域;ASR 负责转写。 如何检测说话结束? 在调优的尾部静音窗口后触发。 为什么要填充段? 避免在 ASR 前截断首尾单词。
总结
VAD 是任何语音管线中廉价且高杠杆的前端:使用 Silero(或 webrtcvad)检测语音,只将语音送入 ASR,并调优尾部静音阈值以实现自然的轮流说话。它降低成本、减少延迟,同时提高转写质量。
*最后更新:2026 年 6 月。请对照 Silero VAD / webrtcvad 文档验证 API。*
相关工具
相关教程
集成语音合成 API 实现自定义语音
使用自然语音 TTS 和自定义语音克隆构建语音 AI 应用
掌握 GPT-4o 的多模态特性,包括图像分析、音频转录以及用于交互式应用的全新实时流式 API
使用Whisper转录音频文件、会议和实时语音
使用 OpenAI Whisper 和 GPT-4o 构建自动会议转录、说话人分离和智能会议摘要
何时以及如何针对特定领域任务微调大语言模型