# Whisper 长音频分块转录：切片清单、时间偏移与边界核对

Whisper 长音频分块转录通过独立输入、具体脚本和逐项回听完成。本页附 CPU tiny/int8 真实 ASR 结果，保留误识别，人工原文单独保存。

## 1. 读取长录音实际时长

素材约数十秒，用六段原创短句模拟分块流程，不能把它说成数小时会议已实测。下载 chunks.json，逐行查看 start/end 与原音覆盖范围。

## 2. 按固定边界切片并记录 offset

运行 chunks.py，用 15 秒小块演示。每个切片保存源 hash、chunk_id、offset 和 frames；本例无重叠，实际讲话跨边界时可调整到停顿位置，不能只机械切割后宣称无漏字。

## 3. 逐块识别与即时落盘

每块独立输出 JSON，读取生成器后才原子保存。执行 run.py 或 chunk-run.py，模型不需要每块重新下载；保留每块失败状态以便下一页续跑。

```sh
python chunks.py input.wav --seconds 15
python chunk-run.py chunks.json
python check.py
```

## 4. 合并时加回绝对时间

合并函数把每段 start/end 加 chunk.offset，并按源录音位置排序。图中展示真实已切片音频的偏移清单；通过后生成 combined.srt。

## 5. 回听每个切片边界前后

对每个边界前后一秒回听，标记半个单词、重复和空白。没有 overlap 的本例可能切断词，校验结构通过仍不证明文本完整；出现问题只重切对应区间。

## 6. 保存覆盖报告与机器稿

check.py 验证切片连续覆盖、不越界，机器稿 JSON/SRT 时间一致。保留 chunk 文件和合并记录，放大到真实长音频前先测试内存与处理时长。

## 7. 下载材料、检查负例与继续操作

解压素材包后先运行 python check.py，再运行 python check.py --self-test。前者读取真实 WAV / JSON / SRT 与源 hash；后者拒绝损坏 WAV、倒置时间、越界时间和缺失词时间。文件通过不代表文字、情绪或说话人判定已通过。

## 来源与范围

见 PROVENANCE.md。WhisperX/CosyVoice 推理本次未执行，系统音频为原创练习输入。

- https://github.com/SYSTRAN/faster-whisper
- https://github.com/SYSTRAN/faster-whisper/blob/master/faster_whisper/transcribe.py
- https://huggingface.co/Systran/faster-whisper-tiny
