Whisper.cpp完全ガイド【2026年7月最新版 v1.9.1】Python不要・全プラットフォーム対応の音声認識をローカル完結

Whisper.cpp完全ガイド 2026年7月最新版 v1.9.1 チュートリアル

音声ファイルから文字起こしをローカル環境だけで完結させたい——そんなニーズに最も刺さるのがWhisper.cppです。OpenAIのWhisperモデルをC/C++で書き直し、Python無しで単一バイナリとして動く超軽量な音声認識エンジンで、Raspberry PiからNVIDIA RTX 5090搭載マシンまで、あらゆる環境で動作します。本記事では、2026年7月時点の最新版v1.9.1(2026年6月19日リリース)をベースに、ゼロからのインストール、モデルのダウンロード、CLI・サーバー・APIとしての使い方、CUDA/Metal/Vulkan/OpenBLASによるハードウェア加速、そしてfaster-whisperやWhisperXとの比較まで、この1記事で完結できる決定版ガイドとしてまとめます。

「サブスクのAPIに音声を送りたくない」「議事録や取材音声を外部にアップしたくない」「Raspberry Piで音声認識を動かしたい」「WhisperをM3 MacBookで爆速化したい」——このいずれかに当てはまるなら、Whisper.cppは今この瞬間の最適解です。

  1. Whisper.cppとは何か
    1. プロジェクトの基本情報
  2. 最新リリース情報(2026年最新)
    1. v1.9系で押さえておくべきポイント
  3. 他ツールとの比較
    1. ベンチマーク比較(Large-v2モデル、参考値)
  4. メリット・デメリット
    1. メリット
    2. デメリット
  5. 動作要件
    1. 最小構成と推奨構成
    2. モデル別のリソース要件
  6. インストール手順
    1. Windows(推奨: プレビルド版 or CMakeビルド)
      1. ルートA: プレビルド版バイナリを使う(最速)
      2. ルートB: CMake + MSVCでソースビルド(CUDA・Vulkan有効化)
    2. macOS(Intel & Apple Silicon)
      1. Homebrewでインストール
      2. ソースからビルド(Apple Silicon + CoreML推奨)
    3. Linux(Ubuntu / Debian / Arch)
    4. Docker(全プラットフォーム共通)
  7. 初期設定
    1. モデルのダウンロード
    2. 手動ダウンロード(curl/wget)
    3. 日本語音声のテスト
  8. 基本的な使い方
    1. CLIの主要オプション
    2. もっともシンプルな実行例
    3. 日本語ポッドキャストの文字起こし
    4. 信頼度可視化(デバッグ用)
  9. 実践的な使い方
    1. ケース1: 会議・打ち合わせ議事録の自動化
    2. ケース2: YouTube動画の字幕生成
    3. ケース3: HTTPサーバーとして常駐(REST API化)
  10. 応用・カスタマイズ
    1. NVIDIA Parakeetモデルでの推論(v1.9.0新機能)
    2. ストリーミング(リアルタイム音声認識)
    3. 音声フォーマット変換(16kHzモノラル化)
    4. Pythonから呼び出す(whisper-cpp-python)
  11. パフォーマンス最適化
    1. スレッド数のチューニング
    2. Flash Attention有効化(CUDA/Metal)
    3. VADによる無音スキップ
    4. 量子化モデルの選択
    5. Apple SiliconでのCoreML化
  12. よくあるエラーとトラブルシューティング
    1. エラー1: whisper_init_from_file_no_state: failed to open
    2. エラー2: WARNING: failed to open ‘input.wav’ as WAV
    3. エラー3: ggml_cuda_init: failed to initialize CUDA
    4. エラー4: 幻覚(hallucination)が発生する
    5. エラー5: MSVC ビルドで「link.exe not found」
    6. エラー6: SDL2 not found(ストリーミングビルド時)
    7. エラー7: 出力が空、または「[BLANK_AUDIO]」だけ
  13. おすすめの組み合わせ・連携
    1. Ollama + Whisper.cpp = 音声入力LLMアシスタント
    2. Open WebUI 経由でGUI化
    3. Home Assistant音声アシスタント
    4. OBS + whisper.cpp = リアルタイムライブ字幕
    5. Docker Compose でスタック化
  14. 推奨PCスペック
    1. 入門構成(tiny〜smallモデル、Raspberry Pi級)
    2. 標準構成(large-v3-turbo快適、8GB VRAM)
    3. ハイエンド構成(複数ストリーム同時+LLM連携)
  15. まとめ
  16. 📦 この記事で紹介した商品

