书译
书译

如何在不更改时间戳的情况下翻译 SRT 文件

在锁定字幕编号和时间码的前提下翻译字幕文本,并在交付前验证顺序、编码和播放效果。

BookTranslator

BookTranslator Team

13 min read

快速回答:翻译字幕文本,锁定编号和时间码

SRT 文件是一种带时间信息的数据文件,不是附带装饰性时间戳的文字稿。只翻译字幕文本。保留每个字幕编号、时间戳、空白分隔行以及受支持的格式标签,然后在观看视频之前,对比源文件与目标文件的字幕结构。

如果你想使用能够识别文件结构的工作流,请将原始文件上传到 SRT Translator,而不是把字幕复制到一个无结构的文本框里。识别文件结构可以降低结构性风险,但你仍然应该根据源文件和视频验证输出结果。

这里有一条不那么直观的规则:保留时间码是必要条件,但并不充分。目标字幕即使保留了完全相同的时间戳,仍然可能失败,因为译文句子过长、来不及阅读、断行位置错误,或者提到了一个尚未出场的说话人。

SRT 文件的结构

一个典型的字幕块包含四个部分:

17
00:00:41,500 --> 00:00:44,200
<i>MAYA:</i> The total is €1,249.50.

  1. 17 是字幕编号。
  2. 00:00:41,500 是开始时间。
  3. 00:00:44,200 是结束时间。
  4. 剩余的一行或多行是显示的文本。

SRT 通常在秒和毫秒之间使用逗号,并在开始时间和结束时间之间使用 -->。不同字幕块之间用空白行分隔。有些播放器可以容忍变体;但可靠的翻译工作流不应依赖这种容忍。

下载这个合成的 SRT 翻译压力测试。其中包含对话、斜体、说话人标签、日期、货币、CJK 文本、阿拉伯文、西里尔文字以及带重音的拉丁字符。内容是虚构的,因此可以安全地用于解析器和编码测试。

为什么复制粘贴式翻译会破坏 SRT 文件

通用文本工作流可能会把结构误当成内容。常见失败包括:

  • 翻译或重新编号字幕 ID;
  • 更改时间戳分隔符或小数逗号;
  • 把两个短字幕块合并成一个段落;
  • 删除重复的或看起来为空的字幕块;
  • 在文件外层返回 Markdown 代码围栏;
  • 把说话人标签改写成普通叙述;
  • 删除 <i> 标签或输出不受支持的富文本标记;
  • 用自动换行的文本替换空白字幕分隔行。

即使翻译在语言层面很好,只要播放器无法再解析它,这份文件就不可用。

分步骤翻译工作流

1. 保留原始文件

保持源 SRT 文件不变。使用带语言标识的副本进行处理,例如 interview.en.srtinterview.es.srt

2. 确认源文件可解析

在翻译之前,先在字幕编辑器或播放器中打开源文件。如果源文件本身已经存在时间码重叠、缺少分隔符,或者视频偏移错误,先修复这些问题或记录这些缺陷。

3. 检测编码

除非交付规范明确要求其他编码,否则多语言输出应使用 UTF-8。YouTube 的转录文件指南指出,非英文转录文件应采用 UTF-8 编码,这也是国际字幕文件合理的基线选择(YouTube 帮助).

4. 冻结结构字段

将字幕编号和时间戳行视为受保护内容。如果工具无法锁定它们,就分成小批量翻译,并在每一批之后进行验证。

5. 结合相邻上下文翻译完整字幕块

翻译显示文本,但要提供前一个和后一个字幕块作为上下文。字幕经常会把同一句话拆分到多个字幕块中;孤立翻译会导致时态、代词或词序前后不一致。

6. 按目标语言重新分段

除非你被授权重新校时,否则保留字幕时间不变,但可以调整字幕块内部目标文本的换行位置。应在自然短语边界处断行,而不是在冠词、介词、姓名或紧密连接的动词短语之后断开。

7. 运行结构验证

对比源文件和目标文件的字幕数量、ID、时间戳、顺序、标签以及空白分隔行。在语言审核之前完成这一步,这样审核人员就不会把时间浪费在一个根本无法加载的文件上。

8. 完整观看目标字幕轨

