Closed8

日本語リアルタイム音声対話モデル「J-Moshi」を試す

kun432kun432

試してみた結果

https://youtu.be/191YvZJpgRU

環境

  • Ubuntu 22.04
  • Python-3.11.5
  • CUDA-12.6
  • RTX4090

手順

mkdir j-moshi-test && cd j-moshi-test
python -m venv .venv
. ./venv/bin/activate
pip install moshi
python -m moshi.server --hf-repo nu-dialogue/j-moshi-ext

LAN内からリモート越しではダメだったので、Ubuntuサーバにマイク、ヘッドフォンを接続の上、GUIログインした。ブラウザを開いてhttp://localhost:8998にアクセスして「Connect」をクリック。

マイクの利用許可が求められるので許可して、あとは会話をするだけ。会話中は発話もテキストで出力される。会話の模様は左下から動画や音声で書き出せる(webm形式)

VRAM消費はこんな感じだった

出力
Fri Jan 24 15:43:40 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.35.03              Driver Version: 560.35.03      CUDA Version: 12.6     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4090        Off |   00000000:01:00.0 Off |                  Off |
|  0%   48C    P8             16W /  450W |   18676MiB /  24564MiB |      8%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
kun432kun432

学習データに「旅行代理店対話コーパス」が含まれているので、それっぽい会話になることが多い感。微妙に会話は噛み合ってない感もあるけど、とても自然。

kun432kun432

明確に会話ターンが交代する仕組みだと多分こうはならなくて、相槌が発話に「かぶってくる」のが重要な気がするな。

kun432kun432

Moshiの論文

https://arxiv.org/abs/2410.00037

Claude-3.5-Sonnetによる落合プロンプトの結果

Moshi:リアルタイム対話のための音声-テキスト基盤モデル

1. どんなもの?

Moshiは、リアルタイムの全二重(full-duplex)音声対話を実現する音声-テキスト基盤モデルです。

従来の音声対話システムは、「ウェイクワード」("Hey Siri"のような起動ワード)を検出し、その後ASR(自動音声認識)でユーザーの発話をテキストに変換し、NLU(自然言語理解)でそのテキストを構造化されたクエリに変換し、NLG(自然言語生成)でテキスト応答を生成し、最後にTTS(テキスト音声合成)で音声応答を返すという複数の独立したコンポーネントのパイプラインに依存していました。
このような仕組みでは自然な会話体験を実現できません。その理由として、複数のコンポーネントによる数秒の遅延、テキストを介することで感情やノンバーバル情報が失われる問題、話者ターンの明示的な区切りが必要なため会話の重なりや割り込みを扱えないといった課題がありました。

Moshiは、これらの課題を音声から音声への生成問題として一括して解決します。基本となるテキスト言語モデルから出発し、音声コーデックの残差量子化器からトークンを生成し、自身の発話とユーザーの発話を並列なストリームとして別々にモデル化することで、話者ターンを明示的に扱うことなく自由な会話ダイナミクスを実現します。

2. 先行研究を比べてどこがすごい?

従来の音声対話システムと比較して、以下の点で大きな進歩を実現しています:

  • 理論的な遅延が160ms(実践では200ms)と、従来システムの数秒と比べて大幅に短縮。これは自然な会話の平均応答時間である230msに近い値です。
  • 音声をダイレクトにモデル化することで、感情やアクセントなどのパラリンギスティック情報や背景音などの非言語情報を保持できます。
  • 複数ストリームアーキテクチャにより、会話の10-20%を占める発話の重なりや、相槌などの割り込みを自然に扱えます。
  • "Inner Monologue"という新しい手法により、音声トークンの前にテキストトークンを時間同期して予測することで、生成される音声の言語的品質を大幅に向上させています。

3. 技術や手法の肝はどこ?

Moshiの主要な技術的革新は以下の3つの要素から構成されています:

  • Heliumの開発:7Bパラメータの独自のテキスト言語モデルを開発し、2.1兆トークンの公開英語データで事前学習を実施
  • Mimiの開発:神経音声コーデックを開発し、残差ベクトル量子化(RVQ)を用いて音声を離散トークンに変換。自己教師あり音声モデルから蒸留した意味情報も含む
  • Inner Monologueの導入:時間同期したテキストトークンを音声トークンの前に予測することで、音声の言語的品質とファクチュアル性を向上。これによりストリーミング音声認識やテキスト音声合成も可能に

4. どうやって有効だと検証した?

モデルの評価は複数の側面から総合的に実施されました:

  • テキスト理解力の評価:MMLU、ARC、Open-Book QAなどの標準的なベンチマークで評価し、同程度の計算量で学習された他のモデルと同等以上の性能を確認
  • 音声モデリングの評価:音声の明瞭性、一貫性、音質、音声質問応答の能力を総合的に評価
  • システム性能の評価:5分間の長いコンテキスト処理能力、ストリーミング互換性、音声質問応答タスクでの優位性を確認
  • 安全性の評価:トキシックな内容の生成抑制能力、学習データの再生(regurgitation)防止能力を検証

5. 議論はある?

研究の過程でいくつかの重要な課題や制限が明らかになりました:

  • モデル圧縮と音声品質のトレードオフ:4ビットまでの量子化では音声品質をほぼ維持できるが、それ以上の圧縮では品質が著しく低下
  • 客観的評価指標の課題:VisQOL、MOSNetなどの客観的な音声品質評価指標と主観的な品質評価との間に低い相関
  • 生成的な音声透かしの技術的課題:テキストベースの透かし手法を音声に適用する際の困難さ

6. 次に読むべき論文は?

この研究の理解を深め、関連する技術動向を把握するために、以下の論文を読むことを推奨します:

  • AudioLM (Borsos et al., 2022) - 音声言語モデリングの基礎となる研究
  • Spirit-LM (Nguyen et al., 2024) - マルチモーダルな音声-テキストモデルの研究
  • SpeechTokenizer (Zhang et al., 2024b) - 音声トークン化に関する重要な先行研究
  • dGSLM (Nguyen et al., 2023) - 全二重音声対話システムの先駆的研究
  • Spectron (Nachmani et al., 2024) - 音声質問応答の比較対象となる研究
このスクラップは2025/01/24にクローズされました