Skip to main content

Dance Diffusion のご紹介

拡散モデルは、画像にはよく使われていますが、オーディオの生成にはまだ使われていません。しかし、Harmonaiの登場により、その状況は変わりつつあります。
Created on January 3|Last edited on February 27
このレポートは、Angelica Panによる「A Gentle Introduction to Dance Diffusion」の翻訳です。



Dance Diffusionとは

Dance Diffusionは、プロデューサーやミュージシャンのためのオープンソースのジェネレーティブオーディオツールの開発をミッションとするコミュニティ主導型の組織Harmonaiが作成したオーディオ生成機械学習モデルファミリーで、Stability AIの一部であります。
Stability AIは、人気のあるテキストから画像へのジェネレーターStable Diffusionを支えるAIスタートアップです。
事前訓練済みのDance Diffusionモデル(または独自のDance Diffusionモデルを訓練)を使用して、特定のスタイルのランダムなオーディオサンプルを生成したり、特定のオーディオサンプルを再生成したり、2つの異なるオーディオサンプル間を補間することができます。
ダンスディフュージョンモデルは、その名前が示すように、拡散モデルです。

拡散モデルとは

拡散モデルとは、機械学習モデルの一種で、モデルが学習したデータを「破壊」(「順拡散」または「ノイズ化」と呼ぶ)し「回復」(「逆拡散」または「デノイズ化」と呼ぶ)する方法を学習することによって、新しいデータを生成するモデルである。
訓練の過程で、モデルは、以前に破壊したデータを忠実に回復することができるようになります。
NVIDIAによるこのテクニカルブログ投稿では、このフォワードプロセスとリバースプロセスが図解されています。。モデルは、データが純粋なノイズになるまで、あるデータ(猫の画像など)に繰り返しノイズを加え、画像が元の形に復元されるまで、繰り返しノイズを除去していきます。

ランダムなノイズを復元するようにモデルに依頼したらどうだろうか?
結論から言うと、訓練された拡散モデルにランダムなノイズを渡すと、逆拡散プロセスによって入力のノイズが除去され、再現するために学習したデータと同じタイプのものになる。つまり、このようにして拡散モデルは新しいデータを生成するのです。
ダンス拡散モデルはオーディオで学習されるため、オーディオを生成することを学習します。
ここでは、Dance Diffusionモデルによって完全に作成されたピアノ曲のサンプルを聴くことができます。

audio
steps
model
sample_rate
sample_size
1
2
3
4

Dance Diffusionの学習対象

現在、6つのDance Diffusionモデルが公開されており、それぞれが異なるオーディオファイルのデータセットで訓練されています。
  • glitch-440k: glitch.coolから提供されたクリップで訓練。
  • jmann-small-190k: Jonathan Mannの「Song A Day」プロジェクトからのクリップの大きなサブセットで訓練。
  • jmam-large-580k: Jonathan Mannの「Song A Day」プロジェクトからのクリップの大きなサブセットで訓練。
  • maestro-150k: MAESTROデータセットのピアノクリップのサブセットで訓練した
  • unlocked-250k: Unlocked Recordings データセットのクリップで訓練。
  • honk-140k: xeno-canto によるカナダガチョウの録音で訓練。
拡散モデルが訓練されたデータ、つまり回復する方法を学習したデータは、後に生成されるデータの種類に影響するので、例えばmaestro-150kモデルによって作成されたオーディオサンプルは、常にピアノ音楽のように聞こえ、ギターやトランペットの音楽のように聞こえることはないでしょう。
Dance Diffusionの開発者であるZach Evansは、上記のDance DiffusionモデルにオープンベータでアクセスするためのGoogle Colab notebookをリリースしています。Evansはまた、生成されたオーディオクリップをよりコントロールするために、あなた自身のデータセットでDance Diffusionモデルを微調整、またはカスタマイズできるColab notebookを書きました。
ダンスディフュージョンモデルを自分で使ってみたい、微調整したいという方は、Redditユーザーのu/Stapler_Enthusiastの詳細なDance Diffusionチュートリアルをチェックしてみてください。
最後に、Harmonaiの利用可能なモデルの 1 つを使用して独自の音楽サンプルを作成したい場合は、以下のColabリンクを参照してください。



Iterate on AI agents and models faster. Try Weights & Biases today.
Maybe<File<(table)>>