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

以下にWindowsだと動かなかった部分の差分を修正したものをコミットしています
開発環境
セットアップ
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はかなり使っています
