Files
xiaobailing-turn-detection/experiments/silero-vad/README.md
T

26 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Silero VAD 时间轴基线
本机 Apple M4 Mac mini / CPU,独立 Python 3.11 uv 环境;依赖锁见 uv.lock。ONNX Runtime CPU 单线程,不修改 MaAI 和 Smart Turn 环境。环境的实际版本、模型和录音 SHA256、标注文件 SHA256 记入 results/score-timeline.json。
曲线为 `1 - speech_probability`,高分仅表示当前用户声道更可能未发声,不是语义话轮结束概率。不加静音时长阈值、hangover 或服务层超时策略。
输入为韩泰六通原录音的用户左声道(channel 0),原生 8 kHz,int16 / 32768;同时支持 16 kHz。每个完整 32 ms 帧执行一次,使用 4 ms 过去上下文并连续保留循环状态,每通录音开始清零。分数的时间戳是帧末:只有整帧收到后才可用。不重采样,不读取标注转写,不因标注点重置,不补齐末尾残帧,不使用未来音频。
44 个标注点取该时刻之前最后一个完整帧的输出,最多陈旧 <32 ms。原始 speech 分数和可用时刻见 results/checkpoints.csv;不覆盖人工标注或其他模型结果。脚本对每通录音重放前 50 帧,验证短前缀与完整回放一致。
权重使用已安装的 `pipecat-ai==1.12.0` 发行包所带 Silero ONNX,SHA256 为 `597d30b3ec076608d059477bb14cfeffdf951bf5cae370d38f65d33bbfe82004`;发行包未标明 Silero 上游版本,故按权重哈希识别,不猜测版本。状态接口参考 [Silero 官方实现](https://github.com/snakers4/silero-vad/blob/master/src/silero_vad/utils_vad.py)。权重不加入 Git。
从项目根目录恢复及运行:
```bash
cd experiments/silero-vad
uv sync --locked
# 将上述 SHA256 的 Silero ONNX 放入 models/silero_vad.onnx。
# 本项目已有 Smart Turn 环境时,可从该固定发行包复制:
mkdir -p models
cp ../smart-turn-v3.2/.venv/lib/python3.11/site-packages/pipecat/audio/vad/data/silero_vad.onnx models/silero_vad.onnx
uv run --locked python export_timeline.py
```
网页读取随项目提交的 results/score-timeline.json 即可显示,无需在网页进程加载模型。修改录音或判断点后需重新生成;接口会校验录音 SHA256。