惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
GbyAI
GbyAI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
U
Unit 42
Engineering at Meta
Engineering at Meta
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
Vercel News
Vercel News
美团技术团队
雷峰网
雷峰网
Recent Announcements
Recent Announcements
有赞技术团队
有赞技术团队
D
DataBreaches.Net
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
罗磊的独立博客
MyScale Blog
MyScale Blog
博客园_首页
IT之家
IT之家
F
Fortinet All Blogs
博客园 - Franky

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
ambient-voice:一个全 Apple 原生的语音输入工具,和我用它...
2026-03-19 · via 少数派

为什么又造了一个语音输入工具

我每天的工作有大量文字输出——写代码注释、回邮件、写文档。手指敲键盘的速度早就成了瓶颈,于是开始认真研究 Mac 上的语音输入方案。

试了一圈下来,发现一个让我不太舒服的事实:市面上最流行的几个方案,没有一个真正在用 macOS 的能力。

Whisper 需要下载几个 GB 的模型,加载时吃掉大量内存,而且它对我屏幕上正在做什么一无所知。我在写 Swift 代码时说「optional」,它给我识别成了普通英文单词。

讯飞语记 和类似的云端方案,需要把音频传到服务器。作为一个每天处理客户邮件和内部文档的人,我没办法接受语音数据离开自己的电脑。

macOS 自带的听写 功能还行,但不支持自定义、没有会议模式、不能根据上下文优化识别。

这些工具有一个共同问题:它们跑在 Mac 上,但完全没有利用 macOS 的能力。把它们放到 Windows 上也一样能工作,Apple Silicon 的神经引擎、Vision 框架、Core ML——这些苹果花了数年打造的端侧能力,一个都没用上。

直到 macOS 26 发布了 SpeechAnalyzer 框架——一个系统级的端侧语音识别引擎,跑在 Neural Engine 上,毫秒级延迟,不联网,不收费。我意识到,现在是时候做一个「真正属于 Mac」的语音输入工具了。

ambient-voice 不是在 Mac 上套了一个通用引擎,而是从底层开始,每个功能模块都选择 Apple 原生框架来实现:

功能框架为什么选它
语音识别SpeechAnalyzerNeural Engine 端侧运行,毫秒延迟
屏幕截取ScreenCaptureKit系统级窗口捕获,权限可控
文字识别Vision OCR端侧 OCR,速度和精度都够用
文字注入AX API + CGEvent原生辅助功能接口,兼容所有 App
说话人分离FluidAudio(CoreML)端侧推理,不需要云端
热键监听CGEventTap系统级键盘事件捕获

全原生意味着三件事:

第一,数据不出设备。 所有处理都在你的 Mac 上完成。没有网络请求,没有数据上传,没有遥测。你的语音、你的屏幕内容、你的文档——全部留在本地。对于重视隐私的 Mac 用户来说,这不是加分项,是底线。

第二,零额外成本。 不需要订阅,不需要按量付费,不需要 API Key。Neural Engine 已经在你的 Mac 里了,你买硬件的时候就已经为它付过费了。

第三,随系统升级自动变好。 macOS 27 的 SpeechAnalyzer 如果比 26 更准确,ambient-voice 会自动受益,不需要更新任何代码。这就像潮水涨了,船自然就高了。这种架构上的便利是第三方引擎给不了的。

核心机制:上下文偏置——不是纠错,是预防

这是我认为 ambient-voice 最有价值的设计,也是它和其他语音输入工具本质不同的地方。

传统的语音识别思路是:先转写,再纠错。你说了一段话,引擎给你一个结果,然后用后处理模型去修正错误。

ambient-voice 的思路正好相反:在转写的时候就介入,让引擎在识别阶段就做出正确选择。

具体流程是这样的:你按下右 Option 键开始说话。这个瞬间,ambient-voice 同时做两件事——

  1. 用 AVCaptureSession 采集音频,交给 SpeechAnalyzer 开始实时转写
  2. 用 ScreenCaptureKit 截取你当前焦点窗口的内容,用 Vision OCR 提取可见文本中的关键词,注入 SpeechAnalyzer 的 AnalysisContext

也就是说,在你说出第一个字之前,识别引擎就已经知道你屏幕上有什么了。

举个实际使用中遇到的例子:我在回一封讨论 OKR 的邮件,说「把留存目标改一下」。如果没有上下文偏置,「留存」很可能被识别成「留村」——这是中文语音识别中极其常见的同音词错误。但因为 ambient-voice 在我开始说话的时候已经看到了屏幕上的「留存率」「OKR」「季度目标」,识别引擎在做同音词选择时直接命中了正确的词。

