面向「先对齐时间轴、再翻成目标语言」的个人工作流说明;工具可替换,核心是时间信息与文本解耦

思路

  1. 打轴(时间轴):用 Whisper 从音轨得到「每句/每段的起止时间 + 原文转写」,输出带时间戳的字幕格式(常见为 SRT、VTT)。
  2. 翻译:把已分段的文本交给 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-whisper CLI、faster-whisper(省显存)、whisper.cpp(本地 CPU/GPU)等,任选其一能稳定导出 SRT/VTT 即可。

Gemini 侧要点

  • 输入:每段只给「原文 + 可选上一段译文」作连贯参考,避免一次塞整部电影导致截断。
  • 输出约束:在提示词中要求「只输出译文、保持段数与顺序与原文一一对应」,减少模型合并或拆段导致与时间轴错位。
  • 后处理:检查过长译文(单行超出安全字符数可自动拆行或改短句),专有名词可维护小表做统一替换。

常见问题

  • 时间轴漂移:多半是原视频变速或 Whisper 分段过粗;可缩短 segment 相关参数或后期在字幕编辑器里微调。
  • 人名与术语:在 Gemini 提示里附「术语表」或「不要翻译的专名列表」。
  • 成本与隐私:长视频可分批翻译;敏感内容优先本地模型或离线策略。

相关链接