ガイド

Mac で文字起こしが遅いのはなぜか

同じ録音が、同じアプリを動かしていても Mac によって 2 分で終わったり 40 分かかったりします。その差のほとんどは 4 つの要因で説明できます。

ローカルの文字起こし速度は大きくばらつきます。しかも、Mac の新しさや支払った金額に比例するわけではありません。同じ 1 時間の録音が、同じアプリでも、あるマシンでは 3 分、別のマシンでは 30 分かかることがあります。

そのほとんどは 4 つの要因で説明できます。

1. Apple Silicon か Intel か #

これが最大の要因で、しかも小さな差ではありません。

文字起こしの処理は行列演算が支配します。Apple Silicon には、それに特化した 2 つのものがあります。まさにその演算のために作られた Neural Engine と、モデルの重みを CPU と GPU のメモリ間でコピーし合う必要がなくなるユニファイドメモリです。

Intel の Mac にはどちらもありません。Neural Engine はまったく搭載されていないので、モデルの処理の重い側であるエンコーダーは、CPU か、バス越しの独立した GPU に頼ることになります。その結果、同じファイルでも数倍遅くなることがよくあります。

Intel の Mac でも文字起こしは十分に実用的です。ただ、眺めているものではなく、開始して後で戻ってくるものになります。ソフトウェアでこの差を埋めることはできません。差の正体はシリコンだからです。

2. そもそもアプリが Neural Engine を使っているか #

同じ M シリーズの Mac 上でも、アプリによって大きく差が出ることがあります。Neural Engine の利用は自動ではないからです。

エンコーダーをそこで動かすには、モデルを事前に Core ML の形式にコンパイルしておく必要があります。重みと並べて Core ML のエンコーダーを同梱しているアプリは速い経路を通り、そうでないアプリはすべてを GPU か CPU で動かし、多くの性能を使わずに残します。

外からは分かりませんが、体感はできます。あるローカル文字起こしアプリが、自分のマシン上で別のアプリより劇的に速いなら、たいていこれが理由です。

3. モデルサイズ #

Whisper のサイズは 1 段階ごとにパラメータ数がおよそ 3 倍になり、時間もそれに比例します。Base から Large へはパラメータ数で約 20 倍です。長いファイルでは、コーヒー 1 杯と午後いっぱいの違いになります。

アプリが大きいモデルを既定にしている場合や、大きいほうが良さそうだからと自分で選んだ場合、それだけで待ち時間の説明がつきます。精度の向上はサイズの差が示唆するよりずっと小さく、クリーンな発話では体感できないことも多いのです。

4. 無音の文字起こしにどれだけ払っているか #

90 分の会議を 2 時間録音したファイルには、30 分の何もない時間が含まれます。音声区間検出がなければ、モデルはそのすべてを処理します。無音のデコードに発話と同じコストをかけ、そのあいだ繰り返しのごみテキストを生み出します。

先に VAD を実行するアプリは、そうした区間をまるごと飛ばします。無音の多い録音では、これはわずかな節約ではありません。

実際に速くなること #

効果の大きい順に並べます。

  1. 小さいモデルを使う。 クリーンな発話ならたいてい Base で十分で、Large より何倍も高速です。
  2. Apple Silicon なら、Core ML のエンコーダーを備えたアプリを使う。
  3. 無音を切り取るか、先に発話を検出するツールを使う。
  4. 競合している他の処理を閉じる。 文字起こしは使えるコアをすべて使います。バックグラウンドの動画書き出しは、スループットを半分にします。
  5. ノートパソコンを電源につなぐ。 バッテリー駆動では macOS が持続的な処理を抑制し、低電力モードではさらに強く抑制します。

速くならないこと #

メモリの増設。 スワップが発生していた場合を除きます。ワーキングセットは思われているより小さいのです。

インターネットの高速化。 ローカルの文字起こしにネットワークの工程はありません。速度が回線に依存しているなら、その処理は自分のマシンで行われていません。

やり直す。 実行が遅いとき、やり直しても同じ作業を最初から始めるだけです。

おおよその目安 #

Base モデルと Core ML のエンコーダーを備えた Apple Silicon の Mac では、文字起こしは実時間の数倍の速さで動き、1 時間の録音は数分で終わります。私たち自身が 2 時間のファイルで計測したところ、最初から最後まで 3 分未満でした。

Intel の Mac では、録音の長さのうちそれなりの割合の時間がかかると考えてください。それでもやる価値はありますし、費用もかかりません。ただ、眺めているものではありません。

Apple Silicon でこの範囲を大きく外れているなら、考えられる原因は順に、大きいモデル、Neural Engine を使っていないアプリ、そしてマシンを奪い合う他の処理が多いことです。

まとめ #

Apple Silicon か Intel かが最大の要因で、これはソフトウェアでは解決できません。その次に、小さいモデルを使う、Neural Engine 向けにエンコーダーをコンパイルしているアプリを使う、無音は文字起こしせず飛ばす、そしてバッテリー駆動で動画の書き出しと並行して実行しない、という順になります。

Offline Transcriptionを入手

音声も動画も、すべてお使いのMacの中だけで文字起こしします。アップロードは一切なく、アカウントも不要、分単位の従量課金もありません。

macOS 13.0 or higher · iOS 16.4 or higher