WSL2でJ-Moshiを試してみる
「英語における7Bパラメータのfull-duplex音声対話モデル Moshi をベースとし、日本語音声対話データでの追加学習によって構築。発話のオーバーラップや相槌など、人間同士の対話におけるような自然なターンテイキングをリアルタイムに実現」したらしいJ-Moshiを試してみます。
使用するPCはドスパラさんの「GALLERIA UL9C-R49」。スペックは
・CPU: Intel® Core™ i9-13900HX Processor
・Mem: 64 GB
・GPU: NVIDIA® GeForce RTX™ 4090 Laptop GPU(16GB)・GPU: NVIDIA® GeForce RTX™ 4090 (24GB)
・OS: Ubuntu22.04 on WSL2(Windows 11)
です。
1. 準備
venv構築とパッケージのインストールのみです。
python3 -m venv moshi
cd $_
source bin/activate
#
pip install moshi
2. サーバ起動
J-Moshiモデルは、2種類公開されています。
kyutai/moshika-pytorch-bf16をベースとし,大規模な日本語音声対話データによって学習されたモデル
kyutai/moshika-pytorch-bf16をベースとし,大規模な日本語音声対話データおよび,Multi-stream TTSを用いて合成された拡張データによって学習されたモデル
今回は、j-moshi-extを使用します。コマンドラインはこちら。
CUDA_VISIBLE_DEVICES=0 python -m moshi.server --hf-repo nu-dialogue/j-moshi-ext
なお、VRAM 16GBですと以下のようにOOM発生しますので、
RTX 4090 (24GB) を使用して試しています。
以下は正常に実行されたときに出力されるログ。
[Info] loading mimi
[Info] mimi loaded
[Info] loading moshi
[Info] moshi loaded
[Info] warming up the model
[Info] retrieving the static content
[Info] serving static content from /home/shoji_noguchi/.cache/huggingface/hub/models--kyutai--moshi-artifacts/snapshots/8481e95f73827e4e70ac7311c12b0be099276182/dist
[Info] Access the Web UI directly at http://localhost:8998
======== Running on http://0.0.0.0:8998 ========
(Press CTRL+C to quit)
3. 試してみる
https://localhost:8998 にアクセスします。
Connetボタンを押下すると、「マイクを使用しますか?」と尋ねてくるので、許可します。
すると画面が切り替わり、対話が始まります。画面の上にあるDisconnectボタンを押すと対話が終わります。
対話が成り立っているんだか成り立ってないんだかの絶妙なラインが、現実もそうだよなと思いつつ。
なかなか面白いです。