Whisper.cppとは何か

Whisper.cppは、OpenAIが2022年に公開した音声認識モデル「Whisper」を、Georgi Gerganov氏率いるggml-orgがC/C++でフルスクラッチ実装したポートです。llama.cppと同じ作者・同じggmlバックエンドを共有しており、以下の特徴があります。

  • 依存関係ゼロ:Python・PyTorch・CUDAランタイム不要(GPUを使う場合のみCUDA/Metal等が必要)。単一バイナリで動く
  • マルチプラットフォーム:Windows / macOS(Intel & Apple Silicon)/ Linux / iOS / Android / WebAssembly / Raspberry Pi / FreeBSD すべてに対応
  • ハードウェア加速:CUDA(NVIDIA)/ Metal(Apple Silicon)/ Vulkan(AMD・Intel GPU)/ HIP(AMD ROCm)/ OpenBLAS(CPU)/ OpenVINO(Intel)/ CANN(Huawei Ascend NPU)に対応
  • Zero-allocation設計:推論中の動的メモリ確保がゼロで、メモリ使用量が予測可能
  • 量子化対応:INT4/INT5/INT8/Q5_0/Q8_0など多彩な量子化フォーマットでモデルサイズを最大40%圧縮
  • VAD内蔵:Silero VADによる無音区間の自動スキップで長時間音声を効率化
  • MITライセンス:商用利用OK、改変・再配布OK
whisper.cppロゴ
Whisper.cppは単一バイナリで動く超軽量な音声認識エンジン(出典: 公式GitHubリポジトリ / MITライセンス)

プロジェクトの基本情報

項目内容
公式リポジトリgithub.com/ggml-org/whisper.cpp
ライセンスMIT
初回リリース2022年10月
最新版v1.9.1(2026年6月19日)
主要言語C/C++(Python・Ruby・Go・Rust・JS・Java・.NET・R・Unity バインディングあり)
スター数約42,000(2026年7月時点)
推論バックエンドggml(llama.cppと共通)

最新リリース情報(2026年最新)

Whisper.cppは2025年秋以降、リリースペースが加速しています。以下は直近8ヶ月の主要アップデートです。

バージョンリリース日主要変更点
v1.9.12026-06-19Windows BLASビルドのCI調整(GGML_NATIVE=OFF、GGML_BMI2=OFF)
v1.9.02026-06-17NVIDIA Parakeet モデルに対応(Whisper以外のSTTモデルが動くように)。Rubyバインディングもパラケット対応
v1.8.72026-06-16サーバーのUTF-8トークン処理を改善、例外キャッチ強化
v1.8.62026-06-02FFmpegトランスコード実装の刷新と挙動の明確化
v1.8.52026-05-29ストリーミングVAD検出、VADメモリリーク修正、サーバーJSONに話者情報追加
v1.8.42026-03-19安定化・性能改善リリース
v1.8.32026-01-15年始のバグ修正・依存アップデート
v1.8.22025-10-15秋の細かな修正
v1.8.12025-10-12ビルドまわりの調整
v1.8.02025-09-30大型リリース、モデル対応・API拡張

v1.9系で押さえておくべきポイント

  • NVIDIA Parakeetモデル対応(v1.9.0):これまでWhisperシリーズ専用だったwhisper.cppが、NVIDIAが公開した高精度英語STTモデル「Parakeet」を推論できるようになりました。英語音声の精度と速度を両立したい場合の選択肢が広がっています
  • ストリーミングVAD(v1.8.5〜):Silero VADによるストリーミング処理でリアルタイム転写のレイテンシが大幅低減
  • FFmpegトランスコード刷新(v1.8.6):WAV以外の音声フォーマットを渡した際の内部トランスコードが安定化。mp3/mp4/m4a/oggがそのまま扱いやすくなった
  • サーバーJSONに話者情報(v1.8.5):HTTPサーバーモードのレスポンスにspeakerフィールドが追加。簡易的な話者分離用途に使える

ベースモデル自体(large-v3、large-v3-turbo、distil-large-v3など)は2024年以降新しい世代が出ていないため、Whisper.cpp側で追いつくべき「新モデル対応」は今のところありません。ただしParakeet対応のように「Whisper以外」への横展開が始まっており、今後の展開に注目です。

