16.9MB 的语音转文字模型 Whistle:比 Whisper base 小近 9 倍、首字延迟快 6 倍多,支持 7 种语言,可跑在手表和浏览器里

端侧 AI 公司 Cactus Compute 发布开源语音转文字模型 Whistle,单文件仅 16.9MB,以 Apache 2.0 许可证放在 Hugging Face,本周在 Hacker News 上获得较高关注。它支持英语、德语、法语、西班牙语、意大利语、荷兰语和波兰语,可自动识别语种,提供词级时间戳、关键词偏置和静音检测。官方在 Apple M4 Pro CPU 上处理 10 秒音频的测试中,Whistle 首字延迟 11.1 毫秒、解码速度每秒 1319 个 token;同条件下 145.3MB 的 Whisper base 为 73.2 毫秒和每秒 266 个 token。官方称其词错率在 LibriSpeech、Earnings-22 等测试上优于 Whisper base,但在 TED-LIUM、AMI 和多语种 MLS 上落后。单次最多处理 30 秒音频、转写上限 320 个 token。

小到什么程度

想在手机、手表或浏览器里离线做语音转写,常用的 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、又不想把录音上传服务器的开发者,它是目前很轻的一个选项,但上线前最好用自己用户的真实录音测一遍词错率。

via: Cactus 官方博客、Hugging Face 模型页、GitHub 运行引擎