article_image

本文并非鼓吹放着现成工具不用,只是尝试提供另一种翻译思路,而这种低技术的方案不会因为任何一家服务的关闭而失效。

前几周,Hum 发了《如何把英文字幕翻译为双语对照字幕》一文。鉴于 UNTAG 长期推行低技术主义,我还以为 Hum 发现了某种奇技淫巧,然而不是。不过此行仍然不虚,至少我捡到一个相当顺畅的现成翻译工具。

不过,若要长期使用,翻译工具或许还是掌握在自己手里为好。我本人无暇看娱乐视频,主要看纪录片和采访视频——这些可以视为“史料”——所涉的视频将连同字幕文件一起保存到数据库。在这样的环境下。双语字幕就不单单是“看个剧情”的辅助轮,而是理解、检索乃至引用的重要工具。1如果是一些对话为主的访谈节目,字幕价值甚至超过视频本身。从 Jobs 这样的商业领袖到福柯这般的哲学家均有不少采访视频,但流传后世者仍然以文字稿居多(尽管我也推荐一睹福柯的风采)。

Alt text
在视频中调用对照翻译后的字幕

诚然,即便最终目的是下载双语字幕、获得独立的文件,而非单纯在 YouTube 上在线显示,也有现成服务可供选择,例如提供双语字幕下载的 Chrome 插件 YouTube™ dual subtitles 和在线服务 SaveSubs。但正如前文所言,保存双语字幕是一种基础设施2——至少对于严肃看视频学习知识的人来说如此——而在线服务常常触及法律红线,例如前面提到的网站就兼营视频下载,说不好哪天就会被 YouTube 干掉。

为此,我梳理了手工制作双语字幕的流程,以留作兜底方案。这套方法适用于任何规整的字幕文件,无论其来自 YouTube 还是人工智能转录。

获得字幕

对于不少人来说,翻译字幕基本就等于翻译 YouTube 上的视频字幕,然而,YouTube 远非一切,且不说并未公开的学术会议和在线语音讨论(有录音录像),不少影视作品也不可能堂而皇之免费挂在网上,而这类作品的双语字幕往往要靠爱好者用爱发电。近年来的字幕质量似乎不错,然而早年却堪称灾难,例如基努·里维斯的 Johnny Mnemonic,拜中文字幕所赐,我基本看了一部改编作品。

获得字幕的方法,基本就是抓取视频网站的资源或自己转录。前者诸位都很熟悉了,中外两大视频重镇——YouTube 和 Bilibili——都滋养了一批字幕网站,文章开头也介绍了一款插件一个服务,它们下载的字幕文件也有多种格式可选,但根本上都是格式规整的纯文本。我一般用 txt 或 srt,字幕格式如下:

序号
开始时间 --> 结束时间
字幕
Alt text
直接下载的字幕一般只有一种语言

至于 Bilibili ,既然本文在讨论翻译,那么就不必考虑中文视频网站了吧。

其余来源的视频,则可能要自己转录字幕,好在也不难,OpenAI 的 Whisper 养活了一堆服务和本地软件,我本人在使用 MacWhisper,大同小异的工具比比皆是,挑一个顺眼的便好。通常来说,只要能够输出字幕,格式一般也与直接下载的类似。

由于未来会反复观看、引用,我习惯保留字幕文件,并和视频收藏于一处。在不少视频播放器若检测到视频目录中有同名字幕文件,就会自动加载,因而我将两类文件摆在一起。

Alt text
我一般同时储存视频和字幕

制作对照翻译的双语字幕

接下来是重头戏:手工制作双语字幕。目标格式非常简单,只是加上一行:

序号
开始时间 --> 结束时间
字幕原文
字幕译文

