开源推荐:一个优雅的 macOS 语音输入与翻译应用

6 阅读13分钟

前言

在日常工作中,我们经常面临一个小烦恼:需要快速输入一段话,但不想停下手中的工作去打字。macOS 系统本身有听写功能,但功能有限,无法满足更复杂的需求。最近发现了一个精妙的开源项目 Voxt,它将语音输入、智能增强和多语言翻译融为一体,通过一个全局快捷键就能完成"按住说话,松开自动粘贴"的工作流。这个项目不仅设计精良,还深入展现了如何在 macOS 上优雅地整合多个系统框架。


这个项目解决什么问题?

传统输入方式的局限

  • 打字效率低:需要两只手,无法边走边输,无法在其他任务中断
  • 听写功能有限:系统自带听写需要多步操作,且无法实时翻译或增强文本
  • 多语言转换困难:用英文思考,需要用中文输出(或反之),目前没有无缝的解决方案
  • 上下文丧失:语音识别后的文本往往需要手动修正,无法自动理解上下文

Voxt 的解决方案

Voxt 设计了一套流畅的工作流:

  1. 按住全局快捷键 → 2. 说话 → 3. 松开按键 → 4. 文本自动出现在光标位置

整个过程无需鼠标,无需打开应用窗口,仿佛输入法一样自然。而且,Voxt 提供了两种快捷方式:

  • 转录模式:仅做语音转文字,可选择用 AI 增强文本质量
  • 翻译模式:语音转文字后,自动翻译到目标语言

这对于多语言用户、内容创作者、开发者来说,都是生产力的显著提升。


核心亮点分析

1. 聪明的交互设计

Voxt 提供了两种触发模式,适应不同场景:

模式 A:长按后释放(Long Press Release to End)

按住 = 开始录音
松开 = 结束录音,自动处理和粘贴

适合需要一次性录入完整句子的场景。

模式 B:按键切换(Tap to Toggle)

第一下 = 开始录音
第二下 = 结束录音

适合需要多次调整、确认的场景。

这个设计考虑到了实际使用中的多种需求,不是简单地提供一种方案。

2. 灵活的 STT(语音转文字)引擎架构

Voxt 支持 两种 STT 引擎,各有优缺点:

MLX Audio(本地模型)

优点:

  • 完全离线,无需网络
  • 隐私保护,数据不离开设备
  • 可选多个模型,支持调优

缺点:

  • 第一次需要下载模型(50MB~1GB)
  • 运算速度受本地硬件限制

适用场景: 隐私敏感、对数据保护要求高、网络不稳定

Direct Dictation(苹果语音)

优点:

  • 无需下载任何东西,开箱即用
  • 基于苹果服务器,识别质量稳定
  • 实时流式输出

缺点:

  • 需要网络连接
  • 数据会发送到苹果服务器

适用场景: 快速上手、不关心隐私、想要最佳识别效果

这个设计完全尊重用户的选择权。有人关心隐私,有人关心易用性,Voxt 都支持。

3. 智能的文本增强与翻译管道

Voxt 不仅仅是做语音转文字,还提供了 两层智能处理

语音输入
   ↓
STT 引擎(转换为文字)
   ↓
可选:AI 增强(改善语法、修饰表述)
   ↓
可选:翻译(转换为目标语言)
   ↓
自动粘贴到光标位置

关键是,增强和翻译有两个不同的 LLM 路径:

Apple Intelligence(苹果内置 AI)

  • 集成在系统层,调用 Foundation Models
  • 无需额外下载
  • 与系统深度集成

Custom LLM(自定义本地模型)

  • 可以选择开源模型(如 Qwen 系列)
  • 完全本地运行
  • 可以自定义提示词

这给了用户极大的灵活性。你可以用苹果官方的 AI(如果你的 Mac 支持),也可以用完全开源的模型。

4. 细致的交互体验

虽然是个小工具,但 Voxt 在很多细节上下足了功夫:

实时可视化反馈

在录音过程中,屏幕上有一个浮窗显示:

  • 波形(让你知道声音有没有被捕捉)
  • 滚动的部分文本(实时显示识别结果)
  • 处理动画(告诉你程序在工作)
  • 完成状态(转录 / 翻译 / 完成)

这样你不用猜测程序在做什么,视觉反馈清晰。

剪贴板安全

在粘贴之前,Voxt 会保存你之前的剪贴板内容,粘贴完成后会恢复。这很贴心——你的剪贴板历史不会被破坏。

智能输出选择

Voxt 会检测光标位置是否在可写的文本输入框内:

  • 在输入框内 → 直接粘贴
  • 不在输入框内 → 仅复制到剪贴板,等待进一步操作

避免了意外粘贴到不该输入的地方。

转录历史管理

所有的转录记录都会保存在本地,支持:

  • 分页查看
  • 复制任意记录
  • 按"普通转录"或"翻译"标签过滤
  • 删除单条记录
  • 一键清空所有历史

