1.3 新功能十六种语言中任意两种之间的实时翻译实时翻译,就在本机

你的 Mac 播放什么,就配上实时字幕。

通话、视频、播客和课程,一边播放一边转写,画成始终在所有窗口之上的浮层。想要的话还能实时翻译。没有东西离开这台 Mac。

  • 免费用 7 天,不用绑卡,不用注册账号
  • 一次性 $9,包含日后所有更新
  • 14 天退款,不问缘由
  • 下载安装,需 macOS 14.2 或更高版本,Apple silicon
  • 在 Gumroad 上评分 5.0

切换 app,字幕还在:浮层位于所有窗口之上,并且让点击穿透过去。

点一下窗口就能把它切到前面。按住 拖动字幕就能挪动它们,和在 app 里一样。

把指针移到字幕上,字幕会在指针底下化开。按住 可以把最近几块重新叠回来。这两件事在这里的表现和 app 里完全一样。

使用场景

专为你跟丢的那一刻而造

开会时,不管是不是第二语言,漏听一个词,接下来三个也跟着丢。Subtitles 给你的 Mac 正在播放的任何内容配字幕,就在播放它的那个 app 里,你跟得上,不用请任何人再说一遍。无论你是聋人或听障者听得见却跟不上、在用第二语言听,还是只是待在一个吵闹的地方工作,有三种情况会一再出现。

01

会议和通话

ZoomGoogle MeetTeamsSlack huddleDiscord 通话、浏览器标签页里的通话:说到底都只是从某个 app 里出来的音频,所以全都能配上字幕。没有机器人加入,没人会被告知,参与者列表里也不会多出什么。读一个只听到一半的词,比开口再问一遍快,而且不用打断任何人。

02

一边干活,一边不跟丢

切到你的备忘录、编辑器或者浏览器。浮层始终在所有窗口之上,而且点击穿透,所以你不盯着它,对话也照样往下走。像 Granola 这样的记事工具是在事后把会议写成纪要;而这一半的事,必须在会议还开着的时候完成。

03

视频、播客和讲座

一个没有字幕的视频,或者自动字幕烂到不如没有。一档播客,用的是你还在学的语言。一节录播或者直播的课、一场访谈、一部对白很轻的电影。只要在播,就一边播一边配上字幕,用它原本的语言,或者译成你的语言。

隐私

没有东西离开这台 Mac。IT 也没什么要审的。

你之所以能把它对着一场工作通话用,是因为它不是一项服务。没有服务器,没有账号,没有转写文本,所以没有东西要发出去,中间也没有别人。详细版本也写下来了。源码是公开的,所以这些都不用你凭信任接受。

  • 没有机器人加入通话。它抓的是你的 Mac 本来就在播放的声音,所以参与者列表里不会多出什么,也没人会被告知有东西在跑。这一类产品大多是派一个所有人都看得见的参与者进去,而不少公司干脆就不允许这么做。
  • 不录制,也不写入磁盘。声音从 tap 进到识别器,当场就被丢掉。字幕在屏幕上,然后就没了; 叫回来的那几块只存在内存里,直到你退出 app,之后没有任何文件可找,你的 Mac 上没有,别处也没有。
  • 麦克风从不打开。它只听得到你的 Mac 播放的声音。这是一个实打实的限制,也正因如此,你说的话没有任何去处。
  • 没有账号,没有遥测,没有联网。没有要登录的地方,也不会把使用情况报到任何地方。模型只下载一次,大约 633 MB,此后剩下的唯一一次请求,是每天一次的新版本检查,而且会先问过你:把 Wi-Fi 拔了,它照样出字幕。

功能

围绕三个约束造出来的

实时音频没法暂停,没法重来,也不该被送出你的机器。这里的一切都是从这一点推出来的。

没有东西离开这台 Mac

它在本地离线运行:没有账号,没有遥测,没有哪一次网络请求带着你的任何东西。音频从 process tap 直接进入识别器,然后被丢弃。它下载过的东西只有两样:模型,只下一次;还有更新,在你自己选择更新的时候。

用 Neural Engine,不用 CPU

实时率约 0.15:每一秒算力转写六秒语音。同一个模型放在 CPU 上,实测慢了大约 100 倍,根本跟不上实时的音频流。

所有 app,或者只挑一个

默认情况下它听的是你的 Mac 播放的一切,所以不用先设置什么就能用。当两个东西同时在说话时,可以从菜单栏把它收窄到某一个 app:它会捕获那个 app 以及它派生的每一个辅助进程,而这正是它在浏览器和 Electron 应用里也能工作的原因,那些应用的音频从来不是从主进程出来的。

音乐不会变成歌词

识别器前面有一个人声检测器,伴奏永远到不了它那里。没有它,音乐会把模型的上下文塞满,音乐之后的头几个词就丢了。

换人说话就换一块字幕

可以选择在换人说话时另起一块字幕,就像遇到停顿时那样。默认关闭:它需要在第一个模型旁边再跑一个模型。

