「实时」排除掉了什么
关于在 Mac 上做转写,写出来的东西大多是在讲文件:你丢进去一段录音,等一会儿,拿到一份文字稿或者一条字幕轨。那条路比这个页面上的任何东西都准,因为一个能看到整句、甚至看到下一句的模型,永远赢过一个一个词往下定的模型。
它在会议正在进行时也同样帮不上忙。实时字幕拿那份准确率,换的是开会时唯一要紧的一件事:字要在还来得及读的时候到。如果你手上是一段录音,时间也充裕,那就到此为止,拿去跑文件转写,结果会更好。下面写的一切,都是为「声音正在发生」这种情况准备的。
六条路,最便宜的在前
- app 自带的字幕。免费。Zoom、Teams、Google Meet、Slack huddle 和 YouTube 都自带字幕,一分钱不要,覆盖的语言还比 macOS 多。它们到自己窗口的边缘就停住,其中几个需要主持人或管理员先允许,而且谁在中途甩过来一个视频,它们一个都帮不上。但还是先试这一条:够用的时候,它是免费的。
- Apple 的实时字幕。免费,系统自带。在 Apple silicon 的 Mac 上,系统设置 ▸ 辅助功能 ▸ 实时字幕。它是跨 app 配字幕,而不是只管一个 app,这个形态是对的。Apple 自己的文档写着:并非所有语言、国家或地区都可用。而且字幕落在一个窗口里,窗口该有的毛病它都有。完整的对比另有一页。
- 浏览器自带的实时字幕。免费,只管一个浏览器。Chrome 和基于 Chromium 的浏览器可以给标签页里播放的音频配字幕,在本机完成,开关就在它们自己的设置里。给标签页里的视频用是真的好,但对这个浏览器之外的一切都无能为力。
- 云端字幕服务。订阅制。这一类能覆盖本地模型够不到的语言,也是唯一会附上说话人标注和事后可搜索转写文本的一类。代价是音频要离开你的 Mac 才到得了那里,而对很多上班的人来说,这句话说完,讨论就结束了,它不是什么细节。
- 你自己驱动的本地语音模型。免费,但要动手。Whisper 和它的后代都能在 Mac 上跑,也有做得不错的开源前端。但要让它实时出字幕、覆盖每一个 app、还以一层你干活时能顺手读的浮层呈现,那就是一个项目,不是下载一下就完事。下面讲的音频管路,正是其中大半的难处。
- 实时字幕 app。一次性付费。也就是这个:一层位于所有窗口之上的浮层,喂给它的是 Mac 正在播放的声音,转写在 Neural Engine 上完成,十六种语言,不往硬盘上写任何东西。只有上面那四个免费答案都走不通了才值得,在那之前不值得。
Mac 是怎么捕获自己发出的声音的
麦克风好办:macOS 一直有这个 API,申请权限也是家常便饭。难的是系统音频,因为在这台机器历史的绝大部分时间里,一个 app 根本没有正经办法听到另一个 app 在播什么。这件事有三个年代,而一个工具属于哪个年代,基本上就说明了你需要知道的大部分事情。
-
1
虚拟音频设备
你装一个假装自己是一对扬声器的驱动,把 Mac 的输出设成它,再当作麦克风把声音读回来。这办法管用,代价是你真正的扬声器从此没声,除非你再搭一个把信号分出去的设备。那些配着六张截图的教程,就是这个年代的产物。
-
2
为了拿到声音,去录屏
后来的 macOS 允许一个 app 在录屏的同时拿到系统音频。不用装驱动了,但你为了让它听见,得授予它看你屏幕的权利,而且 macOS 会用一个录制指示灯提醒屋里所有人。
-
3
Core Audio 的 process tap,macOS 14.2
一个 app 请 Core Audio 去 tap 另一个进程,或者全部进程,然后直接拿到音频。不装驱动,不改路由,你的音箱照常出声,而你要授予的是录制音频的权限,不是录屏权限。这个 app 之所以长成现在这个样子,全部原因就在这里。
它还解释了那唯一一条绕不过去的要求。process tap 是 macOS 14.2 才有的,而且只在 Apple silicon 上,所以 14.2 就是这里的下限,Intel 的 Mac 抬不到这个高度。如果你用的是 Intel,上面前三条路就是你的全部选项。
给你的 Mac 配上字幕,三步搞定
-
1
安装,然后给那一个权限
macOS 会在首次运行时申请录制系统音频的权限。错过那个弹窗,每一段音频都会是静音,而且哪里都不会报错,这是唯一一个值得提前知道的失败。安装指南里讲了怎么用十秒钟看出来。
-
2
指向全部,或者只指向一个 app
全部系统音频是默认值,什么都不用设。要收窄到某一个 app,菜单里点一下就行,而且会把那个 app 的辅助进程一并带上,这正是浏览器标签页里的通话能像原生 app 一样出字幕的原因。
-
3
把浮层放在你想要的位置
按住 ⇧ 拖动;你把它放在哪儿,它就记住哪儿。它不拦截点击,所以你可以直接穿过它干活,指针指过去它会化开,而不是被推开。首页上的演示在你的浏览器里就是这个样子,买之前就能试。
14 天退款,不问缘由。
实时在准确率上的代价
这个识别器是流式模型,不是那种要等满三十秒窗口的,这就是「字幕跟着声音走」和「字幕等事情过去了才到」的区别。它在 Neural Engine 上大约以七分之一的实时速度跑,所以机器并不吃力,风扇还是原来的样子。
英语有七个 checkpoint,不是一个,它们在两件不可能同时拉满的事之间取舍:最快的那个大约落后说话人 160 ms 就开始出字,最慢的更准,也更靠后。其余语言都跑同一个多语模型。这个旋钮就是「到底准不准」这个问题的诚实版本,也是这个页面不去声称自己能在一个谁都没跑过的基准里赢过谁的原因。
这个页面上的每一个工具,都还是会在同样的地方出错:人名、行话、缩写、两个人同时说话,以及一条糟糕的连接上语速飞快的口语。实时字幕把这些变得可读的次数,多到值得拥有,但没有可靠到能当成一份转写文本。
关于给 Mac 配字幕的问题
- 在 Mac 上怎么给系统音频配字幕?
- 从 macOS 14.2 起,一个 app 可以通过 Core Audio 直接 tap 另一个进程的音频,所以它需要你给的只是录制音频的权限。在那之前,你得装一个虚拟音频设备,再把输出绕过去,所以老一些的教程里全是截图。
- 还需要 BlackHole 或者别的回环驱动吗?
- 这件事上不用了。什么都不改路由,输出设备不变,字幕跑着的时候你的音箱照常出声。如果你在 macOS 13 或更早的版本上,或者用的是 Intel Mac,回环驱动仍然是答案。
- 实时字幕能有转写文件那么准吗?
- 不能,实时的都不能。文件转写工具会先看完整句,再决定第一个词是什么;实时的必须在说话人还在说的时候就落笔。如果你手上是录音,又不赶时间,那就去转写文件。
- 浏览器标签页里能用吗?
- 可以。它捕获的是一个 app 以及这个 app 派生出的每一个辅助进程,所以标签页里的通话或视频和原生 app 配字幕的方式完全一样。这也覆盖了 Electron 应用,它们的音频从来不是从顶着它们名字的那个进程里出来的。
- 它会给我自己的声音配字幕吗?
- 不会。麦克风从来不会被打开。它听的是你的 Mac 播放的声音,也就是除你以外的所有人。这是一条有意划下的线,不是缺了个功能。
- 延迟有多大?
- 最快的英语模型大约落后说话人 160 ms 开始出字;更准的那几个会更靠后一些。这是一个旋钮,不是一个数字,你想拧到哪一端,取决于你是在跟一场对话,还是在读一堂课。
- 我能把转写文本保存下来吗?
- 不能。什么都不写进硬盘,这是有意的。按住 ⌥ 可以把最近几条字幕调回来翻看,但它们一旦滚出去就没了。如果你事后需要一份记录,那你要的是文件转写工具或者会议纪要工具,不是这个。
给此刻正在播的东西配字幕。
上线周:$5 而不是 $9,截止 8 月 22 日 · 14 天退款
14 天退款,不问缘由
一次性 $9,包含日后所有更新 · macOS 14.2 或更高版本 · Apple silicon
无限量实时字幕,只要这台 Mac 还在你手上。不用买时长,不用注册账号,不用订阅。