这对于内容创作者很有用,可以回顾之前的想法。

5. 模型选择的丰富性

Voxt 支持多个 STT 模型,用户可以根据需求选择:

模型速度准确度资源占用推荐场景
Qwen3-ASR 0.6B中高中高日常默认使用
Qwen3-ASR 1.7B对质量要求高
Voxtral Realtime 4B中高追求实时反馈
Parakeet 0.6B快速英文输入
GLM-ASR Nano中低很低低端设备 / 快速草稿

用户可以根据 Mac 的性能、网络状态、对准确度的要求灵活选择。比如,在办公室用高质量模型,在咖啡厅用快速模型。

类似地,LLM 模型也有选择:

模型输出质量速度资源占用推荐场景
Qwen2 1.5B中高低中通用增强和翻译
Qwen2.5 3B中高需要更好的格式和一致性

6. 开放的架构设计

从代码结构来看,Voxt 有几个值得学习的地方:

清晰的模块划分

  • CGEvent tap:全局快捷键监听
  • AVAudioEngine:音频捕捉
  • 分离的 STT 引擎(MLX vs Dictation)
  • 分离的 LLM 引擎(Apple Intelligence vs Custom)
  • 输出层(剪贴板 + 模拟粘贴 + 历史记录)

每个模块职责明确,易于测试和扩展。

可扩展的模型系统

虽然目前集成了特定的模型,但架构本身支持添加新的 STT / LLM 引擎。比如,未来可以支持:

  • 其他开源 STT 模型
  • 本地 Ollama 服务
  • 在线 API(OpenAI, Anthropic 等)

技术深度分析

音频捕捉与识别流程

Voxt 的工作流程很清晰:

1. CGEvent tap 监听全局快捷键
   ↓
2. 检测到按下 → 启动 AVAudioEngine 捕捉音频
   ↓
3. 用户说话,音频流实时显示波形
   ↓
4. 检测到释放 → 停止录音
   ↓
5. 选择 STT 引擎:
   a) MLX Audio: 调用本地模型,分两轮处理(初稿 + 最终修正)
   b) Direct Dictation: 使用 SFSpeechRecognizer 流式识别
   ↓
6. 获得转录文本
   ↓
7. 如果启用增强/翻译,调用 LLM 进一步处理
   ↓
8. 结果通过剪贴板 + 模拟 Cmd+V 注入到应用
   ↓
9. 可选:保存到本地历史数据库

MLX 框架的选择

MLX 是苹果开源的机器学习框架,为 Apple Silicon 优化。Voxt 用 MLX 来运行本地 STT 模型是个聪明的选择:

  • 性能优化:充分利用 M1/M2/M3 芯片的 GPU
  • 官方支持:苹果官方维护,质量有保证
  • 生态完善:社区里有很多已经转换好的模型
  • 易于集成:与 SwiftUI / AppKit 无缝配合

STT 的分阶段处理

对于 MLX Audio,Voxt 采用了巧妙的两轮处理:

第一轮(初稿):快速识别,给用户即时反馈
   ↓
第二轮(最终):使用更高质量的设置,进行修正
   ↓
最终结果呈现给用户

这样既能提供实时反馈(用户不觉得卡顿),也能保证最终质量。

模型下载管理

Voxt 内置了一个模型下载管理器,支持:

  • 进度显示:知道下载还要多久
  • 取消下载:可以随时停止
  • 删除模型:释放磁盘空间
  • 大小显示:知道会占多少存储
  • 验证机制:确保下载的模型完整
  • Hugging Face 镜像:在中国网络环境下,支持 hf-mirror.com 加速

最后一点特别贴心——考虑到中国用户的网络现状。


为什么值得关注

1. 小而精的设计哲学

Voxt 没有过度设计。它专注于一个明确的需求:语音快速输入。围绕这个核心,它提供了必要的功能(翻译、增强、历史),但没有堆积不必要的功能。

这与很多臃肿的应用形成对比。有时候,约束本身就是设计的精妙之处

2. 对隐私与自由的尊重

Voxt 给用户充分的选择权:

  • 想要隐私?用本地 MLX + Custom LLM
  • 想要易用?用 Direct Dictation + Apple Intelligence
  • 想要自定义?下载开源模型,修改提示词

没有强制用户上传数据,没有订阅制,没有云服务锁定。这种开放的态度很难得。

3. macOS 生态的深度整合

作为一个 macOS 应用,Voxt 充分利用了苹果平台的特性:

  • 菜单栏应用:不占据 Dock,不分散注意力
  • 全局快捷键:任何应用中都可触发
  • 原生框架:使用 SwiftUI / AppKit / AVAudioEngine,性能优秀
  • 系统权限:正确处理麦克风、辅助功能、语音识别等权限
  • 深色模式支持:融入现代 macOS 设计语言

