Whisperをローカルで動かす必要スペック|large-v3とturboの必要VRAM・文字起こし速度を実測

Whisperをローカルで動かす必要スペック|large-v3とturboの必要VRAM・文字起こし速度を実測 ローカルAI環境

音声を文字に起こす作業を手元のパソコンで完結させたい場面は多い。会議の録音、取材の音源、講演の記録などをクラウドに上げずに処理できれば、機密の扱いも料金の心配も小さくなる。その用途で広く使われているのが OpenAI の音声認識モデル Whisper で、これをローカルで動かすときにまず気になるのが「自分のGPUで動くのか」「どのくらいの速さで終わるのか」という二点になる。

ここでは Whisper の large-v3 と、その高速版である large-v3-turbo を、実際に GPU 上で動かして必要VRAMと文字起こし速度を実測した。あわせて、量子化(計算精度を落としてメモリと速度を変える設定)による違いも測っている。先に断っておくと、ここで測ったのはメモリ使用量と処理時間であって、文字起こしの正確さ(精度)は対象にしていない。精度は入力する音声の質や話し方、言語によって変わるため、速度やメモリとは別の軸として切り分けて考える必要がある。

Whisperの large-v3 と turbo は何が違うのか

Whisper は OpenAI が公開している音声認識モデルで、コードと重みは MIT ライセンスで配布されている。99言語に対応した多言語モデルで、日本語の文字起こしにも使える。サイズの異なる複数の構成があり、その中で精度の頂点に位置するのが large-v3(約15.5億パラメータ)である。

large-v3-turbo は、その large-v3 を高速化するために手を加えた派生版にあたる。アーキテクチャは large-v3 とほぼ同じだが、デコーダの層数を32から4へ削減している点が決定的に異なる。パラメータ数は約8.09億で、large-v3 のおよそ半分にあたる。Distil-Whisper の知見をもとに、デコーダを小さくすれば品質の低下を抑えたまま処理速度を大きく上げられる、という考え方で作られたモデルである。turbo は openai-whisper の v20240930 以降(2024年9月末〜10月)で使えるようになった比較的新しい構成で、ライセンスは large-v3 と同じく MIT になっている。

つまり large-v3 と turbo の関係は、「精度の頂点」と「速度に振った軽量版」という住み分けになる。手元で動かすときに、この二つがどれだけ必要VRAMと速度で差を生むのかが、本稿で測りたい中心の問いである。

実行エンジンと量子化の前提

Whisper を動かす実装は一つではない。本家の PyTorch 実装、C++ で書かれた whisper.cpp、そして CTranslate2 を使った faster-whisper など複数の選択肢があり、それぞれ速度やメモリの傾向が違う。ここでは推論速度に定評のある faster-whisper を使った。faster-whisper は Whisper を CTranslate2 という推論ライブラリ向けに実装し直したもので、計算に使う数値の精度(compute_type)を float16 や int8 に切り替えられる。この設定を変えると、必要なメモリと処理速度がはっきり変わる。一般に int8 は重みを8ビット整数に量子化するため、float16 よりメモリ使用量が小さくなる傾向がある。その代わり速度がどう動くかは、後述するとおり単純ではない。なお compute_type には float16 と int8 のほかに、両者を組み合わせる中間の指定もあるが、ここでは差がはっきり出る float16 と int8 の二つに絞って測った。

この記事の数値は、large-v3 と large-v3-turbo のそれぞれを float16 と int8 で動かした計4通りについて測ったものになる。

測定の条件

測定は16GBクラスのGPU(実機の例としては RTX 5080 を使用)で行った。測定に使った環境の全体構成は当サイトの検証環境のページにまとめてあるため、ここでは文字起こしの結果に直接効く条件だけを挙げておく。

  • 音声:約3分(176秒)の日本語ナレーションを1本用意し、全構成で同じファイルを使った
  • 計測の取り方:ウォームアップ1回を捨てたうえで3回計測し、その平均を処理時間とした
  • VRAM:他のプロセスがGPUを使っていない状態を確認し、ベースラインを差し引いたうえで、推論中のピーク使用量を追った
  • 主な版(2026年6月時点):faster-whisper 1.2.1 / CTranslate2 4.8.0。デコード時のビーム幅は5で統一

VRAM・速度はこのように条件をそろえれば数値で比較できるが、文字起こしの正確さは音声の種類や話者によって振れるため、同じ枠では扱わない。本稿は「動くか・速いか」を見るもので、「どれだけ正確か」は測定範囲の外にある。

必要VRAM ― すべての構成が5GB未満に収まる

