
Silero VAD 语音活动检测阈值与采样率选型指南【免费下载链接】silero-vadSilero VAD: pre-trained enterprise-grade Voice Activity Detector项目地址: https://gitcode.com/GitHub_Trending/si/silero-vadSilero VAD 是一个约 2MB 的预训练语音活动检测VAD模型输入一段音频它按 32ms 一个块输出 0~1 的概率值告诉你哪段在有人说话。做语音助手、呼叫中心质检、ASR 前置切分时这一步能替代整堆能量阈值 过零率的规则代码。能量阈值失效的 3 个痛点场景能量 过零率规则在真实环境撑不住办公室开着电视误触发率明显上升开发者只能再叠一层信噪比估计和自适应阈值调一周误报仍压不到 5% 以下换成地铁这类低信噪比环境反向问题出现——人声被噪声吞掉直接漏检。长录音喂 ASR 前必须切段按固定时长切会把词切到两半想按静音切就得先有静音检测自己写一遍恰好又绕回 VAD。实时流帧长对不上推理20ms 的帧太小没法直接过模型自己维护有状态缓冲时中途一换采样率内部状态错位后面全段的概率都不可信。能力速览2MB 模型、单块 1ms、8kHz 与 16kHz 全支持项目情况模型体积 / 格式JIT 约 2MB另有 ONNXopset 15/16跨平台可用采样率8kHz / 16kHz16k 的整数倍32k、48k会自动降采样单块推理512 样本32ms16k 下单 CPU 线程耗时 1ms流式推理VADIterator带状态封装批量大小或采样率变化时自动重置状态语料覆盖在 6000 语言的语音上训练非英语场景不用另找模型许可证MIT无遥测、无 key、无注册5 分钟跑通 get_silero_vad 与 get_speech_timestampspip install silero-vad装好依赖read_audio 走 torchaudio需要 soundfile 或 ffmpeg 后端走 ONNX 则装 onnxruntime直接上代码from silero_vad import load_silero_vad, read_audio, get_speech_timestamps model load_silero_vad(onnxTrue) # ONNX 版本约 2MB wav read_audio(tests/data/test.wav) # 读成 1D float 张量 tss get_speech_timestamps( wav, model, sampling_rate16000, return_secondsTrue, # 直接返回秒默认返回样本点索引 ) for t in tss: print(t[start], t[end]) # 每个说话片段的起止时间文件模式到这里就闭环了读文件 → 拿到一段段时间戳列表后面接 ASR、存储或质检都基于这份列表。关键参数拆解threshold 与静音时长的取舍参数默认值调大 / 调小的实际影响什么时候需要改threshold0.5调大 → 误报变少但轻声说话的头音被截掉调小 → 噪声环境误报变多自己的数据上出现音乐、电视背景误报或轻声漏检min_speech_duration_ms250调大 → 嗯哦这类短应答被整段丢弃调小 → 敲击、爆音被当成语音客服对话场景需要保留短回复min_silence_duration_ms100调大 → 短停顿处两句不切开切分点向后推迟同等时长调小 → 一次换气把一句话拆成两段实时交互里要更快判句尾sampling_rate160008k 带宽省一半但细节更少、精度略降16k 精度更好电话音频用 8k录音 / 高质量用 16k必须与实际音频一致 官方文档说 0.5 对多数数据集够用说白了这个结论是在官方评测集上得出的。重噪声环境直接拿 0.5 用漏检和误报都会肉眼可见地偏先用自己几百段音频过一遍 tuning/ 里的网格搜索再定。接入路径Python 里 512 样本块怎么喂流式模式用VADIterator麦克风或网络帧到了就喂不用自己管缓冲和状态from silero_vad import VADIterator iterator VADIterator(model, sampling_rate16000) for chunk in mic_frames: # 你的麦克风 / 网络帧序列 iterator(chunk) # 返回新关闭的 (start, end) 段列表⚠️ 这里有个坑16k 下每次必须恰好喂 512 个样本32ms8k 下是 256长度不对直接抛 ValueError上游帧长不整除时要在自己的缓冲区里先攒够再喂。语言侧 Python 是主力C、C#、Rust、Go、Java、Haskell 的示例都在 examples/ 目录OpenVINO 转换脚本在 examples/openvino/实时麦克风 WebRTC 的完整演示在 examples/microphone_and_webRTC_integration/。适用与不适用VAD 的边界在哪✅ 推荐场景ASR 前置切段电话 8k / 录音 16k、呼叫中心质检、语音助手判句尾、离线批量数据清洗在信噪比 15dB 的办公环境默认参数误报可控换成重噪声环境偏移会明显变大别硬用的场景说话人分离它只回答有没有人说话不回答是谁 → 叠加 pyannote.audio 或声纹 embedding 模型音乐 / 歌唱检测音乐会被判成非语音或误判换专用音乐检测模型样本级边界精度粒度是 32ms 一块要毫秒级边界需要自己在后处理里再修仓库索引测试、示例与 tuning 工具在哪src/silero_vad/模型加载model.py与 ONNX 状态机封装utils_vad.py上下文和状态逻辑都在这里tests/test_basic.py附带 wav / mp3 / opus 三种格式测试音频examples/多语言示例含 cpp、csharp、rust-example、go、java-example、haskelltuning/阈值网格搜索 search_thresholds.py config.yml 示例数据集examples/microphone_and_webRTC_integration/实时麦克风检测与 WebRTC 集成示例【免费下载链接】silero-vadSilero VAD: pre-trained enterprise-grade Voice Activity Detector项目地址: https://gitcode.com/GitHub_Trending/si/silero-vad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考