Ubuntu 24.04 LTS whisper.cpp + CUDA + Whisper-large-v3-turbo-q8_0 完全構築ガイド

このガイドでは、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. 実用例

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 (日本語)
-nglGPUにオフロードするレイヤー数-ngl 999 (全レイヤー)
-tCPUスレッド数-t 8
-bsビームサーチサイズ-bs 5 (精度重視)
-boベストオブ-bo 5 (精度重視)
-osrtSRT字幕出力-osrt
-ovttVTT字幕出力-ovtt
-otxtテキスト出力-otxt
-ojJSON出力-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.bin1.6GB最高最高精度が必要な場合
ggml-large-v3-turbo-q8_0.bin1.7GB非常に高推奨バランス
ggml-large-v3-turbo-q5_0.bin1.1GBメモリ制限がある場合
ggml-medium-q5_0.bin539MB中-高軽量で高速
ggml-small-q5_0.bin182MBテスト・開発用

他の量子化モデルのダウンロード

# 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