Open7
【Speech to Speech】moshiの論文を読む
moshiの論文を読む
J-Moshi
解説Note
Moshiの研究元はフランスのスタートアップKutai labs
Moshiだったり、この後出てくるMimiだったり日本語がよく出てくるので日本が好きなのでしょうか?
このMoshiが優れているところを簡単にいうと
- 返答生成まで160msという低遅延
- パラ言語情報による保存によって、感情や非言語的な情報を保持
- 相手の音声と出力する音声を並列的に二重処理をしている(Full dupulex)
- そのため、相手の話を聞きながら「うん」「はい」などの返答が可能
- Inner Monologueのテキスト予測による音声生成の質の向上
従来の音声対話システムは、音声認識→LLM→音声合成の独立したコンポーネントを組み合わせたパイプライン形式
私たちのnocall.aiもこのパイプライン形式を用いており、何点か課題があります。
- 1000ms以上の遅延。人間の会話は600ms程度のレスポンスと言われているため、不自然さを感じる。
- ターン性による会話の不自然さ。相手の話を聞いて相槌を打つと言った人間らしい会話にならない
- 非言語的な情報が失われてしまう。
登場人物
Moshiは以下の主要なコンポーネントで構成されています:
1. Helium - テキスト言語モデル
- 7BパラメータのKyutai Labs開発のLLM。
- 7Bなのでそんなに大きくはない。彼らはエッジで動くLLMをメインで開発してるらしい。
- 2.1兆トークンの公開英語データでプレトレーニング
2. Mimi - ニューラルオーディオコーデック
- 音声を離散的なトークンに変換し、また逆変換する。いわゆる、連続的な波形を離散トークンに変換する耳👂としての役割(名前わかりやすい)
- 残差ベクトル量子化(RVQ)を使用
- セマンティック情報とアコースティック情報を単一のトークナイザーに統合
- WavLMからの知識蒸留→セマンティック情報を取り込む
3. RQ-Transformer - 階層的生成アーキテクチャ
- Temporal Transformer: 時系列に沿って処理を行い、コンテキストベクトルを生成
- Depth Transformer: Temporal Transformerから得たコンテキストを使い、並列的にトークンを生成
4. Inner Monologue - テキストと音声の統合
- 音声トークンの前にテキストトークンを予測する
- 言語的品質と一貫性の向上に貢献
- 音声と時間的に整列されたテキストトークンを活用
以下はおさらい
セマンティックトークン (Semantic Token):
- 音声の言語的な内容を意味する
- WavLMという自己教師あり学習モデルから知識蒸留によって抽出され、Mimiの最初のRVQレベル(セマンティックトークン)に組み込まれています
アコースティックトークン (Acoustic Token):
- 音声の感情や機敏などの非言語的な情報。声色、イントネーション、感情、環境音など
- Mimiニューラルオーディオコーデックにより波形から抽出され、RVQの残りのレベル(アコースティックトークン)として符号化されます
処理フロー
ユーザー音声入力
↓
Mimi エンコーダ
- 波形を離散トークンに変換
- セマンティックトークンとアコースティックトークンを生成
↓
Helium Temporal Transformer
- 過去のすべてのトークン履歴を処理に追加し、時間的な依存関係をモデル化
- 時間的コンテキストベクトル (z_s) を生成
↓
RQ-Transformerによってトークンを生成する
- Depth Transformerが3種のトークンを順次生成する:
- Inner Monologue: テキストトークン
- セマンティックトークン: 言語的内容
- アコースティックトークン: 音声特性
↓
Mimi デコーダ
- 生成されたトークンを音声波形に変換
後日、更新予定
Speech-to-Speechの日本語モデルを実装したい!という方がいらっしゃったら、ぜひ弊社で副業しませんか?
以下のカジュアル面談フォームからお問い合わせください🙏