# faster-whisper 本地转录教程：CPU int8 从录音生成逐字稿

faster-whisper 本地转录教程通过独立输入、具体脚本和逐项回听完成。本页附 CPU tiny/int8 真实 ASR 结果，保留误识别，人工原文单独保存。

## 1. 建立独立环境与输入副本

下载 input.wav 与 expected.txt，先完整播放。练习音频由 macOS Samantha 朗读本站原创英文文字，16 kHz 单声道；它是 ASR 输入，不是真人访谈或 CosyVoice 输出。在新目录创建 Python 3.11 venv，安装 faster-whisper==1.2.1，记录 pip freeze。

## 2. 读取音频长度和采样率

运行 check.py 查看真实帧数、声道、采样率与 SHA-256；不得只根据文件后缀判断格式。自己的 M4A/MP3 可以交给库内 PyAV 解码，本页练习用无压缩 WAV 减少变量。

## 3. 选 tiny 模型与 CPU int8

先用 tiny 在 CPU 做小样，首轮会从模型仓库下载权重。已下载权重时可把 --model 改成本地目录；别把较小模型的小样效果当作复杂中文会议的准确率承诺。

```sh
python -m venv .venv
.venv/bin/pip install faster-whisper==1.2.1
.venv/bin/python run.py input.wav --out actual.json --language en --words
python check.py
```

## 4. 迭代 segments 才会完成转录

执行 run.py，保留 language、duration、elapsedSeconds 和原始 segments。segments 是生成器，必须遍历或 list；只有调用 transcribe 而没有读取 segments，不代表任务已完成。

## 5. 将实测逐字稿与预期逐句对照

本页 actual.json / actual.srt 是真实 tiny/int8 运行输出。原文中的数字和专有名词仍需回听；修改文本时另存 reviewed.txt，不覆盖 actual.json。预期稿是朗读输入，不能当成识别输出。

## 6. 交付原音、机器稿和修订稿

运行 check.py，核对 JSON 与 SRT 时间/文字一致、尾段不越界。保存实际环境、完整命令、输入 hash；再把通过回听的字幕交给已有 Remotion 教程。

## 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://huggingface.co/Systran/faster-whisper-tiny