他ツールとの比較

Whisper系のローカル推論ツールは複数存在します。用途と環境で最適な選択肢が変わるため、代表的な5ツールを比較します。いずれも2026年7月時点の最新版で確認しています。

ツール最新版言語特徴向いている用途
Whisper.cppv1.9.1(2026-06)C/C++依存ゼロ・全プラットフォーム対応・省メモリCPU/組込み/Apple Silicon/軽量サーバー
faster-whisperv1.2.1(2025-10)PythonCTranslate2バックエンド、GPUで高速NVIDIA GPUがあるPython環境
WhisperXv3.8.6(2026-05)Python単語単位の正確なタイムスタンプ+話者分離字幕作成・議事録・話者判別
WhisperKitv1.0.0(2026-05)SwiftApple ANE最適化、iOS/macOSネイティブiPhone/iPad/Macアプリ組込み
OpenAI whisper(本家)v20250625Python参照実装、精度基準研究用途、精度検証

ベンチマーク比較(Large-v2モデル、参考値)

環境whisper.cppfaster-whisper
GPU推論時間1分05秒1分03秒
GPU VRAM使用量4,127MB4,525MB
CPU推論時間(Smallモデル)2分05秒2分37秒
CPU RAM使用量1,049MB2,257MB

GPUではfaster-whisperが僅差で速いものの、CPUでの推論速度・メモリ効率はwhisper.cppが圧倒的に有利です。VRAM効率も上でギリギリのGPUを使う場合はwhisper.cpp優位。「Python環境を整えたくない」「PythonでもC/C++でも呼びたい」「小さなハードで動かしたい」ならwhisper.cpp一択です。

メリット・デメリット

メリット

  • Python依存なし:単一バイナリでデプロイ可能、Docker化も超軽量
  • 省メモリ・省リソース:Raspberry Pi 4(4GB)でsmallモデルが動く
  • マルチプラットフォーム:iOS・Android・WebAssembly含めどこでも動く
  • Apple Silicon最適化:CoreML経由でANE(Neural Engine)を活用可能
  • 豊富な言語バインディング:Python・Go・Rust・Ruby・Java・.NETから呼べる
  • MITライセンス:商用製品への組込みが容易
  • ストリーミング対応:リアルタイム音声認識のサンプルが公式に付属
  • WebGPU/Vulkan対応:AMD・Intel GPUでも加速可能

デメリット

  • ビルドが必要:Windows/Linuxでは基本的にCMake+MSVC/GCCでのビルドを想定(ただしプレビルド版もあり)
  • GPU推論はfaster-whisperにわずかに劣る:NVIDIA最新世代GPUを持っていて速度最優先ならfaster-whisper有利
  • ドキュメントが英語中心:日本語資料が少ない(本記事のような日本語ガイドが希少)
  • 単語単位タイムスタンプは実験的:字幕作成用途で完璧な同期が欲しいならWhisperXが優位
  • 話者分離は簡易的:本格的なダイアライゼーションはPyannote等の別ツール併用が必要

動作要件

最小構成と推奨構成

項目最小推奨快適
OSWindows 10 / macOS 12 / Ubuntu 20.04Windows 11 / macOS 14 / Ubuntu 22.04Windows 11 24H2 / macOS 15 / Ubuntu 24.04
CPUx86_64 4コア(AVX2対応)x86_64 8コア(AVX2/AVX512) or Apple M2Ryzen 9 / Core i9 / Apple M3 Max
RAM4GB(tinyモデル)8GB(smallモデル)16GB以上(large-v3)
GPU(任意)不要(CPUで動作)NVIDIA GTX 1660 / Apple M1NVIDIA RTX 4060以上(8GB VRAM)/ Apple M3
ディスク500MB(バイナリ+tinyモデル)2GB(medium)5GB以上(複数モデル)
コンパイラMSVC 2019 / GCC 9 / Clang 12MSVC 2022 / GCC 12 / Clang 15最新版

モデル別のリソース要件

