v2.0.1
2.0.1
修复 2.0.0 引入的 VAD 长音频回归,并打磨 VAD 扫描体验。
修复
- VAD 长音频 GPU 卡死:2.0.0 的 VAD 跟随转录设备上了 CUDA,但 silero VAD 是 LSTM,隐状态在时间步上串行依赖(窗口 N 必须等 N-1 的 hidden state),架构上无法沿时间轴并行 / 批处理,放 GPU 反被同步 + kernel launch 开销拖垮、比 CPU 慢几个数量级。改为固定 CPU(实测 ~119x 实时,4 小时音频约 2 分钟扫完;silero 官方亦建议跑 CPU)。
- 日志错序 + 看似卡死:VAD 的加载与全程扫描原在转录生成器内部惰性执行,转录进度条已显示 0% 才轮到 VAD 跑。拆成
plan_audio()(探时长 + VAD 探间隙 + 规划,在转录进度条创建之前跑完)+transcribe_segments()(拿预规划的段逐段转录)。
改进
- VAD 扫描改用 0~100% 进度条(替代逐行
VAD 扫描 N%),与转录进度条顺序出现、互不冲突;修了进度计数 off-by-one(结尾 101% → 正好 100%)。 - 断句逻辑优化。
说明
无对外 CLI / API 变更,按 SemVer 为 patch(2.0.0 → 2.0.1)。
验证
- 全量测试 175 passed,ruff 干净,
uv lock --check通过。 - VAD 端到端冒烟:CPU 路径 6s 扫完 720s 音频、进度条正好止于 100%、规划阶段先于转录阶段。
完整改动见 v2.0.0...v2.0.1