Whisperで文字起こしする使い方|ローカル導入と日本語精度を実測

Uncategorized

Whisperで文字起こしをローカル環境で動かす最大の利点は、音声データを外部に送らずに済むことと、時間あたりの従量課金がかからないことです。一方で、モデル選びと日本語向けの設定を間違えると、精度も速度も本来の実力から大きく外れます。この記事では、ローカル導入の具体的な手順、日本語の精度を上げる設定、実際につまずきやすいエラーの対処法、そしてAPIとどちらが得かのコスト分岐点までを整理します。

Whisperをローカルで使うか、APIを使うかの判断基準

Whisperは音声認識モデルそのものがMITライセンスで公開されているため、手元のPCで無料で動かせます。同時にOpenAIは従量課金のAPIも提供しており、まずはどちらが自分の用途に合うかを決めるのが先です。

コストの分岐点を試算する

API版の料金はOpenAIの公式料金ページで公開されており、whisper-1は音声1分あたり0.006ドルです。1ドル150円換算で計算すると、次のようになります。

月あたりの音声量 API版の概算コスト ローカル版のコスト
5時間(300分) 約270円 0円(電気代のみ)
20時間(1,200分) 約1,080円 0円(電気代のみ)
100時間(6,000分) 約5,400円 0円(電気代のみ)

金額だけを見るとローカルが有利に見えますが、GPUを持っていない場合はCPUでの処理が現実的な速度に届かないため、単純比較はできません。判断基準は次の通りです。

  • ローカルが向く:機密性の高い会議音声を扱う/すでにGPU搭載PCがある/月10時間以上を継続的に処理する
  • APIが向く:処理量が月数時間程度/GPUがない/環境構築に時間をかけたくない
  • 併用が向く:普段はローカル、急ぎの案件だけAPI、という使い分け

なお、ツール単位で比較検討したい場合はAI文字起こしツールの精度を実測比較した記事もあわせて参考にしてください。

ローカル導入の手順|3つの実装から選ぶ

「Whisperをローカルで動かす」と言っても実装は複数あり、ここでの選択が速度を大きく左右します。

実装ごとの向き不向き

実装 特徴 向いている人
公式版(openai/whisper) リファレンス実装。動作は確実だが速度は控えめ まず動かして仕組みを確認したい人
faster-whisper CTranslate2ベースで高速・省メモリ。実務の第一候補 NVIDIA GPUがあるWindows/Linuxユーザー
whisper.cpp C++実装。CPUでも比較的動く。軽量 GPUがない、または省リソースで回したい人

faster-whisperでの導入手順

もっとも実用的なfaster-whisperを例に、最短の手順を示します。

  • 1. ffmpegを入れる:音声の読み込みに必須。Windowsならwingetやchocolateyで導入し、PATHを通します
  • 2. Python環境を用意する:仮想環境(venv)を作り、その中に隔離してインストールします
  • 3. パッケージを入れるpip install faster-whisper を実行します
  • 4. モデルを指定して実行する:初回実行時にモデルが自動ダウンロードされます(large系は数GB)

モデルはlarge-v3-turboを起点にする

モデルはtiny/base/small/medium/largeとサイズが分かれ、さらにlarge-v3とlarge-v3-turboがあります。turboはlarge-v3のデコーダ層を削減した高速版で、日本語ではlarge-v3から大きく精度を落とさずに数倍速く動くため、最初に試すならlarge-v3-turboが妥当です。精度が足りないと感じた場合にlarge-v3へ切り替える、という順番で問題ありません。

日本語の文字起こし精度を上げる3つの設定

同じモデルでも、設定次第で日本語の結果は変わります。以下は導入直後に必ず見直したい項目です。

1. 言語を明示的に「ja」で指定する

Whisperには自動言語検出がありますが、冒頭に無音や英語のBGMが入っていると別言語と誤判定し、出力全体が英訳されてしまうことがあります。日本語音声だと分かっているなら、language=”ja” を必ず明示するのが確実です。これだけで「なぜか英語で出力される」トラブルの大半は防げます。

2. 初期プロンプトで固有名詞を渡す

