Subtitles · 实时翻译

字幕译成你的语言,
话还没说完就出来。

Subtitles 会把 Mac 播放的内容写下来。从 1.3 版起,它还能边听边译,在它能识别的十六种语言中任意两种之间互译,就在这台 Mac 上完成,用的是 Apple 自己的翻译功能。翻译时什么都不上传,这件事也只有这样做才值得。

  • 免费用 7 天,不用绑卡,不用注册账号
  • 一次性 $19,包含日后所有更新
  • 14 天内无理由退款
  • 下载:需搭载 Apple silicon、运行 macOS 14.2 或更高版本的 Mac
  • 在 Gumroad 上评分 5.0

一通英语通话,用中文读,在 Mac 上翻译,话还没说完译文就出来了。按住 ⌃,英文就会顶替上来,实时那一行和 ⌥ 调出的那一叠里的每一块都是,直到你松开。

按住 ⇧ 拖动字幕就能挪动它们,和在 app 里一样。

按住 ⌥,最近几个字幕块会重新叠起来。

点一下菜单栏里的 :标有试试的项目在这个演示里都能用。

菜单里的三项

翻译为就在语言选择器下面,默认停在“关闭”。选一个目标语言,从下一句起字幕就以那种语言出现。紧挨着的翻译节奏决定一句话还没说完时你看到什么,而这恰恰就是整个设计难题。

同时显示两种语言在“翻译为”里,就在“关闭”下面,它把译文和原文放进同一个字幕块:译文作为字幕,原文在下面,字更小。在“声音来源”里选麦克风,同一台 Mac 前的两个人就可以用两种语言对话,各自用自己的语言读对方的话;有人说的恰好是目标语言时,两种语言就自动对调。

第三项朗读翻译会在每句话定下来后把译文读出来,用的是 macOS 为该语言装好的最好的声音。什么都不跳过,也不赶:说话人太快、声音落在后面时,它会在停顿里追上。朗读时,原声音量降到四分之一,读完再恢复,两个声音不会打架。⌥⌘. 可以让它停下,或者把最后一行再读一遍。

旁白运行时它默认打开,而旁白能读出字幕块、按下上面的按钮,所以另一种语言的通话或电影,完全不用读也能跟上。旁白自己的语音永远不会被配上字幕、翻译或调低音量。设成“始终”,没有旁白它也会读给你听。

用麦克风收音、声音从 Mac 自己的扬声器放出来时,它会等到出现停顿再开口;朗读时有人说话,照样会配上字幕:macOS 通话所用的回声消除,会把朗读译文的声音从麦克风听到的声音里去掉。戴着耳机的话,它会立刻朗读。

而且字幕一直在你看得到的地方。需要翻译的通话,往往也是你一边开会一边干活的通话:共享的文档、那份规格、正在争论的设计。译文显示在位于所有窗口之上的浮层里,而不是在那个正在出声的 app 里面,所以切去干活,也不会漏看字幕。

Subtitles 的菜单,“翻译为”“翻译节奏”和“朗读翻译”就在“语言 / 模型”下面
在 macOS 14 上这三项不是变灰,而是根本不出现。

难就难在话还没说完

翻译一句已经说完的话很快:在这台硬件上是 40 到 125 毫秒,和一个人把这句话说完所需的时间相比不值一提。真正的问题是,在那句话说到末尾之前的那几秒里,屏幕上该有什么,而这没有一个对所有人都成立的答案。所以有两种,选择权在你。

先实时,后定稿

最后一秒的语音每次更新都会重译,并以压暗的样子显示,直到稳定下来。压暗的文字还可能改,清晰的已经定了。你读到的是一页基本不动的文字,代价是最新的那几个词看着像临时的,而它们确实是。

始终实时

每次更新都会重译全部内容。没有什么落在说话人后面,也没有什么被压着不出,代价是你已经读过的一行,可能在句子说到那个改变一切的词时,当着你的面被改写。

这两种之下还有一条不可选的规则:翻译的单位是完整的分句,绝不是字幕块。浮层是在文字放不下的地方分页的,而那多半落在句子中间;单独拿去翻译的片段会丢掉词格、丢掉性数一致,或者丢掉说话人还没说到的那个动词。所以翻译的单位和显示的单位是两回事,分页发生在之后,落在已经通顺的文字上。

一块字幕填满翻页时,会从它最后显示过的那个分句重新开始,而不是从溢出去的那个词开始,这样断开的地方还有一行可以重新抓住,而不是硬生生一刀切下。这一点只在字幕块翻得很快时才要紧:一块停留得够久、够你读完的,本来就已经把那一行给过你了。

按住 ⌃,原文就回来了

翻译要拿走的,正是你原本在听的东西。按住 ⌃ 就把它还回来:当前的字幕块和 ⌥ 那一叠会一起切到说话人的语言,你按多久就持续多久。你看的时候翻译仍在下面继续,所以松手回到的是当下的文字,而不是你离开时的那张定格;而且每种语言各有各的历史,这一叠永远不会把两者混在一起。