まず、どれだけのVRAMがあれば動くのかを見る。下の表は推論中のピークVRAM、つまり実際に必要となるメモリ量である。

表1:推論中のピークVRAM(推論エンジンの作業領域を含む・数値が小さいほど省メモリ)

モデル 計算精度 ピークVRAM
large-v3 float16 約4.7GB
large-v3 int8 約3.8GB
large-v3-turbo float16 約4.7GB
large-v3-turbo int8 約3.7GB

4通りのいずれも、必要VRAMは5GBに届かなかった。これは Whisper をローカルで動かすうえで大きな意味を持つ。今回のように faster-whisper / CTranslate2 で動かした条件では、16GBのGPUであれば余裕で収まり、8GBクラスのGPUでも動かせる水準だった。なお、同じ Whisper でも公式の PyTorch 実装では目安として large で約10GB、turbo で約6GBとされており、faster-whisper(CTranslate2)はそれより小さいメモリで動く点が、ローカルで動かすうえでの利点になる。大規模言語モデルのように「VRAMに収まるかどうか」で機種を選び分ける場面とは事情が異なり、今回の faster-whisper / CTranslate2 条件では、Whisper の文字起こしに関してはメモリが律速になりにくい。

int8 にすると、large-v3 では約4.7GBから約3.8GBへ、turbo では約4.7GBから約3.7GBへと、おおよそ1GB前後ピークが下がる。8GBのGPUで他の作業と並行させたいといった事情がなければ、メモリ目的で int8 を選ぶ必然性は薄い。モデルの重み自体は turbo のほうが小さく、読み込み直後の占有は large-v3 の約4.2GBに対し turbo は約3.1GBだった。ただし推論中のピークには、両モデルが共有するエンコーダ部分に加え、推論エンジンが確保する作業領域も含まれる。そのため、モデル重みの差ほどピークVRAMには差が出ず、turbo でも large-v3 と近い4〜5GB台に収まった。turbo が「速いのに必要VRAMは large-v3 とほぼ同じ」という形になるのはこのためである。

ここでのVRAMは、対象GPUの総使用量から測定前のベースラインを差し引いて求めた目安で、推論エンジンが確保する作業領域を含む。同じ実装・同じ設定であれば大きくは変わりにくいが、CTranslate2やCUDAの版、ビーム幅やバッチ処理の有無、ドライバ、測定方法によって多少前後する。表の値は、その条件での実測の目安として読んでほしい。

ディスク容量と初回の読み込み

必要スペックという観点では、VRAM以外にモデルファイルを置くディスクの空きも要る。faster-whisper は初回の実行時に、CTranslate2向けに変換された重みを自動でダウンロードする。自動で落ちてくるのは float16 で変換されたモデルで、ファイルサイズは large-v3 で約3.1GB、turbo で約1.6GBになる。ここで注意したいのは、読み込み時に compute_type="int8" を指定しても、ダウンロード済みのモデルファイルそのものが小さくなるわけではない点である。int8 はあくまで読み込み・計算時の扱いを変える指定で、ディスク上のサイズを縮めたい場合は、あらかじめ int8 で変換済みのモデルを使うか、自分で int8 へ変換する必要がある。一度ダウンロードすればキャッシュに残るため、二回目以降はそこから読み込む。容量としては数GBの空きがあれば足り、ここがネックになることは少ない。

モデルの読み込みにかかる時間も、初回と二回目以降で差が出る。初回はダウンロードを含むため数十秒かかるが、キャッシュ済みの状態であれば読み込みは大きく短縮される。文字起こしそのものの速さとは別に、プログラムを起動するたびにこの読み込みが一度入る点は、短い音声を単発で何度も処理するような使い方では意識しておくとよい。長い音声をまとめて処理する使い方であれば、読み込みは一度きりなので相対的に気にならない。CPUやメインメモリについては、GPUで動かす限り特別な要求は出ず、一般的な構成で支障はなかった。Whisper をローカルで動かす際にスペックとして効いてくるのは、結局のところGPUとそのVRAM、そして処理速度に話が集約される。

どのクラスのGPUなら動くか

必要VRAMが5GB未満に収まることから、対応できるGPUの幅は広い。今回の faster-whisper / CTranslate2 条件では、8GBのGPUでも float16 の large-v3 が動き、12GBや16GBであれば余裕をもって他の作業と同居させやすい。文字起こしに関しては、上位のGPUを選ぶ意味は「収まるかどうか」ではなく「どれだけ速いか」に移る。同じモデル・同じ設定なら必要メモリは変わらないため、VRAMの大きさで結果が変わるわけではなく、速度を左右するのはGPUの演算性能のほうになる。手元に8GBクラスのGPUしかなくても Whisper の文字起こしは現実的に運用でき、より上のGPUは長尺・大量処理での待ち時間短縮に効いてくる、という位置づけになる。逆に言えば、Whisper を動かしたいという理由だけで大容量VRAMのGPUを狙う必要はなく、メモリ要件としてはむしろ控えめな部類に入る。