自动化检查无法判断字幕是否在说话人开口之前出现、是否遮挡了屏幕上的关键信息,或者在快速对话中是否仍然可读。

保留换行、斜体和说话人标签

当目标语言句法发生变化时,不要机械地保留源文件中的换行。应保留字幕块,然后选择在目标语言中可读的换行方式。

例如,下面这种源文本断行就很差:

We approved the proposal
after the final review.

如果目标语言把条件成分放在前面,自然的断行位置也可能随之变化。正确目标是语义分组,而不是逐像素匹配源文件的换行。

只有当目标格式支持斜体并且样式指南要求使用时,才保留有意义的斜体。说话人标签要始终如一地保留。YouTube 建议在转录工作流中使用 [music] 这类提示来表示声音,并使用 >> 来标识说话人(YouTube 帮助);

验证字幕数量和时间戳顺序

使用下面这张不变式表:

检查项预期结果是否阻断?
字幕数量源文件与目标文件数量一致是,除非经过批准的重新校时改变了数量
字幕 ID相同且唯一的 ID,顺序一致
时间戳文本在锁定时间的情况下逐字节完全一致
起始早于结束每个字幕块都有正时长
顺序次序没有意外的倒序跳转
标签成对平衡且受支持通常是
可见文本每个源字幕块都有一个有意生成的目标字幕块

不要把文件大小当作代理指标。翻译扩展会让目标文件变大;字节数相近并不能证明任何事情。

将字幕与视频对照检查

以正常播放速度审阅,并包含以下这些困难场景:

  • 最快的对话;
  • 两个说话人快速轮流发言;
  • 姓名、日期、货币和计量单位;
  • 跨越镜头切换的对话;
  • 与路牌或下三分之一字幕竞争注意力的文本;
  • 歌曲、音效和画外音;
  • 第一条和最后一条字幕;
  • 至少包含每一种受支持格式标签的一个片段。

结构验证完成后,使用 字幕翻译 QA 清单 来评估可读性和分段效果。

常见 SRT 错误及修复方法

症状可能原因修复方法
播放器拒绝加载文件时间戳语法或字幕分隔符损坏将第一个出错的字幕块与源文件对比
字幕漂移但时间码一致源字幕轨错误或视频版本被编辑过将源文件与精确的视频版本重新对齐
文本显示为方框或乱码编码或字体支持问题保存为 UTF-8,并测试播放环境
句子显示在错误的说话人名下字幕块被合并或脱离上下文翻译恢复字幕块边界并检查相邻字幕块
双行字幕变成大段文字墙目标语言文本膨胀精简、改写,或获得重新校时许可
斜体状态延续到后续字幕块标签不平衡按字幕块验证标签,并在本地闭合

什么时候不该保留每一个时间戳

当源时间轴本身有缺陷、译入语言需要明显不同的分段方式,或者视频本身已经重新剪辑时,就不要承诺保留时间戳。在这些情况下,应保留源文件作为审计参考,并创建一条明确重新校时过的目标字幕轨。

锁定时间戳是一种翻译约束,不是字幕创作的替代品。

常见问题

我可以只翻译 SRT 文件中的文本吗?

可以。翻译文本行,同时保护字幕编号、时间戳和分隔符。然后验证每个源字幕块仍然对应一个有意生成的目标字幕块。

翻译后的字幕应该保留相同的字幕数量吗?

如果时间被锁定,那么应该相同。数量不同通常强烈表明字幕块被合并、丢失或拆分。专业的重新校时工作流可能会有意更改数量,但这应该被记录下来。

我可以在不更改时间戳的情况下修改换行吗?

可以。换行属于显示文本的一部分,不属于字幕时间。应将它们移动到目标语言中自然的短语边界处。

翻译后的 SRT 文件应该使用什么编码?

对于多语言文本,UTF-8 是最安全的默认选择。只有在有文档说明的交付系统明确要求时,才使用传统编码。

为什么我翻译后的 SRT 能加载,但看起来仍然不对?

解析成功和观看正确是两种不同的测试。文件可能在结构上有效,但其中的字幕块可能过长、分段糟糕、与当前视频版本的时间不匹配,或者不受播放器字体栈支持。

相关文章