Googleの機械学習音楽ライブラリーMagentaが1.1.1へバージョンアップ!ドラムトラック生成モデルGrooVAEのアップデート

Googleの機械学習音楽ライブラリーMagentaが1.1.1へバージョンアップしました。

今回のバージョンアップの中心はドラムトラック生成モデルGrooVAEのアップデートとTFDS(Tensorflowデータセット)への対応です。

GrooVAE

まずはGrooVAEです。

GrooVAEはMusicVAE(マルチトラックの音楽生成モデル)の中のドラムトラック生成モデルなのですが、今回新たな学習済みデータとしてGroove MIDI DatasetのリリースとGrooveConverter(ドラムのノリを作るプログラム)のアップデートが実施されました。

GrooVAEについて解説しましょう

こちらはcanplayの講義やAI自動作曲研究会でも解説しているMagenta StudioのDrumfyです。

Drumifyは、動画の様に元楽曲のドラム以外の演奏(ベースなど)からそれにあったドラムパターンをノリをきちんと合わせて生成するアプリでした。

そのDrumifyで使用されたプログラム(GrooveConverter)や学習済みモデルがMusicVAEのGrooVAEモデルとして使用できる様になったとの事です。

GrooVAEではドラムのパターンを”楽譜”と”Groove”を2つに分けて学習します。

そして楽譜上の演奏データ(どのドラム楽器を楽譜的にどの拍で演奏するか)にGroove(強弱やタイミングのズレ)を加え、Beatとしてノリのあるドラムトラックを生成します。

下記の動画のイメージです。

Drumifyの時に解説した通り、この時の学習データはGoogleのオフィスでプロのドラマーがRoland TD-11 電子ドラムを使用して約15時間(13.6時間だそうです)演奏したデータを使用しています。

MusicVAE用にその学習済みデータがついにリリースされました、

データ内容

・収録時間13.6時間

・1150曲のドラムパターンMIDIファイル、約22000小節以上

・10人のドラマーが即興で演奏、全パターンの80%がプロフェッショナルのドラマーの演奏

・ほとんどの曲は4/4で演奏され、Fill inや短いビートの演奏も含む

・MIDIだけでなく音声合成したオーディオデータも学習データとしてリリース

Split Beats Fills Measures (approx.) Hits
Train 378 519 17752 357618
Validation 48 76 2269 44044
Test 77 52 2193 43832
Total 503 647 22214 445494


使用ドラム音マップ

Pitch Roland Mapping GM Mapping Paper Mapping Frequency
36 Kick Bass Drum 1 Bass (36) 88067
38 Snare (Head) Acoustic Snare Snare (38) 102787
40 Snare (Rim) Electric Snare Snare (38) 22262
37 Snare X-Stick Side Stick Snare (38) 9696
48 Tom 1 Hi-Mid Tom Mid Tom (48) 13145
50 Tom 1 (Rim) High Tom High Tom (50) 1561
45 Tom 2 Low Tom Low Tom (45) 3935
47 Tom 2 (Rim) Low-Mid Tom Mid Tom (48) 1322
43 Tom 3 (Head) High Floor Tom Low Tom (45) 11260
58 Tom 3 (Rim) Vibraslap Low Tom (45) 1003
46 HH Open (Bow) Open Hi-Hat Open Hi-Hat (46) 3905
26 HH Open (Edge) N/A Open Hi-Hat (46) 10243
42 HH Closed (Bow) Closed Hi-Hat Closed Hi-Hat (42) 31691
22 HH Closed (Edge) N/A Closed Hi-Hat (42) 34764
44 HH Pedal Pedal Hi-Hat Closed Hi-Hat (42) 52343
49 Crash 1 (Bow) Crash Cymbal 1 Crash Cymbal (49) 720
55 Crash 1 (Edge) Splash Cymbal Crash Cymbal (49) 5567
57 Crash 2 (Bow) Crash Cymbal 2 Crash Cymbal (49) 1832
52 Crash 2 (Edge) Chinese Cymbal Crash Cymbal (49) 1046
51 Ride (Bow) Ride Cymbal 1 Ride Cymbal (51) 43847
59 Ride (Edge) Ride Cymbal 2 Ride Cymbal (51) 2220
53 Ride (Bell) Ride Bell Ride Cymbal (51) 5567



使用したドラムデータは下記のリンクからダウンロード可能です。

(オーディオを含むデータは5G近くありますので注意)

オーデイオ含む

groove-v1.0.0.zip

MIDIのみ

groove-v1.0.0-midionly.zip

ダウンロードしてCSVファイルでパラメータの確認をしたのですが、学習データと評価データがどのくらいの比率で分けられているのか?などがわかって中々興味深かったです。

TensorFlowDataSetへの対応

今回よりTFDS(TensorFlowDataSet)へMagentaも対応しました。

これにより学習の際のハイパーパラメータ(バッチサイズや学習率など)の調整がより簡単にわかりやすくなります。

今後移行が進むであろうTensorFlow2.0へ向けた準備の側面もあると思われます。

記事投稿日:2019/5/3