Speech Recognition On-Device AI Benchmark Whisper Moonshine Parakeet SenseVoice Qwen3 ASR Offline Transcription Android iOS macOS Windows

离线语音转写基准测试:在 Android/iOS/macOS/Windows 上评测 16 个模型

Akinori Nakajima - VoicePing 6 分钟阅读
离线语音转写基准测试:在 Android/iOS/macOS/Windows 上评测 16 个模型

在 Android、iOS、macOS 和 Windows 上对 16 个端侧语音识别模型和 9 个推理引擎进行的综合基准测试

源代码:

摘要

我们在 Android、iOS、macOS 和 Windows 全平台上对 16 个端侧语音识别模型进行了基准测试,覆盖 9 个推理引擎,测量推理速度(tok/s)、实时系数(RTF)和内存占用。本基准仅测量速度,不评估转写准确率(WER/CER)。主要发现:推理引擎的选择可使同一模型的性能差异达 51 倍(Android 上 sherpa-onnx vs whisper.cpp);Moonshine Tiny 和 SenseVoice Small 在所有平台上实现最快推理;WhisperKit CoreML 在 4GB 的 iOS 设备上运行 Whisper Tiny 以上模型时会崩溃。所有基准测试应用和结果均已开源。

研究动机

开发音频相关的边缘应用时,开发者面临组合选择难题:数十个 ASR 模型(从 31MB 的 Whisper Tiny 到 1.8GB 的 Qwen3 ASR)、多种推理引擎(ONNX Runtime、CoreML、whisper.cpp、MLX)以及 4 个以上目标平台——每种组合产生截然不同的速度和内存特征。已发布的模型基准通常是在服务器 GPU 上测试的结果,而非模型实际部署的消费级手机和笔记本电脑。

本基准测试直接解决部署选择问题:在每个目标平台上,哪种模型+引擎组合能实现实时转写?内存约束如何?结果使开发者能够基于目标设备类别的实测数据进行选择,而非从 GPU 基准外推。

方法论

Android、iOS 和 macOS 基准测试使用同一个 30 秒 WAV 文件(JFK 就职演说循环片段,16kHz、单声道、PCM 16 位)。Windows 基准测试使用同一来源的 11 秒片段(详见 Windows 部分)。

测量指标(仅测速度——本基准不测量转写准确率/WER):

  • 推理时间:从引擎调用到结果返回的实际用时
  • tok/s:每秒输出单词数(越高越快)
  • RTF:实时系数——处理时间与音频时长的比率(低于 1.0 = 快于实时)

测试设备:

设备芯片内存操作系统
Samsung Galaxy S10Exynos 98208 GBAndroid 12 (API 31)
iPad Pro 第三代A12X Bionic4 GBiOS 17+
MacBook AirApple M432 GBmacOS 15+
笔记本电脑Intel Core i5-1035G18 GBWindows(仅 CPU)

Android 结果

设备: Samsung Galaxy S10, Android 12, API 31

Android 推理速度 — 每秒 Token 数

模型引擎参数量大小支持语言推理时间tok/sRTF结果
Moonshine Tinysherpa-onnx27M~125 MB英语1,363 ms42.550.05
SenseVoice Smallsherpa-onnx234M~240 MBzh/en/ja/ko/yue1,725 ms33.620.06
Whisper Tinysherpa-onnx39M~100 MB99 种语言2,068 ms27.080.07
Moonshine Basesherpa-onnx61M~290 MB英语2,251 ms25.770.08
Parakeet TDT 0.6B v3sherpa-onnx600M~671 MB25 种欧洲语言2,841 ms20.410.09
Android Speech(离线)SpeechRecognizer系统内置50+ 种语言3,615 ms1.380.12
Android Speech(在线)SpeechRecognizer系统内置100+ 种语言3,591 ms1.390.12
Zipformer Streamingsherpa-onnx streaming20M~73 MB英语3,568 ms16.260.12
Whisper Base (.en)sherpa-onnx74M~160 MB英语3,917 ms14.810.13
Whisper Basesherpa-onnx74M~160 MB99 种语言4,038 ms14.360.13
Whisper Smallsherpa-onnx244M~490 MB99 种语言12,329 ms4.700.41
Qwen3 ASR 0.6B (ONNX)ONNX Runtime INT8600M~1.9 GB30 种语言15,881 ms3.650.53
Whisper Turbosherpa-onnx809M~1.0 GB99 种语言17,930 ms3.230.60
Whisper Tiny (whisper.cpp)whisper.cpp GGML39M~31 MB99 种语言105,596 ms0.553.52
Qwen3 ASR 0.6B (CPU)Pure C/NEON600M~1.8 GB30 种语言338,261 ms0.1711.28
Omnilingual 300Msherpa-onnx300M~365 MB1,600+ 种语言44,035 ms0.051.47

