小到什么程度
想在手机、手表或浏览器里离线做语音转写,常用的 Whisper base 也有 145MB。端侧 AI 公司 Cactus Compute 9 月底开源的 Whistle 只有 16.9MB 一个文件,许可证为 Apache 2.0,本周在 Hacker News 上获得较高关注。
它用 8 层编码器加 8 层解码器,支持英语、德语、法语、西班牙语、意大利语、荷兰语和波兰语 7 种语言,能自动判断语种;还提供词级时间戳、按帧输出的语音向量、关键词偏置(让专有名词更容易识别对)和静音检测。运行引擎预编译了 17 个目标平台,从 macOS、Linux、Android、iOS、watchOS 到 Windows on ARM、RISC-V、浏览器和 WASI,Python 里 pip install cactus-needle 即可调用。
速度和准确率的取舍
官方在 Apple M4 Pro CPU 上处理 10 秒音频的对比:
- Whistle(16.9MB):首字延迟 11.1 毫秒,解码每秒 1319 个 token;
- Whisper base(145.3MB):73.2 毫秒,每秒 266 个 token;
- Moonshine tiny v2(41.9MB):22.8 毫秒,每秒 262 个 token。
准确率是互有胜负:按官方图表,Whistle 在 LibriSpeech、SPGISpeech、Earnings-22 和 FLEURS 平均上的词错率低于 Whisper base 和 Moonshine tiny v2,但在 TED-LIUM、会议录音 AMI 和多语种 MLS 平均上落后于 Whisper base。对比用的 Whisper 和 Moonshine 数字来自各自作者公布的结果,不是同一环境下复测。
适合放在哪
单次最多 30 秒音频、转写上限 320 个 token,意味着它更适合语音指令、短消息听写、手表和耳机上的唤醒后识别,而不是整场会议录音;长音频要自己切段。只支持 7 种欧洲语言,中文、日文等不在其中。对想把语音输入做进 App、又不想把录音上传服务器的开发者,它是目前很轻的一个选项,但上线前最好用自己用户的真实录音测一遍词错率。