音声ファイルから文字起こしをローカル環境だけで完結させたい——そんなニーズに最も刺さるのが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は今この瞬間の最適解です。
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
プロジェクトの基本情報
| 項目 | 内容 |
|---|---|
| 公式リポジトリ | 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.1 | 2026-06-19 | Windows BLASビルドのCI調整(GGML_NATIVE=OFF、GGML_BMI2=OFF) |
| v1.9.0 | 2026-06-17 | NVIDIA Parakeet モデルに対応(Whisper以外のSTTモデルが動くように)。Rubyバインディングもパラケット対応 |
| v1.8.7 | 2026-06-16 | サーバーのUTF-8トークン処理を改善、例外キャッチ強化 |
| v1.8.6 | 2026-06-02 | FFmpegトランスコード実装の刷新と挙動の明確化 |
| v1.8.5 | 2026-05-29 | ストリーミングVAD検出、VADメモリリーク修正、サーバーJSONに話者情報追加 |
| v1.8.4 | 2026-03-19 | 安定化・性能改善リリース |
| v1.8.3 | 2026-01-15 | 年始のバグ修正・依存アップデート |
| v1.8.2 | 2025-10-15 | 秋の細かな修正 |
| v1.8.1 | 2025-10-12 | ビルドまわりの調整 |
| v1.8.0 | 2025-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.cpp | v1.9.1(2026-06) | C/C++ | 依存ゼロ・全プラットフォーム対応・省メモリ | CPU/組込み/Apple Silicon/軽量サーバー |
| faster-whisper | v1.2.1(2025-10) | Python | CTranslate2バックエンド、GPUで高速 | NVIDIA GPUがあるPython環境 |
| WhisperX | v3.8.6(2026-05) | Python | 単語単位の正確なタイムスタンプ+話者分離 | 字幕作成・議事録・話者判別 |
| WhisperKit | v1.0.0(2026-05) | Swift | Apple ANE最適化、iOS/macOSネイティブ | iPhone/iPad/Macアプリ組込み |
| OpenAI whisper(本家) | v20250625 | Python | 参照実装、精度基準 | 研究用途、精度検証 |
ベンチマーク比較(Large-v2モデル、参考値)
| 環境 | whisper.cpp | faster-whisper |
|---|---|---|
| GPU推論時間 | 1分05秒 | 1分03秒 |
| GPU VRAM使用量 | 4,127MB | 4,525MB |
| CPU推論時間(Smallモデル) | 2分05秒 | 2分37秒 |
| CPU RAM使用量 | 1,049MB | 2,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等の別ツール併用が必要
動作要件
最小構成と推奨構成
| 項目 | 最小 | 推奨 | 快適 |
|---|---|---|---|
| OS | Windows 10 / macOS 12 / Ubuntu 20.04 | Windows 11 / macOS 14 / Ubuntu 22.04 | Windows 11 24H2 / macOS 15 / Ubuntu 24.04 |
| CPU | x86_64 4コア(AVX2対応) | x86_64 8コア(AVX2/AVX512) or Apple M2 | Ryzen 9 / Core i9 / Apple M3 Max |
| RAM | 4GB(tinyモデル) | 8GB(smallモデル) | 16GB以上(large-v3) |
| GPU(任意) | 不要(CPUで動作) | NVIDIA GTX 1660 / Apple M1 | NVIDIA RTX 4060以上(8GB VRAM)/ Apple M3 |
| ディスク | 500MB(バイナリ+tinyモデル) | 2GB(medium) | 5GB以上(複数モデル) |
| コンパイラ | MSVC 2019 / GCC 9 / Clang 12 | MSVC 2022 / GCC 12 / Clang 15 | 最新版 |
モデル別のリソース要件
| モデル | ファイルサイズ | 推奨VRAM/RAM | 実速度目安(RTX 4070Ti) | 用途 |
|---|---|---|---|---|
| tiny / tiny.en | 75MB | 1GB | 60秒音声を約2秒 | 試験用、リアルタイム字幕 |
| base / base.en | 142MB | 1.5GB | 60秒音声を約3秒 | 簡易文字起こし |
| small / small.en | 466MB | 2GB | 60秒音声を約5秒 | 実用最小限、Raspberry Pi |
| medium / medium.en | 1.5GB | 4GB | 60秒音声を約10秒 | ビジネス用文字起こし |
| large-v3 | 2.9GB | 8GB | 60秒音声を約20秒 | 最高精度、公式議事録 |
| large-v3-turbo | 1.5GB | 4GB | 60秒音声を約6秒 | 精度と速度のベストバランス |
| large-v3-turbo-q5_0 | 547MB | 2GB | 60秒音声を約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 | プレーンテキスト出力 | — |
-osrt | SRT字幕出力 | — |
-ovtt | WebVTT字幕出力 | — |
-oj | JSON出力 | — |
-ojf | 詳細JSON(フルオブジェクト) | — |
-ml <n> | 1セグメント最大文字数 | -ml 40 |
-tr | 翻訳モード(→英語) | — |
--print-colors | 信頼度別に色付き表示 | — |
--vad | Silero 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.txt、podcast.srt、podcast.vttの3ファイルが生成されます。--vadで無音区間をスキップするので、長時間音声でも処理時間が短縮されます。
信頼度可視化(デバッグ用)
./build/bin/whisper-cli -m models/ggml-base.en.bin -f samples/gb0.wav --print-colors
実践的な使い方
ケース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-smiとnvcc --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級)
| パーツ | 推奨 | 用途 |
|---|---|---|
| CPU | Ryzen 5 5600 / Core i5-12400 / Apple M1 | smallモデルCPU推論 |
| メモリ | 16GB DDR4 | OS+モデル常駐 |
| ストレージ | 500GB NVMe SSD | モデル格納 |
| GPU | 不要(内蔵GPU可) | — |
標準構成(large-v3-turbo快適、8GB VRAM)
| パーツ | 推奨 | 用途 |
|---|---|---|
| CPU | Ryzen 7 7700 / Core i7-14700 / Apple M2 Pro | 並列文字起こし |
| メモリ | 32GB DDR5 | 複数モデル同時常駐 |
| ストレージ | 2TB NVMe SSD | 音声・モデル・出力 |
| GPU | RTX 4070 Ti SUPER(16GB) | large-v3を実時間20倍速 |
ハイエンド構成(複数ストリーム同時+LLM連携)
| パーツ | 推奨 | 用途 |
|---|---|---|
| CPU | Ryzen 9 7950X / Threadripper / Apple M3 Max | マルチセッション |
| メモリ | 64GB DDR5 | Whisper+Ollama+DB同時常駐 |
| ストレージ | 4TB NVMe SSD Gen4 | 音声アーカイブ |
| GPU | RTX 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で見る
- NVIDIA GeForce RTX 4070 Ti SUPER → Amazonで見る
- 実践 自然言語処理 → Amazonで見る
- Samsung 990 PRO 2TB NVMe SSD → Amazonで見る
- DDR5メモリ 32GB → Amazonで見る
※ 上記リンクはAmazonアソシエイトリンクです。購入いただくと当サイトに紹介料が入ります。

