GAN によるドメイン変換・スタイル変換の技術を使って,音楽のジャンルを変換する研究です.音楽でドメイン変換する研究は今までにも興味深い研究がありました (このサイトでも紹介された A Universal Music Translation Network など).この研究では,MIDI 形式データを扱って音楽をシンボルレベルで操作し,楽曲を別のジャンルに自動的にアレンジすることを試みています.
早速,有名曲の1つとして,”Let It Be” のジャンル変換を聞いてみましょう (上が変換前,下が変換後).
これは Pop から Classic へのジャンル変換の一例です.変換結果の曲としての良し悪しは個々人それぞれかもしれませんが,”Let It Be” を Classic に変換するとこのような興味深い結果が得られるようです.
“Let It Be” 以外にも,Jazz からは Miles Davis の “So What” など,さまざまな楽曲でジャンル変換が試されています.この研究の YouTube チャンネルも視聴されると面白いかもしれません (Music Genre Transfer with CycleGAN).
使われている技術について.上のような音楽ジャンル変換を可能にする技術のベースは,CycleGAN と呼ばれる画像変換の技術です.CycleGAN は2つの異なるドメインの画像を互いに変換する技術として登場しました.ここでいうドメインとは,ある1つの種類の画像の集合のことです.例えば,CycleGAN では,馬の画像とシマウマの画像という2種類のドメインを対象に,馬をシマウマに変換したり,シマウマを馬に変換したりすることができます.
この研究では,MIDI形式の音楽データをピアノロール形式 (つまり,行列形式) のデータに直して,画像と同様な形でニューラルネットワークが扱えるように処理してから,CycleGAN を使って変換します.Pop, Jazz, Classic の音楽ジャンルを対象に,Pop ⇄ Classic, Jazz ⇄ Classic などのジャンル変換を実験しています.
(ちなみにですが,CycleGAN については,このサイト内でも以前に紹介されたことがあります.CycleGAN をもう少し詳細にチェックしたい方は,以下の記事も合わせてご覧になるとよいかと思います: CycleGAN 対訳がなくても画像を翻訳(変換) – Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks))
技術ついてもう少し詳細に.CycleGAN が技術の核心部分ではありますが,オリジナルの CycleGAN を音楽ジャンル変換に応用するために,損失関数を工夫しています.
オリジナルの CycleGAN は,まず変換の良し悪しに関する損失を設定します.変換元をドメインA,変換先をドメインBとする時,ドメインB の Discriminator は,与えられるデータがドメインBのデータかいなかを正しく識別するように学習します.一方で,ドメインAからBに変換する Generator は,自身が変換したデータが,ドメインBの Discriminator によって,「これは変換であって,本当のドメインBのデータではない」とは言われないように学習することで,A→Bの良い変換を獲得します.このプロセスを交互に繰り返して,Discriminator はドメインBの真贋を正しく識別できるように学習し,一方,Generator は Discriminator を “騙せる” ようにより本物らしい変換を学習していきます.
CycleGAN ではもうひとつ,変換結果を逆に変換した時に,元のドメインのデータにちゃんと戻るかいなかに関する損失を持ちます.A から B に変換する Generator は,自身の変換結果が B から A に変換する Generator で元のドメインA に戻された時に,もともとのドメインA のデータを正しく復元できるような変換を学習することが求められるわけです.
以上の損失に加えて,この研究では,Generator が生成する変換が (ドメインによらない) 楽曲全体のデータとちゃんと類似しているかいなかに関する損失を加えています.
ひとくちに音楽のジャンルといっても,さまざまな楽曲のパターンがあります.そのため,Generator による変換が,変換先ドメインの Discriminator によって広く受け入れられる可能性があり,Discriminator の識別をクリアしたものの,実際には現実的にありえそうな形の楽曲になっていないということが起こりうるそうです.そこで,例えば,「Pop を Classic に変換したもの」と「本物の Classic の楽曲」を比較するだけでなく,その変換と「Classic +他のジャンルを合わせた楽曲全体」を比較するような Discriminator を追加することで,Generator がちゃんと “音楽の範疇” 内でデータを生成,変換するように制約を課しています.
以上について,例えば,ドメインA を Pop,ドメインB を Classic とした場合の一連の変換を図示すると以下のように表せます.
以上のような手法によるジャンル変換の良し悪しは,別途訓練されたジャンル識別のためのニューラルネットワークによって評価されています.例えば,Pop から Classic への変換がその識別器によって Classic と識別された場合,その変換は成功したと評価しています.
最後に.この研究は,GAN を使って音楽をシンボルレベルでジャンル変換することを試みた最初の研究です.この技術が成熟すれば,楽曲の別ジャンルへのアレンジメントが容易になり,さまざまなアレンジメントの試行錯誤を手助けしてくれそうです.
MIDI 形式データでは各楽器に対応して複数のトラックを持つことができますが,学習をシンプルにするために,この研究では複数トラックをそのままでは扱わず,単一のトラックに落とし込んでから扱っています.そのため,パートが多く,単一トラックに落とし込むと煩雑になる,交響曲のような音楽は扱えていません.また,ドラムは他の楽器で表現することが難しいため,ドラムのトラックはそもそも除外しています.さらには,velocity (音の強度) や duration (発音の長さ) などの情報もまだ扱えていませし,楽曲の構造も 4/4 拍子に限定されています.
今後の研究で,複数の楽器を扱えるようになり,楽曲を構成する情報を余すところなく扱えるようになれば,よりダイナミックに,そしてよりリアルにジャンル変換することが可能になるかもしれません.その際には,より面白い変換例を見せてくれるでしょう.
arXiv(2018.09.20公開)
Deep generative models such as Variational Autoen- coders (VAEs) and Generative Adversarial Networks (GANs) have recently been applied to style and domain transfer for images, and in the case of VAEs, music. GAN-based models employing several generators and some form of cycle consistency loss have been among the most successful for image domain transfer. In this paper we apply such a model to symbolic music and show the feasibility of our approach for music genre transfer. Evaluations using separate genre classifiers show that the style transfer works well. In order to improve the fidelity of the transformed music, we add additional discriminators that cause the generators to keep the structure of the original music mostly intact, while still achieving strong genre transfer. Visual and audible results further show the potential of our approach. To the best of our knowledge, this paper represents the first application of GANs to symbolic music domain transfer.
関連リンク
-
WaveNetを使ったAutoencoderで音楽のドメイン間の変換を可能に! – A Universal Music Translation Network
- WaveNetを使ったAutoencoderで音楽のドメイン間の変換を可能に! – A Universal Music Translation Network
-
CycleGAN 対訳がなくても画像を翻訳(変換) – Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
- CycleGAN 対訳がなくても画像を翻訳(変換) – Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
-