このガイドでは、Ubuntu 24.04 LTS環境でwhisper.cppをCUDA対応でビルドし、最新の8bit量子化されたWhisper Large V3 Turboモデル(q8_0)を使用する手順を完全に解説し
ます。
- 目次
- 1. システム要件の確認
- 2. システムのアップデート
- 3. 必要なパッケージのインストール
- 4. NVIDIA ドライバーのインストール
- 5. CUDA Toolkit のインストール
- 6. 環境変数の設定
- 7. whisper.cpp のクローン
- 8. CUDA対応ビルド
- 9. Whisper Large V3 Turbo q8_0 モデルのダウンロード
- 10. サンプル音声での動作確認
- 11. 日本語音声ファイルの準備と認識
- 12. 実用的な使用例
- 13. よく使うオプション一覧
- 14. パフォーマンステスト
- 15. バッチ処理スクリプト
- 16. トラブルシューティング
- 17. アップデート方法
- 18. その他の量子化モデル
- まとめ
- 参考リンク
目次
- システム要件の確認
- システムのアップデート
- 必要なパッケージのインストール
- NVIDIA ドライバーのインストール
- CUDA Toolkit のインストール
- 環境変数の設定
- whisper.cpp のクローン
- CUDA対応ビルド
- Whisper Large V3 Turbo q8_0 モデルのダウンロード
- 動作確認
- 実用例
1. システム要件の確認
必須要件
- OS: Ubuntu 24.04 LTS (Noble Numbat)
- GPU: NVIDIA GPU (Compute Capability 3.5以上)
- RAM: 最低8GB、推奨16GB以上
- ストレージ: 最低10GB以上の空き容量
GPU確認
lspci | grep -i nvidia
NVIDIA GPUが表示されることを確認してください。
2. システムのアップデート
まず、システムを最新の状態にします。
sudo apt update
sudo apt upgrade -y
再起動を推奨:
sudo reboot
3. 必要なパッケージのインストール
基本的な開発ツールのインストール
sudo apt install -y build-essential git cmake wget curl
追加パッケージのインストール
sudo apt install -y pkg-config libssl-dev
ffmpegのインストール(音声変換用)
sudo apt install -y ffmpeg
確認:
gcc --version
cmake --version
git --version
ffmpeg -version
4. NVIDIA ドライバーのインストール
推奨ドライバーの確認
ubuntu-drivers devices
推奨ドライバーの自動インストール
sudo ubuntu-drivers autoinstall
または、特定のバージョンを指定:
sudo apt install -y nvidia-driver-550
システムの再起動
sudo reboot
ドライバーのインストール確認
nvidia-smi
以下のような出力が表示されればOK:
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.15 Driver Version: 550.54.15 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3090 Off | 00000000:01:00.0 On | N/A |
| 30% 35C P8 29W / 350W | 500MiB / 24576MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
5. CUDA Toolkit のインストール
CUDA 12.4 のインストール(Ubuntu 24.04推奨)
# CUDA リポジトリの追加
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
CUDA Toolkit のインストール
sudo apt install -y cuda-toolkit-12-4
cuDNN のインストール(オプション、推奨)
sudo apt install -y libcudnn8 libcudnn8-dev
6. 環境変数の設定
.bashrc に環境変数を追加
echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export CUDA_HOME=/usr/local/cuda-12.4' >> ~/.bashrc
設定を反映
source ~/.bashrc
CUDA インストールの確認
nvcc --version
以下のような出力が表示されればOK:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Thu_Mar_28_02:18:24_PDT_2024
Cuda compilation tools, release 12.4, V12.4.131
7. whisper.cpp のクローン
ホームディレクトリに移動
cd ~
whisper.cpp をクローン
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp
最新版に更新
git pull origin master
8. CUDA対応ビルド
CMakeを使用したビルド(推奨)
mkdir build
cd build
cmake .. -DGGML_CUDA=ON
cmake --build . --config Release -j$(nproc)
cd ..
オプション説明:
-DGGML_CUDA=ON
: CUDA サポートを有効化-j$(nproc)
: 利用可能なすべてのCPUコアを使用して並列ビルド
Makeを使用したビルド(代替方法)
make clean
GGML_CUDA=1 make -j$(nproc)
ビルドの確認
./main --help
または
./build/bin/main --help
ヘルプメッセージが表示されればビルド成功です。
9. Whisper Large V3 Turbo q8_0 モデルのダウンロード
モデルについて
- モデル名: ggml-large-v3-turbo-q8_0.bin
- 量子化: 8bit量子化(q8_0)
- サイズ: 約1.7GB
- 特徴:
- 精度: large-v3とほぼ同等
- 速度: 8倍高速
- メモリ: 少ないメモリで動作
modelsディレクトリの作成(存在しない場合)
mkdir -p models
ダウンロード方法 1: wget を使用(推奨)
wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo-q8_0.bin -O models/ggml-large-v3-turbo-q8_0.bin
ダウンロード方法 2: curl を使用
curl -L "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo-q8_0.bin" -o models/ggml-large-v3-turbo-q8_0.bin
ダウンロード方法 3: Hugging Face CLI(オプション)
# Hugging Face CLI のインストール
pip install -U "huggingface_hub[cli]"
# モデルのダウンロード
huggingface-cli download ggerganov/whisper.cpp ggml-large-v3-turbo-q8_0.bin --local-dir models --local-dir-use-symlinks False
ダウンロード確認
ls -lh models/ggml-large-v3-turbo-q8_0.bin
ファイルサイズが約1.7GBであることを確認:
-rw-rw-r-- 1 user user 1.7G Oct 19 12:34 models/ggml-large-v3-turbo-q8_0.bin
10. サンプル音声での動作確認
サンプル音声のダウンロード
bash ./models/download-sample.sh
または手動でダウンロード:
wget https://github.com/ggerganov/whisper.cpp/raw/master/samples/jfk.wav -O samples/jfk.wav
英語音声の認識テスト
./main -m models/ggml-large-v3-turbo-q8_0.bin -f samples/jfk.wav
GPU使用を明示的に指定
./main -m models/ggml-large-v3-turbo-q8_0.bin -f samples/jfk.wav -ngl 999
オプション説明:
-ngl 999
: すべてのレイヤーをGPUにオフロード(最大限GPU使用)
期待される出力
whisper_init_from_file_with_params_no_state: loading model from 'models/ggml-large-v3-turbo-q8_0.bin'
whisper_model_load: loading model
whisper_model_load: n_vocab = 51866
whisper_model_load: n_audio_ctx = 1500
whisper_model_load: n_audio_state = 1280
whisper_model_load: n_audio_head = 20
whisper_model_load: n_audio_layer = 32
whisper_model_load: n_text_ctx = 448
whisper_model_load: n_text_state = 1280
whisper_model_load: n_text_head = 20
whisper_model_load: n_text_layer = 32
whisper_model_load: n_mels = 128
whisper_model_load: ftype = 7 (Q8_0)
whisper_model_load: type = 5 (large v3 turbo)
whisper_model_load: adding 1608 extra tokens
whisper_model_load: n_langs = 100
whisper_backend_init: using CUDA backend
ggml_cuda_init: GGML_CUDA_FORCE_MMQ: no
ggml_cuda_init: GGML_CUDA_FORCE_CUBLAS: no
ggml_cuda_init: found 1 CUDA devices:
Device 0: NVIDIA GeForce RTX 3090, compute capability 8.6, VMM: yes
[00:00.000 --> 00:08.000] And so my fellow Americans, ask not what your country can do for you, ask what you can do for your country.
11. 日本語音声ファイルの準備と認識
MP3/MP4から16kHz WAVに変換
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav
動画ファイルの場合:
ffmpeg -i video.mp4 -ar 16000 -ac 1 -c:a pcm_s16le audio.wav
日本語音声の認識
./main -m models/ggml-large-v3-turbo-q8_0.bin -f audio.wav -l ja -ngl 999
オプション説明:
-l ja
: 日本語を指定-ngl 999
: すべてのレイヤーをGPUで処理
12. 実用的な使用例
字幕ファイル(SRT)生成
./main -m models/ggml-large-v3-turbo-q8_0.bin -f audio.wav -l ja -ngl 999 -osrt -of subtitle
出力: subtitle.srt
字幕ファイル(VTT)生成
./main -m models/ggml-large-v3-turbo-q8_0.bin -f audio.wav -l ja -ngl 999 -ovtt -of subtitle
出力: subtitle.vtt
テキストファイルのみ出力
./main -m models/ggml-large-v3-turbo-q8_0.bin -f audio.wav -l ja -ngl 999 -otxt -of transcript
出力: transcript.txt
JSON形式で出力
./main -m models/ggml-large-v3-turbo-q8_0.bin -f audio.wav -l ja -ngl 999 -oj -of result
出力: result.json
全フォーマット同時出力
./main -m models/ggml-large-v3-turbo-q8_0.bin -f audio.wav -l ja -ngl 999 -osrt -ovtt -otxt -oj -of output
出力:
output.srt
output.vtt
output.txt
output.json
高精度設定(ビームサーチ使用)
./main -m models/ggml-large-v3-turbo-q8_0.bin -f audio.wav -l ja -ngl 999 -bs 5 -bo 5 -osrt -of subtitle
オプション説明:
-bs 5
: ビームサーチサイズを5に設定(精度向上)-bo 5
: ベストオブを5に設定(精度向上)
日本語から英語に翻訳
./main -m models/ggml-large-v3-turbo-q8_0.bin -f audio.wav -l ja -ngl 999 -tr -osrt -of english_subtitle
オプション説明:
-tr
: 翻訳モード(認識した言語を英語に翻訳)
13. よく使うオプション一覧
./main -m models/ggml-large-v3-turbo-q8_0.bin -f audio.wav [オプション]
主要オプション
オプション | 説明 | 推奨値/例 |
---|---|---|
-l | 言語指定 | -l ja (日本語) |
-ngl | GPUにオフロードするレイヤー数 | -ngl 999 (全レイヤー) |
-t | CPUスレッド数 | -t 8 |
-bs | ビームサーチサイズ | -bs 5 (精度重視) |
-bo | ベストオブ | -bo 5 (精度重視) |
-osrt | SRT字幕出力 | -osrt |
-ovtt | VTT字幕出力 | -ovtt |
-otxt | テキスト出力 | -otxt |
-oj | JSON出力 | -oj |
-of | 出力ファイル名 | -of output |
-tr | 英語に翻訳 | -tr |
-pp | タイムスタンプなし | -pp |
14. パフォーマンステスト
処理時間の計測
time ./main -m models/ggml-large-v3-turbo-q8_0.bin -f audio.wav -l ja -ngl 999
GPU使用状況のモニタリング
別のターミナルで実行:
watch -n 1 nvidia-smi
期待されるパフォーマンス
RTX 3090の場合:
- 1時間の音声: 約3-5分で処理
- リアルタイムファクター: 約12-20倍速
RTX 4090の場合:
- 1時間の音声: 約2-3分で処理
- リアルタイムファクター: 約20-30倍速
15. バッチ処理スクリプト
複数ファイルを一括処理
batch_transcribe.sh
を作成:
#!/bin/bash
MODEL="models/ggml-large-v3-turbo-q8_0.bin"
LANG="ja"
for file in *.mp3; do
echo "Processing: $file"
# MP3をWAVに変換
ffmpeg -i "$file" -ar 16000 -ac 1 -c:a pcm_s16le "${file%.mp3}.wav" -y
# 文字起こし
./main -m "$MODEL" -f "${file%.mp3}.wav" -l "$LANG" -ngl 999 -osrt -ovtt -otxt -of "${file%.mp3}"
# WAVファイルを削除(オプション)
# rm "${file%.mp3}.wav"
echo "Completed: $file"
echo "---"
done
echo "All files processed!"
スクリプトの実行
chmod +x batch_transcribe.sh
./batch_transcribe.sh
16. トラブルシューティング
エラー: “CUDA error: no kernel image is available”
原因: CUDAコンパイル時のアーキテクチャ指定が不適切
解決策:
cd build
rm -rf *
cmake .. -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="80;86;89;90"
cmake --build . --config Release -j$(nproc)
Compute Capabilityに合わせて調整:
- RTX 30シリーズ: 86
- RTX 40シリーズ: 89
- A100/H100: 80/90
エラー: “failed to allocate CUDA memory”
原因: GPU メモリ不足
解決策1: レイヤー数を減らす
./main -m models/ggml-large-v3-turbo-q8_0.bin -f audio.wav -ngl 20
解決策2: より小さいモデルを使用
wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium-q5_0.bin -O models/ggml-medium-q5_0.bin
./main -m models/ggml-medium-q5_0.bin -f audio.wav -l ja -ngl 999
エラー: “error while loading shared libraries: libcuda.so.1”
解決策:
sudo ldconfig
または
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
GPU が認識されない
確認手順:
# ドライバー確認
nvidia-smi
# CUDA確認
nvcc --version
# 環境変数確認
echo $CUDA_HOME
echo $LD_LIBRARY_PATH
# 再ビルド
cd ~/whisper.cpp
make clean
GGML_CUDA=1 make -j$(nproc)
17. アップデート方法
whisper.cppを最新版に更新
cd ~/whisper.cpp
git pull origin master
cd build
rm -rf *
cmake .. -DGGML_CUDA=ON
cmake --build . --config Release -j$(nproc)
新しいモデルのダウンロード
cd ~/whisper.cpp
wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo-q8_0.bin -O models/ggml-large-v3-turbo-q8_0.bin
18. その他の量子化モデル
利用可能なモデル一覧
モデル | サイズ | 精度 | 推奨用途 |
---|---|---|---|
ggml-large-v3-turbo.bin | 1.6GB | 最高 | 最高精度が必要な場合 |
ggml-large-v3-turbo-q8_0.bin | 1.7GB | 非常に高 | 推奨バランス |
ggml-large-v3-turbo-q5_0.bin | 1.1GB | 高 | メモリ制限がある場合 |
ggml-medium-q5_0.bin | 539MB | 中-高 | 軽量で高速 |
ggml-small-q5_0.bin | 182MB | 中 | テスト・開発用 |
他の量子化モデルのダウンロード
# q5_0 量子化版(より軽量)
wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo-q5_0.bin -O models/ggml-large-v3-turbo-q5_0.bin
# medium q5_0(バランス型)
wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium-q5_0.bin -O models/ggml-medium-q5_0.bin
まとめ
以上で、Ubuntu 24.04 LTS環境でのwhisper.cpp + CUDA + Whisper Large V3 Turbo q8_0の完全構築が完了しました。
完了した項目: ✅ Ubuntu 24.04 LTS システムセットアップ
✅ NVIDIA ドライバー インストール
✅ CUDA Toolkit 12.4 インストール
✅ whisper.cpp CUDA対応ビルド
✅ Whisper Large V3 Turbo q8_0 モデル導入
✅ 日本語音声認識の実行
✅ 字幕ファイル生成
✅ バッチ処理対応
パフォーマンスまとめ:
- 速度: CPUの約8-10倍高速
- 精度: Large V3とほぼ同等
- メモリ: 約1.7GB(q8_0量子化)
- リアルタイムファクター: 12-30倍速(GPUによる)
このセットアップで、高速かつ高精度な音声認識環境が完成しました!
参考リンク
- whisper.cpp GitHub: https://github.com/ggerganov/whisper.cpp
- モデル一覧: https://huggingface.co/ggerganov/whisper.cpp/tree/main
- CUDA Toolkit: https://developer.nvidia.com/cuda-downloads
- NVIDIA ドライバー: https://www.nvidia.com/download/index.aspx