silero-vad

snakers4MIT活跃维护 有专家点评

预训练的企业级语音活动检测(VAD)模型,能精准切分音频中的说话段与静音段,支持 ONNX 和 PyTorch 部署,适合语音识别、语音指令等场景的前置处理。

Silero VAD: pre-trained enterprise-grade Voice Activity Detector

v6.2.3发布于 2026-09-23 11:36 UTC10,631star +18 / 7 天888fork同步于 2026-11-10 23:30 UTC

专家点评

上手难度:进阶更新于 2026-11-11

在音频流水线最前面切掉静音段的轻量 VAD,替掉 WebRTC VAD 那套老实现

适用场景

  • 实时语音交互的前端门控:每 30ms 一帧判断是否有人说话,CPU 单线程开销小到可以塞进主线程外的独立线程,比 WebRTC VAD 在噪声下的误触发少,代价是要带 torch 或 onnxruntime
  • 离线批量转写/评测预处理:先用它把长录音切成语音段再送 ASR,省掉大量静音推理开销;比直接整段喂 Whisper 便宜,但需要自己写切分和拼接逻辑
  • 移动端/ARM 设备上的唤醒前过滤:JIT 模型约 2MB,走 ONNX Runtime 可以脱离 PyTorch 部署,适合包体积敏感的场景;换 Silero 之外的选择通常是自研小 CNN 或厂商 SDK
  • 给已有 ASR 流程加端点检测:只做「这句说完了没有」的判断,不引入完整对话框架

踩坑

  • 装 silero-vad[audio] 在 Python 3.9+ 会拉 torchcodec,而它要求系统里有 FFmpeg 4-9;容器镜像里没装 FFmpeg 的话 import 阶段就会失败,且报错信息不指向 FFmpeg
  • 走 torchaudio 后端时还要在 FFmpeg / sox_io / soundfile 里挑一个配好,三者行为不完全一致,换环境时容易在读取格式上出问题
  • issue 里反复出现 ONNX 的 GPU 支持和 Mobile/ARM 部署这两类问题,说明跨出「x86 CPU + PyTorch」这条主路径后,文档覆盖不到的地方需要自己趟;纯 ONNX 路线在非 x86 架构上能不能跑通,取决于你选的 onnxruntime 后端,README 没有给出保证
  • API 在版本间有过重构(get_speech_ts 相关),从 torch.hub 直接拉示例代码的写法会随版本失效,锁版本比跟最新更省事

同类对比

WebRTC VAD 是零依赖的替代,代价是噪声环境下准确率明显更差;如果只需要端点检测且已经在用 Whisper 生态,faster-whisper 自带的 VAD 能省掉一个依赖,但灵活度和独立部署能力不如它。

怎么上手

由 README 提炼,执行前请确认
pip install silero-vad[audio]
硬件要求按 README 说明

x86-64 系统需 1G 以上内存和带 AVX、AVX2、AVX-512 或 AMX 指令集的现代 CPU;纯 ONNX Runtime 方式可运行在 onnxruntime 支持的其他架构上;README 未说明显存要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

预训练语音活动检测器,轻量快速,适合在边缘和移动端做语音检测

预训练的企业级语音活动检测(VAD)模型,能精准切分音频中的说话段与静音段,支持 ONNX 和 PyTorch 部署,适合语音识别、语音指令等场景的前置处理。

核心能力

  • 单线程 CPU 处理 30ms 音频块耗时不到 1ms
  • JIT 模型仅约 2MB,适合边缘和移动端部署
  • 支持 8000Hz 与 16000Hz 两种采样率
  • 基于 PyTorch 和 ONNX 运行时,可跨平台移植
  • MIT 许可,无遥测、无密钥、无注册

容易踩的坑