モデルファイルサイズ推奨VRAM/RAM実速度目安(RTX 4070Ti)用途
tiny / tiny.en75MB1GB60秒音声を約2秒試験用、リアルタイム字幕
base / base.en142MB1.5GB60秒音声を約3秒簡易文字起こし
small / small.en466MB2GB60秒音声を約5秒実用最小限、Raspberry Pi
medium / medium.en1.5GB4GB60秒音声を約10秒ビジネス用文字起こし
large-v32.9GB8GB60秒音声を約20秒最高精度、公式議事録
large-v3-turbo1.5GB4GB60秒音声を約6秒精度と速度のベストバランス
large-v3-turbo-q5_0547MB2GB60秒音声を約7秒ラップトップでのlargeクラス

迷ったら「large-v3-turbo-q5_0」から始めるのが最適解です。547MBという軽量さでlarge級の精度を維持し、8GB VRAMのGPUなら余裕、CPUだけでも実時間再生の3〜5倍速で処理できます。

インストール手順

Windows(推奨: プレビルド版 or CMakeビルド)

Windows環境では大きく分けて2つのルートがあります。「とりあえず動かしたい」ならプレビルド版、「CUDAで最速を狙う」ならソースビルドです。

ルートA: プレビルド版バイナリを使う(最速)

GitHub Releasesページからビルド済みバイナリをダウンロードして解凍するだけで動きます。

# PowerShellで実行
# 1. 作業ディレクトリを作成
New-Item -ItemType Directory -Force -Path "C:\tools\whisper.cpp"
Set-Location "C:\tools\whisper.cpp"

# 2. 最新リリース(v1.9.1)のバイナリをダウンロード
# CPU版
Invoke-WebRequest -Uri "https://github.com/ggml-org/whisper.cpp/releases/download/v1.9.1/whisper-bin-x64.zip" -OutFile "whisper-bin-x64.zip"

# 3. 解凍
Expand-Archive -Path "whisper-bin-x64.zip" -DestinationPath "." -Force

# 4. 動作確認
.\Release\whisper-cli.exe --help

ルートB: CMake + MSVCでソースビルド(CUDA・Vulkan有効化)

NVIDIA GPUを持っている場合はCUDA有効化ビルドで爆速になります。事前にVisual Studio 2022 Community(「C++によるデスクトップ開発」ワークロード)とCUDA Toolkit 12.6以上CMake 3.28以上をインストールしておきます。

# 1. リポジトリをクローン
git clone https://github.com/ggml-org/whisper.cpp.git
Set-Location whisper.cpp

# 2. CUDA有効化でビルド設定
cmake -B build -DGGML_CUDA=1 -DCMAKE_BUILD_TYPE=Release

# 3. ビルド実行(-j はCPU論理コア数に合わせる)
cmake --build build -j 16 --config Release

# 4. 動作確認
.\build\bin\Release\whisper-cli.exe --help

AMD/Intel GPUの場合はCUDAの代わりに-DGGML_VULKAN=1を指定します。

macOS(Intel & Apple Silicon)

macOSはHomebrewが最も簡単ですが、Apple Silicon(M1/M2/M3/M4)で最大性能を出すにはCoreML有効化ビルドを推奨します。

Homebrewでインストール

brew install whisper-cpp
whisper-cli --help

ソースからビルド(Apple Silicon + CoreML推奨)

git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp

# 標準ビルド(Metal自動有効)
cmake -B build
cmake --build build -j --config Release

# 動作確認
./build/bin/whisper-cli --help

Apple Neural Engine(ANE)を活用したい場合はCoreML変換版モデルを別途生成しますが、標準のMetal GPU経由でも十分高速です(M2 Proでlarge-v3が実時間の6倍速)。

Linux(Ubuntu / Debian / Arch)

ビルドツールを事前に入れておけば、Windowsと同じCMakeコマンドで動きます。

# Ubuntu / Debian
sudo apt update
sudo apt install -y build-essential cmake git ffmpeg

# Arch Linux
sudo pacman -S base-devel cmake git ffmpeg

# 共通: クローン+ビルド
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp

# CPU版(OpenBLAS加速)
sudo apt install -y libopenblas-dev
cmake -B build -DGGML_BLAS=1
cmake --build build -j --config Release

# NVIDIA GPU版
cmake -B build -DGGML_CUDA=1
cmake --build build -j --config Release

# AMD GPU(ROCm)
cmake -B build -DGGML_HIP=1 -DAMDGPU_TARGETS="gfx1100"
cmake --build build -j --config Release

Docker(全プラットフォーム共通)

公式Dockerイメージが提供されているので、環境構築を一切したくない場合はDocker一択です。

