更新(2026-07-15): 第2弾を公開しました。多くの読者から要望のあったNVIDIA Parakeet TDT v2/v3との比較、そしてMOSS-Transcribe-Diarizeを、同一のコーパス・同一の採点方法で計測しています。
結論から先に
Appleの新しいSpeechAnalyzerは、私たちがテストしたオンデバイス音声認識エンジンの中で最も高精度でした。当時アプリに搭載していたすべてのWhisperモデル——Whisper Smallを含む——を、LibriSpeechのクリーンな半分でもノイズの多い半分でも上回り、しかもSmallの約3倍の速度で動作しました。そして置き換え対象の旧API、SFSpeechRecognizerはクリーン音声で最下位。わずか40MBのモデルであるWhisper Tinyにも及びませんでした。
| エンジン | test-clean WER | test-other WER | モデルサイズ |
|---|---|---|---|
| Apple SpeechAnalyzer(iOS/macOS 26) | 2.12% | 4.56% | システム内蔵 |
| Whisper Small(WhisperKit CoreML) | 3.74% | 7.95% | ~460MB |
| Whisper Base | 5.42% | 12.51% | ~140MB |
| Whisper Tiny | 7.88% | 17.04% | ~40MB |
| Apple SFSpeechRecognizer(旧API) | 9.02% | 16.25% | システム内蔵 |
数値は低いほど優秀です。WER(単語誤り率)は、エンジンが単語を置き換えたり、落としたり、勝手に作り出したりする割合を表します。LibriSpeech test-cleanはクリーンな朗読音声2,620発話、test-otherはより難しくノイズの多い2,939発話です。すべてのエンジンをApple M2 Pro(32GB、macOS 26.5.1)上で完全オンデバイスで実行しました。
なぜこのベンチマークを実施したのか
iOS 26とmacOS 26で、AppleはSFSpeechRecognizerを新しいAPI——SpeechAnalyzerとSpeechTranscriber——に置き換えました。しかし、どちらについても精度の数値をいっさい公表していません。そのため、移行すべきか判断したい開発者も、Apple標準の音声認識とWhisperを比べたい人も、これまで推測に頼るしかありませんでした。
このベンチマークを行った当時、プライベートなオンデバイスAIワークスペースであるLyonesseには、Appleの両エンジンと3つのWhisperモデルが並んで搭載されていました。これは珍しい立場です。5つのエンジンすべてを、同じマシン・同じ音声・まったく同一の本番コードパスで実行できるのですから。だから、実際にやってみました。
SFSpeechRecognizerから移行すべきか?
移行すべきです。これはデータ全体で最も明確な結果です。新APIは同じ音声に対して単語誤り率を3.5〜4分の1に削減します。クリーン音声で9.02%から2.12%へ、ノイズの多い音声で16.25%から4.56%へ。天秤にかけるべき精度上のトレードオフは存在しません。計測したすべての条件で新APIが勝ち、しかも旧エンジンの粗い出力と違い、句読点と大文字・小文字の整ったテキストを生成します。
言い換えると、1時間の会議を旧APIで文字起こしすると、SpeechAnalyzerで処理した同じ会議のおよそ4倍の誤った単語が議事録に混入することになります。音声コマンドより長いもののためにSFSpeechRecognizerをまだ使っているアプリなら、精度だけを理由にしても移行の価値があります。
SpeechAnalyzer vs Whisper
より意外だったのはこちらの結果です。Appleの新エンジンは、当時搭載していた最大のモデルであるWhisper Smallにも、両方のデータ分割で余裕のある差をつけて勝ちました。しかも音声1秒あたりの計算時間はWhisper Smallの約3分の1です。英語に関して、Appleハードウェア上では、OS内蔵エンジンが私たちの計測できる範囲で最強のオンデバイスの選択肢になりました。
Whisperには今も2つの実質的な強みがあります。対応言語数がはるかに多いこと(SpeechTranscriberの対応は約30ロケール)、そしてOS 26搭載のAppleプラットフォームに限らずどこでも動くことです。しかし、最新のiPhoneやMacでの英語の文字起こしに関しては、「精度ならとりあえずWhisper」という時代は終わりました。
この結果を受けて、私たちは自社製品も変更しました。LyonesseのAutoエンジンは、対応言語ではSpeechAnalyzerを優先するようになりました(第2弾の後はさらに進み、Lyonesse 1.8.9でWhisperモデルは完全に廃止され、フォールバックエンジンはNVIDIA Parakeetに置き換わりました)。ベンチマークを公開しておきながら自分たちのデフォルト設定でそれを無視するとしたら、それは奇妙な誠実さでしょう。
速度
5つのエンジンはいずれもリアルタイムを大きく上回る速度で動作しました。M2 Pro上でおよそ12倍から40倍——つまり1時間の音声が、オンデバイスで約1.5〜5分で文字起こしされる計算です。SpeechAnalyzerは音声1秒あたりでWhisper Smallの約3倍速く、そのうえ精度でも勝っています。エンジンごとの正確なタイミング表をまだ掲載しないのは意図的です。精度計測の実行中、マシンでは開発作業が並行していました。これはWERには影響しませんが、速度計測にはノイズが乗ります。アイドル状態での専用実行によるタイミングが取れ次第、このページを更新します。
計測方法——そして検証できる理由
比較対象のエンジンの一つを製品として販売している企業のベンチマークは、疑ってかかるべきものです。私たちのベンチマークには、その疑いに応えるために設計された2つの性質があります。
Whisperの数値はOpenAI自身の公表値に対して再現可能
LibriSpeechを選んだのはまさに、OpenAIがWhisperのWERを公表しているからです。私たちのハーネスがWhisperを正しく計測できているなら、私たちの数値はOpenAIの数値に重なるはずです。実際、6つの計測すべてで重なりました。
| エンジン / データ分割 | 当社計測値 | OpenAI公表値 | 差分 |
|---|---|---|---|
| Whisper Tiny、test-clean | 7.88% | 7.6% | +0.28 |
| Whisper Base、test-clean | 5.42% | 5.0% | +0.42 |
| Whisper Small、test-clean | 3.74% | 3.4% | +0.34 |
| Whisper Tiny、test-other | 17.04% | 16.9% | +0.14 |
| Whisper Base、test-other | 12.51% | 12.4% | +0.11 |
| Whisper Small、test-other | 7.95% | 7.6% | +0.35 |
小さく一貫したプラス方向のずれ(わずかに厳しめのテキスト正規化器とCoreML量子化によるもの)こそ、誠実な再現の姿です。ランダムな誤差なら両方向に散らばるはずです。同じコーパス、同じ正規化器、同じ採点器がApple側の数値も算出しているので、誰も検証できない数値は、誰でも検証できる数値からその裏付けを受け継ぎます。
生の文字起こしデータを公開
Appleの両エンジンについて、発話ごとの認識結果すべてを、参照テキストおよび発話ごとのWERとともに以下からダウンロードできます。私たちの正規化に異議がありますか? ご自身で再採点してください。
- summary.json - 全10計測値、機械可読形式(3KB)
- raw-transcripts-apple.json.gz - SpeechAnalyzer、全5,559発話(620KB)
- raw-transcripts-legacy.json.gz - SFSpeechRecognizer、全5,559発話(620KB)
WERの数値に意味があるかどうかを分ける細部
- 同一の本番コードパス。各エンジンは、バッファリングや設定の異なる実験用ハーネスではなく、Lyonesseのユーザーが実際に使うコードそのものを通して実行されました。
- テキスト正規化。LibriSpeechの参照テキストは大文字のみ・句読点なし・数字はスペルアウト表記ですが、現代のエンジンは句読点や数字を出力します。両者を同じ正規化器(大文字小文字、句読点、数字の単語化、短縮形)に通し、OpenAIの英語正規化器に倣いました。生テキストのまま採点すると、聞き間違いではなく、きれいに整形したことでエンジンを罰することになります。
- 平均WERではなくコーパスWER。総誤り数を参照単語の総数で割ることで、短い発話が過大に重み付けされないようにしました。
- 完全オンデバイスを検証済み。SFSpeechRecognizerはデフォルトで音声をAppleのサーバーに送信します。私たちはオンデバイス認識を強制し、クラウドへ黙ってフォールバックするくらいなら実行そのものを拒否するようハーネスを作りました。クラウドの結果が混ざれば比較が無効になるからであり、そもそもプライバシー重視の製品から5,559件の発話をアップロードするつもりなど毛頭なかったからです。
- 失敗も隠さずカウント。何も返さなかったエンジンには、その発話でWER 100%が付きます。27,795回の文字起こしのうち、発生したのは1回でした(旧API、test-other)。
ベンチマーク構築が自社アプリについて教えてくれたこと
このベンチマークは、出荷済みのLyonesse本体にあったバグを1つ発見しました。Appleエンジンでのファイル取り込み処理は、SpeechAnalyzerに音声を渡して入力ストリームを閉じていたものの、finalizeAndFinishThroughEndOfInput()を呼んでいませんでした。この呼び出しがないとアナライザーは最終結果を決して返さず、取り込みは永遠に固まります。Auto設定がWhisperを優先していたため、これまで誰も気づかなかったのです。修正は同日中にリリースしました。ハーネスの詳細まで公開しているのは、これも理由の一つです。自分の製品を丁寧に計測すると、探してもいなかった問題まで見つかるものです。
制約と限界
- 英語のみ。LibriSpeechは英語の朗読音声です。この数値は、Whisperが対応しSpeechTranscriberが対応しない100以上の言語については何も語りません。
- 朗読音声であり、会議音声ではない。LibriSpeechは標準的で比較可能なコーパスであり、だからこそ出発点に選びました。訛りのある音声、遠距離マイク、複数話者の会議音声は当然の次のステップです。
- 1台のマシンのみ。M2 Pro、macOS 26.5.1。精度はApple Silicon全般に転用できるはずですが、速度はチップによって変わります。
- WhisperはWhisperKit CoreML経由。量子化されたオンデバイス変換版で、当時Lyonesseが搭載していたビルドそのものです(1.8.9以降、アプリはWhisperに代わってNVIDIA Parakeetを搭載しています)。リファレンスのGPU実装とはわずかに差が出る可能性があり、その差は上の検証テーブルが定量化しています。
とにかく高精度な文字起こしが欲しい人にとっての意味
最新のiPhoneやMacをお使いなら、英語向けの最高のオンデバイス文字起こしエンジンはすでにOSに組み込まれており、プライベートな選択肢はもはや妥協の選択肢ではありません。Lyonesseはまさにここで計測したエンジンを使っています。対応言語ではSpeechAnalyzer、非対応言語では(当時は)Whisper——文字起こしはすべて完全オンデバイスで実行され、音声がアップロードされることはありません。ベンチマークは製品と別物ではなく、製品の挙動を決めるための手段そのものなのです。