尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

2MB 的 Silero VAD,几行代码标出会议录音里的说话区间

2MB 的 Silero VAD,几行代码标出会议录音里的说话区间 2MB 的 Silero VAD几行代码标出会议录音里的说话区间【免费下载链接】silero-vadSilero VAD: pre-trained enterprise-grade Voice Activity Detector项目地址: https://gitcode.com/GitHub_Trending/si/silero-vad做会议录音工具时你需要先知道哪几段有人在说话。Silero VAD 是一个约 2MB 的 VAD 模型语音活动检测判断一段音频里有没有人说话CPU 单线程处理 30ms 音频帧不到 1ms几行代码就能跑出说话区间。Silero VAD 能替你判断什么Silero VAD 是一个预训练的生产级语音活动检测组件输入单通道音频输出哪里有人说话。它不识别内容只回答一个二元问题这段声音是不是人声。8kHz 电话音频和 16kHz 常规录音都支持训练语料覆盖 6000 多种语言MIT 协议不带遥测、不需要任何密钥。模型文件直接打进 Python 包里JIT 版本约 2MB。src/silero_vad/model.py 负责模型加载src/silero_vad/utils_vad.py 封装了推理与后处理examples/下还有 C、Java、Go、Rust 的社区示例。数据流音频进 → 模型判 → 事件出整个流程可以写成三行文字音频帧 → 模型推理输出语音概率 → 阈值后处理 → 语音/非语音事件ONNX 模型 3 行代码加载默认走 PyTorch JIT传onnxTrue改用 ONNX Runtime后者不依赖 PyTorch。这段代码加载模型from silero_vad import load_silero_vad model load_silero_vad(onnxTrue) # ONNX Runtime 推理跑完你得到一个模型对象后面所有帧都交给它。32ms 一帧的推理细节模型按固定帧长工作16kHz 下一帧 512 个采样点约 32ms8kHz 下 256 个采样点同样约 32ms。每帧输出一个 0~1 的语音概率模型内部还保留上一帧的部分采样和隐藏状态让帧与帧之间连续。采样率或批次大小变化时状态会自动重置不用你手动管。把帧概率变成起止时间get_speech_timestamps把逐帧概率聚合成时间段触发/恢复用独立阈值并限制最短语音与最短静音。这段代码把 wav 文件变成时间戳from silero_vad import read_audio, get_speech_timestamps wav read_audio(tests/data/test.wav, sampling_rate16000) ts get_speech_timestamps(wav, model, return_secondsTrue)跑完你得到一个列表每项带start和end单位秒可以直接拿去做剪辑或对齐。️ 两个场景树莓派离线唤醒 vs 呼叫中心实时质检维度树莓派离线唤醒呼叫中心实时质检音频输入本地 16kHz 录音8kHz 电话流/长录音采样率160008000电话信道常见值运行时选择JIT 或 ONNX单线程ONNX多线程或批量处理方式逐帧流式逐帧 批量切片关注指标单帧延迟须低于 32ms 才实时吞吐与内存同一个模型文件就能切场景区别只在采样率参数和推理方式Silero VAD 原生支持 8000 与 16000 两种采样率代码里传入对应的sr即可。树莓派上模型加载一次、常驻本地进程呼叫中心则把 VAD 包成独立检测服务通话录音切片后批量调用把语音区间输出给质检系统。最短上手路径克隆仓库git clone https://gitcode.com/GitHub_Trending/si/silero-vad装依赖pip install silero-vad源码运行则加装torchaudio、onnxruntimePython 3.8用仓库自带tests/data/test.wav验证环境跑最小示例拿到第一个时间戳换examples/下的流式示例接麦克风或 WebSocket关键代码就是这几行from silero_vad import load_silero_vad, read_audio, get_speech_timestamps model load_silero_vad(onnxTrue) wav read_audio(tests/data/test.wav, sampling_rate16000) ts get_speech_timestamps(wav, model, return_secondsTrue) print(ts) # [{start: 1.2, end: 3.5}, ...]跑完你会看到一条条start/end区间会议里安静的那几秒从此有了标记。Silero VAD 只负责哪里有人说话不回答说了什么唤醒词识别、说话人分离和质检打分都得在它上面自己加。建议你先拿仓库里的tests/data/test.wav跑通最小示例再决定用 JIT 还是 ONNX 运行时接进你的项目。【免费下载链接】silero-vadSilero VAD: pre-trained enterprise-grade Voice Activity Detector项目地址: https://gitcode.com/GitHub_Trending/si/silero-vad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表