Tamka 图标

Tamka

Mac 本地听写工具,使用 Rust 编写。

Tamka(TAHM-kah)在斯瓦希里语中意为“发音”或“说出”。

Tamka 的 Models 设置(正在使用 Parakeet Ultra)、显示三条最近听写的菜单,以及计时为 0:12 的聆听指示器

在 Mac 上的任意 App 中听写

Tamka 是一款免费开源的 macOS 听写 App,下载语音模型后即可离线使用。

按下快捷键后说话,再按一次快捷键,文字就会出现在光标处。语音识别借助 NVIDIA 的 Parakeet 模型在神经网络引擎上运行,你的音频从不离开 Mac。在搭载 M5 Max 的 MacBook Pro 上,即使说了 50 秒,文字也会在你停止后约 0.2 秒出现。

在输入文字之前,Tamka 会去掉“um”和“uh”,合并口吃造成的重复,并把“comma”“new line”或“open paren”等语音命令转换成对应的字符。载入 Parakeet Ultra 后,它约占用 0.5 GB 内存,其中大部分是神经网络引擎持有的模型权重。

听写

  1. 点按要输入文字的位置:电子邮件、聊天窗口、代码编辑器或搜索框。
  2. 按下 ⌃V 并开始说话。带计时器的指示器表示 Tamka 正在聆听。
  3. 再次按下 ⌃V。Tamka 会在光标处输入你说的内容,并在剪贴板上保留一份副本。

在 Tamka 聆听时按下 Esc 可丢弃这段录音。⌃V 是默认快捷键,你可以在 Settings › General 中选择任何包含 ⌘、⌃ 或 ⌥ 的组合键。

指示器

指示器从不抢占你正在输入的 App 的焦点。你可以把它拖到任意位置,包括另一台显示器上,之后每次听写它都会出现在同一位置。如果那台显示器断开连接,指示器会回到鼠标指针所在屏幕的底部中央。

聆听时的指示器:一个红点、显示 0:12 的计时器和快捷键提示 转写时的指示器

选择语音模型

App 本身不含语音模型。首次启动时会打开 Settings › Models,其中 Parakeet Ultra 标有 Recommended。模型下载后即可离线使用,移除模型会将其移到废纸篓。

“大小”包括下载大小和模型载入后占用的内存。“速度”指停止说话后文字出现得有多快。“准确度”是日常语音的词错误率。在 App 中将指针悬停在评级上,可查看其背后的测量数据。

Settings 的 Models 标签页:Parakeet Ultra、Phonon-2、v3、v2 和 Apple Speech,每个模型都有大小、速度和准确度评级
模型大小速度准确度最适合
Parakeet Ultra(推荐)BAA日常听写,标点最准确
Parakeet Phonon-2AAA−随意、无稿的口语
Parakeet v3AAA−说 25 种欧洲语言中的任意一种
Parakeet v2AA+B+最快出结果
Apple SpeechA+BB无需单独下载模型;macOS 可能会先获取其语言文件

语音命令与清理

说出命令,Tamka 就会输入对应的符号并调整好空格:“call foo open paren bar close paren”会变成 call foo (bar)。下表列出了 112 条默认命令中的 10 条。

在 Settings › Text 中,你可以打开或关闭语气词去除和口吃清理,将数字、价格和日期写成阿拉伯数字(实验性功能),以及搜索、添加、编辑或移除命令。⌘Z 可撤销更改,Restore Defaults… 可恢复原始列表。

说得到说得到
“comma”,“new line”换行
“question mark”?“new paragraph”空行
“open quote” … “close quote”" … "“open paren” … “close paren”( … )
“at sign”@“em dash”—
“percent sign”%“smiley face”:)
Settings 的 Text 标签页:清理选项和可搜索的语音命令表

设置

Settings › General 包含快捷键、录音时长上限、开始和停止提示音、指示器位置、Tamka 是否粘贴文字以及是否在剪贴板上保留文字、登录时启动、麦克风和辅助功能权限,以及活动日志。

更改会立即生效。

Settings 的 General 标签页:快捷键、录音、指示器、粘贴、启动、权限和故障排除

准确度与速度

在搭载 M5 Max 的 MacBook Pro 上,以 117 段公开录音(共 32 分钟)对 Parakeet Ultra 和 Whisper large-v3-turbo 进行了对比测试。录音包括朗读、会议和财报电话会议,均附有经人工核对的文字稿。

指标Whisper large-v3-turboTamka 搭配 Parakeet Ultra
词错误率(全部录音)9.9%7.7%
词错误率(不含会议录音)6.9%6.2%
内存1.2–1.6 GB约 0.5 GB
50 秒听写后的等待时间471 ms170 ms

