# WhisperX 强制对齐教程：已核对逐字稿生成词级时间

WhisperX 强制对齐教程通过独立输入、具体脚本和逐项回听完成。本页准备了真实音频输入与官方接口对应脚本，WhisperX/CosyVoice 模型本次未执行。

## 1. 先核对逐字稿，不拿时间轴修错字

下载人工已知 expected.txt 和真实 faster-whisper 初稿 asr-reference.json。两者分别标注来源；WhisperX 强制对齐假定给定文字对应声音，它不能把错误逐字稿自动修正确。

## 2. 准备独立 WhisperX 环境

按官方仓库在单独环境安装 whisperx，先记录软件、torch 和模型版本。本机本次没有安装运行 WhisperX 对齐模型；截图展示原始音频和待运行参数，未伪装成成功输出。

## 3. 选择匹配原语种的对齐模型

英文练习用 load_align_model(language_code="en",device="cpu")；中文需对应 zh 模型和其资源条件。没有默认模型的语言应明确指定合适模型，不能把英文对齐器套到所有语言。

```sh
ffmpeg -version
python -m venv .venv-whisperx
.venv-whisperx/bin/pip install whisperx
.venv-whisperx/bin/python align.py
python check.py --result aligned.json
```

## 4. 给出真实片段范围再执行 align

align.py 从 WAV 读取时长，把核对文字放在合法范围内并调用 whisperx.align。输出另存 aligned.json，不覆盖 ASR 初稿；保存原文字与来源。

## 5. 检查没有时间的词与数字

align 输出可能缺 start/end，例如词不在模型字典或对齐失败。本页检查脚本拒绝把缺失值当零秒，人工回听后在 review.csv 标出未对齐项。

## 6. 下载对齐任务包并验证实际输出

先用教材 expected-schema.json 了解结构，它是人工结构样例。用户完成模型运行后，将真正 aligned.json 传给 check.py --result，校验边界后再接字幕渲染。

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

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


模型推理本次未执行。输入音频来源见 PROVENANCE.md。

官方来源：
- https://github.com/m-bain/whisperX
- https://github.com/m-bain/whisperX/blob/main/whisperx/alignment.py