十六种语言

默认模型会自己判断语种。英语另外还有七个专用 checkpoint,从 160 ms 起,在延迟和准确率之间取舍。

指哪儿,哪儿就是个洞

把指针靠近字幕块,它就会在指针底下淡开,于是你正在读的句子永远不会盖住你正在写的句子。淡掉多少、这个洞能铺多宽,都由你定。想让它保持不透明,按住

按住 ⌥ 找回你漏掉的

字幕块像电视字幕那样一页页翻:填满、清空、重新开始,所以你一移开视线,那一行就没了。按住 ,结束了的字幕块会重新叠到正在进行的那一块上面,上一次停顿之后的每一块都在,更早的可以往回滚,还能用 F 搜索。松开手,它们又都不在了。什么都不会被写到任何地方。

浮层本身就是预览

在菜单里按 , 打开设置:一块字幕填满几行才清空、它有多实、指针底下的淡开能铺多远、 能回溯多久。每一个滑块都会在你拖动的同时作用到浮层上,所以这些东西是看着调的,而不是挑一个数字。

工作原理

从 app 的音频到你的屏幕,四步走完

一个只负责复制的实时音频线程,一个从不转写的可移植内核,还有一个模型,跑在它该跑的地方。

  1. 1

    Core Audio 的 process tap

    48 kHz 立体声,每 10.7 ms 一次回调。实时线程把数据复制进一个无锁环形缓冲区,别的什么都不做。

  2. 2

    重采样与门限

    在工作线程上降到 16 kHz 单声道,跳过静音,并在语音之前多回放大约一秒,这样没有哪个词是冷启动开头的。

  3. 3

    在 Neural Engine 上跑 Parakeet

    这是流式模型,不是 30 秒窗口的那种:区别就在于字幕是跟着音频走,还是晚好几秒才到。

  4. 4

    浮层

    三行一屏,像电视字幕那样清空再重来,在最后一次出现文字的四秒后淡出,而不是在音频停下之后。

从环形缓冲区到模型边界之间的所有东西,都是可移植的 Rust,而且刻意不做转写:它只负责递出音频帧。process tap 和浮层是仅有的两个 Mac 专属部分。

对比

那 Apple 的实时字幕呢?

macOS 自带字幕功能,免费,每台 Apple silicon Mac 上都有,在系统设置 ▸ 辅助功能 ▸ 实时字幕里。如果它够用,那就用它。下面这些是它不再够用的地方;想看长版本的话,还有一份逐行对比

对比项 Subtitles Apple 实时字幕
语言 十六种,自动识别语种,任意两种之间实时翻译 并非所有语言或地区都可用
浮层 点击穿透,在指针底下淡开,始终在所有窗口之上 一个要你去移动和缩放的窗口
听的是什么 Mac 播放的一切,或者你指定的某一个 app Mac 播放的一切
音乐 被人声检测器跳过,所以伴奏永远不会变成歌词 照样转成字幕
换人说话 可选:换人说话时另起一块字幕 没有对应功能
模型 七个英语 checkpoint,在延迟和准确率之间取舍,外加一个多语言模型 一个,不能换
价格 免费用 7 天,之后一次性 $9,包含日后所有更新 免费,系统自带

大家怎么说

真实通话里用过的

So smooth, very useful during meetings on different apps (slack, zoom, google), so well integrated on the screen, doesn't block interacting with the other windows, love it!
Remi Santos Verified purchase on Gumroad
Almost no setup, no tweaking around: you install it and it just works. Simple, useful and really effective.
Jérôme Blondon Verified purchase on Gumroad
Very handy! I love how it can be connected to any audio source on my laptop, which helps not only for meetings and videocalls, but also for all those streaming services that do not support subtitles, like news websites or even some YouTube videos. The model supports many languages, so it's also useful if you're learning a foreign language and need subtitles to help you understand what's being said.
Bruno Verified purchase on Gumroad
5.0

Average rating on Gumroad

14-day refund, no questions asked

购买 $9

为什么会有这个 app

我在一家美国公司上班,开会说的是英语。英语不是我的母语,对我大多数同事来说也不是。要紧的那句话说出口的时候,我往往正忙着别的事,等回过神来,它已经没了:某个词没听清,某种口音不习惯,或者两个人同时在说。请人再说一遍,所有人都要搭进去三十秒,正在说话的那个人也被打断了。

所以字幕必须在我干着别的事的时候也能读。这就是为什么它是一层压在所有窗口之上的浮层,而不是某一个 app 里的一块面板;为什么它不拦截点击;也为什么它会在指针底下淡开,而不是要你动手把它挪走。这个页面上的其他一切,都是在这之后才有的。

Mathieu Jouhet,做这个 app 的人。

价格

一个价格,没有任何续费。

