WhisperのローカルAPIサーバーを立ててUnityと連携する。
タイトル通りです。前置きは割愛。忘れる前に書いておこうの精神。
①Whisper_Local_APIというフォルダをCドライブ直下に作り、仮想環境を作成し立ち上げる。
cd C:\
mkdir Whisper_Local_API
cd Whisper_Local_API
python -m venv env
env\Scripts\activate.bat
②必要なライブラリをインストール(※)
※Build Tools for Visual Studio 2022,NVIDIA ドライバ,NVIDIA CUDA ツールキット,NVIDIA cuDNN のインストール前提
参照URL:https://www.kkaneko.jp/ai/win/whisper.html
自分のPython 3.6環境ではこちらのエラーがでるので、openai-whisper==20230124をインストールしました。
python -m pip install -U pip
python -m pip install -U torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
python -m pip install --upgrade pip
pip install flask
pip install git+https://github.com/openai/whisper.git
git clone --recursive https://github.com/openai/whisper.git
pip uninstall openai-whisper
pip install --force-reinstall openai-whisper==20230124
③以下のフォルダとスクリプトを作成
"C:\Whisper_Local_API\wav"
"C:\Whisper_Local_API\Whisper_Local_API.py"
"C:\Whisper_Local_API\Whisper_Local_API_Unity.bat"
"C:\Whisper_Local_API\Whisper_Local_API.py"
from flask import Flask, request
import whisper
app = Flask("__init__")
@app.route("/", methods=['POST'])
def post():
SOURCE_FILE = '/wav'
model = whisper.load_model("base")
result = model.transcribe(SOURCE_FILE, verbose=False, language="ja")
res = ''.join(result['text'])
res = res.encode('utf-8')
return res
app.run(host="127.0.0.1", port=5001)
model = whisper.load_model("base")にしてますが、
model = whisper.load_model("small")でもいいかも。PCのスペックと相談してください。自分はとりあえず"small"にしています。
"C:\Whisper_Local_API\Whisper_Local_API_Unity.bat"
call env\Scripts\activate.bat & python "Whisper_Local_API.py"
pause
Unity側のスクリプト……はめちゃくちゃ長いので割愛!
ようはUnityで録音しC:/Whisper_Local_API/wav/input.wavファイルを出力。
WWWForm form = new WWWForm(); using UnityWebRequest webRequest = UnityWebRequest.Post(”http://127.0.0.1:5001/”, form);
すればいい感じです。今度ここ等辺のコード公開するので、その時に確認してみてください。