【Moûsai】テキスト入力による高品質な音楽生成の拡散モデル
3つの要点
✔️ テキストから音楽を生成する拡散モデル
✔️ 長時間かつ高品質な音楽をリアルタイムで生成可能
✔️ diffusion magnitude autoencoderという新しい拡散モデルを導入
Moûsai: Text-to-Music Generation with Long-Context Latent Diffusion
written by Flavio Schneider, Zhijing Jin, Bernhard Schölkopf
(Submitted on 27 Jan 2023 (v1), last revised 30 Jan 2023 (this version, v2))
Comments: Music samples for this paper: this https URL all music samples for all models: this https URL and codes: this https URL
Subjects: Computation and Language (cs.CL); Machine Learning (cs.LG); Sound (cs.SD); Audio and Speech Processing (eess.AS)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
本記事では、テキストプロンプトに即した音楽を生成する拡散モデルの「Moûsai」について解説します。このモデルでは、例えば「African Drums, Rythm, (Deluxe Edition), 2 of 4」といったプロンプトを入力すると、アフリカンドラムのリズムが出力されます。
このMoûsaiは、Stable Diffusionのオーディオ版である「Stable Audio」のベースとしても使われたモデルです。さらに、近年話題の深層生成AIモデルである「拡散モデル」が使われていることから、注目度の高い研究なのです。
まずは、Moûsaiの詳細な内容に入る前に、近年の音楽生成分野における動向や課題を見ていきましょう。
近年における音楽生成の動向
近年では、Stable DiffusionやGPTなど、画像や文章の分野での生成AIモデルが台頭しています。その中で音楽生成のAIも、にわかに注目されてきています。
音楽生成AIの分野では、これまで「Transformerベースの自己回帰モデル」が主流でしたが、最近では拡散モデルによる音楽生成も盛んです。本研究では、最近の流行である拡散モデルが使われています。
そんな本研究の重要性を議論するうえで、音楽生成分野における課題を知ることが大事です。まずは、音楽生成特有の課題について確認していきましょう。
音楽生成の課題
生成AIによる音楽生成では、以下のような問題点が指摘されています。
- 1分以上の音楽を生成できない
- 音質が低い
- 生成される音楽がいつも同じ感じ(多様性が無い)
つまり、従来の生成モデルでは、1分以上の音楽を生成しようとすると音楽が破綻したり、そもそも音質が低かったりする現象が起こっていました。そこで本研究では、これらの問題を解決することを目的とされています。
Moûsai vs 従来の音楽生成モデル
次に、音楽生成分野における、本研究の位置付けを見ていきましょう。以下は、Moûsaiと従来の音楽生成モデルを比較した表です。
この表の項目(列名)は、以下の通りです。
- Model: モデル名
- Sample Rate: サンプリングレート(音質を表し、高ければ質が高い)
- Ctx. Len. : 生成される音楽の時間
- Input: 入力のタイプ
- Music (Diverse): 生成される音楽のタイプ
- Example: 生成される音楽の例
- Infer.Time: 生成にかかる時間(推論時間)
- Data: データセットのサイズ
この表の一番下の行がMoûsaiです。この行を見ると、Moûsaiの特徴は以下の通りであると分かります。
- 48kHzと高品質の音楽を生成可能
- 1分以上の音楽を生成可能
- 多様なジャンルの音楽を生成可能
- 入力のタイプはテキスト
これらの特徴を見ると、本研究のMoûsaiは、音楽生成分野における問題を解決したモデルであると言えます。では一体、Moûsaiはどのようにして、これらの問題を解決したのか、次のセクションで解説します。
Moûsaiのモデル構造
ここでは、まず「Moûsaiの全体のモデル」を見てから、個々の構成要素について具体的に解説します。
全体的な音楽生成の過程
本研究の全体的な音楽生成の過程(推論過程)は、次の通りです。
この図の左上が、テキストプロンプトによる入力文です。テキストプロンプトが入力されたら、各段階を通して、最終的に右下のようにAudioが出力されます。実際に音楽が生成されるまでの流れは、以下の通りです。
- テキストプロンプトが入力される
- T5(Transformerベース)によってプロンプトのエンベディングが生成される
- そのエンベディングを条件として、潜在変数(Latent)をNoiseから生成する
- 生成した潜在変数を条件として、NoiseからAudioを生成する
また、このモデルの構成要素は、以下の通りです。
- TextEncoder(上)
- DiffusionGenerator(中)
- DiffusionDecoder(下)
さらに、著者らは上記の要素を組み合わせて、次のように表現しています。
- DiffusionGenerator+DiffusionDecoder=Diffusion Magnitude autoencoder(第2段階)
- TextEncoder+DiffusionGenerator=Latent text-to-audio Diffusion(第1段階)
このことから、Moûsaiは2段階のカスケードモデルであると言えます。次のセクションでは、それぞれの段階について、詳しく見ていきます。その際に、対応関係が少しややこしいので、モデル全体と照らし合わせながら解説します。
Diffusion Magnitude autoencoder(第2段階)
まずは、Diffusion Magnitude autoencoderです。これは、DiffusionGeneratorとDiffusionDecoderが結合された段階で、「実際にオーディオを出力する」というフェーズになり、全体における最終段階に当たります。先述の「実際に音楽が生成されるまでの流れ」における「ステップ3→ステップ4」の役割を担っています。
このDiffusion Magnitude autoencoderは、Diffusion autoencoderの拡張版のモデルです。Diffusion autoencoderとは、あるデータから潜在変数を求め、その潜在変数を条件として、逆拡散過程におけるデノイジングを行う拡散モデルの一種です。
Diffusion Magnitude autoencoderの学習過程は、以下の通りです。
ここでは、生のオーディオを入力STFT変換によってスペクトログラムに変換し、そのMagnitudeを1D convolutional encoderに通すことで潜在変数を求めています。それと同時に、生のオーディオを拡散過程でノイズ付与し、UNetによってデノイジングして、元のオーディオを再構成しているのです。その際に、先ほどのスペクトルグラムから作った潜在変数を、逆拡散過程におけるデノイジングの条件としています。
Diffusion Magnitude autoencoderは、Moûsai全体のモデルのおいて、以下の青枠に相当します。
これが、Moûsaiの第2段階に相当する、Diffusion Magnitude autoencoderの学習過程です。ここで、デノイジングの条件である「潜在変数」を作るには、プロンプトのtext embeddingを条件とした拡散モデルを考える必要があります。これについては、次でご紹介します。
Latent text-to-audio Diffusion(第1段階)
次に、Latent text-to-audio Diffusionです。これは、TextEncoderとDiffusionGeneratorが結合された段階で、「第2段階に繋がる潜在変数を求める」というフェーズになります。先述の「実際に音楽が生成されるまでの流れ」における「ステップ1→ステップ3」の役割を担っています。
このLatent text-to-audio Diffusionは、Latent Diffusionの拡張版のモデルです。Latent Diffusionとは、Stable Diffusionでも使われた技術です。具体的には、あるデータの潜在変数をVAEで求め、その潜在変数に対して、拡散過程・逆拡散過程を適用する拡散モデルの一種です。
Latent text-to-audio Diffusionの学習過程は、以下の通りです。
まず、先ほどと同様に、生のオーディオをSTFT変換によってスペクトログラムに変換し、そのMagnitudeを1D convolutional encoderに通すことで潜在変数を求めます。それと同時に、テキストプロンプトをTransformerベースのT5によって、text embeddingを作成します。
そして、潜在変数を拡散過程でノイズ付与し、UNetによってデノイジングして、元の潜在変数を再構成しているのです。その際に、先ほどのtext embeddingを、逆拡散過程におけるデノイジングの条件としています。
Latent text-to-audio Diffusionは、Moûsai全体のモデルのおいて、以下の青枠に相当します。
これが、Latent text-to-audio Diffusionの学習過程です。
評価実験
先ほど見てきたようなモデルを構築することで、音楽生成特有の問題を解決しました。しかし、どのようにMoûsaiの作る音楽を定量的に評価したのでしょうか?
ここでは、著者らが本研究で行った実験をご紹介します。
データセット
本研究の実験内容を解説する前に、まずは使用されたデータセットについて軽く触れます。
本研究では、総時間2500時間にも及ぶ音楽データが使用されています (使用された音楽の詳細は不明)。加えて、それらの音楽に対応するテキストも使われています。それらのテキストは、曲のタイトルやアーティスト名、ジャンルなどのメタデータで構成されています。
多様性とテキスト関連性の評価
まずは、Moûsaiが生成する音楽の「多様性」と「テキストと曲の関連性」を定量的に評価するために、著者らは3人の被験者に対して心理実験を行っています。
具体的な実験の内容としては、まず「Moûsai」と「Riffuion」という2つのモデルで、同じプロンプトで4つのジャンルの音楽を生成します。この時、以下のようなプロンプトが用いられました。
被験者らは、「生成された音楽を聴き、各曲を4つのジャンルのうちの1つに正確に分類する」ように要求されています。そして、それぞれのモデルが生成した音楽のジャンルを、被験者が正しく識別した回数が、下の表になります。
左がMoûsaiの結果ですが、混同行列の対角成分の値が高いことから、「Moûsaiによって生成された音楽の方が、正しくジャンル分類されている」ということが分かります。一方で、右のRiffusionは「すべての曲はPopに聞こえる」という結果になりました。
ようするに、Hip Hopとして音楽を生成したら、それを聞く側にも、「この音楽のジャンルはHip Hopだな」というのを認識してほしいわけです。Mousaiはそれができていますが、Riffusionの場合だと、どのジャンルを狙って音楽を作っても、どれもPopに聞こえるということです。
これにより、Moûsaiの方が「よりプロンプトに即して、ジャンルをとらえた音楽生成が可能である」ということが分かります。
音質の評価
次に、著者らはMoûsaiによって出力される音楽の音質を評価するために、「真の音楽データのメルスペクトルグラム」と「Moûsaiによって生成された音楽のメルスペクトルグラム」との一致性を評価しました。その結果が次の通りです。
上の行が「本物の音楽データのメルスペクトルグラム」で、下の行が「Moûsaiによって生成された音楽のメルスペクトルグラム」です。この結果を見ると、Moûsaiのメルスペクトルグラムは、確かに本物のメルスペクトルグラムを上手く表現していることが分かります。
そのため、Moûsaiを用いることで、本物の音楽さながらのクオリティで、生成が可能であることが分かります。
まとめ
今回は、音楽生成の拡散モデルであるMoûsaiについて解説しました。テキストから音楽を生成するAIは他にもいくつも存在しますが、それらと比べても、Moûsaiのクオリティはトップレベルだと感じました。さらに、本稿は修士論文だそうですが、それにしてもレベルの高さがうかがえます。
ただ、Future Workでも書かれていましたが、テキスト以外の条件付け(例えば鼻歌から音楽生成など)も有用なのでは、とも感じました。
最後に、本研究のソースコードも公開されているので、気になった方は触ってみることをおすすめします。
この記事に関するカテゴリー