三行代码从音频流里切出语音段:Silero VAD 快速上手
2026/9/17 7:58:51 网站建设 项目流程

三行代码从音频流里切出语音段:Silero VAD 快速上手

【免费下载链接】silero-vadSilero VAD: pre-trained enterprise-grade Voice Activity Detector项目地址: https://gitcode.com/GitHub_Trending/si/silero-vad

你的音频流里混着大段静音,下游 ASR 一直在空跑。Silero VAD 是一个语音活动检测模型,把"哪里有声音"变成一串时间戳,几行 Python 就能跑通。做语音流、离线录音处理、语音机器人前端的开发者,花 10 分钟确认它能不能干活就够。

参数一屏看:Silero VAD 语音活动检测的硬指标

采样率8000 / 16000 Hz(16000 整数倍自动降采样)
模型体积约 2 MB(JIT 模型)
单帧推理不到 1 ms / 单 CPU 线程
许可证MIT,无注册、无遥测
部署形式PyTorch(JIT)/ ONNX,examples 覆盖 C++、Rust、Go、Java、C#

2 MB 意味着它塞进树莓派、车机、边缘盒子都不占地方;MIT 协议意味着你商用不用回头问任何人。

装完就能切语音段:pip 一条命令 + 三行调用

装:pip install silero-vad一条命令,装好 torch 和 torchaudio,模型文件也随包一起带进来,不用再下载。

from silero_vad import load_silero_vad, read_audio, get_speech_timestamps model = load_silero_vad() # 加载包内自带的 JIT 模型,不联网 wav = read_audio('a.wav') # 读取并按 16 kHz 重采样,返回 1D tensor ts = get_speech_timestamps( wav, model, return_seconds=True, # 返回秒;不传则是采样点 ) print(ts) # [(开始, 结束), ...] 按时间排的语音段

载:load_silero_vad()直接加载 pip 包里预置的模型,省掉下载和 torch.hub 那套。调:read_audio统一重采样到 16 kHz,源文件是 44.1 kHz 也没关系;get_speech_timestamps把连续概率归并成离散语音段。看结果:每段是"起、止"两个坐标,按采样点或秒都能拿。原理一句话:16 kHz 下模型每帧吃 512 个采样点(32 ms),吐一个语音概率,get_speech_timestamps负责把逐帧概率归并成段。想先跑通验证环境,仓库里tests/data/test.wav就是现成的测试音频。

threshold 调到多少才不漏报?

参数默认调大调小一句话场景
threshold0.5误报少,噪声里的假语音段被滤掉,但小声话可能漏召回高,轻声音也能抓到,背景噪声会混进来安静房间用默认;嘈杂环境调小
min_speech_duration_ms250短促应答("嗯""好")被整体丢弃短语音保留,咳嗽、敲桌等杂音也会进结果ASR 前端一般保持 250
min_silence_duration_ms100停顿容忍度更高,说话中间停一下不算断句稍一停顿就切断,片段更碎口语化对话调大,新闻播报保持
speech_pad_ms30每段前后多留空气音,ASR 不易截掉首尾字片段更紧凑,省算力喂给 ASR 前建议保留默认

四个参数之外别急着动。项目还带了 tuning/ 目录,里面有在你自己的标注数据上自动搜索 threshold 的脚本,先拿一段典型音频把默认值跑通,再决定要不要调。

不想用 PyTorch?silero vad onnx 部署直接换条路

  • ONNX Runtimeload_silero_vad(onnx=True)就换到 ONNX 推理路径,官方口径是特定条件下比 PyTorch 快 4-5 倍,适合不想在服务器里装 torch 的场景,装onnxruntime>=1.16.1即可。
  • 其他语言:仓库 examples/ 下有 C++、Rust、Go、Java、C# 的完整示例,选你技术栈对应目录照抄,不用自己研究 ONNX 输入输出。
  • 流式麦克风:包里自带VADIterator,按块喂数据、内部维护状态,examples/pyaudio-streaming/ 有接麦克风的完整 demo。

遇到 X 怎么办

  • 遇到"Supported sampling rates"报错:采样率不在 8000/16000(或 16000 的整数倍)。一行修复:喂模型前重采样,read_audio已经帮你做了,手动拼管道就补这一步。
  • 遇到音频读不进来(No backend / torchaudio 报错):torchaudio 需要 FFmpeg、sox 或 soundfile 三选一做后端。一行修复:pip install soundfile最省事。
  • 遇到 CPU 推理莫名变慢:torch 默认开多核,小模型上反而互相抢。一行修复:torch.set_num_threads(1),或者干脆切 ONNX Runtime 路径。

核心用法就三句话:load_silero_vad加载、read_audio读入、get_speech_timestamps切段。建议先拿tests/data/test.wav跑通验证环境,然后去 examples/pyaudio-streaming/ 抄一个流式 demo,接上麦克风,10 分钟内你会对 Silero VAD 语音活动检测在实时场景里的表现有数。

【免费下载链接】silero-vadSilero VAD: pre-trained enterprise-grade Voice Activity Detector项目地址: https://gitcode.com/GitHub_Trending/si/silero-vad

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询