MuseNet:ショパン風のレディガガ、ビートルズ風のハリポッターのテーマ(4/4)

  • 2019.05.07
  • AI
MuseNet:ショパン風のレディガガ、ビートルズ風のハリポッターのテーマ(4/4)

1.MuseNet:ショパン風のレディガガ、ビートルズ風のハリポッターのテーマ(4/4)

・データセットは2つのMIDIファイルを公開しているサイトから提供を受けた
・MIDIファイルをより学習しやすい形式にコード化している
・コード化し、更に音量やテンポを変更してデータを水増ししている

2.MuseNetが使ったデータセット

以下、openai.comより「MuseNet」の意訳です。元記事は2019年4月25日、Christine Payneさんによる投稿です。

データセット
MuseNetのトレーニングデータはさまざまなところから収集しました。ClassicalArchivesとBitMidiはこのプロジェクトのためにMIDIファイルの大規模なコレクションを寄付してくれました、そしてまた我々はジャズ、ポップ、アフリカンミュージック、インドミュージック、アラビアンスタイルを含むいくつかのコレクションをオンラインで見つけました。 さらに、MAESTROデータセットを使用しました。

トランスフォーマーは連続するデータについて訓練されています。私たちは音符のセットが与えられるとトランスフォーマー次の音符を予測するように指示します。この作業に適した形式にMIDIファイルをエンコードするためのいくつかの異なる方法を試しました。まず、一度に鳴っている音のすべての組み合わせを個々の「コード」と見なし、各コードにトークンを割り当てたコードごとのアプローチを試しました。次に、先頭部分の音符のみに注目して音楽パターンを圧縮し、さらにバイトペアエンコーディング方式を使用し、それを圧縮しました。

また、時間の経過を示す2つの異なる手法を試しました。曲のテンポに合わせて拡大縮小されるトークン(つまり、音楽の拍子または拍子の一部を表すトークン)、または絶対時間を秒単位で記したトークンです。ピッチ、ボリューム、音源情報を1つのトークンにまとめ、表現力と簡潔さを兼ね備えたエンコーディングも作り上げました。

bach piano_strings start tempo90 piano:v72:G1 piano:v72:G2 piano:v72:B4 piano:v72:D4 violin:v80:G4 piano:v72:G4 piano:v72:B5 piano:v72:D5 wait:12 piano:v0:B5 wait:5 piano:v72:D5 wait:12 piano:v0:D5 wait:4 piano:v0:G1 piano:v0:G2 piano:v0:B4 piano:v0:D4 violin:v0:G4 piano:v0:G4 wait:1 piano:v72:G5 wait:12 piano:v0:G5 wait:5 piano:v72:D5 wait:12 piano:v0:D5 wait:5 piano:v72:B5 wait:12
エンコーディングのサンプル

トーレニング時には、

(1)音程を上げ下げする事で曲を移調します。(トレーニングの後半段階では、新たな曲が個々の楽器が表現できる範囲内に収まるように移調量を減らしていきます)。

(2)様々なサンプルの全体的なボリュームを上げたり下げたりし、ボリューム情報を拡張します。

(3)一部を効率的にわずかに遅くするかスピードアップし、タイミング情報を拡張します。

(4)トークンのEmbeddingsに対してmixupを使用してデータを拡張します。

また、内部評価関数作成します。モデルはトレーニング中に、特定のサンプルが本当にデータセットからのものであるのか、それともモデルの過去の世代のものであるのかを予測するよう求められます。このスコアは生成時にサンプルを選択するために使用されます。

Embeddings
モデルに構造的な文脈を与えるために、いくつかの異なる種類のEmbeddingsを追加しました。 標準的な位置Embeddingsに加えて、特定のサンプルの時間経過を追跡するEmbeddingsを追加しました。このようにして、同時に鳴る音にはすべて同じタイミングEmbeddingsが与えられます。

それから、各音符の和音のEmbeddingsを追加します。(これは相対的なAttentionの模倣です。モデルが、音符4を決定する時に音符3、もしくは直前の和音を振り返るのが容易になります)

最後に、2つの構造的なEmbeddingsを追加して、与えられた音楽サンプルがより大きな楽曲内のどこにあるかをモデルに伝えます。1つ目のEmbeddingsは大きい断片を128分割し、2番目のEmbeddingsはモデルが終了トークンに近づくにつれて減算していく127から0へのカウントダウンです。

私たちは、人々が何を生み出しているのかを見て(あるいは聞いて)興奮しています! あなたが好きな作品を作成したら、Instaudioのような無料のサービスにそれをアップロードして、そして私達にリンクをつぶやくことができます。(試作版作曲ツールにはツイートボタンも付いています)。

あなたがOpenAIの音楽作品についてもっと学ぶ事に興味があるならば、私達のチームへ参加する事も検討してください。試作版作曲ツールのインターフェースについての提案を私達に電子メールで送ってください。MuseNetを使ってより深く作曲することに興味がある場合、またはトレーニングセットに追加したいMIDIファイルがある場合は、ぜひご連絡ください。

謝辞
スパーストランスフォーマーの研究についてRewon ChildとScott Grey、そしてGPT-2の研究についてJeff WuとAlec Radfordに感謝します。この記事のドラフトに関するフィードバックについても、以下の皆さんに感謝します。Greg Brockman, Ilya Sutskever, Durk Kingma, Arvind Neelakantan, Tim Salimans, Rob Laidlow, Judith Finell, Moni Simeonov, Ray Iwazumi, Sam McCandlish, Miles Brundage, Jack Clark, Jonas Schneider, Chris Olah.

編集:Ashley Pilipiszyn
デザインと開発:Justin Jay Wang, Nicholas Benson, Eric Sigler
アートワーク:Ben Barry

3.MuseNet:ショパン風のレディガガ、ビートルズ風のハリポッターのテーマ(4/4)関連リンク

1)openai.com
MuseNet

2)arxiv.org
Enabling Factorized Piano Music Modeling and Generation with the MAESTRO Dataset

3)www.classicalarchives.com
Classical Music on Classical Archives: Home

4)bitmidi.com
Popular MIDIs — BitMidi