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. 1. システム要件の確認
    1. 必須要件
    2. GPU確認
  3. 2. システムのアップデート
  4. 3. 必要なパッケージのインストール
    1. 基本的な開発ツールのインストール
    2. 追加パッケージのインストール
    3. ffmpegのインストール(音声変換用)
  5. 4. NVIDIA ドライバーのインストール
    1. 推奨ドライバーの確認
    2. 推奨ドライバーの自動インストール
    3. システムの再起動
    4. ドライバーのインストール確認
  6. 5. CUDA Toolkit のインストール
    1. CUDA 12.4 のインストール(Ubuntu 24.04推奨)
    2. CUDA Toolkit のインストール
    3. cuDNN のインストール(オプション、推奨)
  7. 6. 環境変数の設定
    1. .bashrc に環境変数を追加
    2. 設定を反映
    3. CUDA インストールの確認
  8. 7. whisper.cpp のクローン
    1. ホームディレクトリに移動
    2. whisper.cpp をクローン
    3. 最新版に更新
  9. 8. CUDA対応ビルド
    1. CMakeを使用したビルド(推奨)
    2. Makeを使用したビルド(代替方法)
    3. ビルドの確認
  10. 9. Whisper Large V3 Turbo q8_0 モデルのダウンロード
    1. モデルについて
    2. modelsディレクトリの作成(存在しない場合)
    3. ダウンロード方法 1: wget を使用(推奨)
    4. ダウンロード方法 2: curl を使用
    5. ダウンロード方法 3: Hugging Face CLI(オプション)
    6. ダウンロード確認
  11. 10. サンプル音声での動作確認
    1. サンプル音声のダウンロード
    2. 英語音声の認識テスト
    3. GPU使用を明示的に指定
    4. 期待される出力
  12. 11. 日本語音声ファイルの準備と認識
    1. MP3/MP4から16kHz WAVに変換
    2. 日本語音声の認識
  13. 12. 実用的な使用例
    1. 字幕ファイル(SRT)生成
    2. 字幕ファイル(VTT)生成
    3. テキストファイルのみ出力
    4. JSON形式で出力
    5. 全フォーマット同時出力
    6. 高精度設定(ビームサーチ使用)
    7. 日本語から英語に翻訳
  14. 13. よく使うオプション一覧
    1. 主要オプション
  15. 14. パフォーマンステスト
    1. 処理時間の計測
    2. GPU使用状況のモニタリング
    3. 期待されるパフォーマンス
  16. 15. バッチ処理スクリプト
    1. 複数ファイルを一括処理
    2. スクリプトの実行
  17. 16. トラブルシューティング
    1. エラー: “CUDA error: no kernel image is available”
    2. エラー: “failed to allocate CUDA memory”
    3. エラー: “error while loading shared libraries: libcuda.so.1”
    4. GPU が認識されない
  18. 17. アップデート方法
    1. whisper.cppを最新版に更新
    2. 新しいモデルのダウンロード
  19. 18. その他の量子化モデル
    1. 利用可能なモデル一覧
    2. 他の量子化モデルのダウンロード
  20. まとめ
  21. 参考リンク

目次

  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