Simple and Controllable Music Generation
Authors: Jade Copet, Felix Kreuk, Itai Gat, Tal Remez, David Kant, Gabriel Synnaeve, Yossi Adi, Alexandre Défossez
Links:
なぜ読んだか
好きなテイストの音楽を生成できる所にロマンを感じたから
Story
MUSICGEN は、特定の指示やメロディに基づいて音楽を生成できるシステムです
音楽生成には言語モデル (LM) を使用します
LM は、テキストの説明やメロディのような様々なタイプの情報を理解し、その情報にマッチした音楽を生成するように訓練されています
MUSICGEN が高品質の音楽を生成できることを確認するため、客観的指標と主観的指標で評価しています
Approach
引用元の原文や詳しい解説はリンクから辿れます
MUSICGEN は 自己回帰型 Transformer-based decoder で構成され、テキストまたはメロディ表現を条件とします
LM は、EnCodec オーディオトークナイザから量子化されたユニット上にあり、低フレームレートの離散表現からメロディを再構成します
Audio Compression process
エンコーダが非圧縮データをより低いフレームレートの「潜在的空間」表現に変換します
量子化器がこの表現を目標サイズに圧縮し、後に元信号を再構築するために使用される最も重要な情報を記録します
デコーダが圧縮されたデータをニューラルネットワークを使ってオーディオに戻します
今回の Audio Compression process は RVQ (residual vector quantization) というベクトル量子化(連続的なアナログ信号を数値データに変換する)を使います
サンプリング周波数:どの程度の高さの音まで再現するかで決まる
電話:8kHz (4kHzの音まで再現)
CD:44.1kHz (22.05kHzの音まで再現)
量子化:どの程度の雑音まで許容するかで決まる
音の符号化とはつまり「どう量子化するか」
Audio random variable $ X \in \mathbb{R}^{d \cdot f_s} with $ d the audio duration and $ f_s the sample rate → EnCodec → a continuous tensor with a frame rate $ f_r \ll f_s
量子化出力 = $ Q \in\{1, \ldots, N\}^{K \times d \cdot f_r} with $ K is コードブック数 and $ N is コードブックサイズ
量子化の後、オーディオサンプルを表す、長さ $ T=d \cdot f_r の $ K 個の平行離散トークン列が残ります
RVQ では、各量子化器は前の量子化器の量子化誤差を符号化するので、異なるコードブックに対する量子化値は一般に独立ではなく、最初のコードブックが最も重要となります
ベクトル量子化とコードブック(ベクトル量子化符号帳 : codebook)
ベクトル量子化は高効率なデータ圧縮手法で、データの保存や転送において核となる技術です
codeに対応するデータを表現した codebook について、誤差の少ない量子化のための最適コードブックを生成する手法が提案されています
コードブックは潜在変数のベクトル量子化に用います
事前に定義されたベクトル集合(コードブック)から最も近いベクトルが選び、そのインデックスが潜在変数の代わりに使用されます
コードブックの数によって音質が異なります
この量子化ステップにより、モデルはデータの離散的な表現を学習できます
コードブック(ベクトル量子化符号帳 : codebook) のおさらい
音声をエンコードしコードブックに存在するコードで表現する操作を Audio tokernize と呼びます
音響信号 → 潜在表現 → 音響トークン
EnCodec を音響信号のトークナイザとして使います
音響トークン推定の並列化
https://gyazo.com/886937e5f0e4074bd055e00a67d0e3e2
AudioLM や AudioGen は、多層構造を持つ音響トークン(1時刻ごとに複数のトークンがある)を直列化し取り扱っています(論文では Flattening Pattern と呼んでいます)
一回に複数の分布を出力できるモデルを使えば、音響トークン推定の並列化が可能になり、推定を高速化できます
コスパよくて品質も良かった並列化パターンについて
Delay Pattern:音響トークンの並びを時間方向にずらし、推定ごとに異なる時刻の音響トークンを推定
Parallel Pattern:推定ごとに同時刻全階層の音響トークンを推定
コードブックの射影と位置埋め込み
コードブックパターンが与えられたとき、各パターンステップ $ P_s にはいくつかのコードブックだけが存在します
$ P_s のインデックスに対応する値を $ Q から取り出します
各コードブックは $ P_s にせいぜい一度しか存在しないか、全く存在しないそうです
存在する場合は、 $ N エントリと $ D 次元の学習済み埋め込みテーブルを用いて、 $ Q から関連する値を表現します
そうでなければ、存在しないことを示す特別なトークンを用います
この変換の後、各コードブックからの寄与を合計します
$ P_0=\emptyset なので、最初の入力は常にすべての特別なトークンの和となります
最後に、正弦波埋め込みを合計して、現在のステップ $ s をエンコードします
条件付き音声生成
Text conditioning
入力音声 $ X にマッチするテキスト記述が与えられたとき、自己回帰モデルで使われる内部次元を $ D として、条件テンソル $ C \in \mathbb{R}^{T_C \times D} を計算します
一般に、条件付き音声生成のためのテキスト表現には、主に3つのアプローチがあります
事前学習されたテキストエンコーダ、特にT5を使う
インストラクトベースの言語モデル(FLAN-T5)を使う
CLAPのようなテキストと音声の共同表現を使う(CLAPを使う)
Melody conditioning
現在、条件付き生成モデルでは、テキストを条件とするアプローチが主流ですが、音楽では、別のオーディオトラックからメロディ構造を条件としたり、口笛やハミングを条件とするアプローチがより自然です
このようなアプローチでは、モデルの出力を繰り返し改良することもできます
先行研究では、収集が面倒でコストのかかる教師付き独自データを使用しましたが、今回は教師ありデータの必要性を排除し、教師なしのアプローチをとっているそうです
Datasets
先行研究との比較のため、MusicCaps ベンチマークで提案手法を評価しています
MusicCapsは、専門家ミュージシャンによって用意された5.5Kサンプル(10秒の長さ)と、ジャンル間でバランスの取れた1Kサブセットで構成されています
アンバランスなセットについては客観的なメトリクスを報告し、定性的な評価のためにジャンルバランスの取れたセットから例をサンプリングしているそうです
メロディ評価とアブレーション研究では、528曲の音楽トラックからなる学習セットとアーティストの重複がない、ドメイン内で保持された評価セットからサンプルを使用しているそうです
Ablation study (アブレーションスタディ、アブレーション研究) とは?
モデルを構成する要素を削除して、その要素がモデルの性能にどのような貢献をしているのかを評価すること
Evaluation
Baselines (text-to-music generation)
テキストから画像を生成できる Stable Diffusion をスペクトログラム(音の強さを時間と周波数の関数として表したグラフィック表現)を生成できるようにファインチューニングし、スペクトログラムからオーディオクリップを再構成できるようにしたもの
Moûsai
*MusicLM
*Noise2Music
Evaluation metrics
提案手法を客観的および主観的な指標を用いて評価します
客観的指標
Fréchet Audio Distance (FAD)
VGGishモデルによるTensorflowの公式実装を使用して、FADを報告します
低いFADスコアは、生成された音声がもっともらしいことを示します
Kullback-Leiber Divergence (KL)
AudioSet の分類用に学習された最新のオーディオ分類器を使用して、オリジナルと生成された音楽の間のラベルの確率に対するKLダイバージェンスを計算します
KLが低い場合、生成された音楽は参照音楽と似た概念を共有すると予想されます
CLAP score (CLAP)
公式の事前学習済みCLAPモデルを使用して、トラック記述と生成された音声の間でCLAPスコアを計算し、音声とテキストの整合を定量化します
主観的指標
人間の評価者に音声サンプルの2つの側面を評価してもらいます
全体的な品質 (overall quality: OVL)
評価者は提供されたサンプルの知覚的な品質を1から100の範囲で評価します
テキスト入力との関連性 (relevance: REL)
評価者は音声とテキストの一致度を1から100の範囲で評価します
評価者は Amazon Mechanical Turk を使って集いました
ランダムにサンプリングされたファイルを評価してもらい、各サンプルは少なくとも5人の評価者によって評価します
Results
Text-to-Music generation task
提案手法を客観的指標 & 主観的指標でベースラインと比較します
平均スコアとCI95スコアの両方を報告します
https://gyazo.com/c572e273d3314752882c5fd66b46b4a6
上表は、Mousai、Riffusion、MusicLM、Noise2Music に対する提案手法の比較です
Noise2Musicの公式な実装はなく、事前に訓練されたモデルもないため、Noise2Musicの原稿で報告されているMusicCaps上のFADのみを報告します
MusicLMの実装も公開されていないので、著者によって報告されたFADを報告しながら、主観的なテストのためにMusicLMの公開デモを使用します
オリジナルの MusicLM はボーカルを含むデータで訓練されていますが、API経由で利用できるモデルは楽器のみです
人手評価では、MusicCapsの40の楽器のみのサンプルに限定しました
その結果、MUSICGENは人間のリスナーによって評価された評価ベースラインよりも、音質と提供されたテキスト記述への忠実さの両面で優れた性能を発揮することが示唆されました
Noise2MusicはMusicCapsのFADの点で最も良く、次にテキスト条件付けで学習したMUSICGENが続きます
興味深いことに、メロディーの条件付けを追加すると、客観的メトリクスは劣化するが、人間の評価には大きな影響を与えず、評価されたベースラインよりも優れています