1 ポイント 投稿者 GN⁺ 2024-09-20 | 1件のコメント | WhatsAppで共有

Moshi: リアルタイム会話のための音声・テキストベースモデル

Moshi の紹介

  • Moshi はリアルタイム会話のための音声・テキストベースモデルであり、双方向の音声対話フレームワークでもある
  • 最先端のストリーミング型ニューラル音声コーデックである Mimi を使用する
  • Mimi は 24 kHz オーディオを 12.5 Hz に変換し、帯域幅を 1.1 kbps に維持しながら、80ms の遅延でストリーミング処理を行う
  • 既存の非ストリーミング型コーデックである SpeechTokenizer(50Hz, 4kbps) や SemantiCodec(50Hz, 1.3kbps) より優れた性能を示す

Moshi の動作方式

  • Moshi は 2 つのオーディオストリームをモデル化する: 1 つは Moshi、もう 1 つはユーザー
  • 推論時、ユーザーのストリームは音声入力から取得され、Moshi のストリームはモデル出力からサンプリングされる
  • これら 2 つのオーディオストリームとともに、Moshi は自分の音声に対応するテキストトークンを予測する
  • 小型の Depth Transformer が与えられた時間ステップにおけるコードブック間の依存関係をモデル化し、大規模な 7B パラメータの Temporal Transformer が時間的依存関係をモデル化する
  • Moshi は理論上 160ms の遅延を達成し、実際には L4 GPU で 200ms 未満の遅延を持つ

Mimi の特徴

  • Mimi は SoundStream や EnCodec など、従来のニューラル音声コーデックをベースにし、エンコーダーとデコーダーに Transformer を追加している
  • Mimi はテキストトークンの平均フレームレート (~3-4 Hz) により近づけるため、ストライドを調整している
  • Mimi は WavLM の自己教師あり表現に一致するよう、第 1 コードブックトークンを合わせる蒸留損失を使用する
  • Mimi は 敵対的学習損失と特徴量マッチングのみを使用し、低ビットレートでも主観品質で大きな改善を示す

リポジトリ構成

  • このリポジトリには 3 つのバージョンの Moshi 推論スタックがある
    • PyTorch を使う Python 版は moshi/ ディレクトリにある
    • M シリーズ Mac 向けに MLX を使う Python 版は moshi_mlx/ ディレクトリにある
    • 本番環境で使われている Rust 版は rust/ ディレクトリにある
  • ライブデモのコードは client/ ディレクトリで提供される

モデル

  • 3 つのモデルが公開されている
    • 音声コーデック Mimi
    • 男性合成音声向けにファインチューニングされた Moshi (Moshiko)
    • 女性合成音声向けにファインチューニングされた Moshi (Moshika)
  • 各モデルは HuggingFace リポジトリで提供される
  • すべてのモデルは CC-BY 4.0 ライセンスで公開されている

要件

  • 最低でも Python 3.10 が必要で、Python 3.12 が推奨される
  • 特定の要件は各バックエンドディレクトリを参照
  • PyTorch および MLX クライアントのインストールコマンドが提供されている

Python (PyTorch)

  • PyTorch ベースの API は moshi ディレクトリにある
  • ストリーミング音声トークナイザー (mimi) と言語モデル (moshi) を提供する
  • インタラクティブモードで実行するにはサーバーを起動する必要がある

Python (MLX) for macOS

  • moshi_mlx をインストールした後、ローカル推論を実行できる
  • コマンドラインインターフェースは基本的なもので、エコーキャンセル機能はない

Rust

  • Rust 推論サーバーを実行するには rust ディレクトリでコマンドを使う
  • macOS では --features cuda の代わりに --features metal を使用できる

クライアント

  • Web UI の使用が推奨され、追加のエコーキャンセル機能が提供される
  • コマンドラインインターフェースも提供される

開発

  • リポジトリをクローンしてインストールし、開発できる

FAQ

  • Issue を作成する前に、よくある質問セクションを確認

ライセンス

  • Python 部分は MIT ライセンス、Rust バックエンドは Apache ライセンス
  • Web クライアントコードは MIT ライセンス
  • モデル重みは CC-BY 4.0 ライセンス

引用

  • Mimi または Moshi を使用する場合は、論文を引用する

GN⁺の要約

  • Moshi はリアルタイム会話向けの革新的な音声・テキストモデルで、低遅延と高品質を両立する
  • Mimi コーデックは既存コーデックより効率的で、Transformer により性能を最大化している
  • さまざまなプラットフォームで利用可能で、PyTorch、MLX、Rust など複数のバージョンを提供する
  • リアルタイム会話アプリケーション開発者に非常に有用で、特に低遅延が重要な場合に適している
  • 類似機能を持つ他のプロジェクトとして、Google の WaveNet や OpenAI の Jukebox がある

1件のコメント

 
GN⁺ 2024-09-20
Hacker Newsの意見
  • 1つ目の意見

    • レイテンシが非常に短く、オープンソースモデルとしては大きな成果である
    • 最近の非常に優れたLLMと比べると応答品質は劣る
    • 2019年のLLMを思わせる
    • オーディオ面では十分によくできているが、応答品質にもっと注力すべきである
  • 2つ目の意見

    • YouTubeで数か月前の面白いデモを見つけた
    • 今では改善されているはずだと確信している
  • 3つ目の意見

    • リアルタイム音声 -> LLM -> 音声出力ソリューションを開発中である
    • ストリーミング型ニューラル音声コーデックが最も興味深い
    • プロダクトの観点では、LLMに直接つなぐよりもツール/機能呼び出しの段階が必要である
    • tincansの開発は終了したが、この方向への発展可能性は大きい
  • 4つ目の意見

    • MoshiはCC-BYライセンスである
    • 最近Apache v2で公開された類似の7bモデルがある
  • 5つ目の意見

    • iPadのa-shellターミナルでTTSインターフェースを提供する便利な方法があるのか気になっている
  • 6つ目の意見

    • 最近、音声対応LMの分野で多くの進展があった
    • 関連プロジェクトとしてLLaMA-Omniとmini-omniがある
  • 7つ目の意見

    • 推論サーバーはRustで書かれており、huggingfaceのCandle crateを使っている
    • Moshiの著者の1人はCandleの主要著者でもある
    • Candleをベースにした推論スタックを構築中である
  • 8つ目の意見

    • 使ってみたところ、即座に応答するが、実際の質問への答えは後から返ってくる
    • ときどきループに陥ることがある
  • 9つ目の意見

    • レイテンシは約200msと非常に短い
    • 7Bトランスフォーマーモデルを使っているため、そこまで賢いわけではない
    • より大きなモデルを使うとレイテンシが長くなる可能性がある
    • システムアーキテクチャには中間段階の応答を返す方法が必要である
  • 10つ目の意見

    • 応答速度は印象的だが、応答の品質はそうではない
    • Moshiとの会話例を示している
    • 「2019年」という誤った応答を返している
    • COVID-19に関する誤情報を提供している