Files

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 官方实现。权重不加入 Git。

从项目根目录恢复及运行:

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。