对正在学这门语言的人来说,这才是用得上的方式:跟丢了就读自己的语言,其余时间什么都不用按。

每一对语言,都不必绕道英语

十六种语言组成 240 个有序组合,而且每一个都能用。这就是这里的翻译是第二道工序、而不是识别器上的一个设置的原因:边转写边翻译的模型是按译入英语、译出英语训练的,法语到德语就得绕道英语,而这些语言里有好几种压根不在它们的清单上。把已经成形的文本交给一个覆盖全部组合的翻译器,代价是几十毫秒,而且谁都不落下。

在自动识别下,源语言取自识别器自己的语言标记,它一两个词就能确定,而不是让翻译器一句一句去猜。

翻译也不出这台 Mac

音频从来没出去过,译好的文字也不会。它走的是 Apple 的 Translation 框架,也就是 macOS 其余部分用的那套设备端翻译,所以这里没有服务器,没有要保管的 API 密钥,也没有要注册的账号。唯一一次动到网络,是第一次使用时 macOS 询问要不要下载某个语言对,这件事它给自己的翻译也照做;此后语言对就在硬盘上,再没有什么要取的了。

读出声来,也还是留在这台 Mac 上:声音是 macOS 已经装好的,朗读时什么都不会发到别处。

翻不翻译,除非你保存一份文字记录,否则都不会记下任何东西。译过的字幕出现在屏幕上,然后就消失了,和没译过的一样,隐私页面之所以短,原因也还是那一个。

依赖它之前,先了解这几点

  • 只有这个功能需要 macOS 15 或更高版本。Apple 的翻译能力是在那里才有的。在 14.2 上,应用照样为它一直以来能处理的一切做字幕,只是那三项不在菜单里,而不是变灰。
  • 它翻的是听到的内容,不是说出口的内容。识别器听错的名字,会被忠实地译成一个错的名字。错误不会在第二道工序里互相抵消;在最看重准确度的场合,把说话的语言定死、而不是留给自动识别,才是真正管用的设置。
  • 凡是有人写好的字幕,都比这个好。有人写过、校过、对过时间轴的翻译每次都赢过机器翻的。这东西是为从来没有过这种翻译的音频准备的:那通电话、那次 huddle、那堂课、那集播客、那段只剩原声轨的视频。
  • 一次只有一个方向。只有一个目标语言,而不是一对,所以一场两种语言的通话会统一译成你的那一种,至于实际说的是什么,用 ⌃ 看。

关于翻译的问题

Subtitles 能在哪些语言之间翻译?
它能做字幕的十六种语言中的任意一种,译到其余十五种中的任意一种:英语、西班牙语、法语、意大利语、葡萄牙语、德语、荷兰语、土耳其语、俄语、阿拉伯语、印地语、日语、韩语、越南语、乌克兰语和普通话。这是 240 个有序组合,而且没有一个在中途绕道英语。
音频会离开我的 Mac 去翻译吗?
不会。音频本来就不出去,文字也一样:翻译走的是 Apple 的 Translation 框架,它在设备上运行。第一次用某个语言对时,macOS 可能会问你要不要下载,就像它给自己的翻译做的那样;此后语言对就在硬盘上。这个 app 还可能发出的请求只有两样:每天一次检查它自己有没有新版本,你可以拒绝;以及拿到授权密钥之后每月一次的密钥核对。
两种节奏有什么区别?
“先实时,后定稿”每次更新都重译最后一秒的语音,并把它压暗直到稳定:清晰的文字已经不再变,压暗的还可能动。“始终实时”每次更新都重译全部内容:不会落在说话人后面,但屏幕上的任何内容都还可能被改写。读起来更安稳的是“先实时,后定稿”,永远不让你落后一句的是“始终实时”。
能同时看到原来的语言吗?
按住 ⌃。当前的字幕块和 ⌥ 那一叠会一起切到说话人的语言,按住多久就持续多久,翻译在下面继续跑,所以松手看到的是当前的文字,而不是你离开时的那张定格。每种语言各有各的历史,所以这一叠永远不会把两者混在一起。
翻译需要哪个版本的 macOS?
macOS 15,因为 Apple 的 Translation 框架是在那里才有的。做字幕本身在 14.2 上照样可用,只是那里的“翻译为”和“翻译节奏”不是变灰,而是根本不在菜单里。
这和流媒体平台上的字幕是一回事吗?
不是。流媒体平台给的是有人写过、校过、对过时间轴的翻译,凡是有的场合,那都比这个好。这东西是为从来没有过这种翻译的音频准备的:一通电话、一次 huddle、一堂课、一集播客、一段只剩原声轨的视频。

十六种语言听进来,译成你的语言。

14 天内无理由退款

免费用 7 天,之后一次性 $19,包含日后所有更新 · macOS 14.2 或更高版本 · Apple silicon
无限量实时字幕,只要这台 Mac 还在你手上。不用买时长,不用注册账号,不用订阅。