返回博客
·产品

OnType 1.0 发布:你的声音,就是你的键盘


我们在 2026 年 1 月 31 日开始构建 OnType。81 天、将近 900 次提交之后, 我们发布了 1.0 版本:一款 macOS 语音输入工具,能把你的声音准确输入到光标所在的位置。 不用切应用,不用等待,默认也不需要云端。

OnType 不只是一个听写应用。它提供三种不同的开口方式, 每一种都针对特定场景设计。下面是它们的工作方式。

Tap to speak freely. AI removes fillers and restructures.

Push-to-Talk:想到就说,说完就发

这是最直接的模式。按住热键(默认是 Fn),开始说话,松开按键。 你一松手,文字就会立即出现在光标位置。实时流式转写意味着你能一边说, 一边看到识别结果,而不是等一段时间、或者跑到单独窗口里看。

在背后,我们做了大量延迟优化。录音会自动裁掉前 120 毫秒的音频, 也就是从按下按键到真正开口之间的那段空白,这样 ASR 引擎就不会把时间浪费在静音或按键噪声上。结果就是, 从你发出第一个音节开始,转写几乎立刻就启动了。

比如你在 Slack 里快速说一句 "see you at three, same place"。OnType 会通过运行在 Apple Silicon Mac Neural Engine 上、针对 MLX 优化的语音识别, 在本地完成转写。延迟低于 200 毫秒。你的音频不会离开这台机器。

see you at three same place

Compose:把凌乱口语整理成可用文字

真实口语是混乱的。我们会说 "um"、"like",说到一半改口, 也会一句话没说完就停住。传统听写会忠实地把这些都记下来。 OnType Compose 不会。

轻点一次热键开始录音,随意说就行,填充词、自我修正、半成形的想法都可以。 再点一次结束。OnType 会把原始转写送进本地改写引擎, 让它理解你真正想表达的内容。

实际效果大概是这样。你说出来的原话可能像下面这样:

um, so, about the launch next week, first we need to update the docs, and then, like, the test cases aren't done yet, wait no, tests are done, it's the deploy scripts that need checking. and then performance needs some optimization too, oh right, most importantly client compatibility, that's top priority. uh, the docs thing is mainly about syncing the API changes.

OnType HUD 里的提词器会实时可视化你的语音,填充词会带轻微波浪下划线, 自我修正会显示删除线,而像 "wait, no" 这种表示改口的语音命令则会以蓝色高亮。 你可以直接看到原始口语的混乱过程。

um so about the launch next week, first we need to update the docs, and then like the test cases aren't done yet, wait no, tests are done, it's the deploy scripts that need checking. and then performance needs some optimization too, oh right, most importantly client compatibility, that's top priority. uh the docs thing is mainly about syncing the API changes.

然后,在你点击结束后,AI 会把它改写成真正可用的结果:

下周发布准备:
1. 客户端兼容性测试(最高优先级)
2. 部署脚本校验
3. API 变更文档同步
4. 性能优化

改写引擎是怎样理解你的

AI 做的不只是删掉填充词。它会识别三种不同类型的自我修正, 并分别处理:

  • 显式撤回:当你说出 "wait, no" 或 "it should be" 这类信号时,引擎会丢弃修正信号之前的内容,只保留修正后的版本。
  • 重复覆盖:当你重新起一句并带着修改再次说一遍时, 第二个版本会覆盖第一个版本。
  • 行内注释:当你补充解释一个词语时 (比如 "here, 'pie' refers to PI"),引擎会用修正后的版本替换原词, 并移除这段元解释。

它还会结合上下文修正 ASR 识别错误。那些听起来像对的、但语义明显不通的同音词, 比如在讨论 AI 模型时把 "intelligence" 识别成 "refrigeration", 会被自动纠正。品牌名如果被误识别成发音相近的普通词,只要上下文支持, 也会被恢复回来。

基于场景的改写

