v2.2.0
2.2.0
默认分段策略改为逐 VAD 人声窗口转录,根治 Whisper 前导静音漂移。
默认:逐 VAD 人声窗口
用 Silero VAD 探出一个个「话语级人声窗口」,只转人声窗口、丢弃窗口间静音,每个窗口以其真实起点做偏移锚点。时间戳锚定真实人声边界——实测人声 23.5s 才开始时,首条字幕正确落在 23.4s,而非旧版错标的 00:00:00。
⚠️ 唱歌延音会丢字幕:Silero VAD 按「说话」训练,对唱歌的持续长元音系统性漏判(不判为语音)→ 那段不建窗口、字幕整段丢失。实测调低--vad-threshold也救不回。歌枠 / 含大量唱歌请用--full-transcribe。
--full-transcribe:整段连续转录(保留旧路径)
按非语音间隙把长音频切成大段、整段连续喂给 kotoba(段内含静音也一起转)。不靠 VAD 决定「转不转」,故唱歌延音也能识别出歌词、不丢字幕。代价:段首前导静音可能让首句时间戳偏早。
# 默认(纯说话场次 / 直播总结,对齐最准)
uv run kits subtitle -i live.mp3
# 歌枠 / 含唱歌(不丢唱歌字幕)
uv run kits subtitle -i live.mp3 --full-transcribe兼容性
无移除已发布 CLI 参数,旧行为经 --full-transcribe 完全可达、旧路径代码保留。按 SemVer 为 minor(2.1.0 → 2.2.0)。
验证
全量测试 185 passed,ruff 干净,uv lock --check 通过。真实音频 A/B 对比、threshold 扫描、延音丢字幕诊断均本地实测确认。
完整改动见 v2.1.0...v2.2.0