LLaMA-Omni - LLMとのシームレスな音声インタラクション
(github.com/ictnlp)- LLaMA-Omniは、Llama-3.1-8B-Instructベースの音声言語モデルで、音声指示を入力として受け取り、テキストと音声の応答を同時に生成する
- 中核となる目標は低遅延・高品質な音声インタラクションであり、READMEによれば遅延は最小226msまで低減できる
- モデルは4基のGPUだけで3日未満で学習され、
Llama-3.1-8B-Omni、Whisper-large-v3、unit-based HiFi-GAN vocoderを用いて動作する - Gradioデモはcontroller、web server、model workerをそれぞれ実行する構成で、Gradioのストリーミング音声再生の不安定さのため自動再生は有効化されていない
- コードはApache-2.0だが、モデルは学術研究目的専用であり、商用利用は禁止され、別途商用ライセンスについて問い合わせが必要
LLaMA-Omniが行うこと
- LLaMA-Omniは、Llama-3.1-8B-Instructをベースにした音声言語モデル
- 音声指示を入力として受け取り、テキスト応答と音声応答を同時に生成する
- 低遅延の音声インタラクションと高品質な応答を目指しており、READMEのハイライトでは遅延は最小226ms
- 関連論文はarXiv:2409.06666で公開されている
公開モデルとデータセット
- モデルはHugging Face、ModelScope、Wisemodel、Replicateで公開されている
- データセットはMultiturn-Speech-Conversationsとして公開されている
- 2025年5月のアップデートで改良版
InstructS2S-200Kが公開され、マルチターン対話に拡張されるとともに、入力音声の話者音色も多様化された
最近の更新
- 2025年5月、LLaMA-Omni 2がACL 2025メインカンファレンスに採択された
- 2025年4月、LLaMA-Omni2が公開された
- 0.5Bから32Bパラメータまでの音声言語モデルシリーズ
- 応答品質と音声生成品質を改善
- 2025年1月、LLaMA-OmniがICLR 2025に採択された
インストールと実行フロー
- インストールはリポジトリをクローンした後、Python 3.10のconda環境でパッケージを導入する方式
pip==24.0をインストールした後、pip install -e .を実行する
- 追加依存関係としてfairseqとflash-attnをインストールする必要がある
- クイックスタートには3つの準備物が必要
Llama-3.1-8B-OmniモデルのダウンロードWhisper-large-v3モデルのダウンロード- unit-based HiFi-GAN vocoderと
config.jsonのダウンロード
Gradioデモとローカル推論
- Gradioデモは3つのプロセスで構成される
- controller:
omni_speech.serve.controller - Gradio web server:
omni_speech.serve.gradio_web_server - model worker:
omni_speech.serve.model_worker
- controller:
- デモ起動後、
localhost:8000でLLaMA-3.1-8B-Omniと対話できる - Gradioのストリーミング音声再生が不安定なため、ストリーミング音声合成のみ実装されており、自動再生は有効化されていない
- ローカル推論は、音声指示ファイルを
omni_speech/infer/examples形式に合わせて構成した後、bash omni_speech/infer/run.sh omni_speech/infer/examplesで実行する
ライセンスと利用制限
- コードはApache-2.0 Licenseで公開されている
- モデルは学術研究目的に限って利用可能であり、商用利用は禁止されている
- 学術環境では利用、改変、配布が可能だが、元論文の引用が必要
- 商用利用に関する問い合わせ、または商用ライセンスの取得は
fengyang@ict.ac.cnへ連絡する必要がある
1件のコメント
Hacker News のコメント
このモデルはテキストでは表現できない音も出せるのだろうか? たとえば「ニワトリの鳴き声を出してみて」のようなリクエスト。
でも「コケコッコー」という単語を言うことと、実際にカチカチした音を出すことの両方ができるのだろうか?
こういうモデルが、純粋なテキストモデルに音声認識/音声合成を付けた方式より、どんな利点や可能性を持つのかよく分からない。
モデルがより洗練されれば、音声合成で失われるイントネーション、リズム、感情のようなものを正しく解釈したり生成したりするのが核心なのだろうか?
音声認識モデルは単語を聞き間違えることがあるが、オーディオ LLM は広い文脈のおかげで実際の単語を理解できるかもしれない。音声合成モデルはイントネーションを推測しなければならず、完全に外すこともあるが、オーディオ LLM はどんなトーンで話すべきかを自然に学べる。たとえば割り込み発話なら、より高いトーンを使えるかもしれない。
割り込みだけを見ても、音声認識/合成システムは通常、音声活動検出とヒューリスティックに頼っていつ話すかを判断するため、ユーザーが話し終えてからでないと話さないというルールが多い。オーディオ LLM は自然な会話、会話時間を取りすぎない方法、複数人と一緒に話す方法も学べる。
オーディオ LLM は音楽や音を作ったり、鼻歌で歌った曲が何かを教えたりもできる。新しい可能性は多い。
ただし「学べる」と言ったのは、良い学習データが必要だからだ。現時点のこうしたモデルの多くは、一般的なテキストデータセットを音声合成に変換して学習したものだと理解しているので、実質的には一般的な音声認識/合成システムより優れているとは言えない。アーキテクチャを証明するにはよいが、全体的な能力を示すものではない。
すでに速く話したり遅く話したりする機能は、従来の音声合成システムではできなかった部分だ。理論的には、自分の発音が正しいかも教えられるし、間違って発音したものを繰り返したうえで正しい発音を聞かせて矯正することもできる。
OpenAI の advanced voice mode が実際にこれをどれほど上手くできるのかは、まだきちんとテストしたものを見ていないので分からないが、自分で試してみたい。他の音声モデルもこの水準に達すれば、言語学習ツールとしてすごいものになりそうだ。
大きな要素の一つは、バッチングによって生じるレイテンシだ。エージェントにうまく割り込むのが難しく、実際の会話がより不自然になる。そしてその通りで、マルチモーダルの方がよりよく理解する。ただ、感情認識についての分析は見たことがないので、GPT-O のこの能力についての分析を見た人がいるのか気になる。
そのほかにも、回答レイテンシの改善、話者分離の改善、会話中の間への反応が良くなるといった副次的な利点があり得る。
“Really?” や “Really!” と書いたとしても、まだ解釈の余地は残る。音声インターフェイスが本当に成功するには、Google 以前の検索がひどかった状態から Google に変わったような瞬間が必要で、その核心がイントネーション・リズム・感情の解釈と生成にあるなら、こういうモデルを作るのはかなり理にかなっている。
Ollama、LM Studio、llama.cpp のようなモデル実行ツールの中で、これをサポートしているものはある?
では、音声認識 → LLM → 音声合成という構成ではないということ? 入力として Chewbacca の声を叫んだら、モデルは意味不明な入力として認識するのだろうか、それとも出来の悪い音声認識のように適当な単語として解釈してしまうのだろうか?
声調言語だと特にうまくいく感じがした。
デモクリップの音声合成の声が Ellen McLain、つまり Valve の声優に驚くほど似て聞こえる。
https://en.m.wikipedia.org/wiki/Ellen_McLain
速度はかなり良さそう。最近 LMStudio + AnythingLLM でローカル音声チャットを試したが、まだ自分の望むより少し遅く、PiperTTS の声はこれより良かった。
3日間の学習にしては悪くない。音声出力の品質はもっと磨く必要があるだろうが、さらに学習させるとどう変わるのか興味深い。
学習やファインチューニングのコードがあるとよかった。商用利用では声のファインチューニングが重要な要件に見える。
GitHub リポジトリの README に、あの間抜けなスター推移グラフがあると、信頼感がかなり下がるのは自分だけ?
性能を示すデモはある?