CapsWriter-Offline 最近更新了 v2.5 正式版,用上了 Qwen3-ASR 模型,准确率独一档地顶级,推理速度我也做到了硬件极限的最快,加上带有别名功能的自定义热词,我自认为把电脑端的语音输入体验做到极致了。补充一点它的起源吧。
CapsWriter-Offline 起源
2020年10月,因手机上的语音输入法很好用,但电脑上却没有足够好用的语音输入法,我手写了一个工具 CapsWriter,通过长按大写锁定键录音,松开后,调用阿里云的一句话识别 API,识别后上屏。12月的时候,还加入图形化界面。但当时大学宿舍的校园网经常抽风,没有稳定的网络环境,转录延迟飘忽不定。有时候说完话了,等了好几秒,才发现 WiFi 没有连接,毁心态。但是当时并没有识别率能满足要求的离线中文 ASR 模型。
后来 Whisper 发布,中文识别率确实不错,但是模型延迟很高,无法满足本地语音输入。
到了2023年5月,在B站看到了 极客湾 的视频 我们做了个能对话的AI派蒙,免费给大家玩! ,他们实现的效果非常好,其中提到 ASR 模型用了阿里 FunASR 团队发布的开源 Paraformer 模型,于是就拿来测试了下,果然识别准确率很棒、延迟超低,于是弃坑 CapsWriter ,立马新开了 CapsWriter-Offline ,用 sherpa-onnx 调用 Paraformer 进行转录,效果非常好。
2025年12月09日,我看到阿里 FunASR 团队开源了 Fun-ASR-Nano 模型,拿来一测,果然准确率又上一个台阶,在 sherpa_onnx 支持后,我赶紧更新了 CapsWriter-Offline v2.1,一次性加入了 SenseVoice-Small 和 Fun-ASR-Nano 模型的支持。但问题是当时 sherpa_onnx 是用 ONNX 实现的 Fun-ASR-Nano,速度有些慢。
我研究了 Fun-ASR-Nano 的架构,发现它的 Decoder 是 LLM 架构,而推理 LLM 最快的是 LLama.cpp 。虽然我编程能力差,但刚好此时,Google 推出了 Antigravity AI 编程 IDE,里面有 Gemini 和 Claude 模型,在他们的帮助下,我成功写出了 Fun-ASR-GGUF,用 onnx 和 gguf 格式混合运行 Fun-ASR-Nano,用 LLama.cpp 加速它的 LLM Decoder 部分,在我的笔记本上实现了最快的推理速度:
| 设备 | RTF |
|---|---|
| GPU RTX5050 | 0.025 |
| CPU U9-285H | 0.1 |
2026年01月21日,Qwen3-TTS 开源发布了,生成效果极其优异,让我特别想要,但官方版本推理速度很慢,于是基于 Fun-ASR-GGUF 的加速推理经验,在 Antigravity 的帮助下,我又实现了 Qwen3-TTS-GGUF ,也是用 LLama.cpp 加速它的 LLM Decoder 部分。
2026年01月28日,间隔没几天,Qwen3-ASR 开源发布了,本来没抱太大预期的,但下载 1.7B 一测后,又给我震惊了,准确率竟比 Fun-ASR-Nano 还上一个台阶,能吊打闭源模型!于是在 Qwen3-TTS-GGUF 经验的帮助下,我马不停蹄地实现了 Qwen3-ASR-GGUF 加速推理,实现了最快的推理速度:
| 设备 | RTF |
|---|---|
| GPU RTX5050 | 0.05 |
| CPU U9-285H | 0.2 |
这就是 CapsWriter-Offline 大致的来路。总体就是这几个组件:
- 模型推理
- 热词替换
- 按键监听与录音
当前只有 Windows 的打包,是因为我只有 Windows 电脑,没有 Linux 与 MacOS 的需求。在 Vibe Coding 时代,我相信需求的小伙伴在 Claude Code 的帮助下,也能在其系统上做出类似功能的实现。