我把 Typeless 删啦!开源产品 Airtype 终于支持本地模型,本地优先的语音输入真香!
摘要
Airtype v0.13.0 接入 Qwen3-ASR 与 Apple MLX,不再要求 API Key,也不必把录音上传到云端,语音转文字可以完整地在 Mac 本地完成。
我做的开源 macOS 语音输入工具 AirType,刚刚发布了 v0.13.0,完整代码可以在 GitHub 开源仓库查看。这个版本只增加了一项主要功能,却改变了整个产品最基础的一条路径:语音转文字现在可以完全在 Mac 本地运行。从此本地优先,隐私优先的语音输入,让你我他她它,用着更安心!
不需要注册账户,不需要填写 API Key,录音也不必上传到云端。第一次下载好模型后,按住快捷键说话,Qwen3-ASR 会直接在 Apple Silicon 上完成识别,再把文字放到当前光标所在的位置。
我把新版首页的主标题改成了:
Your voice. Your Mac. Nothing else.

这篇我想利用 Airtype v0.13.0 的实现,讲清楚“完全本地”具体改变了什么,以及一个开源语音模型要真正进入原生 macOS 应用,中间还需要补齐哪些部分。期望对大家有所帮助。
为什么要把识别搬回 Mac
Airtype 原来的工作方式很常见:录制声音,(可选地)把音频交给 OpenAI、ElevenLabs、Mistral 或豆包等服务完成转写,再将结果插入当前应用。
这条路径能够使用不同服务商的模型,也方便快速接入新的能力,但用户需要自己准备 API Key。每次说话产生的录音还要经过网络发送出去,转写是否可用也会受到网络和外部服务状态的影响。
对于一个长期待在菜单栏、随时可能被唤起的语音输入工具,这些摩擦很难忽略。用户说出的内容可能是一封尚未发出的邮件、一段代码、会议笔记,也可能只是一个还没有整理成形的想法。即使云端服务提供完善的隐私政策,本地完成仍然是一条更短、更容易理解的数据路径。
此外,数据隐私性也是许多用户非常关心的。用第三方的语音服务,个人的语音数据会交付出去,这让大量用户降低了使用的信心。本地模型恰好完美解决了这个问题。你再也不用担心自己说的话泄露出去咯!
v0.13.0 没有移除原有云端服务,而是增加了 MLX Local。选择它之后,Airtype 的基本过程变成:
麦克风录音
↓
Mac 本地音频文件
↓
Qwen3-ASR
↓
MLX 在 Apple Silicon 上推理
↓
文字出现在当前光标位置
除了第一次安装模型需要联网,识别过程不需要连接转写 API。API Key、按分钟计费和音频上传也就不再是使用语音输入的前提。
本地模型不是下拉框里的一个名字
开始研究 Qwen3-ASR 时,一个很自然的误解是:Airtype 已经支持很多语音模型,再向模型列表里添加两个名字是否就够了?
答案是不够。云端模型背后已经有服务商负责模型文件、GPU、推理服务和版本更新,应用只需要组织一次网络请求。本地模型把这些责任带回了客户端。
要让普通用户在 Airtype 里选择一个模型并开始说话,至少需要三层能力:
- 模型选择 - 告诉应用运行 0.6B 还是 1.7B。
- 模型管理 - 完成首次下载、缓存检查、安装状态显示和删除。
- 本地推理 - 读取录音,用对应模型生成文字,并把结果接回 Airtype 原有的输入流程。
因此,这次改动最后涉及 13 个文件,新增和调整了约 840 行代码。项目里加入了独立的本地 ASR 接口、模型管理器、MLX 转写服务和 Qwen3-ASR 适配层;设置页与首次启动流程也必须理解一种“不需要 API Key 的 Provider”。
这部分界面应该尽量简单。用户不需要知道权重文件存在哪个缓存目录,也不需要理解模型转换参数。他只需要选择 MLX Local,选择一个模型,点击安装。
Qwen3-ASR、MLX 和 4-bit
Qwen3-ASR 官方发布了 0.6B 和 1.7B 两个主要尺寸,支持自动语言识别、30 种语言和 22 种中文方言。官方常见的运行方式是 Python、Transformers 或 vLLM,这些方案适合服务器和 Python 环境,却不是原生 Swift 菜单栏应用最自然的依赖方式。
Airtype 使用的是 MLX Community 转换的两个版本:
| Airtype 中的模型 | 下载大小 | 适合的选择 |
|---|---|---|
Qwen3-ASR-0.6B-4bit | 约 708 MB | 默认选择,占用更低 |
Qwen3-ASR-1.7B-4bit | 约 1.6 GB | 更看重识别质量 |
它们不是 MLX Community 重新训练的另一套模型,而是从 Qwen 官方权重转换并量化而来。这里的 4-bit 指主要模型权重经过低比特量化,模型文件和内存占用随之降低,更适合在个人电脑上运行;代价是与官方 BF16 权重相比,理论上可能存在少量精度损失。
MLX 则是 Apple 面向 Apple Silicon 推出的机器学习框架。Airtype 通过 Swift 依赖直接加载模型,利用 Mac 的统一内存和 GPU 完成推理,不需要在后台再启动一个 Python 服务。模型文件来自 Hugging Face 的 mlx-community 仓库;Apple 提供运行框架和 Metal 加速,但并不托管这两个 Qwen 模型。
换句话说,这条本地链路由几部分共同组成:Qwen 提供模型,MLX Community 完成适合 Apple Silicon 的转换与量化,Hugging Face 托管权重,MLX 在 Mac 上执行推理,Airtype 负责把这一切变成一个安装按钮和一组快捷键。
从能够编译到能够发布
这次开发还有一个很实际的过程:代码可以编译,不等于功能已经能够公开发布。
最初的实现已经接通了模型选择、下载和转写,但发布审计仍然发现了一些问题。例如 MLX Audio 依赖跟踪的是不断变化的 main 分支;设置里出现了尚未真正影响推理的计算模式;改动中还夹带了与本次版本无关的 GLM-ASR 实验。
最终发布时,我把范围收敛到两个 Qwen3-ASR 4-bit 模型,并将 MLX Audio 固定在经过构建验证的提交上。由于这套依赖需要更新的 Swift 与 Metal 工具链,GitHub Actions 的发布环境也从原来的 Xcode 16.2 调整到了 Xcode 26.2。
随后才是原生 macOS 应用公开分发必须经过的部分:Release Archive、Developer ID 签名、Apple 公证、stapling、DMG 打包和 GitHub Release。第一次 CI 在公证阶段遇到 Apple 开发者协议过期,接受协议后重新运行,v0.13.0 才完整发布。
这也解释了为什么“支持一个本地模型”最终不是增加两个枚举值。模型能够返回文字只是中间一步;用户能下载、能安装、能离线使用,并且可以拿到签名和公证过的应用,才是一个完成的功能。
现在怎样使用
Airtype 是一个原生 SwiftUI 菜单栏应用,需要 macOS 14 或更高版本。安装 v0.13.0 后,可以这样启用本地识别:
- 打开 Airtype 设置,在 Voice Input 中选择
MLX Local。 - 先选择
Qwen3-ASR-0.6B-4bit,点击 Install 下载模型。 - 下载完成后,按住默认快捷键
Option + Space说话。 - 松开快捷键,识别出的文字会插入当前应用的光标位置。
0.6B 更适合作为第一次使用的选择。如果机器内存充足,并且更看重识别质量,可以再安装 1.7B 比较自己的真实使用场景。模型安装完成后,日常转写不需要 API Key,也不会把录音交给云端语音服务。
云端 Provider 仍然保留。它们适合需要特定模型或服务能力的用户;MLX Local 则让最基础的语音输入不再依赖任何外部账户。对 Airtype 来说,这不是多了一个 Provider,而是终于让“Your voice. Your Mac.”成为了产品实际运行的方式。
相关文章
2026年9月16日
fx:把 coding agent 做成一把瑞士军刀
fx 是一个用 Zig 写的原生 coding agent,二进制只有 6MB 出头。它能当终端 agent 用,也能作为 WASM 内核嵌进浏览器和 Node 应用。这篇文章拆解它的工具、权限、子 agent、上下文和嵌入设计,以及它和主流 coding agent 的差别。
2026年9月2日
一天新增 745 颗星,VoiceStudio 把本地语音模型装进了一间工作室
GitHub Trending 上的 VoiceStudio 不只做声音克隆:它把多套本地 TTS、转写、配音、桌面项目和面向工具的 API 收在一起,同时把模型许可、硬件成本与声音授权留给使用者判断。
2026年7月23日
吴恩达开源 OpenWorker:一个交付成品而不是对话的 AI 智能体桌面应用
吴恩达和 Rohit Prasad 开源了 OpenWorker - 一个跑在桌面上的 AI 智能体应用,交给你的是能打开的成品:文档、带数字的 Slack 回复、理好的日历。我读了后端代码,聊聊它在交付形态、分层风险模型、无人值守 inbox、self-wake、本地优先上的实现选择。
最近一封 · Sample
OpenRig 冲上 Trending:把 Claude Code 和 Codex 编成一支队伍
“OpenRig 在 GitHub Trending Today 获得 622 个 stars 的窗口信号。它用可恢复的队列、席位与权限记录,把 Claude Code 和 Codex 放进同一套多 Agent 工程流程。”
—— william
来信
里面装的是
- 新文章 — 写完一篇就寄一封,不攒货
- 这周读到的、看到的、好用的工具
- 正在折腾的实验,附带翻车记录
约莫 1–2 周一封 · 随时退订
合作伙伴
CompeteMap — 英国及爱尔兰学生竞赛一站式搜索
数学、编程、科学、写作等各类竞赛信息汇总,支持按年龄和科目筛选,再也不错过报名截止日。