📑

openai voiceが発売後:オープンソースはありませんか?

2024/10/16に公開

GPT-4oの高度な音声機能が発表されて以来、オープンソースのコミュニティでも同様の仕事が行われており、最も有名なのは、今年上半期に発売されたMoshiです。モシは強いですが、記事の対象ではありません。この記事は、最近の2つの「オムニ」という名前のaudio language modelを比較したものです。

LLaMA-Omni: 主な目的は、latencyの最適化です。
Mini-omni: 主な目的は、textのreasoning abilityをオーディオモードに移行することです。

この2つの文章が与えるモデルあるいはシステムは比較的類似しており,表面的にはどちらも音声入力音声出力の形式であるが,もう少し詳しく検討すると,audio responseを生成する際には全く異なるといえるでしょう.それでは一緒に見てみましょう。

LLAMA-OMNI

LLAMA-OMNIは3つのモジュールに分割可能

  • 音声入力モジュール:これはSpeech Encoderで音声から素性を抽出し,文章にはwhisperを用い,Speech Adaptorは抽出した音声素性をLLM自身のシソーラスに埋め込むことで,音声をsingle token streamに変換し,その後のLLMはテキスト系列を扱うように音声データを処理する.
  • LLM:文章は予行訓練されたLLaMA-3.1を使用しており,以降の2段階の訓練で微調整する.
  • 音声出力モジュール:LLMはtextを出力し,NAR Speech DecoderとVocoderにより音声を生成する.

出力部を重点的に見ると,テキストを同時に出力することで音声が得られると述べているが,実際には出力全体をLLMに分解しながらtextを生成し,生成したtextを1つのNAR TTSシステムで音声を生成することができる.すなわちLLMのAR decodingの過程では,前に生成されたtextのみがconditionとしてLLMに再送されnext token predictionが行われる.一方,オーディオモードは入力としてconditionとしてつなぎ合わされることはない.言い換えると,このシステムは本質的にAudio Question Text Answer(AQTA)形式であり,音声生成モジュールは生成テキストに付加された機能である.

この生成方式は,Answerが自己回帰生成時にtextのみ,すなわちsemantic tokenのみであるため,LLMは音響情報の扱い方,すなわちacoustic tokenを学ぶことができない.そのためには,後段のTTSシステムでより多くの作業を行って,例えば,マルチ音色,マルチスタイル,制御などを実現する必要がある.

MINI-OMNI


Mini-Omniの全体構成図は,音声入力としてtext responseとaudio responseを同時に出力する方法でもあることを示している.LLaMA-Omniに対して,Mini-Omniは訓練段階において,入力端が音響的特徴を抽出する際にRVQ,すなわちmultitoken streamsを用い,さらにもう1つのtext inputを加えることで,モデルの理解力を高め,semantic情報により多くの注意を向けさせるためであると考えられる.また,図からも直感的に分かるように,AR decodingの際には,すでに生成されたtext tokenとaudio tokenがともに入力に切り戻されてnext token predictionを行う訓練方式は,LLMにacoustic tokenを扱う能力を与える,より徹底したエンドツーエンド方式である.

Mini-Omniのハイライトは、Batch parallel decoding with text instructというデコード方法を提案することです。これはdelay pattern,すなわち図(a)のparallel decodingから始まる.論文MusicGenはこの手法についてより詳細に説明するが,ここでは簡単に言うと,復号過程における時系列の条件情報,およびmultitoken streams間の条件情報をできるだけ保持するために,multitoken streamsをdecoding steps上でずらす(delay)必要がある.Mini-Omniでは,テキストと音声を同時に出力し,かつ音声はテキストを条件としているため,図(b)のようにすべてのaudio tokenをtext tokenに対してもう一度ずらすことができる.しかし,AR decodingがtextに対してnext token predictionを行う場合,先に生成されたすべてのaudio tokensが入力にパッチされてLLMに送られるという欠点がある.Mini-Omniは,この方式がtextの生成能力を制限し,生成するaudio responseが特に簡単になると考えている.

LLMオーディオモダリティのreasoning abilityを向上させるために,batch parallel decoding with text instructが提案されている.具体的には,復号時に2つの枝に分岐し,1つ目の枝はAR decodingだけtextを出し,2つ目は従来と同様に音声とテキストを同時に生成する.1本目のテキストの生成が完了すると,生成されたテキストをそのまま2本目のテキストに置き換えることで,後続音声の生成に際して1本目のテキストを条件とする.一方,1本目のテキストは生成時に純粋なtext生成であり,条件としてaudio tokenを用いることに関係なく,モデルのreasoning能力を保証している.

LLMは、Mini-Omniの3つのトレーニングフェーズのうち、2番目と3番目のフェーズで、ARがaudio tokenを処理する能力を学習します。このモデルは,Audio Question Audio+Text Answerと呼ばれ,より高度な形態の音声エンドツーエンドモデルのように見える.

違い

2つのOmniの主な違いは,LLMを使用してAR decodingの過程でaudio tokenを使用するかどうかであり,これももちろん2つの文章のmotivationに関連している.

LLaMA-Omniは主にlatencyを最適化するためのものであるため,音声の生成に関してはあまり検討されておらず,生成されたtextにストリーミングTTSを付けるだけで問題を解決できる(論文では現在非ストリーミングを用いている).
Mini-OmniはLLMのtextに対するreasoning能力を音声モーダルに遷移させるために,推論時にLLMのtextに対するreasoning能力を維持し,そのtextを条件としてどのように音声を生成するかをより多く考えることになる.
私としてはMini-Omniがもっと簡潔で、より徹底したエンドツーエンドの音声ビッグモデルだと思います。LLM を使用して、semantic や acoustic などのほとんどの情報を処理します。その他のコンポーネントは、audio の tokenization や detokenization といった機能を果たすだけです。

参考

  • MusicGen
  • LLAMA-OMNI
  • MINI-OMNI
Fusic 技術ブログ

Discussion