用途:在 Stage 03 由 elevenlabs-narration 生成 mp3 后立即使用,将音频转录为带词级时间戳的结果,并按脚本中的关键短语定位每个节拍的起始时间,供 Stage 04 读取 beat-timings.md 填充 timing.ts 并重新设定各场景的时间常量。
主要能力:输出 transcript.json(Whisper 的完整输出,含词级时间戳)和 beat-timings.md(每个节拍边界与关键子标注的绝对时间戳)。逐词搜索每个节拍的开场短语(跨连续 N 个词的大小写不敏感子串匹配)记录绝对起始时间,也可选搜索节拍中段的子标注短语。beat-timings.md 为 markdown 表格,含 Beat、Name、Start、End、Sub-callouts 列,最后一拍的结束时间为音频总长,若存在片尾卡可加小幅尾部。
使用方式:需要安装 openai-whisper 的 Python 环境、Stage 03 产出的 mp3 文件路径,以及一份待查找短语列表(来自脚本,每个节拍边界一条)。脚本为 scripts/transcribe.py(转录 mp3 并保存 transcript.json)和 scripts/find-beats.py(读取 transcript.json 与节拍短语列表生成 beat-timings.md),两者需复制到项目根目录并编辑顶部的音频路径与节拍列表。默认配置在 CPU 上运行 medium.en,无需 GPU,现代笔记本上约每分钟音频耗时一分钟。
限制与说明:默认采用 medium.en 是因为 large-v3 在部分 CUDA 驱动组合上出现过段错误(如 RTX 5080 + 驱动 591.86),如 GPU 环境稳定可改用 large-v3 并设 device="cuda",出现段错误则回退到 CPU 的 medium.en。匹配规则参见 rules/phrase-matching.md,CPU 回退说明参见 rules/cpu-fallback.md。其他收费、平台与效果信息暂未提供。