見出し画像

ミニマルへの道: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\models

2. 公式リリースからWindows x64版をダウンロード

ブラウザで ggml-org/whisper.cpp の Releases ページを開き、最新版のAssetsからWindows x64版をダウンロードします。

ダウンロードするファイル:whisper-bin-x64.zip

Whisper.cppバイナリ


保存先の例:

C:\App\whisper.cpp-bin\whisper-bin-x64.zip

PowerShellでダウンロードする場合

以下は 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

whisper-cli.exe と whisper-server.exe が見つかればOK


PowerShellで確認する場合は、以下を実行します。

Get-ChildItem C:\App\whisper.cpp-bin -Recurse -Filter whisper-cli.exe
Get-ChildItem C:\App\whisper.cpp-bin -Recurse -Filter whisper-server.exe

4. モデルファイルをダウンロード

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.bin

PowerShellでダウンロードする場合

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.bin

5. サンプル音声ファイルをダウンロード

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.bin

8. 初回起動時のWindowsセキュリティ確認

whisper-server.exe を初回起動すると、Windowsセキュリティの確認画面が出ることがあります。

確認メッセージ: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」などのコマンドを実行すると確認できます。

ipconfig

9. 「許可」を押さずにキャンセルしてしまった場合

誤って「許可」を押さずにキャンセルしてしまった場合は、以下の手順で確認画面を出し直します。

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

検索: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音声認識設定

VAD録音テスト ボタンを押すと、音声認識が始まります。

ミニマルに何か話しかけると、Whisper.cpp がミニマルから送られてきた音声ファイルをテキストに変換します。

認識結果はWebメニューに表示されます。

認識された文字がTestの後に表示されます

まとめ

開発環境なしで導入する場合は、手順を以下のように簡略化できます。

  1. Git / CMake / Visual Studio Build Tools は不要
    ※自分でビルドする場合だけ必要です

  2. 公式Releasesから whisper-bin-x64.zip をダウンロード

  3. ZIPを展開

  4. ggml-small.bin をダウンロード

  5. whisper-server.exe を起動

  6. 初回のWindowsセキュリティ画面で 「許可」 を押す

  7. 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対応版」として扱います。

いいなと思ったら応援しよう!