2.5時間の音声ファイルを、ローカル環境で98秒以内に文字起こしできる。APIキーも月額費用も不要だ。
insanely-fast-whisper は、OpenAIのWhisper Large v3をベースにした高速音声文字起こしCLIです。Flash Attention 2とバッチ処理を組み合わせることで、通常のWhisperと比べて最大19倍以上の速度を実現しています。GitHubのスター数は12,000超え、コミュニティ主導で開発が続いています。
この記事でわかること:
- insanely-fast-whisperが高速な理由
- インストール方法と基本的な使い方
- 話者識別・タイムスタンプなど主な機能
- Faster WhisperやOpenAI APIとの違い
insanely-fast-whisperとは
音声の自動文字起こしには、OpenAIが2022年に公開したWhisperがよく使われています。精度は高いものの、ローカルで動かすと処理速度が遅く、長い音声では数十分かかることもありました。
insanely-fast-whisperは、このWhisperを実用速度で動かすためのCLIツールです。Hugging Face TransformersとFlash Attention 2を組み合わせることで、A100 GPU環境では2.5時間分の音声をわずか98秒で処理します。
pipxのワンライナーでインストールでき、導入のハードルは低めです。
なぜここまで速いのか
insanely-fast-whisperの高速化は、主に2つの技術の組み合わせによるものです。
バッチ処理(デフォルトのバッチサイズ: 24)は、音声データを細かなチャンクに分割し、並列で推論させる手法です。通常のWhisperは1チャンクずつ処理しますが、バッチ処理を使うと複数のチャンクを同時に扱えます。
Flash Attention 2は、GPU上のメモリアクセスを効率化するアテンション計算の実装です。Transformerの推論で最もボトルネックになりやすいアテンション層を最適化することで、処理時間とVRAM使用量を大幅に削減します。
この2つを組み合わせることで、通常の実装との差が明確に出ています。
ベンチマーク(Nvidia A100 80GB)
Whisper Large v3を使って150分(2.5時間)の音声を処理した結果です。
| 設定 | 処理時間 |
|---|---|
| 通常(fp32) | 約31分 |
| fp16 + バッチ + BetterTransformer | 約5分 |
| fp16 + バッチ + Flash Attention 2 | 約1分38秒 |
| distil-large-v2 + Flash Attention 2 | 約1分18秒 |
通常のfp32実行と比べると、約19倍の速度差があります。distil-large-v2はWhisper Large v3を蒸留した軽量モデルで、さらに高速に動作します(GitHubのREADMEより)。
インストールと基本的な使い方
pipxがインストールされていれば、以下のコマンドで導入できます。
pipx install insanely-fast-whisper
インストール後、音声ファイルを指定するだけで文字起こしが始まります。
insanely-fast-whisper --file-name audio.mp3
macOS(Apple Silicon)で動かす場合は --device-id mps を追加します。
insanely-fast-whisper --file-name audio.mp3 --device-id mps
Flash Attention 2を有効にするには --flash True を付けます。
insanely-fast-whisper --file-name audio.mp3 --flash True
文字起こし結果はデフォルトで output.json に保存されます。パスを変えたい場合は --transcript-path で指定できます。
主な機能
翻訳:--task translate を指定すると、音声を英語に翻訳しながら文字起こしできます。多言語の音声を英語テキストに変換したい場面で役立ちます。
話者識別(ダイアライゼーション):pyannote.audioと連携することで、「誰がいつ話したか」を識別できます。議事録の自動生成など、複数人が登場する音声での活用に向いています。利用にはHugging FaceのAPIトークンが必要です。
タイムスタンプ:--timestamp word で単語レベル、--timestamp chunk でチャンクレベルのタイムスタンプを付与できます。動画の字幕ファイル生成などに使えます。
distil-whisperの利用:--model-name distil-whisper/large-v2 を指定することで、より軽量なdistil-whisperで処理できます。VRAMが少ない環境でも試しやすくなります。
Faster WhisperやOpenAI APIとの違い
速度重視のWhisper実装にはFaster Whisperという選択肢もあります。Faster WhisperはCTranslate2を使ったC++ベースの実装で、CPUでも動作します。ただし、ベンチマーク上の処理時間はA100で150分あたり約8〜9分と、Flash Attention 2を使ったinsanely-fast-whisperより遅い結果が出ています。
OpenAIの音声文字起こしAPIと比べると、insanely-fast-whisperはAPIキーが不要でローカル完結できる点が大きな違いです。音声データをクラウドに送らずに処理したい場合や、大量の音声を定期的に処理したい場合のコスト削減に向いています。一方、NVIDIA GPUかApple SiliconのMacが動作条件になるため、CPUのみの環境では利用できません。
まとめ
insanely-fast-whisperは、Whisper Large v3をローカル環境で実用速度まで引き上げたOSSのCLIツールです。Flash Attention 2とバッチ処理の組み合わせにより、2.5時間の音声を2分以内に処理します。pipxで一行インストールでき、話者識別やタイムスタンプ付与にも対応しています。GPU環境があれば、API費用ゼロで高精度の文字起こしを自動化できます。