先免费用 7 天,不用绑卡,也不用注册账号。之后一次性 $9:不用买时长,不按席位收费,也不用续费,日后所有更新都包含在内,花的钱还不到任何一个转写订阅一个月的费用。

  • 由 Gumroad 结账。增值税、收据和退款都在那边处理,密钥通过邮件发给你。
  • 已签名并经过公证,所以你授予的权限在每次更新后都还在。
  • 源代码公开。可以读,也可以自己编译。

Mac 版 Subtitles

$9 一次性

  • 先免费用 7 天,不需要密钥
  • 字幕不限量,想用多久用多久
  • 包含日后所有更新
  • 十六种语言,外加实时翻译
  • 一把密钥,覆盖你用的每一台 Mac。不用账号,不用订阅,没有遥测
  • 14 天退款,不问缘由

一次性 $9 · macOS 14.2 或更高版本 · Apple silicon
首次启动时下载约 633 MB。

常见问题

大家最先问的问题

它支持 Zoom、Teams 和 Google Meet 吗?
可以。它捕获的是某个 app 播放的音频,而不是去对接某一项服务,所以 Zoom 窗口、Slack huddle、浏览器标签页里的通话,配字幕的方式都一样。浏览器和 Electron app 也包括在内:它会一并捕获这些程序派生的辅助进程,它们的音频其实就出自那里。
它能翻译听到的内容吗?
可以,从 1.3 起。菜单里的 Translate To 能把十六种语言中的任意一种译到其余十五种中的任意一种,走 Apple 的设备端翻译,所以译过的字幕和没译过的一样,都不会离开这台机器。在你选定目标语言之前它是 Off;运行时按住 就能在下面看到原来的语言。它需要 macOS 15,只做字幕的话 14.2 依旧可用。
一直浮着的东西不会碍事吗?
它完全不拦截点击,所以你可以直接穿过它工作;它还会在指针底下淡开,让你读到它下面的内容。淡掉多少、能铺多远、字幕块有多实、能容纳几行,全都是可以设定的。想让它保持不透明并把它拖到别处,按住 ;你把它放在哪儿,它就记住哪儿。
它会给我自己的声音配字幕吗?
不会。它只听你的 Mac 播放的声音,从不碰麦克风。在通话里,这意味着你读到的是别人说的话,不是你自己的。
它需要联网吗?
只需要一次,首次运行时下载模型,大约 633 MB。之后它完全离线运行。它还能发出的唯一一种请求,是每天一次的新版本检查,而且会先征求你的同意,你可以拒绝。
我能保存或导出转写文本吗?
不能,这是有意为之。没有任何东西会写入磁盘:字幕在屏幕上出现,然后就没了。在 app 运行期间按住 能把结束了的字幕块叫回来,F 能在里面搜索,那是用来找你刚才没看到的那一行的,不是用来留存记录的:它们只存在内存里,说话停得够久就清空,退出 app 就没了。如果你需要一份对话记录,这个工具不合适。
需要 IT 部门批准吗?
这里没有什么供应商需要批准:没有账号,没有服务器,没有离开 Mac 的转写文本,也没有以参与者身份进入通话的东西,所以会议里没有任何人被任何东西录下。它就是一台机器上的一个已签名、已公证的 app,模型下载完那一次之后,它能发出的唯一请求是一次你可以关掉的版本检查。这是否符合你们自己的规定由你判断,但这里没有第三方夹在中间要审。
它支持耳机或 AirPods 吗?
可以。它捕获的是 app 产生的音频,而不是从扬声器里出来的声音,所以你用什么设备听都没有区别。
它会拖慢我的 Mac 吗?
转写跑在 Neural Engine 上而不是 CPU 上,实时率约 0.15,也就是每一秒算力可以处理六秒语音。同一个模型放在 CPU 上,实测慢了大约 100 倍,根本跟不上。
它能在哪些 Mac 上运行?
Apple silicon,macOS 14.2 或更高版本。这个版本下限来自 Core Audio 的 process tap,整个程序都建立在这个 API 之上。
它是实时的吗?
是的。模型是流式的,所以字幕在一句话还没说完时就会出现,而不是等它说完之后。它读取的是 app 播放的系统音频,不用装任何回环驱动;英语的那几个 checkpoint 从 160 ms 起,在延迟和准确率之间取舍。如果你搜的是 Mac 的语音转文字或实时转写,这就是,只不过是画在屏幕上,而不是存成文件。
它是订阅制吗?
不是。下载下来就是 7 天免费试用。授权密钥一次性 $9,包含日后所有更新,不用注册账号,也不用买时长;一把密钥覆盖你用的每一台 Mac,这个 app 大约每月向 Gumroad 核对一次,只发送密钥本身,不带任何关于你的信息。如果它不适合你,14 天内可以退款。
我能看到源代码吗?
可以。它以 FSL-1.1-ALv2 发布,每个版本在两年后转为 Apache 2.0。想读代码或者自己编译,都在 github.com/daformat/subtitles

给任何声音配上字幕,而音频不去任何地方。

14 天退款,不问缘由

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