# CPU版
docker pull ghcr.io/ggml-org/whisper.cpp:main

# CUDA版
docker pull ghcr.io/ggml-org/whisper.cpp:main-cuda

# 実行例
docker run -it --rm -v $(pwd):/audio ghcr.io/ggml-org/whisper.cpp:main \
  ./main -m /models/ggml-base.bin -f /audio/sample.wav

初期設定

モデルのダウンロード

Whisper.cppには公式のダウンロードスクリプトが同梱されています。ビルドディレクトリ内でスクリプトを叩くだけで、Hugging Faceから正しいggml形式のモデルが取得できます。

# 基本コマンド(Linux/Mac)
sh ./models/download-ggml-model.sh MODEL_NAME

# 例: large-v3-turbo(推奨)
sh ./models/download-ggml-model.sh large-v3-turbo

# 例: 量子化版large-v3-turbo(軽量・推奨)
sh ./models/download-ggml-model.sh large-v3-turbo-q5_0

# 例: 英語専用の高速small
sh ./models/download-ggml-model.sh small.en

Windows の場合は同ディレクトリの download-ggml-model.cmd を実行します。

.\models\download-ggml-model.cmd large-v3-turbo-q5_0

手動ダウンロード(curl/wget)

スクリプトが動かない環境では、Hugging Faceから直接取得します。

curl -L -o models/ggml-large-v3-turbo-q5_0.bin \
  https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo-q5_0.bin

日本語音声のテスト

初期設定が完了したら、日本語音声ファイル(sample.wav、16kHzモノラルWAV推奨)で動作確認します。

./build/bin/whisper-cli \
  -m models/ggml-large-v3-turbo-q5_0.bin \
  -f sample.wav \
  -l ja \
  -osrt

-l jaで言語を日本語に固定、-osrtでSRT形式の字幕ファイルを出力します。

基本的な使い方

CLIの主要オプション

オプション意味使用例
-m <path>モデルファイル指定-m models/ggml-large-v3-turbo.bin
-f <path>入力音声ファイル-f audio.wav
-l <lang>言語コード(ja/en/auto等)-l ja
-t <n>使用するCPUスレッド数-t 8
-p <n>並列プロセッサ数-p 2
-otxtプレーンテキスト出力
-osrtSRT字幕出力
-ovttWebVTT字幕出力
-ojJSON出力
-ojf詳細JSON(フルオブジェクト)
-ml <n>1セグメント最大文字数-ml 40
-tr翻訳モード(→英語)
--print-colors信頼度別に色付き表示
--vadSilero VADで無音スキップ
--vad-model <path>VADモデル指定

もっともシンプルな実行例

./build/bin/whisper-cli -m models/ggml-base.en.bin -f samples/jfk.wav

これで samples/jfk.wav(バンドルされているJFKスピーチのサンプル)が文字起こしされ、標準出力にタイムスタンプ付きテキストが表示されます。

日本語ポッドキャストの文字起こし

./build/bin/whisper-cli \
  -m models/ggml-large-v3-turbo-q5_0.bin \
  -f podcast.wav \
  -l ja \
  -t 8 \
  -otxt -osrt -ovtt \
  --vad

この1コマンドで podcast.txtpodcast.srtpodcast.vttの3ファイルが生成されます。--vadで無音区間をスキップするので、長時間音声でも処理時間が短縮されます。

信頼度可視化(デバッグ用)

./build/bin/whisper-cli -m models/ggml-base.en.bin -f samples/gb0.wav --print-colors
whisper.cpp print-colors オプションの出力例
–print-colorsオプションで単語ごとの信頼度が色で可視化される(緑=高信頼、赤=低信頼)(出典: 公式GitHubリポジトリ / MITライセンス)

実践的な使い方

ケース1: 会議・打ち合わせ議事録の自動化

Zoom/Google Meet録画から議事録を生成する典型的なワークフローです。まずffmpegで音声を抽出し、whisper.cppで文字起こしします。

# 1. 動画から16kHzモノラルWAVを抽出
ffmpeg -i meeting.mp4 -ar 16000 -ac 1 -c:a pcm_s16le meeting.wav

# 2. large-v3-turboで日本語文字起こし
./build/bin/whisper-cli \
  -m models/ggml-large-v3-turbo.bin \
  -f meeting.wav \
  -l ja \
  -t 8 \
  --vad \
  -oj -otxt

