見出し画像

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);
すればいい感じです。今度ここ等辺のコード公開するので、その時に確認してみてください。

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