文字起こし速度 ― turboが2.5倍速、その代わりに

次に速度を見る。ここでの指標は「リアルタイム比」で、たとえば10倍速とは10分の音声を1分で処理できるという意味になる。数値が大きいほど速い。

表2:文字起こし速度(RTX 5080・約3分の音声・3回平均)

モデル 計算精度 処理時間 リアルタイム比
large-v3 float16 約14.6秒 約12倍速
large-v3 int8 約23.5秒 約7.5倍速
large-v3-turbo float16 約6.0秒 約30倍速
large-v3-turbo int8 約5.8秒 約31倍速

もっとも目を引くのは turbo の速さである。large-v3 の float16 が約12倍速だったのに対し、turbo の float16 は約30倍速で、同じ float16 どうしで比べておよそ2.5倍の差がついた。デコーダ層を32から4へ削った設計が、そのまま処理時間に効いている。3分の音声であれば large-v3 でも15秒ほどで終わるが、turbo なら6秒前後で片づく。1時間の会議録音に置き換えると、large-v3 で5分前後、turbo で2分前後という差になり、長尺になるほど体感の開きは大きくなる。

turbo が得たこの速度は、デコーダを薄くしたことの裏返しでもある。公開元の説明でも、turbo は速くなった代わりに品質がわずかに下がる、とされている。その品質差が実際の用途でどの程度効くかは、本稿で測った速度・メモリとは別の話になるため、ここでは速度の事実だけを記しておく。

長尺音声ではどれだけかかるか

Whisper は音声をおよそ30秒の区切りで順に処理するため、処理時間は音声の長さにほぼ比例して伸びる。3分の音声で測ったリアルタイム比をもとに、会議や講演でありがちな長さへ当てはめると、目安は次のようになる。

表3:音声の長さ別の処理時間(RTX 5080・3分計測値からの概算)

音声の長さ large-v3 float16 large-v3 int8 large-v3-turbo float16
10分 約50秒 約80秒 約20秒
1時間 約5分 約8分 約2分
2時間 約10分 約16分 約4分

1時間の録音でも turbo なら2分前後で片づき、large-v3 でも5分ほどで終わる。large-v3 の int8 はここでも遅く、1時間で8分前後かかる。turbo の int8 はおおむね turbo の float16 と同じ時間に収まるため、表からは省いた。長尺になるほどモデル選びと計算精度の差が処理時間に積み上がるので、まとまった量を扱うなら turbo の速さが効いてくる。なお、これは音声の長さに比例するという前提での概算で、実際には無音区間の多寡や音声の内容によって多少前後する。

int8は「小さいのに遅い」 ― 量子化の見落としやすい罠

表をもう一度見ると、large-v3 の int8 が float16 より遅いことに気づく。int8 はメモリを約1GB減らすにもかかわらず、速度は約12倍速から約7.5倍速へ落ちている。サイズが小さくなれば速くなる、とは限らないという、量子化でつまずきやすい点がここに表れている。

これは大規模言語モデルの量子化でも見られる現象と同じ筋にある。重みを8ビットに量子化しても、実際の計算ではそれを展開し直す処理が挟まり、そのオーバーヘッドが効いてくる。加えて、近年のGPUは float16 の行列演算がそもそも速いため、わざわざ int8 に落としても速度面の見返りが出にくい。メモリに余裕があるなら、large-v3 を int8 にする利点は小さい。

一方で turbo の場合は事情が違い、int8 と float16 の速度差がほとんどなかった(約31倍速と約30倍速)。turbo では int8 にしてもメモリを約1GB減らせて、速度はほぼ維持される。同じ int8 でも、large-v3 では割の悪い取引になり、turbo では無理のない選択肢になる、という非対称が出ている。なお、この速度差の大きさはGPUの世代や実装の版によって変わりうる値なので、ここでの数値は2026年6月時点・上記の版での測定という前提で見てほしい。

用途からの選び方

ここまでの実測をふまえると、手元のGPUで Whisper を動かすときの構成は、目的に応じて次のように整理できる。

速さを優先するなら ― turboのfloat16

長い音源をどんどん文字起こししたい、あるいは何本もまとめて処理したいなら、turbo の float16 が無理がない。約30倍速で、必要VRAMも約4.7GBと16GBのGPUなら何の問題もない。large-v3 と比べた品質のわずかな低下が許容できる用途であれば、速度の見返りが大きい。

