做语音识别的应该都用过 OpenAI 的 Whisper,确实是开源 ASR 领域的标杆。但用过的人也知道,Whisper 有个很烦的问题:它是为离线批处理设计的,做实时语音交互的时候延迟太高。
最近发现一个叫 Moonshine 的项目,专门解决这个痛点。看了下数据,还挺有意思的。
先说结论:到底快多少?
直接上对比数据(在 MacBook Pro 上测的):
| 模型 | 词错率 (WER) | 参数量 | 延迟 |
|---|---|---|---|
| Moonshine Medium | 6.65% | 245M | 107ms |
| Whisper Large v3 | 7.44% | 1.5B | 11286ms |
| Moonshine Small | 7.84% | 123M | 73ms |
| Whisper Small | 8.59% | 244M | 1940ms |
看到没?Moonshine Medium 的准确率比 Whisper Large v3 还高一点点,但延迟从 11 秒降到了 107 毫秒。这不是优化,这是降维打击。
为什么 Whisper 做实时不行?
Whisper 有个设计上的硬伤:它固定用 30 秒的输入窗口。
处理录音文件的时候这没问题,反正可以往后看,凑够 30 秒再处理。但做实时语音交互就麻烦了,用户说一句话通常也就 5-10 秒,剩下的时间全在处理空白填充。
这就导致两个问题:
- 计算浪费,大量算力花在处理 padding 上
- 延迟高,用户说完话要等好几秒才有响应
做过语音助手的都知道,200ms 以内的响应才算流畅。Whisper 那个延迟,用户体验直接拉胯。
Moonshine 怎么解决的?
他们从头训练了一套模型,专门为流式处理优化:
- 不需要固定窗口,可以处理任意长度的音频片段
- 边说边处理,用户还在说话的时候就开始识别
- 模型更小,Tiny 版本只有 26MB,可以跑在树莓派上
而且准确率还不差。他们在 Hugging Face 的 ASR 排行榜 上,顶配模型比 Whisper Large v3 还高。
支持的平台
这点我觉得做得挺到位的,基本上主流平台全覆盖了:
- Python(pip install moonshine-voice)
- iOS 和 Android
- MacOS、Linux、Windows
- 树莓派和 IoT 设备
而且是同一套库,不是各平台单独实现的。这对于跨平台开发来说省了不少事。
支持的语言
目前支持:英语、西班牙语、中文、日语、韩语、越南语、乌克兰语、阿拉伯语。
中文支持这点对国内开发者挺重要的。
上手有多简单?
Python 的话,两行代码就能跑起来:
pip install moonshine-voice
python -m moonshine_voice.mic_transcriber --language en它会监听麦克风,实时输出识别结果。
我的看法
如果你在做语音助手、实时字幕、语音控制的 IoT 设备,或者任何需要低延迟语音识别的场景,Moonshine 值得试试。特别是边缘设备场景,Tiny 模型 26MB 加上 34ms 延迟,这个组合很能打。
当然,如果你只是处理录音文件,不在乎延迟,Whisper 依然是很好的选择。工具没有绝对的好坏,看场景。
项目地址:github.com/moonshine-ai/moonshine
官网:moonshine.ai