ミニマルへの道:Windows版 Whisper.cpp (バイナリ)の導入手順
この記事は「音声テキスト変換(Speech to Text)」 をStack-Chan Minimal (ミニマル) の 魂(PC - ローカルAIサーバー)として導入するお話です。ミニマルに接続して使用する部分以外は、一般知識として役に立ちますよ!
ミニマルに興味を持つ方は、エンジニアやソフトウェアに興味がある方ばかりではありません。まず動かすことだけを優先させるため、開発環境では必須の Git / CMake / Visual Studio Build Tools を使わずに、Windows版 Whisper.cpp を導入する手順をまとめました。具体的には公式Releaseページで配布されている Windows向けバイナリ版を使います。
ミニマルでは、Whisper.cpp を標準の STT(Speech to Text / 音声認識)サーバーとして使います。
1. 配置フォルダを作る
例として、以下のフォルダで管理することにします。
C:\App\whisper.cpp-bin
C:\App\whisper.cpp-bin\models
PowerShellから作成する場合は、以下を実行します。
mkdir C:\App\whisper.cpp-bin
mkdir C:\App\whisper.cpp-bin\models2. 公式リリースからWindows x64版をダウンロード
ブラウザで ggml-org/whisper.cpp の Releases ページを開き、最新版のAssetsからWindows x64版をダウンロードします。
ダウンロードするファイル:whisper-bin-x64.zip

保存先の例:
C:\App\whisper.cpp-bin\whisper-bin-x64.zipPowerShellでダウンロードする場合
以下は v1.8.4 の例です。
Invoke-WebRequest `
-Uri "https://github.com/ggml-org/whisper.cpp/releases/download/v1.8.4/whisper-bin-x64.zip" `
-OutFile "C:\App\whisper.cpp-bin\whisper-bin-x64.zip"3. ZIPを展開
ダウンロードしたZIPファイルを右クリックし、**「すべて展開」**を選んで解凍します。