16 个模型中 15 个通过 — 0 次 OOM。唯一失败的 Omnilingual 300M 是已知的英语语言检测限制。

Android 引擎对比:相同模型,不同后端

Whisper Tiny 模型在不同推理后端上呈现出巨大的性能差异:

后端推理时间tok/s加速倍数
sherpa-onnx (ONNX)2,068 ms27.0851 倍
whisper.cpp (GGML)105,596 ms0.551 倍(基准)

同一 Whisper Tiny 模型在 Android 上,sherpa-onnx 比 whisper.cpp 快 51 倍——这是开发者选择推理运行时的关键发现。

iOS 结果

设备: iPad Pro 第三代, A12X Bionic, 4 GB RAM

iOS 推理速度 — 每秒 Token 数

模型引擎参数量大小支持语言tok/s状态
Parakeet TDT v3FluidAudio (CoreML)600M~600 MB (CoreML)25 种欧洲语言181.8
Zipformer 20Msherpa-onnx streaming20M~46 MB (INT8)英语39.7
Whisper Tinywhisper.cpp39M~31 MB (GGML Q5_1)99 种语言37.8
Moonshine Tinysherpa-onnx offline27M~125 MB (INT8)英语37.3
Moonshine Basesherpa-onnx offline61M~280 MB (INT8)英语31.3
Whisper BaseWhisperKit (CoreML)74M~150 MB (CoreML)英语19.6❌ 4GB OOM
SenseVoice Smallsherpa-onnx offline234M~240 MB (INT8)zh/en/ja/ko/yue15.6
Whisper Basewhisper.cpp74M~57 MB (GGML Q5_1)99 种语言13.8
Whisper SmallWhisperKit (CoreML)244M~500 MB (CoreML)99 种语言6.3❌ 4GB OOM
Qwen3 ASR 0.6BPure C (ARM NEON)600M~1.8 GB30 种语言5.6
Qwen3 ASR 0.6B (ONNX)ONNX Runtime (INT8)600M~1.6 GB (INT8)30 种语言5.4
Whisper TinyWhisperKit (CoreML)39M~80 MB (CoreML)99 种语言4.5
Whisper Smallwhisper.cpp244M~181 MB (GGML Q5_1)99 种语言3.9
Whisper Large v3 Turbo(压缩)WhisperKit (CoreML)809M~1 GB (CoreML)99 种语言1.9❌ 4GB OOM
Whisper Large v3 TurboWhisperKit (CoreML)809M~600 MB (CoreML)99 种语言1.4❌ 4GB OOM
Whisper Large v3 Turbowhisper.cpp809M~547 MB (GGML Q5_0)99 种语言0.8⚠️ RTF >1
Whisper Large v3 Turbo(压缩)whisper.cpp809M~834 MB (GGML Q8_0)99 种语言0.8⚠️ RTF >1

WhisperKit OOM 警告:在 4GB 设备上,WhisperKit CoreML 运行 Whisper Base 及以上模型时会崩溃(OOM)。OOM 标记模型的 tok/s 值是在崩溃前测得的,不代表完整的成功运行。whisper.cpp 可以在不发生 OOM 的情况下处理相同模型,但吞吐量较低。

macOS 结果

设备: MacBook Air M4, 32 GB RAM

macOS 推理速度 — 每秒 Token 数

模型引擎参数量大小支持语言tok/s状态
Parakeet TDT v3FluidAudio (CoreML)600M~600 MB (CoreML)25 种欧洲语言171.6
Moonshine Tinysherpa-onnx offline27M~125 MB (INT8)英语92.2
Zipformer 20Msherpa-onnx streaming20M~46 MB (INT8)英语77.4
Moonshine Basesherpa-onnx offline61M~280 MB (INT8)英语59.3
SenseVoice Smallsherpa-onnx offline234M~240 MB (INT8)zh/en/ja/ko/yue27.4
Whisper TinyWhisperKit (CoreML)39M~80 MB (CoreML)99 种语言24.7
Whisper BaseWhisperKit (CoreML)74M~150 MB (CoreML)英语23.3
Apple SpeechSFSpeechRecognizer系统内置50+ 种语言13.1
Whisper SmallWhisperKit (CoreML)244M~500 MB (CoreML)99 种语言8.7
Qwen3 ASR 0.6B (ONNX)ONNX Runtime (INT8)600M~1.6 GB (INT8)30 种语言8.0
Qwen3 ASR 0.6BPure C (ARM NEON)600M~1.8 GB30 种语言5.7
Whisper Large v3 TurboWhisperKit (CoreML)809M~600 MB (CoreML)99 种语言1.9
Whisper Large v3 Turbo(压缩)WhisperKit (CoreML)809M~1 GB (CoreML)99 种语言1.5
Qwen3 ASR 0.6B (MLX)MLX (Metal GPU)600M~400 MB (4-bit)30 种语言未测试
Omnilingual 300Msherpa-onnx offline300M~365 MB (INT8)1,600+ 种语言0.03❌ 英语不可用

