外语视频翻译字幕:Whisper 打轴 + Gemini 翻译
面向「先对齐时间轴、再翻成目标语言」的个人工作流说明;工具可替换,核心是时间信息与文本解耦。
思路
- 打轴(时间轴):用 Whisper 从音轨得到「每句/每段的起止时间 + 原文转写」,输出带时间戳的字幕格式(常见为 SRT、VTT)。
- 翻译:把已分段的文本交给 Gemini 译成目标语言,保留原时间码,只替换字幕正文;必要时人工微调断句与长度。
这样 Whisper 负责「听清 + 对齐」,Gemini 负责「语义与用语」,比「整段音频直出双语」更易校对和压制。
推荐流程(概要)
| 步骤 | 做什么 | 产出 |
|---|---|---|
| 1 | 从视频提取音轨(如 ffmpeg → WAV/MP3) |
单一音频文件 |
| 2 | Whisper 转写并导出字幕 | *.srt / *.vtt(含时间轴) |
| 3 | 解析字幕为「序号 + 起止时间 + 原文」 | 结构化列表或中间 JSON |
| 4 | 按段调用 Gemini 翻译(可批量、附上下文) | 各段译文 |
| 5 | 写回同一时间码,生成新字幕文件 | 目标语言 *.srt / *.vtt |
| 6 | 播放器或剪辑软件里叠字幕、或烧录 | 成品 |
Whisper 侧要点
- 模型:
small/medium/large-v3等,越大越准、越慢;口语、噪声大时优先大一点或先降噪。 - 语言:指定
--language可减少误识别(尤其多语混说时)。 - 时间粒度:一般用句级/段级即可;需要卡拉 OK 式逐字再开 word-level。
- 实现形态:
openai-whisperCLI、faster-whisper(省显存)、whisper.cpp(本地 CPU/GPU)等,任选其一能稳定导出 SRT/VTT 即可。
Gemini 侧要点
- 输入:每段只给「原文 + 可选上一段译文」作连贯参考,避免一次塞整部电影导致截断。
- 输出约束:在提示词中要求「只输出译文、保持段数与顺序与原文一一对应」,减少模型合并或拆段导致与时间轴错位。
- 后处理:检查过长译文(单行超出安全字符数可自动拆行或改短句),专有名词可维护小表做统一替换。
常见问题
- 时间轴漂移:多半是原视频变速或 Whisper 分段过粗;可缩短
segment相关参数或后期在字幕编辑器里微调。 - 人名与术语:在 Gemini 提示里附「术语表」或「不要翻译的专名列表」。
- 成本与隐私:长视频可分批翻译;敏感内容优先本地模型或离线策略。