目的
- PersonaPlex を aws ec2 で動作させ, 簡単に体感してみます
- setup 方法を記述します
PersonaPlex とは
nvidia が公開した全二重(フルデュプレックス)対話型音声モデル
- 自然な間での会話
- 発話途中での割り込みや相槌
- 人間の様な超低遅延での応答
- テキストプロンプトでロールを付与可能
- 英語のみ対応
概要
以下サイトを参照すると分かりやすいと思います
参考動画
以下, 実際に英語で会話している様子を伺えます
// 自動日本語翻訳を用いましたが, 不自然さは伝わってきます
所管から
-
自然な間での対話が出来る事から, AI と自然に音声対話する未来が垣間見えます - 現状では一見会話が出来ているようで, 内容は不自然になります
- 同一の文章を十数回繰り返す
- きれいな音声から不気味な音声へ変化する
- 話題を無視する, 無理矢理曲げる, 噛み合わない
など, 対話として不自然さが目立ちます
実用性は低い状態と思われますが, 将来に期待を持てます
// default の状態で試行したので, 何らかの設定でより良くなる可能性はあるかもしれません
準備
hugging face account / token 作成
hugging face の account を事前に作成し, token を発行しておきます
https://huggingface.co/join
https://huggingface.co/settings/tokens
hugging face 利用許諾
presonaplex のページを開くと利用許諾のメッセージが表示されるので同意します
利用する ec2 instance type
- intance type
- OS
- Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.9 (Ubuntu 24.04)
- 補足
- mem, gpu mem 共に 20G 以上必用となる様です.
- GPU に model をロードすると通常状態で 20G 程使用していました
ec2 network 確認及び設定
- aws ec2 の server の IP を控える
- port 8998 を開く // 自身のIPのみ許可が安全と思います
setup
主に github の内容を元に setup します
sudo apt upgrade
sudo apt install libopus-dev
git clone https://github.com/NVIDIA/personaplex.git
cd personaplex
pip install moshi/.
# 準備段階で作成した hugging face token を記述
export HF_TOKEN=<YOUR_HUGGINGFACE_TOKEN>
SSL_DIR=$(mktemp -d); python -m moshi.server --ssl "$SSL_DIR"
以上で サーバーが起動します
hugging face 設定の補足
私は以下では上手く hugginface へアクセスできなかったので
export HF_TOKEN=<YOUR_HUGGINGFACE_TOKEN>
huggingface-cli コマンドでログインしたところ動作しました
ブラウザから接続
準備段階で控えた IP を用い, 以下でアクセスします.
https://xxx.xxx.xxx.xxx.:8998
offline mode
音声ファイルを与える事で, その音声に対する応答音声ファイルを作成出来るようです
実行方法
HF_TOKEN=<TOKEN> \
python -m moshi.offline \
--voice-prompt "NATF2.pt" \
--input-wav "assets/test/input_assistant.wav" \
--seed 42424242 \
--output-wav "output.wav" \
--output-text "output.json"
どういったファイルが作成されるのか
前提
入力ファイルと出力ファイルは同時再生で1つの会話になる
入力ファイル (人間側)
- 発話 > 無音区間 > 発話 > 無音区間 → ...
- 無音区間 = AI応答を待つ間(想定)
出力ファイル (AI側)
- 無音区間 > AI応答 > 無音区間 > AI応答 → ...
- 入力の無音区間に対応する位置にAI音声が配置される
- 入力音声は含まない (AI応答のみ)
同時再生時のイメージ:
入力 : [ 質問 ] [------] [返答] [------] [返答]
出力 : [ ─── ] [AI応答] [------] [AI応答] [---]
offline mode の性能に関する所見
- 現状
- 上述のサンプルの処理に132秒を要する (大部分はモデルロード時間と推定)
- 見通し:
- モデル常駐が可能であれば実用的な速度になると思われる
- server mode 同様に対話品質問題が存在するなら, 自然な音声生成は難しいと思われる
以上となります.
