在光标处本地语音转文字:Voicetypr
我经常发现自己有这样的想法——为神经网络编写长提示词或为 Pull Request 写详细评论实在太繁琐了。手指疲劳、思路混乱、还要反复修改草稿。语音输入似乎能解决这个问题,但 macOS 和 Windows 的标准系统工具效果并不理想。第三方云端工具如 Wispr Flow 需要订阅,而且所有语音都要经过外部服务器,这对处理机密代码或工作相关的聊天内容来说显然不可行。
最近我发现了一个有趣的项目——Voicetypr。这是一个采用 AGPL-3.0 许可证的开源桌面应用,能将识别的语音直接插入到光标所在位置。而且它完全在本地机器上运行。
这个应用能做什么
核心思想很简单:按下全局快捷键,对着麦克风说话,松开按键,完整的句子就会立即出现在当前输入框中。无论是 VS Code 编辑器、终端、即时通讯工具还是浏览器。
以下是作者在这个工具中集成的几项功能:
- 设备端识别。在 macOS 和 Windows 上,Whisper 模型可以正常工作,而配备 Apple Silicon 芯片的 Mac 还可以连接优化过的 Parakeet 模型。
- LLM 格式化。原始听写内容通常充满语气词和不自然的停顿。应用可以将草稿文本通过 OpenAI、Anthropic、Gemini 或任何自定义本地端点处理,输出整洁的段落。
- 现有媒体文件的转录。可以拖放音频或视频文件并获取文字稿。
- 录音历史。所有转录内容都保存在界面中并附带元数据,可以对比原文和编辑版本或回放录音。
- 局域网服务器模式。如果一台电脑有强大的显卡,可以将 Voicetypr 设置为本地转录服务器,从性能较弱的笔记本发送音频。
顺便说一句,如果本地算力不够,可以在设置中切换到云端识别服务:Groq、Deepgram、OpenAI、Soniox 或 Cohere。但 Voicetypr 的核心设计是默认情况下音频流永远不会离开你的电脑。
用于自动化和本地代理的 CLI
开发者很少在类似的 GUI 工具中考虑的一个有趣细节:Voicetypr 附带内置的控制台接口。
命令可以直接从程序设置中安装。这样就可以从 bash 脚本调用识别引擎或连接到本地 AI 代理:
# Проверить статус приложения
voicetypr status --json
# Посмотреть доступные модели
voicetypr models --json
# Расшифровать аудиофайл и получить структурированный JSON
voicetypr transcribe --file note.wav --json
# Записать голос с микрофона до наступления тишины
voicetypr record --until-silence --json
使用 --json 标志可以返回结构化响应,因此结果易于用标准 jq 解析或继续在管道中处理。
底层工作原理
应用的技术栈选择相当务实。作者选择了Tauri v2和Rust来处理繁重的系统工作,界面则用 React 19、TypeScript、Tailwind CSS 和 shadcn/ui 编写。
热键拦截、麦克风采集、音频重采样和向活动窗口模拟输入这些工作全部由 Rust 后端承担。相比典型的 Electron 应用,这带来了更快的响应速度和更低的内存占用。
在 Windows 上,本地 Whisper 可以使用 Vulkan 进行 GPU 加速。这个过程被隔离在独立的 sidecar 中。如果显卡驱动出现问题,应用会静默切换到 CPU 计算,而不会导致主程序崩溃。
如何构建和运行
如果你想从源码自己构建项目,需要准备 Node.js 和 pnpm 包管理器、Rust 工具链,以及操作系统的基础构建工具(macOS 上是 Xcode CLI,Windows 上是 Visual Studio Build Tools)。
构建通过标准命令启动:
git clone https://github.com/moinulmoin/voicetypr.git
cd voicetypr
pnpm install
pnpm tauri:dev
仓库中也有现成的测试和 linter:
pnpm lint
pnpm test
pnpm test:backend
pnpm quality-gate
对于不想手动编译的用户,GitHub releases 和官网提供了 macOS 的签名 DMG 包以及 Windows 10/11 的安装程序。
为什么开发者需要这个
首先,Voicetypr 对那些需要撰写大量文本的人特别有用:维护文档、在 issue 追踪器中起草任务,或在 Cursor 和 Claude Dev 中与神经网络交互。用语音在二十秒内口述复杂的上下文比手动输入五段文字要轻松得多。
第二个明显的场景是隐私。如果你处理保密协议或不想将语音记录交给第三方公司,结合本地 Whisper 和 Ollama 本地推理就能完全解决这个问题。
该项目目前在 GitHub 上的星标数相对较少,但代码库看起来很整洁,Tauri 配合 Rust 的组合运行速度很快。这绝对值得一试,尤其是如果你一直在寻找免费替代专有听写应用的话。
相关项目