模型本身只依赖 torch,若自行加载音频可只装 pip install silero-vad;[audio] 在 Python 3.9+ 会拉入 torchcodec,而 torchcodec 需要系统安装 FFmpeg(4-9);用 torchaudio 时还需额外配置 FFmpeg、sox_io 或 soundfile 之一作为音频后端。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v6.2.3
  1. v6.2.3v6.2.3 Make torchaudio optional最新正式版2026-09-23 · 2026-09-23 11:36 UTC

    torchaudio is now an optional dependency instead of required. Only torch is required — the model itself never used torchaudio, only the read_audio / save_audio helpers did.

    Users who need audio I/O must now install a backend explicitly:

    • pip install silero-vad[audio] (torchaudio)
    • pip install silero-vad[codec] (torchcodec)
    • pip install silero-vad[all] (everything)

    Key changes:

    • read_audio / save_audio now work with either torchaudio or torchcodec; with neither installed they raise an error naming the extra to install
    • Fixed: import silero_vad failed when onnxruntime was not installed — the sequence path is now imported lazily
    • numpy is now declared in [onnx-cpu] / [onnx-gpu]

    If you load audio yourself, no backend is needed at all:

    from silero_vad import load_silero_vad, get_speech_timestamps
    
    model = load_silero_vad()
    audio = ...                                      # 1-D float32 torch.Tensor from any source
    ts = get_speech_timestamps(audio, model, return_seconds=True)
    
  2. v6.2.2v6.2.2: Sequence silero-vad2026-09-17 · 2026-09-17 14:48 UTC
    查看更新说明

    Added offline ONNX sequence to release GIL- #795

    • 16 kHz only for now
    • separate silero_vad_16k_sequence.onnx model
    from silero_vad import load_silero_vad, get_speech_timestamps_sequence, read_audio
    
    model = load_silero_vad(sequence=True)          # loads silero_vad_16k_sequence.onnx
    audio = read_audio("audio.wav", sampling_rate=16000)
    ts = get_speech_timestamps_sequence(audio, model, return_seconds=True)
    
  3. v6.2.1v6.2.1: Make ONNX Runtime optional2026-02-24 · 2026-02-24 08:41 UTC
    查看更新说明
    • onnxruntime is now an optional dependency instead of required.

    You now need to install ONNX Runtime explicitly: pip install onnxruntime # for CPU pip install onnxruntime-gpu # for GPU

  4. v6.2v6.2 Edge Case Improvements2025-11-06 · 2025-11-06 08:38 UTC
    查看更新说明
    • VAD training paradigm reworked;
    • Overall slight quality improvement (no metrics update);
    • Higher stability on OOD / rare / strange / unique data;
    • Significant quality improvements on various known edge cases:
      • Unusual voices
      • Child voices
      • Cartoon voices
      • Muted voices
      • Muted speech
      • Lower quality phone calls

    What's Changed

    Full Changelog: https://github.com/snakers4/silero-vad/compare/v6.1...v6.2

  5. v6.1Publish fix for PyTorch 2.9 to pip2025-11-05 · 2025-11-05 05:39 UTC
    查看更新说明

    What's Changed

    New Contributors

    Full Changelog: https://github.com/snakers4/silero-vad/compare/v6.0...v6.1

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Mailing list : test Mailing list : test License: CC BY-NC 4.0 downloads

    Open In Colab Test Package Pypi version Python version

    header

    Silero VAD - pre-trained enterprise-grade Voice Activity Detector (also see our STT models).

    https://user-images.githubusercontent.com/36505480/144874384-95f80f6d-a4f1-42cc-9be7-004c891dd481.mp4

    Please note, that video loads only if you are logged in your GitHub account.

    System requirements to run python examples on x86-64 systems:

    • python 3.8+;
    • 1G+ RAM;
    • A modern CPU with AVX, AVX2, AVX-512 or AMX instruction sets.

    Required:

    • torch>=1.12.0.

    Everything else is optional and installed via extras:

    ExtraInstallsNeeded for
    silero-vad[audio]torchaudio>=0.12.0,<2.10, plus torchcodec on Python 3.9+read_audio / save_audio
    silero-vad[codec]torchcodecread_audio / save_audio with no torchaudio at all
    silero-vad[onnx-cpu]onnxruntime>=1.16.1, numpyONNX and sequence models
    silero-vad[onnx-gpu]onnxruntime-gpu>=1.16.1, numpyONNX on GPU
    silero-vad[all]all of the aboveeverything

    [audio] pulls in torchcodec on Python 3.9+ because torchaudio>=2.9 hands decoding over to it and does not work without it; on Python 3.8 pip resolves an older torchaudio that decodes on its own. torchcodec itself needs FFmpeg (4-9) on the system.

    The model itself needs only torch — if you already load audio yourself, pass a 1-D float32 torch.Tensor straight to get_speech_timestamps and install nothing extra.

    The bundled I/O helpers (read_audio, save_audio) work with either backend: torchaudio if present, otherwise torchcodec. Note that torchcodec resamples through FFmpeg rather than torchaudio.transforms.Resample, so results can differ by ~1e-3 on files that need resampling.

    With torchaudio, a proper audio backend is required:

    • Option №1 - FFmpeg backend. conda install -c conda-forge 'ffmpeg<7';
    • Option №2 - sox_io backend. apt-get install sox, TorchAudio is tested on libsox 14.4.2;
    • Option №3 - soundfile backend. pip install soundfile.

    If you are planning to run the VAD using solely the onnx-runtime, it will run on any other system architectures where onnx-runtume is supported. In this case please note that:

    • You will have to implement the I/O;
    • You will have to adapt the existing wrappers / examples / post-processing for your use-case.

    Using pip: pip install silero-vad[audio] (or plain pip install silero-vad if you load audio yourself)

    from silero_vad import load_silero_vad, read_audio, get_speech_timestamps
    model = load_silero_vad()
    wav = read_audio('path_to_audio_file')
    speech_timestamps = get_speech_timestamps(
      wav,
      model,
      return_seconds=True,  # Return speech timestamps in seconds (default is samples)
    )
    

    Using torch.hub:

    import torch
    torch.set_num_threads(1)
    
    model, utils = torch.hub.load(repo_or_dir='snakers4/silero-vad', model='silero_vad')
    (get_speech_timestamps, _, read_audio, _, _) = utils
    
    wav = read_audio('path_to_audio_file')
    speech_timestamps = get_speech_timestamps(
      wav,
      model,
      return_seconds=True,  # Return speech timestamps in seconds (default is samples)
    )
    
    • Stellar accuracy

      Silero VAD has excellent results on speech detection tasks.

    • Fast

      One audio chunk (30+ ms) takes less than 1ms to be processed on a single CPU thread. Using batching or GPU can also improve performance considerably. Under certain conditions ONNX may even run up to 4-5x faster.

    • Lightweight

      JIT model is around two megabytes in size.

    • General

      Silero VAD was trained on huge corpora that include over 6000 languages and it performs well on audios from different domains with various background noise and quality levels.

    • Flexible sampling rate

      Silero VAD supports 8000 Hz and 16000 Hz sampling rates.

    • Highly Portable

      Silero VAD reaps benefits from the rich ecosystems built around PyTorch and ONNX running everywhere where these runtimes are available.

    • No Strings Attached

      Published under permissive license (MIT) Silero VAD has zero strings attached - no telemetry, no keys, no registration, no built-in expiration, no keys or vendor lock.

    • Voice activity detection for IOT / edge / mobile use cases
    • Data cleaning and preparation, voice detection in general
    • Telephony and call-center automation, voice bots
    • Voice interfaces

    Try our models, create an issue, start a discussion, join our telegram chat, email us, read our news.

    Please see our wiki for relevant information and email us directly.

    Citations

    @misc{Silero VAD,
      author = {Silero Team},
      title = {Silero VAD: pre-trained enterprise-grade Voice Activity Detector (VAD), Number Detector and Language Classifier},
      year = {2024},
      publisher = {GitHub},
      journal = {GitHub repository},
      howpublished = {\url{https://github.com/snakers4/silero-vad}},
      commit = {insert_some_commit_here},
      email = {[email protected]}
    }