OnType 会识别你当前正在使用哪个应用,并据此调整改写策略。 在微信里发一条短消息时,它只做最少干预,主要是去掉填充词和纠错。 在 Notion 里整理长段思路时,它会主动重组为逻辑更清晰的段落, 把重点放在前面。在线性项目管理工具里记会议纪要时,它会整理成要点列表并按主题分组。 在 Claude 里写 AI prompt 时,它则会优化 prompt 质量, 澄清意图、分离上下文与指令、把约束写明确。

这些能力支持中文、英文、日文、韩文、法文、西班牙文、德文和意大利文。 prompt 会感知场景,知道你是在写邮件、做会议记录,还是在写代码注释, 并相应调整语气和结构。

Translate:用一种语言说,用另一种语言写

有时候你需要输出一门自己此刻并没有用来思考的语言。 OnType Translate 允许你自然地用一种语言说话,再输出另一种语言的整理结果。

点一下开始,说完句子后,在结束时按住 Shift。HUD 上的小圆点会变蓝, 表示翻译模式已经激活。松开后,翻译结果就会出现在光标位置。

我想订明天上午到北京的航班,不对,是改签,不是订新的

我想订明天上午到北京的航班,不对,是改签,不是订新的

→ I'd like to reschedule my flight to Beijing tomorrow morning.

为速度而工程化

OnType 对低延迟近乎执念。流式 HUD 会同时显示已确认文本,也就是 ASR 引擎已经高度确信的词,以及可能还会变化的临时文本。随着你说话,HUD 胶囊会平滑增长、滚动, 始终让最新的词保持可见。你看到的不是一个静态的 "Listening..." 指示器, 而是你的文字正在实时出现。

在 Push-to-Talk 模式下,从你松开热键到文字出现在光标位置之间, 通常只差不到 1 秒。即使是在包含完整 AI 改写链路的 Compose 模式下, 端到端延迟通常也低于 2 秒。我们通过分块改写运行时实现这一点: 它会在转写片段到达时立刻开始处理,而不是等整段录音结束再统一处理。

以隐私为默认设计

默认路径是完全离线的。我们提供量化后的 MLX 模型,运行在 M1 及后续机型的 Neural Engine 上。你得到的是接近 Whisper 级别准确率、同时具备硬件加速速度的体验。对于需要更重型模型、 或者使用 Intel Mac 的用户,我们也提供可选的 Cloud Engine 服务,但设备端路径始终存在、始终私密、始终即时。

OnType 还内置了自研的逆文本规范化(ITN)引擎。 "three thousand dollars" 会变成 "$3,000"。日期、货币和数字会根据你的地区自动格式化。 而像 "new line"、"colon" 这样的语音命令,也会实时转成真实的键盘动作。

我们是怎么走到这里的

这个项目最开始是一个 Swift 原型,只专注于一个困难问题: 如何把转写后的文字可靠地插入到每一个 macOS 应用的光标位置。 我们构建了三层插入链路:辅助功能 API、键盘模拟、剪贴板回退, 并在浏览器、终端、设计工具和 IDE 里逐一测试。

之后,范围逐渐扩大。通过 WebSocket 做实时流式传输; 为 Cloud Engine 接入多个 ASR 提供商(DashScope、Volcengine、OpenAI); 为不支持直接插入的应用提供 IME bundle;基于 WebView 做设置界面和上面的交互式演示;提供引导式 onboarding, 帮助用户完成权限授权;集成 Sparkle 自动更新和 Sentry 错误上报; 以及一个用 Zig 编译的有限状态转导库,用于文本替换。

1.0 版本是基础,不是终点。我们已经在继续推进更好的混合语言语音处理、 更丰富的 Compose 模式,以及与开发者高频工具更深的集成。

定价

OnType 可以免费下载。每个新用户都能获得 14 天 Cloud Engine 访问权限, 体验完整能力。此后,设备端处理会永久免费。若你需要不限量的 Cloud Engine、 优先支持以及新功能抢先体验,按年付费时,OnType Pro 价格为每月 8 美元。

下载 OnType 1.0:支持 macOS 15 及更高版本, 兼容 Apple Silicon 和 Intel。