初心者 11 分音声

Faster-Whisper:高速に音声をテキストに変換できます。インターネット接続なしでも。 GPU

端的な回答

Faster-Whisper(SYSTRAN/faster-whisper、MIT ライセンス)は、CTranslate2 エンジン上で Whisper を再実装したものです。プロジェクトは、openai/whisper と同等の精度で、メモリ使用量を抑えながら最大 4 倍の速度を実現すると発表しています。プロジェクト自身の CPU ベンチマーク(Intel i7-12700K、small モデル)では、13 分の音声を int8 で 1 分 42 秒で文字起こしします。openai/whisper の 6 分 58 秒と比べ、グラフィックスカードを使わず、CPU 上で約 4 倍の速さです。

Faster-WhisperはWhisperの再実装で、同等のテキスト品質を保ちながら、文字起こしを大幅に高速化し、メモリ消費もかなり抑えます。新しいモデルではありません。同じ重みを、SYSTRANがMITライセンスで公開した別の推論エンジン、CTranslate2で実行します。ローカルで文字起こしをする際の標準的な選択肢となる実装であり、プロジェクト自身のベンチマークは、「CPUでの文字起こしがようやく現実的になる」とは実際にどういうことかを、具体的な数値で示しています。

著者 Mohamed Meguedmi·更新 2026-09-28·Windows・macOS・Linuxでテスト済み

#何であり、何ではないのか

Whisperは、モデルファミリーと、それらを実行するOpenAIのリファレンス実装の両方を指します。Faster-Whisperはモデルをそのまま使い、実装をCTranslate2に置き換えます。CTranslate2はTransformer型モデル向けに最適化された推論エンジンで、もともとはOpenNMTで機械翻訳用に開発されました。同等の品質で得られるテキストは同じです。変わるのは、そのテキストを得るために必要な時間とメモリであり、最終結果の内容ではありません。

実用上は、Whisperのモデルサイズの選び方についてすでに知っていることが、すべてそのまま通用します。また、日常的に目にするローカル文字起こしツールの大半は、すでに内部でこれを使っており、そのことを明示したり、ドキュメントに記載したりしていない場合も多くあります。もう一つ便利な点として、openai-whisperとは異なり、FFmpegをシステムに別途インストールする必要はありません。音声はPyAVライブラリでデコードされ、PyAVにはFFmpegのライブラリが同梱されています。

#高速化はどこから来るのか

ローカルAIキット

お使いのマシンで、プライベートかつ無料のChatGPTを1時間で構築 — LM Studio、Ollama、Open WebUI、ご自身のドキュメント、クラウド不要。

  • 永久に利用できるオンラインスペース
  • PDF + ファイル
  • 生涯アップデート
専用の推論エンジン
PyTorchのような汎用フレームワークを直接使うのではなく、トランスフォーマーを効率的に実行するために開発されたCTranslate2を使います。
量子化
モデルを8ビットで実行すると、メモリ使用量を減らして処理を高速化できます。文字起こしの品質は低下しますが、通常は気づかない程度です。
バッチ処理
長いファイルは、厳密に一つずつ順番に処理する代わりに、分割して並列処理できます(batch_size)。ただし、メモリ使用量は増えます。
音声区間検出
無音部分をスキップすると、モデルが何もない部分の処理に時間を費やすのを防げます。会議の録音では、その効果は決して小さくありません。

#開発元が数値で示す性能向上

SYSTRANは、読者が推測に頼らずに済むよう、独自のベンチマークを公開しています。13分間の音声の文字起こしについて、同じハードウェア上で複数の実装を比較し、それぞれの処理時間とメモリ使用量を示しています。特に重要なのは、専用グラフィックスカードを使わない場合の2組の測定結果です。これは、企業の業務用PCの大半に当てはまる利用環境です。

CPU(Intel Core i7-12700K、8スレッド)で実行したsmallモデル — 出典:リポジトリの公式ベンチマーク
実装精度時間RAMメモリ
openai/whisperfp326分58秒2,335 MB
faster-whisperfp322分37秒2 257 MB
faster-whisperint81分42秒1 477 MB
faster-whisper(バッチサイズ8)int851 s3 608 MB

したがって、CPU上ではFaster-Whisperのint8版はopenai/whisperの4.1倍の速さで文字起こしを行い、メモリ使用量も少なくなります(1,477 MB対2,335 MB)。これは、プロジェクトが全般的に掲げる「メモリ使用量を抑えながら…最大4倍高速」という説明と整合する結果です。GPU上では、同じベンチマークでlarge-v2モデルを使用した場合(RTX 3070 Ti)、fp16では1分03秒、int8では59秒で、openai/whisperの2分23秒を下回ります。ここでは量子化による速度向上はCPUの場合より控えめですが、ビデオメモリ使用量は4,708 MBから2,926 MBに減少します。