# 3. 出力
# meeting.txt : プレーンテキスト
# meeting.json: タイムスタンプ付きセグメント

v1.8.6以降はmp4/m4a/mp3等を直接指定してもFFmpeg内部トランスコードで処理されますが、事前変換した方が安定します。

ケース2: YouTube動画の字幕生成

YouTubeの動画から自動で日本語字幕を生成し、SRT形式で書き出すワークフローです。

# 1. yt-dlpで音声のみダウンロード(要yt-dlp別途インストール)
yt-dlp -x --audio-format wav --audio-quality 0 "https://www.youtube.com/watch?v=XXXX" -o "video.%(ext)s"

# 2. 16kHzモノラルに変換
ffmpeg -i video.wav -ar 16000 -ac 1 video_16k.wav

# 3. SRT字幕を生成(1セグメント最大30文字で読みやすく)
./build/bin/whisper-cli \
  -m models/ggml-large-v3-turbo-q5_0.bin \
  -f video_16k.wav \
  -l ja \
  -osrt \
  -ml 30

# → video_16k.wav.srt が生成される

ケース3: HTTPサーバーとして常駐(REST API化)

whisper.cppには公式のHTTPサーバーが同梱されており、REST APIとして立ち上げてPython/Node.js/curl から呼べます。

# サーバー起動(ポート8080、large-v3-turboをメモリに常駐)
./build/bin/whisper-server \
  -m models/ggml-large-v3-turbo-q5_0.bin \
  --host 0.0.0.0 \
  --port 8080

# 別ターミナルから curl でリクエスト
curl 127.0.0.1:8080/inference \
  -H "Content-Type: multipart/form-data" \
  -F file="@sample.wav" \
  -F language="ja" \
  -F response_format="json"

レスポンスはOpenAI Whisper APIとほぼ互換のJSONで返るため、既存のOpenAI SDKクライアントのbase URLだけ差し替えて使えます。これがローカル完結の最大の武器です。

from openai import OpenAI

# OpenAI SDKのbase_urlをローカルサーバーに向ける
client = OpenAI(base_url="http://127.0.0.1:8080", api_key="dummy")

with open("audio.wav", "rb") as f:
    transcript = client.audio.transcriptions.create(
        model="whisper-1",  # ダミー、サーバー側のモデルが使われる
        file=f,
        language="ja"
    )
print(transcript.text)

応用・カスタマイズ

NVIDIA Parakeetモデルでの推論(v1.9.0新機能)

v1.9.0で追加されたParakeet対応により、Whisper以外の英語特化STTモデルも動かせるようになりました。英語音声の速度・精度をさらに攻めたい場合に有効です。

# Parakeetモデルの取得(Hugging Faceから)
curl -L -o models/ggml-parakeet-tdt-0.6b.bin \
  https://huggingface.co/ggml-org/parakeet/resolve/main/ggml-parakeet-tdt-0.6b.bin

# 推論
./build/bin/whisper-cli \
  -m models/ggml-parakeet-tdt-0.6b.bin \
  -f english_audio.wav

ストリーミング(リアルタイム音声認識)

マイク入力をリアルタイムで文字起こしするstreamコマンドが同梱されています。ライブ配信・会議のリアルタイム字幕・音声メモアプリに使えます。

# SDL2が必要(Linux: sudo apt install libsdl2-dev)
cmake -B build -DWHISPER_SDL2=1
cmake --build build -j --config Release

# ストリーミング起動(tinyモデル、500msごとに推論)
./build/bin/whisper-stream \
  -m models/ggml-tiny.bin \
  -t 8 \
  --step 500 \
  --length 5000 \
  -l ja

音声フォーマット変換(16kHzモノラル化)

whisper.cppは内部的にFFmpeg対応が入りましたが、事前変換した方が安定します。以下のffmpegコマンドが定番です。

ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav

Pythonから呼び出す(whisper-cpp-python)

pip install whisper-cpp-python
from whisper_cpp_python import Whisper

whisper = Whisper(model_path="./models/ggml-large-v3-turbo-q5_0.bin")
result = whisper.transcribe("audio.wav", language="ja")
print(result["text"])

パフォーマンス最適化

スレッド数のチューニング

-tオプションは物理コア数に合わせるのが基本です。ハイパースレッディング(論理コア)を全て使うより物理コア数の方が速いケースが多いです。