macOS 无 OOM 问题 — 凭借 32GB 内存,包括 WhisperKit CoreML 运行的 Whisper Large v3 Turbo 在内的所有模型均可正常运行。

Windows 结果

设备: Intel Core i5-1035G1 @ 1.00 GHz (4C/8T), 8 GB RAM, 仅 CPU

Windows 推理速度 — 每秒单词数

模型引擎参数量大小推理时间Words/sRTF
Moonshine Tinysherpa-onnx offline27M~125 MB435 ms50.60.040
SenseVoice Smallsherpa-onnx offline234M~240 MB462 ms47.60.042
Moonshine Basesherpa-onnx offline61M~290 MB534 ms41.20.049
Parakeet TDT v2sherpa-onnx offline600M~660 MB1,239 ms17.80.113
Zipformer 20Msherpa-onnx streaming20M~73 MB1,775 ms12.40.161
Whisper Tinywhisper.cpp39M~80 MB2,325 ms9.50.211
Omnilingual 300Msherpa-onnx offline300M~365 MB2,360 ms0.215
Whisper Basewhisper.cpp74M~150 MB6,501 ms3.40.591
Qwen3 ASR 0.6Bqwen-asr (C)600M~1.9 GB13,359 ms1.61.214
Whisper Smallwhisper.cpp244M~500 MB21,260 ms1.01.933
Whisper Large v3 Turbowhisper.cpp809M~834 MB92,845 ms0.28.440
Windows SpeechWindows Speech APIN/A0 MB

使用 11 秒 JFK 就职演说音频片段(22 个单词)进行测试。所有模型均在 x86_64 CPU 上运行(i5-1035G1, 4C/8T)——无 GPU 加速。Parakeet TDT v2 兼具快速推理(17.8 words/s)和标点输出功能,表现突出。

局限性

  • 仅测速度:本基准仅测量推理速度,不评估转写准确率(WER/CER)。准确率因模型、语言和音频条件而异,开发者应针对目标场景单独评估。
  • 单一音频样本:所有平台使用同一段 JFK 就职演说录音,其他音频特征(噪声、口音、领域词汇)可能产生不同结果。
  • Windows 片段长度:Windows 使用 11 秒音频片段,而其他平台使用 30 秒,跨平台速度比较时应考虑此差异。
  • iOS OOM 数值:标记为 OOM 的 iOS 模型的 tok/s 值是在崩溃前测得的,不代表完整成功的运行。

未来研究方向

  • 增加准确率基准:将速度指标与多语言数据集及噪声环境下的 WER/CER 相结合。
  • 扩展音频条件:在单一语音样本之外,增加长音频、多人重叠说话及领域词汇(会议、呼叫中心、工业场景)。
  • 量化全面测试:在各引擎上对 INT8/INT4 和混合精度变体进行基准测试,绘制内存/速度/准确率权衡曲线。
  • 更小的 Qwen3-ASR 模型:测试 Qwen3-ASR-0.6B 及未来低于 1B 的检查点,验证速度提升是否足以弥补质量损失。
  • 功耗与温度分析:测量持续端侧转写工作负载的电池消耗和持续性能。

结论

端侧语音转写在所有主流移动和桌面平台上均可实现超实时速度。推理引擎的选择与模型选择同样重要——Android 上的 sherpa-onnx 和 Apple 平台上的 CoreML 相比朴素 CPU 推理可带来 10~50 倍的加速。在最快的模型中,Moonshine Tiny(英语)或 Whisper Tiny(多语言)搭配合适的引擎,能以极低的内存开销实现实时转写。模型选择时还应考虑本基准未测量的转写准确率(WER)。

参考资料

我们的仓库:

模型:

推理引擎:

分享这篇文章

免费试用 VoicePing

借助 AI 翻译跨越语言障碍。立即开始使用免费计划。

免费开始