2025年1月24日、名古屋大学の研究者(大橋 厚元,飯塚 慎也,姜 菁菁,東中 竜一郎)が、日本語 full duplex(全二重)音声対話システム「J-moshi」を試作し、モデルをHugging Faceで公開しました。公開ありがとうございます。これはAITuberやデジタルサイネージ、電話応対など使い道がありそうです。「つくる人をつくる」AICU mediaでは実際に手を動かして、Google Colabでの動くコードと解説を共有いたします。
本研究は,JSTムーンショット型研究開発事業 JPMJMS2011の支援を受けています。雑談対話コーパスおよび相談対話コーパスは 株式会社アイシン との共同研究において構築されたそうです。また本研究では名古屋大学のスーパーコンピュータ「不老」が利用されています。
学習では128基のNVIDIA V100 32GB GPUが使用されているそうです。
コードベースとしてはMoshiを利用し、そのコードベースを利用する形でHugging Face でモデルが公開されています。
https://huggingface.co/nu-dialogue/j-moshi-ext
J-Moshi のベースとなった MoshiはフランスのKyutaiという科学研究所が2024年9月に公開したものです。Moshi以外にも Mimi などの興味深い音声対話モデルを研究しています。
https://arxiv.org/abs/2410.00037
Check out this Japanese version of Moshi built on our pretrained models. すごいですね! https://t.co/0ONrdyPwnS
— kyutai (@kyutai_labs) January 24, 2025
もっとデモが見たい方は公式サイトへどうぞ。
https://nu-dialogue.github.io/j-moshi/
公開ありがとうございます!>名古屋大学 東中研究室
Google Colabで使ってみよう
さて「つくる人をつくる」AICUでは、実際に手を動かして検証してみるところが大事です。実行には24GB以上のVRAMを搭載したLinux GPUマシンが必要、とのことでGoogle ColabのL4環境をつかっていきます。
実際にGoogle Colabで動作確認したソースコードと解説は文末においておきます。とはいえ、結果的に必要なスクリプトは実に2行!でした。
!pip install moshi gradio
!python -m moshi.server --gradio-tunnel --hf-repo nu-dialogue/j-moshi-ext
mochiの原作コードにて提供されているサーバー、moshi.server に トンネルオプション[--gradio-tunnel]を指定すると、Google Colab側のPythonプログラムにトンネル経由で接続できます。
表示された gradio.live のURLをクリックします。
セッションを開始すると、旅行代理店のエージェントさんが旅行の相談に乗ってくれました。
-
音声対話コーパス
-
雑談対話コーパス(内製)
-
相談対話コーパス(内製)
-
テキスト対話コーパス
はじめて J-moshi を起動してキョドる しらいはかせ @o_ob をどうぞお楽しみください。
— AICU (@AICUai) January 24, 2025
女性の声は nu-dialogue/j-moshi-ext による生成で、非常に高速に全二重会話らしきものが生成されていることがわかります。
(プツプツ切れているのは別の原因かも) pic.twitter.com/Q40yulRxIg
https://twitter.com/AICUai/status/1882828111504695649
会話は発話のオーバーラップや相槌など、人間同士の対話におけるような自然なターンテイキングをリアルタイムに実現していることが体験できます。J-Moshiの学習済みモデル(nu-dialogue/j-moshi-ext)だけで推論された全二重の会話が生成されています。LLMではないので知能的な反応ではありませんが相槌のリズムなどは非常に自然です。コードの提供いっさいなく、moshiにHuggingFaceのモデルをロードするだけで実現している点も評価できると考えます(論文は後日公開されるそうです)。これはAITuberや、お年寄り向けの対話エージェント、そして会話の前の「えーと…」といったフィラーの生成で、時間がかかる大規模な言語モデルとの連携などに活用できる可能性があり、大きな貢献となりそうです。
なおJ-Moshiが生成した音声のサンプルはこちらからご覧いただけます。
ログに表示されている opus (ブラウザの音声ストリーミング)の1サイクルの処理速度は84msecぐらいです。つまり秒11サイクルぐらいの速度でトークンを生成しています。
(むしろこの Info表示が負荷になっている感じです)
ローカル環境などで研究する場合、更に高速化したいならこちらの144行目をコメントアウトするといいかもしれませんね。
https://github.com/kyutai-labs/moshi/blob/main/moshi/moshi/server.py#L144
Google Colabの L4 GPUでの動作で、VRAMは17GBぐらい消費しています。
用途をデジタルサイネージなどに限定すれば、コンシューマGPUなどでも動くかもしれませんね。
これからも研究の発展を期待します!
本記事はAICU Japanしらいはかせが検証しました。
AICUマガジンVol.9に収録予定です。
以下は、Google Colabでの動作するコードです。
メンバーシップ向けに提供します。
この記事の続きはこちらから https://note.com/aicu/n/nc1b1a911caf4
Originally published at https://note.com on Jan 24, 2025.
Comments