再比如写 Swift 代码的场景:我说「声明一个 optional 变量」,普通识别引擎不知道我在写代码,会把「optional」当作日常英语处理。但 ambient-voice 看到了屏幕上的 Xcode 和 Swift 代码,把 Swift 关键词注入了识别上下文,「Optional」被正确识别为 Swift 的类型。

这种体验的差别是:你不再需要说完以后回头改字了。 用了一个月下来,我几乎忘了语音输入还有「纠错」这个步骤。

越用越准:自动蒸馏的数据闭环

ambient-voice 有一个让我觉得特别巧妙的设计:它会自己变好,而且你什么都不用做。

每次你用语音输入,转写结果会自动保存在本地。注入文字之后,系统会开一个 30 秒的观测窗口——通过 AX API 监测你在焦点应用里有没有做修改。如果你把「人工智能」改成了「人工职能」,这条修改就会被记录为一条纠错训练数据。

后台有一条蒸馏管线在工作:一路用 Whisper 重新转写你的原始音频(作为高质量参考),另一路用 SpeechAnalyzer 的原始输出配合本地小模型做纠正。两路结果合并加权后,通过 QLoRA 微调本地 Qwen3 模型,导出为 GGUF 格式跑在 ollama 上,用于文本润色。

重点是:这个过程完全自动,强模型蒸馏为主,用户纠错只是可选的辅助信号。 你不需要手动标注任何东西,不需要训练任何模型,甚至不需要知道这个过程在发生。你只会感觉到,用了两周之后,识别结果比第一天更准了。

会议模式:端侧说话人分离

除了日常的语音输入,ambient-voice 还支持会议转录场景。

按 ⌘M 开始录音,屏幕上会出现一个悬浮面板实时显示转录结果。录音结束后,FluidAudio 在本地通过 CoreML 进行说话人分离——它能识别出会议中有几个人在说话,以及每段话分别是谁说的。

最终输出是一个 Markdown 文件,带有时间戳、说话人标签和完整文本。你可以直接放进 Obsidian、Notion 或者任何 Markdown 编辑器。

整个过程不联网,不上传,会议里所有人的声音和内容都留在你的 Mac 上。对于涉及敏感信息的商务会议,这个特性不是「有了更好」,而是「没有就不能用」。

对比:ambient-voice vs 现有方案

 ambient-voiceWhisper 本地讯飞/云端macOS 听写
处理位置端侧(Neural Engine)端侧(CPU/GPU)云端端侧
隐私数据不出设备数据不出设备音频上传服务器数据不出设备
成本免费免费按量付费免费
内存占用极低(系统框架)几 GB(加载模型)低(客户端)
上下文感知✅ 屏幕 OCR + 偏置
自我进化✅ 自动蒸馏
会议模式✅ 说话人分离部分支持
系统升级受益✅ 自动❌ 需手动更新

如果你只是偶尔用语音输入发微信,macOS 自带的听写够用了。但如果你每天大量用语音输入写文档、写代码、开会,ambient-voice 的上下文偏置和自我进化机制会让你体验到明显不同的准确率。

使用门槛和安装

需要说明的是,ambient-voice 目前处于早期阶段,有一定使用门槛:

  • 系统要求:macOS 26(Tahoe)及以上 + Apple Silicon(M1 及以上)
  • 安装方式:目前是 git clone + make install,还没有 Homebrew Cask 或 DMG 安装包
  • 开源协议:MIT,完整源码在 GitHub

坦白说,如果你不熟悉命令行,现阶段上手会有些门槛。但如果你是 Mac 开发者或者习惯用 Homebrew 的用户,安装过程很顺畅。后续计划推出 Homebrew Cask 和 DMG 包。

写在最后

我做 ambient-voice 的初衷很简单:Mac 上的语音输入应该用 Mac 的能力。

苹果在 macOS 26 里放了一整套端侧 AI 框架——语音识别、OCR、端侧推理、音频分析——这些能力就摆在那里,只是还没有人把它们串起来做成一个完整的产品。

ambient-voice 是一个尝试。它不完美,有些地方还在打磨,但核心机制——屏幕上下文偏置、自动蒸馏进化、全端侧处理——这些设计我认为是正确的方向。

如果你也觉得语音输入应该更懂你在做什么,欢迎来 GitHub 试用和反馈。