WindowsでFreeze-Omniを動かす

初めに

speech to speechのライブラリの Freeze-Omniを動かしていきます。これは従来のような speech to text(STT) → text to text(LLM) → text to speech(STT)ではなく、speech to speechを実現しているものになります

処理の流れは以下のようになっています

github.com

以下にWindowsだと動かなかった部分の差分を修正したものをコミットしています

github.com

開発環境

セットアップ

uv環境を作成します

uv venv -p 3.10
.venv\Scripts\activate

次にライブラリをインストールします

uv pip install --upgrade pip
uv pip install -r requirements.txt
uv pip install torch==2.2.0 --index-url https://download.pytorch.org/whl/cu121 --force-reinstall
uv pip install torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu121

次にモデルをダウンロードします

 huggingface-cli download --repo-type model VITA-MLLM/Freeze-Omni --local-dir .
 huggingface-cli download --repo-type model Qwen/Qwen2-7B-Instruct --local-dir Qwen2-7B-Instruct

音声ファイルから推論

以下で指定して音声ファイルを使って推論を行います

python bin\inference.py --model_path .\checkpoints --input_wav .\assets\question.wav --output_wav .\assets\answer.wav --llm_path .\Qwen2-7B-Instruct --top_p 0.8 --top_k 20 --temperature 0.8

リアルタイムのインタラクティブDemoを動かす

まずはサーバーを起動します

python bin\server.py --ip 127.0.0.1 --port 8009 --max_users 3 --llm_exec_nums 1 --timeout 180 --model_path .\checkpoints --llm_path .\Qwen2-7B-Instruct --top_p 0.8 --top_k 20 --temperature 0.8

サーバーが起動すると https://127.0.0.1:8009/ にアクセスすることで、以下の対話画面を表示することができます

ボタンを教えて話しかけると以下のような感じで動きを確認することができます

VRAMはかなり使っています