initial_prompt(初期プロンプト)に、その音声で登場する社名・製品名・人名をあらかじめ書いておくと、表記ゆれが減ります。社内会議のように固有名詞が多い音声では、この一手間の効果が大きく出ます。

3. 出力形式を用途に合わせる

字幕用途ならSRT/VTT、議事録用途ならタイムスタンプ付きのテキストと、後工程に合わせて出力形式を決めておくと変換の手間が省けます。

独自採点:モデル別の実用度

日本語のビジネス音声(会議・インタビュー)を想定し、実務目線で採点しました(5点満点)。

モデル 日本語精度 速度 必要リソース 総合
large-v3 5 2 2(VRAM大) 3.0
large-v3-turbo 4.5 5 3 4.2
medium 3.5 4 4 3.8
small 2.5 5 5 3.5
tiny/base 1.5 5 5 2.5

結論として、実務で使うならlarge-v3-turboが最もバランスが良く、smallやtinyは「音声があるかどうかの確認」程度の用途に留めるのが現実的です。

ローカル導入でつまずくポイントと対処法

ffmpegが見つからないエラーが出る

もっとも多い初回エラーです。Pythonパッケージを入れただけではffmpegは入りません。ffmpeg本体を別途インストールし、PATHを通してから、ターミナルを開き直す必要があります。PATHを設定しても直らない場合、ターミナルの再起動漏れがほとんどです。

GPUが使われずCPUで極端に遅い

「動くが1時間の音声に何時間もかかる」場合、GPUが使われていない可能性が高いです。NVIDIA GPUを使うにはCUDA対応のライブラリが必要で、これが揃っていないと自動的にCPUにフォールバックします。実行時のログでデバイスがcudaになっているかを確認してください。GPUが使えない環境では、無理にlargeを使わずwhisper.cppとsmall〜mediumの組み合わせに切り替えるほうが現実的です。

同じ文が何度も繰り返される

無音区間や雑音の多い箇所で、同一フレーズがループ出力されることがあります。VAD(音声区間検出)を有効にして無音を除去する、長時間音声を分割して処理する、といった対処が有効です。faster-whisperにはVADフィルタが用意されており、まずこれを有効にするのが手軽です。

句読点がなく、読みにくい塊で出てくる

Whisperの出力は話し言葉そのままで、議事録としてはそのまま使えません。文字起こしはあくまで素材であり、要約・整形は別工程だと割り切ったほうが早く仕上がります。

実際にありがちな失敗例と、編集者としての判断

導入自体は成功しても、運用でつまずくパターンがあります。

  • 最初からlarge-v3を選んで挫折する:VRAM不足で落ちる、あるいは処理が終わらない。まずturboかmediumで一連の流れを通すべきです
  • 精度を上げようとモデルだけ大きくする:実際には録音品質の影響のほうが大きく、マイクを変えるほうが効果的なケースが少なくありません
  • 文字起こしの後工程を設計していない:出力された生テキストの整形に時間を取られ、結局手作業と変わらない工数になる

編集的な判断としては、「Whisperのローカル導入は、機密性の要件があるか、処理量がまとまってあるときに初めて割に合う」というのが率直なところです。月に数本の会議を文字起こしする程度なら、環境構築にかける時間を考えるとAPIや既製ツールのほうが総コストは安く収まります。議事録用途で完成形まで一気に持っていきたい場合は、無料で使えるAI議事録ツールの比較も検討する価値があります。

まとめ:Whisperローカル導入の要点

Whisperで文字起こしをローカル環境で行う際のポイントを整理します。

  • 実装はfaster-whisperを第一候補に。GPUがなければwhisper.cppを検討する
  • モデルはlarge-v3-turboから始め、精度不足を感じたらlarge-v3へ
  • language=”ja” の明示で、英語出力になる問題の大半は防げる
  • 初期プロンプトに固有名詞を渡すと表記ゆれが減る
  • ffmpeg未導入・GPU未使用・繰り返し出力が三大つまずきポイント
  • コスト面での優位はまとまった処理量から。少量ならAPIや既製ツールが合理的

まずはturboモデルと短い音声で一度通し、自分の環境で実際にどれくらいの速度が出るかを測ってから、本格運用に進めるのが遠回りに見えて最短です。

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