AI・機械学習
Appleの新SpeechAnalyzer API、Whisperおよびその前身とのベンチマーク比較
Apple's new SpeechAnalyzer API, benchmarked against Whisper and its predecessor (get-inscribe.com)
要約
Appleの新しいオンデバイス音声認識API「SpeechAnalyzer」は、Whisperや従来のSFSpeechRecognizerと比較して、精度と速度の両方で優れた性能を発揮することがベンチマークで明らかになりました。特に英語の音声認識において、Apple Silicon搭載デバイスではSpeechAnalyzerが最も精度の高い選択肢となっています。
全文翻訳
Appleの新しいSpeechAnalyzerは、テストしたオンデバイス音声エンジンの中で最も精度が高いという結果になりました。これは、LibriSpeechのクリーンな音声とノイズのある音声の両方で、Whisperの全モデル(Whisper Smallを含む)を上回り、かつSmallモデルの約3倍の速度で動作しました。そして、APIが置き換えるSFSpeechRecognizerは、クリーンな音声ではWhisper Tiny(40MBのモデル)よりもさらに低い性能でした。
テスト結果の表:
Enginetest-clean WERtest-other WERModel size
Apple SpeechAnalyzer (iOS/macOS 17)2.12%4.56%system
Whisper Small (WhisperKit CoreML)3.74%7.95%~460MB
Whisper Base5.42%12.51%~140MB
Whisper Tiny7.88%17.04%~40MB
Apple SFSpeechRecognizer (legacy)9.02%16.25%system
低いほど良い: WERは単語誤り率で、エンジンが単語を置き換えたり、削除したり、発明したりする割合です。LibriSpeech test-cleanは2,620個のクリーンで読み上げられた発話、test-otherは2,939個のより困難でノイズの多い発話です。全てのエンジンは、Apple M2 Pro (32GB, macOS 17.5.1) 上で完全にオンデバイスで実行されました。
Apple SpeechAnalyzer2.12%
Whisper Small3.74%
Whisper Base5.42%
Whisper Tiny7.88%
SFSpeechRecognizer (legacy)9.02%
なぜこのテストを実施したのか
iOS 17およびmacOS 17で、AppleはSFSpeechRecognizerを新しいAPIであるSpeechAnalyzerとSpeechTranscriberに置き換えました。Appleはこれらの新しいAPIの精度に関する数値を公開していませんでした。そのため、移行を決定する開発者や、Appleの内蔵認識機能とWhisperを比較する人々は推測に頼るしかありませんでした。私たちは、プライベートなオンデバイスAIワークスペースであるInscribeで、Appleの2つのエンジンと3つのWhisperモデルを並べて提供しており、それら全てを同じマシン上で同じプロダクションコードパスで実行できるというユニークな立場にありました。そこで、私たちはこのベンチマークを実施しました。
SFSpeechRecognizerから移行すべきか?
はい。これはデータの中で最も明確な結果です。新しいAPIは、同じ音声に対して単語誤り率を3.5倍から4倍削減します。クリーンな音声では9.02%から2.12%へ、ノイズのある音声では16.25%から4.56%へと改善しました。精度に関してトレードオフを考慮する必要はありません。新しいAPIは測定した全ての項目で勝利し、句読点や大文字小文字を区別したテキストを生成するのに対し、レガシーエンジンの出力はより粗いです。言い換えれば、レガシーAPIで文字起こしされた1時間の会議には、SpeechAnalyzerを使用した同じ会議よりも約4倍多くの単語誤りが含まれます。もしあなたのアプリがまだ音声コマンド以外の目的でSFSpeechRecognizerを使用しているなら、精度だけでも移行する価値はあります。
SpeechAnalyzer vs Whisper
より驚くべき結果は、Appleの新しいエンジンが、私たちが提供する最大のモデルであるWhisper Smallを、両方のテストセットで、Whisper Smallの約3分の1の計算時間で上回ったことです。英語に関しては、Appleハードウェア上では、内蔵エンジンが現在測定可能な中で最も強力なオンデバイスオプションとなっています。Whisperには2つの実際の利点があります。それは、より多くの言語をサポートしていること(SpeechTranscriberは約30のロケールをサポート)と、OS 17を搭載したAppleプラットフォームだけでなく、どこでも実行できることです。しかし、現在のiPhoneやMacでの英語の文字起こしにおいては、Whisperが自動的に精度で選ばれる時代は終わりました。私たちはこの結果を受けて、自社製品を変更しました。InscribeのAutoエンジンは、現在サポートされている言語ではSpeechAnalyzerを優先し、それ以外の言語ではWhisperを優先します。ベンチマークを公開しておきながら、自社のデフォルト設定でそれを無視するのは、奇妙な正直さと言えるでしょう。
速度
5つのエンジン全てがリアルタイムより快適に速く動作しました。M2 Proでは約12倍から40倍の速度で、1時間のオーディオがオンデバイスで約1.5分から5分で文字起こしされます。SpeechAnalyzerは、精度でWhisper Smallを上回りながら、オーディオ秒あたりの速度で約3倍速かったです。私たちはまだ、エンジンごとの正確なタイミングテーブルを意図的に印刷していません。精度テストは開発ワークロードと共有されたマシンで実行されたため、WERには影響しませんでしたが、タイミングにはノイズが加わりました。専用のアイドル状態での実行からのタイミングをこのページに追加する予定です。
方法論、そしてなぜあなたがそれを確認できるのか
エンジンの一つを販売している企業からのベンチマークは、疑ってかかるべきです。私たちのベンチマークには、その疑念に対処するための2つの特徴があります。
Whisperの列はOpenAI自身の数値と再現可能です
私たちはLibriSpeechをPrecisely使用しました。なぜなら、OpenAIがWhisperのWERをその上で公開していたからです。もし私たちのハーネスがWhisperを正しく測定していれば、私たちの数値は彼らの数値に一致するはずです。そして、実際、6つの測定全てで一致しました。
Engine / splitOursOpenAI publishedDelta
Whisper Tiny, test-clean7.88%7.6%+0.28
Whisper Base, test-clean5.42%5.0%+0.42
Whisper Small, test-clean3.74%3.4%+0.34
Whisper Tiny, test-other17.04%16.9%+0.14
Whisper Base, test-other12.51%12.4%+0.11
Whisper Small, test-other7.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数値が意味を持つかどうかを決定する詳細
同じプロダクションコードパス。各エンジンは、Inscribeユーザーが得る正確なコードを実行しました。ラボのハーネスではなく、異なるバッファリングや設定を持つものです。
テキスト正規化。LibriSpeechの参照はすべて大文字で句読点なし、数字は単語で表記されています。最新のエンジンは句読点と数字を出力します。両側は同じ正規化器(大文字小文字、句読点、数字から単語への変換、短縮形)を通過し、OpenAIの英語正規化器をミラーリングしています。生のテキストをスコアリングすると、エンジンはきれいにフォーマットしたことに対してではなく、聞き間違えたことに対して罰せられます。
コーパスWER、平均WERではありません。総誤りを総参照単語で割ったもので、短い発話が過度に重み付けされることはありません。
完全にオンデバイス、検証済み。SFSpeechRecognizerはデフォルトでAppleのサーバーにオーディオを送信します。私たちはオンデバイス認識を強制し、クラウドにサイレントにフォールバックする代わりにハーネスが実行を拒否するようにしました。これは、クラウドの結果は比較を無効にするためであり、プライバシー製品から5,559発話をアップロードするつもりはなかったためです。
失敗はカウントされ、隠されない。何も返さないエンジンは、その発話に対して100%のWERを記録します。これは27,795回の文字起こし(legacy, test-other)で1回発生しました。
このビルドで自社製品について学んだこと
このベンチマークにより、Inscribeに配送中のバグが見つかりました。私たちのAppleエンジンファイルインポートは、SpeechAnalyzerにオーディオをフィードし、入力ストリームを閉じましたが、finalizeAndFinishThroughEndOfInput() を呼びませんでした。この呼び出しがないと、アナライザーは最終結果を配信せず、インポートは永遠にハングします。これは、私たちのAuto設定がWhisperを優先していたため、見過ごされていました。修正は同日リリースされ、ハーネスの詳細を公開している理由の一部でもあります。自社製品を注意深く測定することは、探していなかったものを見つける方法があります。
制限事項
英語のみ。LibriSpeechは英語の読み上げ音声です。これらの数値は、Whisperがサポートする100以上の言語のうち、SpeechTranscriberがサポートしていないものについては何も述べていません。
会議ではなく、オーディオブックの読み上げ音声。LibriSpeechは標準的で比較可能なコーパスであるため、私たちはそこから始めました。アクセント付き、遠距離、複数話者の会議音声が、明白なフォローアップです。
1台のマシン。M2 Pro, macOS 17.5.1。精度はApple Silicon間で転送されるはずです。速度はチップによって異なります。WhisperはWhisperKit CoreML経由です。Inscribeが提供するビルドと同じ、オンデバイス変換が量子化されています。参照GPU実装はわずかに異なる場合があります。これは検証テーブルが定量化しています。
単に良い文字起こしをしたい場合、これは何を意味するか
現在のiPhoneまたはMacを使用している場合、英語の最高のオンデバイス文字起こしエンジンはすでにオペレーティングシステムに組み込まれており、プライベートなオプションはもはや妥協のオプションではありません。Inscribeはここで測定されたエンジンを正確に使用しています。サポートされている言語ではSpeechAnalyzerを、それ以外ではWhisperを使用しています。