多数播放器会自动识别多行字幕文字,理论上可以继续追加(就像早年的国粤英三语盗版电影一样)。本质上,本文方案还是基于 HTML 文本的对照翻译,以如下步骤为轴:

  1. 将字幕文件后缀名修改为 html
  2. 以正则表达式预先处理 HTML 文件,以便浏览器能正常处理。
  3. 用浏览器打开并对照翻译 HTML 文件,方法请参《一种几乎永不失效的网页中英对照翻译方案》
  4. 直接全选翻译后的文本。
  5. 换一个文本编辑器打开 HTML 字幕文件,将上一步获得的文本替换进去,最后将文件后缀名改回来。3
Alt text
借助对照翻译获得对照翻译后的字幕

易言之,上述方案乃将字幕文件视作网页,借浏览器的翻译功能一口气处理,最终再转回字幕文本文件。其中,用正则表达式处理字幕一步稍显复杂,单独解释。此步骤其实是在每行文本前后套上 HTML 标签,以便浏览器将字幕文件识别为网页,进而调用其自带翻译工具——惟需注意,我所用浏览器 Safari 非常朴素,不排除其他浏览器可以直接翻译文本文件,那或许可略过正则环节。4

首先是 (\d+)\n(\d\d.*\d\d\d)\n(.*)。这段表达式用于匹配序号、时间加字幕正文的整段文本。注意,其中的 \n 意为换行符号,不过不同服务或软件生成的字幕文件可能有差异,不一定均以 \n 为界,还可能是 \r\n\r\r\n,匹配替换不成之时,可尝试其他换行格式。

接着是 <span>$1</span>\n<br>\n<span>$2</span>\n<p>$3</p>。这一表达式以上一段获取的文本为原料,在各行前后包上对应的 HTML 标签。仅有字幕正文两段是段落标签 <p>,而其他不需要翻译的文本则是 <span>

Alt text
预先处理待翻译的字幕文件

如无意外,Safari 自带的翻译功能即可对照翻译字幕文件,制成中英双语的字幕。

小结

《一种几乎永不失效的网页中英对照翻译方案》,我接连发布了《用 Safari 翻译外文电子书和文档》《将外文电子书翻译成双语对照版本,并在任何设备上阅读》《在 DEVONthink 中对照翻译外文 Newsletter》《一种长寿可靠的网页中英分屏翻译方案》等文章。本文也是浏览器翻译思路的延伸。5

以上基于浏览器的翻译方案,与调用 API 的成品软件有所不同。在技术上,浏览器方案乃对照与翻译解耦,Safari、Chrome、Firefox 和 Edge 等一视同仁。更重要的是,由于是翻译整个文档而非逐行处理,你根本不需要考虑如何对接新翻译引擎:只要能够翻译网页上的文字,未来出现的任何一款浏览器都可以用于对照翻译,无论目标是网页、电子书、电子邮件或者视频字幕。

种种技术细节,背后实则是低技术、低耦合、低依赖的意识形态,恰恰因为翻译如现代人的义肢般重要,所以要尝试自己掌握工具。假如一个服务器宕机就足够让一大批熬夜写论文的人哭天抢地,那不仅仅是技术问题,而是非常坏的结构性问题

文章开头展示的视频是 Jobs 的访谈,那句著名的“电脑是心灵的自行车”就出自此处,不妨尝试一下为其自制双语字幕。当然,视频本身也是值得看的。


  1. 具体言之:双语对照,显示译文的同时不耽误保留原文,此其一;视频几乎不可检索,但是可以检索字幕,进而定位到对应的时间节点,此其二;需引用时,直接复制字幕,此其三。另外,纯文本处理起来更灵活,比如丢给人工智能,令其概括、解释或据以提出启发性的问题。
  2. 不仅仅是中英,还有其他小语种和中文的对照字幕。
  3. 一般是改回 txtsrt,端视您所用播放器支持何种字幕文件。
  4. 正则表达式确实晦涩,若无必要,我也不愿意用它,但在批量处理文本时,估计别无高明。
  5. 事实上,我还做了比较粗糙的漫画翻译、古籍翻译以及乐谱翻译工具,不过毕竟精力有限,而(我的)现实需求又不足以催产创意,权留在硬盘上当作业余玩具。

author_avatar

Lawyer, macOS/iOS Automation Amateur