リポジトリでは、distil-whisper-large-v3という派生モデルを使った比較も公開されています。これは量子化ではなく、蒸留によって軽量化されたモデルです。GPU上でtransformersライブラリを使い、fp16、バッチサイズ16で処理すると、テストコーパスの文字起こしに46分12秒かかり、単語誤り率は14.801です。同じ設定でFaster-Whisperを使うと、25分50秒、単語誤り率13.527となります。この特定のテストでは、より高速で、かつより正確です。これは、CTranslate2による改善が量子化だけにとどまらないことを示しています。実行する具体的なモデルとは別に、実行エンジン自体も重要なのです。

このベンチマークでは、Faster-Whisperとwhisper.cppも比較しています。whisper.cppは、特にMacや組み込み機器で広く使われている別の再実装です。large-v2モデルをfp16で実行した場合、Flash Attentionを使用したwhisper.cppは、ビデオメモリ4,127 MBで1分05秒かかり、Faster-Whisper(1分03秒、4,525 MB)とほぼ互角です。これは、Faster-Whisperだけが高速な選択肢ではないことを思い出させてくれます。このガイドでFaster-Whisperを最も詳しく取り上げているのは、そのPythonエコシステムがRAGパイプラインや報告書の自動作成に最も組み込みやすいからです。

→
バッチ処理で状況が変わる
batch_size=8 に設定すると、int8 の small モデルの処理時間は、同じプロセッサで1分42秒から51秒に短縮されます。その代わり、メモリ使用量は3,608 MB に増えます。利用できる RAM に余裕があるマシンでは、GPU を検討する前に試す設定として、これが最も費用対効果に優れていることが多くあります。

#インストールして最初のファイルを文字起こしする

インストールは1行で完了します。PyAVがPythonパッケージに直接組み込まれているため、音声のデコードに必要なシステム依存関係を管理する必要はありません。最小限のコードには、モデルを単純に使う場合と大きな差を生む3つのパラメータが含まれています。device(cpuまたはcuda)の明示的な選択、計算型(compute_type。CPUではint8から始めるのが妥当です)、そして音声活動検出フィルターの有効化です。

Faster-Whisperをインストール
pip install faster-whisper
CPUでフランス語のファイルを文字起こしする
from faster_whisper import WhisperModel

model = WhisperModel("small", device="cpu", compute_type="int8")
segments, info = model.transcribe("reunion.wav", language="fr", vad_filter=True)

for segment in segments:
    print(f"[{segment.start:.1f}s -> {segment.end:.1f}s] {segment.text}")

公式ベンチマークで測定された差の大部分を説明する2つの設定を適用するには、3行のコードで十分です。量子化には compute_type="int8"、音声活動検出には vad_filter=True を使用します。language="fr" パラメータは、録音の最初の数秒で最も誤りが多い自動言語検出を無効にします。

#どのモデル、どの精度

使用用途に応じてサイズを選択
サイズ8ビットでの推定メモリ用途
小型(small)CPUでint8を使用した場合、約1.5 GB(公式のテスト環境で測定)迅速なメモ取り、クリアな音声、単一言語
中程度約1〜2 GB長時間の録音でよく選ばれるバランス型
大規模(large-v2)GPU上でint8で約2.9GB(公式テストベンチで測定)整ったフランス語、専門用語、聞き取りにくい音声

フランス語の場合、中規模モデルと大規模モデルの差は、主に固有名詞、略語、複数の人が同時に話す箇所に表れます。文字起こしの結果を、その後、構造化された議事録を作成する言語モデルに渡すのであれば、珍しい単語の単発の誤りは、直感的に思うほど大きな問題ではありません。一方、人がそのまま読む必要があるなら、大規模モデルを使う意義があります。ただし、本ガイドの前の部分で示した時間とメモリの負担が伴います。

#実際に重要な設定

  1. 01
    言語を固定する
    自動検出は冒頭の数秒で誤判定します。特に、録音が無音や短い挨拶から始まる場合に起こります。言語を指定すれば、ある種類のエラーをまとめてなくせます。
  2. 02
    音声区間検出を有効にする
    無音部分の文字起こしを防ぎ、ファイル末尾でモデルが無音から架空のテキストを生成するハルシネーションを減らします。
  3. 03
    int8量子化を選ぶ
    これは公式テストベンチで観察された性能差の主な要因です。CPU では、small モデルの実行時間は2分37秒から1分42秒に短縮され、メモリ使用量が減少します。
  4. 04
    メモリに余裕があればバッチ処理を有効にする
    batch_size=8にすると、公式ベンチマークでは処理時間がさらに半分になりますが、その分メモリ使用量が増えます。メモリに余裕があるマシンでのみ使用してください。
i
無音区間でのハルシネーション
Whisperには、よく知られた癖があります。音声のない区間で、決まったフレーズを出力することがあるのです。挨拶やクレジットの文言などがその例です。主な対策は音声区間検出で、繰り返される箇所をざっと確認することも補助的な対策になります。