不计会议录音时,两者的准确度差异在误差范围内。完整基准测试比较了 11 种模型配置。如果想用你自己的声音和词汇比较模型,请参阅 eval/README.md。

获取 Tamka

从最新发行版下载 zip 文件。它已签名并经过 Apple 公证。

下载

系统要求
Apple 芯片,macOS 26 或更高版本

使用时

语音模型
Parakeet Ultra,632 MB,只需下载一次
内存
使用 Parakeet Ultra 时约 0.5 GB
为何需要 macOS 26
Apple Speech 引擎使用 SpeechAnalyzer

安装

  1. 下载 Tamka-macOS-arm64.zip 并解压。
  2. 将 Tamka 拖到应用程序文件夹并打开。

从源代码构建

你需要 Xcode 26 或更高版本,以及通过 rustup 安装的最新稳定版 Rust 工具链。

git clone https://github.com/piedol/tamka.git
cd tamka && scripts/bundle.sh --install

该脚本会构建 App 及其语音引擎,为两者签名,将 Tamka.app 拷贝到 /Applications 并打开。如果设置了 TAMKA_SIGN_IDENTITY,脚本会用它签名,否则使用钥匙串中的第一个 Developer ID Application 证书。如果两者都没有,则使用临时(ad-hoc)签名,每次构建后 macOS 都会重新请求权限。

首次打开 Tamka 时

  1. Settings › Models 会打开。点按 Parakeet Ultra(632 MB)旁边的 Download。
  2. 允许“辅助功能”权限,以便 Tamka 粘贴文字。如果不允许,Tamka 会拷贝文字,由你自己粘贴。
  3. 首次听写时,允许使用麦克风。

Tamka 没有程序坞图标。如果想在登录时启动它,请在 Settings › General 中打开 Launch Tamka at login。如需移除,请按照 README 中的卸载步骤操作。

隐私

语音识别完全在你的 Mac 上运行。

  • Tamka 只在下载模型时连接互联网。Parakeet 模型来自 Hugging Face,Apple Speech 的语言文件来自 Apple。
  • 麦克风只在你听写时打开。
  • Tamka 会将你的上一段录音保存在 ~/Library/Caches/Tamka/last.wav,供 Transcribe Last Recording Again 使用。每次新的听写都会替换它。
  • 位于 ~/Library/Logs/Tamka.log 的日志只记录事件和耗时,从不记录你说的内容。

常见问题

Tamka 是免费开源的吗?

是的。Tamka 可免费下载和使用,其源代码以 GNU 通用公共许可证 v3.0 或更高版本发布在 GitHub 上。

Tamka 可以离线使用吗?

可以。语音识别完全在你的 Mac 上运行。Tamka 只在下载语音模型时连接互联网。Parakeet 模型来自 Hugging Face,Apple Speech 的语言文件来自 Apple。

Tamka 支持哪些 Mac?

搭载 Apple 芯片并运行 macOS 26 或更高版本的 Mac。Apple Speech 引擎使用的是 macOS 26 新增的 SpeechAnalyzer。

Tamka 的准确度和速度如何?

在搭载 M5 Max 的 MacBook Pro 上,Parakeet Ultra 在 117 段公开录音中的词错误率为 7.7%,而 Whisper large-v3-turbo 为 9.9%;在 50 秒的听写结束后,Parakeet Ultra 在 170 毫秒后返回文字。

如何安装 Tamka?

下载 Tamka-macOS-arm64.zip 并解压,将 Tamka 拖到“应用程序”文件夹并打开。首次启动时,下载 Parakeet Ultra(632 MB),并允许“辅助功能”和麦克风权限。

如何卸载 Tamka?

退出 Tamka,将 Tamka.app 移到废纸篓,然后将 ~/Library/Application Support/Tamka、~/Library/Caches/Tamka 和 ~/Library/Logs/Tamka.log 移到废纸篓。已下载的模型位于 ~/Library/Application Support/FluidAudio/Models。

许可证

Tamka 是采用 GNU 通用公共许可证 v3.0 或更高版本的自由软件。欢迎在 GitHub 上提交错误报告和拉取请求。

可在任何场合使用(包括工作中),也可阅读、修改和分享源代码。如果分发修改版本,须以相同的许可证公开其源代码。

语音运行时:FluidAudio(Apache-2.0)。模型:NVIDIA Parakeet(CC-BY-4.0);Parakeet Ultra 由 Moondream 开发;Phonon-2 由 Fermion Research 开发。各模型的许可证由其作者确定。