PowerShellで展開する場合
Expand-Archive `
-Path "C:\App\whisper.cpp-bin\whisper-bin-x64.zip" `
-DestinationPath "C:\App\whisper.cpp-bin" `
-Force展開後、以下の実行ファイルがあるか確認します。
・whisper-cli.exe
・whisper-server.exe

PowerShellで確認する場合は、以下を実行します。
Get-ChildItem C:\App\whisper.cpp-bin -Recurse -Filter whisper-cli.exe
Get-ChildItem C:\App\whisper.cpp-bin -Recurse -Filter whisper-server.exe4. モデルファイルをダウンロード
Whisper.cppで使うggml形式モデルは、Hugging Face の ggerganov/whisper.cpp に公開されています。
今回は、最初の動作確認として small モデルを使います。
ダウンロードするファイル:
・ggml-small.bin
・ggml-small-q8_0.bin(オプション)
・ggml-base-q8_0.bin(オプション)

モデルの選び方
small(標準モデル):ggml-small.bin
最初は標準版を使うのがおすすめです
small(量子化モデル):ggml-small-q8_0.bin
軽量化された量子化版もあります。ggml-small-q8_0.bin は、標準版よりファイルサイズとメモリ使用量を抑えられます。環境によっては軽く動く場合がありますが、認識精度が少し落ちる可能性があります。
さらに軽くしたい場合は、baseモデルも候補になります。
base(量子化モデル):ggml-base-q8_0.bin
ggml-base-q8_0.bin は small より小さいモデルです。軽く動かしたい場合に使えますが、認識精度は small より落ちる可能性があります。
ggml-small.binダウンロードした ggml-small.bin を以下に配置します。
C:\App\whisper.cpp-bin\models\ggml-small.binPowerShellでダウンロードする場合
Invoke-WebRequest `
-Uri "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin?download=true" `
-OutFile "C:\App\whisper.cpp-bin\models\ggml-small.bin"確認します。
dir C:\App\whisper.cpp-bin\models\ggml-small.bin5. サンプル音声ファイルをダウンロード
Whisper.cppの動作確認用に、サンプル音声 jfk.wav を使います。
GitHub の samples ページ:
ファイル一覧から、以下のサンプル音声 jfk.wavダウンロードします。

jfk.wav
jfk.wav は英語のサンプル音声です。
ダウンロードした jfk.wav を以下の場所に置きます。
C:\App\whisper.cpp-bin\jfk.wav
6. サンプル音声でCLI確認
まずは whisper-cli.exe で、Whisper.cppが動くか確認します。
C:\App\whisper.cpp-bin\whisper-bin-x64\Release\whisper-cli.exe `
-m C:\App\whisper.cpp-bin\models\ggml-small.bin `
-f C:\App\whisper.cpp-bin\jfk.wav `
-l en `
-nt
jfk.wav は英語音声なので、ここでは -l en を指定しています。
文字起こし結果が表示されれば、Whisper.cpp本体とモデルファイルの読み込みは成功です。
7. whisper-server.exe を起動
ESP32から接続する場合は、--host 0.0.0.0 を付けます。
※同じWi-Fi内からアクセス可能になるため、信頼できるネットワークで使用してください。
C:\App\whisper.cpp-bin\whisper-bin-x64\Release\whisper-server.exe `
-m C:\App\whisper.cpp-bin\models\ggml-small.bin `
--host 0.0.0.0 `
--port 8081 `
-l ja日本語音声を認識させるため、ここでは -l ja を指定しています。
起動に成功すると、次のように表示されます。
whisper server listening at http://0.0.0.0:8081このPowerShell画面は閉じずに、そのまま起動しておきます。
認識処理が遅い場合
音声認識処理が遅い場合は、モデルファイルを以下に置き換えて試すことができます。
ggml-small-q8_0.bin
ggml-base-q8_0.binたとえば ggml-small-q8_0.bin を使う場合は、起動コマンドの -m の指定を以下のように変更します。
-m C:\App\whisper.cpp-bin\models\ggml-small-q8_0.bin8. 初回起動時のWindowsセキュリティ確認
whisper-server.exe を初回起動すると、Windowsセキュリティの確認画面が出ることがあります。

ここでは 「許可」 を押してください。
キャンセルすると、Windows Defender ファイアウォールの制限にかかり、ESP32から接続できない原因になります。
確認するには、whisper-server.exe を起動した状態で、別のPCやスマホのWebブラウザから以下にアクセスします。
http://192.168.11.30:8081/ここで 192.168.11.30 は、whisper-server.exe を起動しているPCのIPアドレスです。
PCのIPアドレスは、PowerShellで「ipconfig」などのコマンドを実行すると確認できます。

ipconfig9. 「許可」を押さずにキャンセルしてしまった場合
誤って「許可」を押さずにキャンセルしてしまった場合は、以下の手順で確認画面を出し直します。
1.画面下の検索欄で 「Windows Defender ファイアウォール」 と検索して開く

2.画面下の検索欄で 「Windows Defender ファイアウォール」 と検索して開く

3.設定の変更 を押す

4.一覧から whisper-server を探す
5.該当する whisper-server の設定を削除
6.OK を押す
7.whisper-server.exe を再起動する
8.Windowsセキュリティの確認画面が再表示される
9.今度は 「許可」 を押す
これで whisper-server が「許可されたアプリおよび機能」に追加され、ESP32から接続できるようになります。
10. ミニマルの身体との接続確認
ここまでで、スタックチャン ミニマルの 魂 側、つまりローカルAIサーバーのうち、STT(Speech to Text)の準備が完了しました。
次に、ミニマルの身体と魂の接続テストを行います。
ミニマルのWebメニューを開くため、WebブラウザにミニマルのIPアドレスを入力します。

ミニマルのIPアドレスは、ミニマル本体の画面を3クリックすると表示できます。

IPが正しいと、Webメニューが表示されます

10-1. AIモデルの設定
Webメニューから 「AIモデルの設定」 を開きます。

「7. whisper-server.exe を起動」で指定したPCのIPアドレスとPort番号を設定し、保存します。

10-2. VAD音声認識設定でテスト
戻るボタンで初期メニューに戻り、Webメニューの 「VAD音声認識設定」 を開きます。
※ミニマルは音声入力を監視する簡易VAD機能を持っています

VAD録音テスト ボタンを押すと、音声認識が始まります。
ミニマルに何か話しかけると、Whisper.cpp がミニマルから送られてきた音声ファイルをテキストに変換します。
認識結果はWebメニューに表示されます。

まとめ
開発環境なしで導入する場合は、手順を以下のように簡略化できます。
Git / CMake / Visual Studio Build Tools は不要
※自分でビルドする場合だけ必要です公式Releasesから whisper-bin-x64.zip をダウンロード
ZIPを展開
ggml-small.bin をダウンロード
whisper-server.exe を起動
初回のWindowsセキュリティ画面で 「許可」 を押す
ESP32から http://PCのIPアドレス:8081/inference に接続
例:http://192.168.11.30:8081/inference
これで、開発環境なしでWindows版 Whisper.cpp CPUバイナリ版を導入できます。
一番手間が少ない開発環境なし:Windows版 Whisper.cpp CPUバイナリ版の導入手順をまとめました。ミニマルと連携させると、ロボットに話しかける部分とローカルAIサーバー(今回はSTT)の仕組みが体感できたのではないでしょうか?
この他に、AMD Ryzen内蔵GPU(Radeon 780Mなど)を使ったVulkan高速化にも成功していますが、初心者向け手順とは分けて、別途「上級者向け:AMD内蔵GPU / Vulkan対応版」として扱います。