#一般的なマシンでの 3 つの具体的な使用例

公式ベンチマークの数値は、専用グラフィックスカードを搭載していない業務用PCでの実際の利用例に照らすと、その意味がよく分かります。これは企業で最も一般的な環境です。

議事録
1時間の会議をデスクトップ用プロセッサでint8を使って文字起こしする場合、13分の音声で測定した数値から換算すると、所要時間はおよそ7〜8分です。会議直後のコーヒーブレイク中に文字起こしを開始する運用に十分適しています。
ポッドキャストやウェビナーのアーカイブ
長いファイルをまとめて夜間にバッチ処理すれば、batch_size=8で測定された性能向上の恩恵を直接受けられ、朝まで実行を監視する必要もありません。
動画に後から字幕を付ける
Faster-Whisperは動画の文字起こしの生テキストを生成します。その後、WhisperXで単語ごとのアライメントを行い、動画編集で実際に使える字幕ファイルに必要な正確なタイムスタンプを追加します。

3つのケースに共通するのは、グラフィックスカードを使わないことです。公式ベンチマークのCPU測定結果は、最近のデスクトップ向けプロセッサで一般的な用途には十分対応できることを示しています。そのため、単に文字起こしが必要なだけなら、追加のハードウェアを購入するかどうかよりも、モデルのサイズと量子化をどう選ぶかが本当の検討課題になります。

#Faster-Whisper またはその他の選択肢

必要に応じて選択するツール
ニーズ選択
ローカルで素早く文字起こし。GPUなしでも可能Faster-Whisper
字幕作成用の単語ごとのタイムスタンプ強制アライメントを組み込んだパイプライン(WhisperX)
誰が話したかを知る話者分離を組み込んだパイプライン
連続ストリームのリアルタイム文字起こしVoskのようなストリーミング向けエンジン
GPUを搭載していない、非常に低スペックなマシンFaster-Whisperをint8で使用し、smallまたはmediumモデルを指定

#FAQ

Faster-WhisperはWhisperよりも正確性が低いですか?+
いいえ、モデルサイズが同じなら品質は同等です。まったく同じ重みを、openai/whisper とは異なるエンジンである CTranslate2 で実行しています。プロジェクト自体も精度は同一だと説明しており、8ビット量子化が文字起こし結果に与える影響は、通常、まったく気づかないほど小さいものです。
GPU は必要か?+
いいえ。GPUが不要であることは、数値でも示されている利点です。Intel Core i7-12700Kでは、int8のsmallモデルが13分の音声を1分42秒で文字起こしするのに対し、同じプロセッサでopenai/whisperを使うと6分58秒かかります。GPUを使えばさらに高速化できますが、無理のない範囲で使うなら必須ではありません。
音声のない区間で、モデルが架空の文章を生成するのはなぜですか?+
これは、発話のない区間でWhisperに見られる既知の挙動です。元のモデルから引き継がれたもので、同じ重みを使うFaster-Whisperにも見られます。主な対策は音声区間検出を有効にすることです。そのうえで、長時間の録音では、この問題の兆候となる繰り返しのある箇所を重点的に読み直してください。
フランス語の処理にはどのサイズのモデルが適していますか?+
文字起こししたテキストを後で自動要約に使う場合は、中規模モデルで十分です。その場合、まれな単語を一つ誤っても影響は小さいためです。文字起こしをそのまま読む用途では、固有名詞や頭字語の認識精度を考えると、大規模モデル(large-v2)を使う意義があります。ただし、公式ベンチマークによると、int8で約2.9GBのメモリが必要です。
リアルタイム処理はできますか?+
すでに保存されたファイルを処理するための設計であり、リアルタイムの連続ストリームを処理するためのものではありません。ライブ字幕には Vosk のようなストリーミング向けのエンジンが必要で、遅延と精度のトレードオフも異なります。二つのツールは同じパイプラインでうまく組み合わせられ、一方を即時の結果表示に、もう一方を最終版の作成に使えます。
実際に int8 量子化がもたらす効果はどれくらいですか?+
公式ベンチマークでは、プロセッサ上でモデルのsmallのトランスクリプション時間はfp32の2分37秒からint8の1分42秒に短縮され、メモリ使用量は2,257MBから1,477MBに減少します。この設定の効果が最も顕著であり、GPUやバッチ処理を検討する前にこれを適用することが重要です。
Faster-Whisper は他の実装よりも常に速いですか?+
必ずしもそうではありません。large-v2モデルをfp16、beam size 5で実行すると、Flash Attentionを使ったwhisper.cppでは処理時間が1分05秒まで短縮され、Faster-Whisperの1分03秒とほぼ同等です。差が大きくなるのは主に公式実装のopenai/whisperやtransformersとの比較で、公開されたベンチマークではFaster-Whisperがこれらを速度で明確に上回っています。
このガイドは役に立ちましたか?

ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。