4. 对开发者友好的代码

虽然这是闭源编译的应用,但从文档和设计来看,代码架构清晰:

  • 模块职责分离
  • 配置化模型选择
  • 可扩展的引擎架构

这对其他想做类似项目的开发者是很好的参考。

5. 持续维护与活跃社区

从 GitHub 来看:

  • 57 次提交,持续更新
  • 131 颗星,逐渐获得关注
  • 8 个发布版本,定期迭代
  • 完整的 CHANGELOG,透明的更新日志

项目创作者在认真打磨这个工具。


实际应用场景

场景 1:技术文章写作

一个博客作者想快速记录灵感,边走边思考边说话:

1. 按住全局快捷键,说出大纲:"介绍 Voxt、为什么好用、技术细节、总结"
2. 松开,文本自动出现在 Markdown 编辑器
3. 继续写作,无需打字

场景 2:多语言内容创建

一个面向国际的内容创作者,用英文思考,需要生成中文内容:

1. 按住快捷键,用英文说话
2. 松开,选择"翻译模式"
3. 自动生成中文文本,粘贴到编辑器

对比传统流程(思考 → 打英文 → 翻译工具 → 复制粘贴),快了一倍。

场景 3:代码注释与文档

一个开发者在写代码时需要添加注释:

# 传统方式:
暂停编码 → 切换输入法 → 打中文 → 切换回英文 → 继续编码

# Voxt 方式:
按住快捷键 → 说中文注释 → 松开 → 继续编码

场景 4:笔记与日记

每天快速记录工作日志或日记:

1. 打开笔记应用
2. 按住快捷键,说出今天的收获
3. 松开,完整的转录出现
4. 可选:查看历史记录,回顾以前的笔记

对开发者的启示

1. 框架选择很重要

Voxt 选择了 SwiftUI + MLX,而不是跨平台框架。这个选择的好处:

  • 性能优秀:充分利用硬件
  • 体验一流:原生应用的流畅感
  • 维护简单:一份代码,只需维护 macOS 版本

有时候,专注比通用更重要

2. 向系统请权限要有明确的 UX

Voxt 需要的权限列表很清晰:

  • 麦克风权限(用于录音)
  • 辅助功能权限(用于全局快捷键和模拟粘贴)
  • 语音识别权限(仅 Direct Dictation 需要)

应用会逐步请求,解释为什么需要这个权限。不会在启动时一次性请求所有权限,惹恼用户。

3. 本地模型的下载和管理

如果你的应用需要本地模型,Voxt 的模型管理器是很好的参考:

  • 展示模型大小,让用户知道成本
  • 支持取消和删除,给用户完全的控制权
  • 验证模型完整性,确保不会加载损坏的文件
  • 考虑网络环境(支持镜像源),照顾全球用户

4. 菜单栏应用的优势

Voxt 是一个菜单栏应用(menu bar app),而不是常驻的主窗口。这个设计的优势:

  • 不分散注意力:只在需要时出现
  • 快速可达:点击菜单栏图标就能访问功能
  • 节省空间:不占据 Dock
  • 专注核心体验:快捷键是主要交互,菜单栏只做配置和管理

潜在的改进方向

尽管 Voxt 设计精良,但仍有一些可以探索的方向:

1. 跨平台支持

目前仅限 macOS。如果未来能支持 Windows / Linux,会吸引更多用户。虽然这会增加复杂性,但 Swift 在跨平台上的进展值得关注。

2. 多语言识别

目前的模型主要针对英文和中文。支持更多语言(日文、韩文、阿拉伯语等)的 STT 模型会增加应用的全球适用性。

3. 上下文理解

未来的 AI 可能会理解前面输入过的内容,智能地融合新的语音输入。例如:

之前输入:我喜欢编程
新的语音:最喜欢的语言是 Python
智能输出:我喜欢编程,最喜欢的语言是 Python

4. 自定义快捷键管理

目前的快捷键设置有限。如果能支持更多的快捷键组合,或者针对不同应用的不同快捷键,会更灵活。

5. 实时协作

如果能集成会议应用(Zoom、Teams 等),在会议中直接说话生成字幕或笔记,那就更强大了。


总结

Voxt 是一个小而精的 macOS 应用,用优雅的设计解决了一个真实的问题:如何无缝地进行语音输入和翻译。

聪明的交互设计:两种触发模式,适应不同场景
灵活的引擎架构:支持多种 STT 和 LLM 引擎
隐私优先:提供本地离线方案,尊重用户选择
细致的交互体验:实时反馈、剪贴板安全、智能输出选择
模型的丰富选择:用户可根据需求调优
深度的系统集成:充分利用 macOS 特性

无论你是 macOS 用户想找一个实用的生产力工具,还是开发者想学习如何设计 AI 应用的体验,Voxt 都值得关注。

项目地址:github.com/hehehai/vox…


参考资源