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 5 分で読めます
オフライン音声文字起こしベンチマーク: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での結果を報告しており、実際にデプロイするモバイルやラップトップのハードウェアでの結果ではありません。

本ベンチマークは、デプロイ時の選択問題に直接対応します。各ターゲットプラットフォームでどのモデル+エンジンの組み合わせがリアルタイム文字起こしを実現できるか、メモリ制約はどうか、という点を実測データで示しています。

方法

Android、iOS、macOSのベンチマークでは、JFKの就任演説をループした30秒のWAVファイル(16kHz、モノラル、PCM 16ビット)を使用しています。Windowsベンチマークでは同じ音源から11秒の抜粋を使用しています(詳細はWindowsセクション参照)。

測定指標(速度のみ — 文字起こし精度/WERは測定対象外):

  • 推論時間:エンジン呼び出しから結果取得までの実測時間
  • tok/s:1秒あたりの出力単語数(高いほど高速)
  • RTF:リアルタイムファクター — 処理時間と音声長の比率(1.0未満=リアルタイムより高速)

テストデバイス:

デバイスチップRAMOS
Samsung Galaxy S10Exynos 98208 GBAndroid 12 (API 31)
iPad Pro 第3世代A12X Bionic4 GBiOS 17+
MacBook AirApple M432 GBmacOS 15+
ノートPCIntel Core i5-1035G18 GBWindows(CPUのみ)

Android の結果

デバイス: Samsung Galaxy S10、Android 12、API 31

Android推論速度 — 1秒あたりのトークン数

モデルエンジンパラメータサイズ対応言語推論時間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 MB欧州25言語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モデルがパス — OOMは0件。唯一の失敗(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 第3世代、A12X Bionic、4 GB RAM

iOS推論速度 — 1秒あたりのトークン数

モデルエンジンパラメータサイズ対応言語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推論速度 — 1秒あたりのトークン数

モデルエンジンパラメータサイズ対応言語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 RAMにより、WhisperKit CoreML経由のWhisper Large v3 Turboを含むすべてのモデルが正常に動作します。

Windows の結果

デバイス: Intel Core i5-1035G1 @ 1.00 GHz (4C/8T)、8 GB RAM、CPUのみ

Windows推論速度 — 1秒あたりの単語数

モデルエンジンパラメータサイズ推論時間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就任演説の1つの録音を使用しています。他の音声特性(ノイズ、アクセント、ドメイン固有の語彙)では結果が異なる可能性があります。
  • Windowsのクリップ長:Windowsは他のプラットフォームの30秒に対して11秒の音声クリップを使用しているため、クロスプラットフォームの速度比較ではこの差を考慮する必要があります。
  • 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)も考慮すべきです。

参考文献

リポジトリ:

モデル:

推論エンジン:

  • sherpa-onnx — Next-gen Kaldi ONNX Runtime
  • whisper.cpp — OpenAI WhisperのC/C++移植版
  • WhisperKit — Apple向けCoreML Whisper
  • MLX — Appleの機械学習フレームワーク
この記事をシェア

VoicePingを無料で試す

AI翻訳で言語の壁を超えましょう。今すぐ無料でお試しください。

無料ではじめる