メモリを切り詰めたいなら ― turboのint8

8GBクラスのGPUで動かしたい、または同じGPUで別の処理と同居させたい場合は、turbo の int8 が候補になる。約3.7GBまで下がり、速度も約31倍速とほぼ落ちない。large-v3 の int8 が速度を犠牲にしてメモリを削るのに対し、turbo の int8 はその犠牲がほとんど出ない。

精度を最優先するなら ― large-v3のfloat16

正確さを最も重視する用途では large-v3 の float16 が基準になる。ただし速度は約12倍速で turbo の半分以下になり、メモリ目的の int8 化は速度を落とすだけになりやすい。なお、ここで「精度を優先」と書いているのは large-v3 が精度の頂点に位置するモデルだからであって、本稿が large-v3 と turbo の文字起こし結果を比較して精度差を測ったわけではない。実際の精度は、自分が扱う音声で試して確かめる領域になる。

自分の環境で確かめる手順

同じ計測は手元でも再現できる。faster-whisper を導入し、計算精度を切り替えながら、自分がよく扱う音声で測ってみるのが確実である。導入は次の一行で済む。

pip install faster-whisper

あとは、モデル名(large-v3 または large-v3-turbo)と計算精度(float16 または int8)を指定して読み込み、手元の音声ファイルを渡すだけになる。最小の形は次のとおりである。

from faster_whisper import WhisperModel

model = WhisperModel("large-v3-turbo", device="cuda", compute_type="float16")
segments, info = model.transcribe("your_audio.wav", beam_size=5)
for seg in segments:
    print(seg.text)

速度を比べたいときは、同じ音声ファイルを使い、ウォームアップを挟んでから複数回測って平均を取ると安定する。文字起こしの中身を実際に走らせるのは segments を最後まで読み出した時点なので、処理時間はその読み出しまで含めて測る必要がある。compute_type を “int8” に変えれば、メモリと速度がどう動くかを自分の音声で確かめられる。

faster-whisper には、音声から発話のある区間だけを取り出して処理する VAD(voice activity detection)の機能もある。長い無音や雑音が混じった録音では、これを有効にすると無駄な処理が減り、結果が安定しやすい。ただし発話の検出条件によっては短い相づちなどが落ちることもあるため、自分の音源で挙動を確かめてから常用するかを決めるとよい。今回の測定は、こうした補助機能の影響を切り分けるため、既定のままの条件でそろえている。具体的には通常の WhisperModel.transcribe を非バッチで使った場合で、VAD は明示的に有効化していない。まとめて処理を行う BatchedInferencePipeline では VAD が既定で有効になるなど挙動が変わるため、その場合は本稿の数値とは前提が異なる点に注意してほしい。

他の選択肢との位置づけ(2026年時点)

ローカルの音声認識は Whisper だけではない。2026年の時点では、英語や欧州言語を中心に高スループットな NVIDIA Parakeet 系、英語ASRで高い性能を狙う Canary-Qwen 系、エッジ端末向けの小型ASRである Moonshine 系など、用途を絞った選択肢も増えている。リアルタイムに近い書き起こしや、英語・欧州言語で速度を突き詰めたい場面では、これらが Whisper より向くこともある。

そのうえで、日本語を含む多言語の文字起こしでは、対応言語数が広く、実装や派生ツール・利用事例も多い Whisper large-v3 / turbo が、2026年時点でもまず比較対象に置きやすい選択肢になる。実行側の faster-whisper も継続して更新されており、ローカルで日本語音声を扱うなら、まず Whisper を起点に考えて差し支えない。本稿の数値は、その前提での実測になる。

まとめ

Whisper をローカルで動かすうえで、必要VRAMは大きな壁にならなかった。large-v3 でも turbo でも、float16・int8 のいずれでもピークは5GB未満で、16GBのGPUなら余裕、8GBでも動かせる。選択の分かれ目になるのはむしろ速度で、デコーダを薄くした turbo は large-v3 のおよそ2.5倍の速さを示した。量子化については、large-v3 の int8 がメモリを減らす代わりに速度を落とす一方、turbo の int8 は速度をほぼ保ったままメモリを削れるという差が出た。速度重視なら turbo の float16、省メモリなら turbo の int8、精度重視なら large-v3 の float16 という住み分けが、実測から見えてくる。これらはメモリと速度についての結果であり、文字起こしの正確さは、扱う音声に合わせて別途確かめてほしい。

参考資料

タイトルとURLをコピーしました