日本語リアルタイム音声対話モデル「J-Moshi」を試す
すごい、めちゃめちゃ自然
以下でデモが多数聞ける
GitHubレポジトリ
モデル
基本的には以下をインストールの上、モデルを指定するだけで良さそう。
試してみた結果
環境
- 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 |
+-----------------------------------------+------------------------+----------------------+
学習データに「旅行代理店対話コーパス」が含まれているので、それっぽい会話になることが多い感。微妙に会話は噛み合ってない感もあるけど、とても自然。
明確に会話ターンが交代する仕組みだと多分こうはならなくて、相槌が発話に「かぶってくる」のが重要な気がするな。
Macでも動かせそう
Moshiの論文
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) - 音声質問応答の比較対象となる研究