whisper.cpp を Visual Studio 2022 でビルドする方法

whisper.cpp は、OpenAIのWhisper音声認識モデルをC/C++で実装した高性能な音声認識ライブラリです。 本記事では、Windows環境でVisual Studio 2022を使用してビルドし、日本語の音声ファイルを文字起こしする方法を解説します。

1. 前提条件

2. リポジトリのクローン

まず、whisper.cppのリポジトリをクローンします。

Git Bash / コマンドプロンプト
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp

3. CMakeでビルドファイルを生成

Visual Studio 2022に付属のCMakeを使用して、ビルドファイルを生成します。

CMakeのパス:
Visual Studio 2022のCMakeは以下の場所にあります:
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe
コマンドプロンプト / PowerShell
"C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -B build -G "Visual Studio 17 2022" -A x64

成功すると以下のような出力が表示されます:

-- Selecting Windows SDK version 10.0.26100.0 to target Windows 10.0.26200.
-- The C compiler identification is MSVC 19.44.35222.0
-- The CXX compiler identification is MSVC 19.44.35222.0
...
-- Configuring done
-- Generating done
-- Build files have been written to: .../whisper.cpp/build

4. プロジェクトをビルド

Releaseモードでビルドを実行します。

コマンドプロンプト / PowerShell
"C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" --build build --config Release -j
ビルド成功!
実行ファイルは build\bin\Release\ フォルダに生成されます。

5. 生成される実行ファイル

ファイル名 サイズ 説明
whisper-cli.exe 約481KB メインのCLIツール(音声認識)
whisper-server.exe 約723KB HTTPサーバー
whisper-bench.exe 約21KB ベンチマークツール
whisper-quantize.exe 約104KB モデル量子化ツール
whisper.dll 約485KB Whisperライブラリ
ggml.dll 約67KB GGMLバックエンド
ggml-base.dll 約537KB GGML基本ライブラリ
ggml-cpu.dll 約730KB GGML CPUバックエンド

6. モデルのダウンロード

音声認識を行うには、Whisperモデルが必要です。日本語を認識するには、多言語モデル(.enがついていないもの)を使用します。

利用可能なモデル

モデル サイズ メモリ使用量 精度
tiny 75 MB ~273 MB
base 142 MB ~388 MB
small 466 MB ~852 MB 中高
medium 1.5 GB ~2.1 GB
large 2.9 GB ~3.9 GB 最高

baseモデルのダウンロード(推奨)

コマンドプロンプト / PowerShell
curl -L -o models\ggml-base.bin https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.bin

または、付属のスクリプトを使用:

cd models
download-ggml-model.cmd base
注意: modelsフォルダにあるfor-tests-*.binファイルはテスト用のダミーファイル(約500KB)です。 実際の音声認識には使用できません。本物のモデル(ggml-base.binは142MB)をダウンロードしてください。

7. 対応音声フォーマット

whisper-cli.exeは以下の音声フォーマットに対応しています:

8. 使用方法

基本的な使い方

コマンドプロンプト
build\bin\Release\whisper-cli.exe -m models\ggml-base.bin -f audio.wav

日本語音声の文字起こし

build\bin\Release\whisper-cli.exe -m models\ggml-base.bin -l ja -f audio.mp3

SRT字幕ファイルを出力

build\bin\Release\whisper-cli.exe -m models\ggml-base.bin -l ja -osrt -f audio.mp3

VTT字幕ファイルを出力

build\bin\Release\whisper-cli.exe -m models\ggml-base.bin -l ja -ovtt -f audio.mp3

テキストファイルに出力

build\bin\Release\whisper-cli.exe -m models\ggml-base.bin -l ja -otxt -f audio.mp3

JSON形式で出力

build\bin\Release\whisper-cli.exe -m models\ggml-base.bin -l ja -oj -f audio.mp3

9. 主要なオプション

オプション 説明 デフォルト値
-m, --model モデルファイルのパス models/ggml-base.en.bin
-f, --file 入力音声ファイル -
-l, --language 言語コード(ja=日本語) en
-t, --threads 使用するスレッド数 4
-osrt SRT字幕を出力 false
-ovtt VTT字幕を出力 false
-otxt テキストファイルを出力 false
-oj JSONを出力 false
-tr, --translate 英語に翻訳 false
--vad 音声区間検出を有効化 false

10. トラブルシューティング

CMakeが見つからない場合

Visual Studio 2022のCMakeへのフルパスを使用してください:

"C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe"

DLLが見つからないエラー

実行時にDLLエラーが出る場合は、以下のDLLファイルが同じフォルダにあることを確認してください:

音声ファイルの変換

音声ファイルがうまく認識されない場合は、ffmpegで16kHz、モノラルのWAVに変換してみてください:

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

11. 参考リンク


WinUI 3 / XAML の Grid.Width 設定方法

WinUI 3でMenuFlyoutをShowAtで表示する方法【コード付き解説】

MenuFlyoutWinUI 3 で便利なポップアップメニュー

WinUI 3の開発で混乱しがちな「空白のウィンドウ」と「空白のページ」の違い

PowerShellでMSIXアプリ(Storeアプリ)を起動する方法|AppUserModelIdとURIスキーム活用術

Microsoft Storeアプリ更新時のロールアウト設定まとめ

PowerShellでtail -f!WindowsでUTF-8対応のリアルタイムログ監視を実現する方法

Microsoft純正の新しいコンソールエディタ「edit」が復活!| edit.exe インストール方法

Microsoft Authenticatorのオートフィル機能が2025年7月に終了

RuntimeBroker.exeとMsEdgeWebView2.exeとは?Windows 11のプロセスについて

PowerShellでGrapheme Clusterについて処理を考える

業務用ノートパソコンのストレージは暗号化されている?BitLockerの確認と対策方法

【Windows】Volta コマンドライン インストール | Node.jsをバージョン管理する方法

【C#】大容量ファイルを指定サイズ以下に分割する方法|.NET8対応コード付き

【Anker Soundcore Liberty 4】イヤーピース紛失!代替品はAmazonで購入

Windows 11でタスクマネージャー以外からアプリを終了させる方法【PowerShell・コマンドプロンプト】

macOSでドメイン名から情報を取得する方法【初心者向け】

【Excel VBA】セルにUUIDを自動生成して埋める方法

PowerShellでNode.jsの最新バージョン一覧を確認する方法【Volta/Windows対応】

whisper.cpp を Visual Studio 2022 でビルドする方法