# 8物理コアのCPUなら
./build/bin/whisper-cli -m models/ggml-large-v3-turbo.bin -f audio.wav -t 8

Flash Attention有効化(CUDA/Metal)

ビルド時に-DGGML_CUDA_FA_ALL_QUANTS=1を指定してFlash Attentionを有効化すると、GPU推論が10〜20%高速化します。

cmake -B build -DGGML_CUDA=1 -DGGML_CUDA_FA_ALL_QUANTS=1
cmake --build build -j --config Release

# 実行時に有効化
./build/bin/whisper-cli -m models/ggml-large-v3-turbo.bin -f audio.wav -fa

VADによる無音スキップ

長時間音声で無音区間が多い場合、Silero VADで無音をスキップすると処理時間が半分以下になることも。

# VADモデルダウンロード
sh ./models/download-vad-model.sh silero-v5.1.2

# VAD有効で実行
./build/bin/whisper-cli \
  -m models/ggml-large-v3-turbo.bin \
  -f long_audio.wav \
  --vad \
  --vad-model models/ggml-silero-v5.1.2.bin

量子化モデルの選択

large-v3-turbo(1.5GB)と large-v3-turbo-q5_0(547MB)の精度差はほぼ体感できません。VRAM/RAMに余裕がなければ迷わずq5_0を選ぶべきです。

Apple SiliconでのCoreML化

Apple M1/M2/M3のNeural Engine(ANE)を活用するため、モデルをCoreML形式に変換すると、encoder部分が3倍以上高速化します。

# CoreMLサポート有効でビルド
cmake -B build -DWHISPER_COREML=1
cmake --build build -j --config Release

# モデル変換(Python環境必要)
python3 -m venv venv
source venv/bin/activate
pip install ane_transformers openai-whisper coremltools
./models/generate-coreml-model.sh large-v3-turbo

よくあるエラーとトラブルシューティング

エラー1: whisper_init_from_file_no_state: failed to open

症状:モデルファイルが見つからない、または壊れている。

対処:ファイルパスを絶対パスで指定し、ファイルサイズが正常か確認します。

# サイズ確認
ls -lh models/ggml-large-v3-turbo.bin

# 再ダウンロード
rm models/ggml-large-v3-turbo.bin
sh ./models/download-ggml-model.sh large-v3-turbo

エラー2: WARNING: failed to open ‘input.wav’ as WAV

症状:WAVファイル形式が16kHz PCMでない。

対処:ffmpegで再変換します。

ffmpeg -i input.wav -ar 16000 -ac 1 -c:a pcm_s16le converted.wav

エラー3: ggml_cuda_init: failed to initialize CUDA

症状:CUDAランタイムが認識されない。

対処:CUDA Toolkitのバージョンとドライバの整合性を確認。nvidia-sminvcc --versionの出力を確認し、必要に応じてCUDA Toolkitを再インストールします。

エラー4: 幻覚(hallucination)が発生する

症状:無音区間や雑音で存在しないテキスト(「ご視聴ありがとうございました」等)が出力される。

対処:以下の対策を組み合わせます。

  • --vadオプションで無音をスキップ
  • --temperature 0.0で決定的推論に
  • --no-speech-thold 0.6で音声判定閾値を上げる
  • より大きいモデル(medium → large-v3-turbo)に切り替え
./build/bin/whisper-cli \
  -m models/ggml-large-v3-turbo.bin \
  -f audio.wav \
  -l ja \
  --vad \
  --temperature 0.0 \
  --no-speech-thold 0.6

エラー5: MSVC ビルドで「link.exe not found」

症状:WindowsのCMakeビルドでリンカが見つからない。

対処:「x64 Native Tools Command Prompt for VS 2022」から CMake を実行するか、PowerShellで以下を先に実行します。

& "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"

エラー6: SDL2 not found(ストリーミングビルド時)

対処:SDL2をインストール。

# Linux
sudo apt install libsdl2-dev

# macOS
brew install sdl2

# Windows: vcpkg経由
vcpkg install sdl2

エラー7: 出力が空、または「[BLANK_AUDIO]」だけ

症状:音声が入っているのに認識されない。

対処:サンプルレート・チャネル数・ビット深度が16kHz/モノラル/16bit PCMになっているか確認。ステレオWAVや48kHzサンプリングだと精度が落ちます。

おすすめの組み合わせ・連携

Ollama + Whisper.cpp = 音声入力LLMアシスタント

Whisper.cppで音声→テキスト変換し、Ollama(v0.12系)でローカルLLMに投げる構成が定番です。当ブログのOllama入門記事も併せてご覧ください。

Open WebUI 経由でGUI化

Open WebUIの「Speech-to-Text」設定で「Local Whisper」を選択すると、whisper.cpp互換のサーバーを指定できます。

Home Assistant音声アシスタント

Home AssistantのWyoming Protocol経由でwhisper.cppを組み合わせ、完全ローカルの音声アシスタントを構築できます。

OBS + whisper.cpp = リアルタイムライブ字幕

OBSの音声を仮想オーディオデバイス経由でwhisper-streamに流し、生成された字幕をOBSのテキストソースにフィードすることでライブ配信中のリアルタイム字幕が実現できます。

Docker Compose でスタック化

version: '3.8'
services:
  whisper:
    image: ghcr.io/ggml-org/whisper.cpp:main-cuda
    ports:
      - "8080:8080"
    volumes:
      - ./models:/models
    command: >
      ./build/bin/whisper-server
      -m /models/ggml-large-v3-turbo-q5_0.bin
      --host 0.0.0.0 --port 8080
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

推奨PCスペック

入門構成(tiny〜smallモデル、Raspberry Pi級)

パーツ推奨用途
CPURyzen 5 5600 / Core i5-12400 / Apple M1smallモデルCPU推論
メモリ16GB DDR4OS+モデル常駐
ストレージ500GB NVMe SSDモデル格納
GPU不要(内蔵GPU可)

標準構成(large-v3-turbo快適、8GB VRAM)

パーツ推奨用途
CPURyzen 7 7700 / Core i7-14700 / Apple M2 Pro並列文字起こし
メモリ32GB DDR5複数モデル同時常駐
ストレージ2TB NVMe SSD音声・モデル・出力
GPURTX 4070 Ti SUPER(16GB)large-v3を実時間20倍速

ハイエンド構成(複数ストリーム同時+LLM連携)

パーツ推奨用途
CPURyzen 9 7950X / Threadripper / Apple M3 Maxマルチセッション
メモリ64GB DDR5Whisper+Ollama+DB同時常駐
ストレージ4TB NVMe SSD Gen4音声アーカイブ
GPURTX 5090(32GB) or RTX 4090(24GB)large-v3を実時間40倍速+LLM同時

まとめ

Whisper.cppは、「音声認識をローカルで完結させたい」ときの現時点の最適解です。Python依存ゼロ・全プラットフォーム対応・低メモリ・MITライセンスという特性は、他のどの音声認識ツールにも代替できません。faster-whisperの方がGPU推論では僅差で速いものの、CPU効率・デプロイの簡潔さ・組み込み用途を含めた総合力ではwhisper.cppに軍配が上がります。

2026年6月にリリースされたv1.9系ではNVIDIA Parakeetモデルへの対応が加わり、Whisperシリーズ以外の高精度英語STTモデルも同じインフラで動かせるようになりました。ストリーミングVAD・FFmpegトランスコード刷新・HTTPサーバーの機能強化と、着実にアップデートが続いています。

おすすめは以下の3パターンです。

  • 初めての方:Windowsプレビルド版 + large-v3-turbo-q5_0(547MB)から始める
  • NVIDIA GPU持ち:CUDA有効ビルド + large-v3-turbo(1.5GB)+ Flash Attention
  • Apple Silicon:Homebrewでインストール + large-v3-turbo-q5_0 + Metal自動有効

公式GitHubのDiscussionsには活発な議論が集まっており、新機能のロードマップも透明性高く公開されています。今後はParakeet以外のSTTモデル対応拡大、話者分離の高度化、WebGPU経由のブラウザ推論などが期待されています。

「文字起こしのためだけにAPIサブスクを払っている」——そんな読者にとって、Whisper.cppは月額コストゼロ+完全プライバシー保護という理想を今日から実現してくれる強力な選択肢です。まずはtinyモデルで動作確認、次にlarge-v3-turbo-q5_0で実用検証、というステップで是非導入してみてください。

📦 この記事で紹介した商品

※ 上記リンクはAmazonアソシエイトリンクです。購入いただくと当サイトに紹介料が入ります。

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