クーの自由研究

マスターのかえるのクーは、弟子達の召喚術により新たな依り代を得てⅡ世として復活しました。

計算機音楽の自由研究(準備:その4)機械学習に適した音・サウンドのデータセット「あるよ」

寸劇


かえるのクー:「マスター。ひさしぶり、お疲れっす。ジンジャエールがいいかな。リーズ・ジンジャー・ブリューなんておいてないよね」

f:id:np2LKoo:20170727231050p:plain

マスター:「...あるよ。」

マスターはコースターの上にグラスをおいて、ビンからリーズ・ジンジャー・ブリューを注いだ。
かえるのクー:「えーすげー。キンキンに冷えてる~。ボクがきてこれを注文するのわかってた?」
マスター:「...」
かえるのクー:「ところで最近、音楽関連に興味があって、音のデータセットをつくっているんだ。この店、通販やネットの取り扱いもしているみたいだけど、そんなのないよね?」
マスター:「...あるよ。」
かえるのクー:「え~マジっすか。でも、申請もなく無料で使えて全部で60,000音以上そろっているのなんてそうそうないよね。」
マスター:「...あるよ。」
かえるのクー:「ヤバイ。機械学習用につかいたいんだけど、各楽器いろんな音の高さと強さで、種類は10種類くらいはないと。いくらなんでも、そこまでは無理だよね。」
マスター:「...あるよ。」
かえるのクー:「マジやばくないっすか~。音がそろっているだけじゃなくて、JSONとかで、その音の情報がそろったものがいいんすけど」
マスター:「...あるよ。」
かえるのクー:「ちょ、ちょっとまてよ~、それ、本当すか。ボクはずっとネットで探していたんだけど、ぶっちゃけ、みつかんなかったすけど。」
マスター:「...あるよ。」
マスターはジンジャエールグラスの下に敷いたコースタを指さした。そのコースターはGoogleのロゴ下にmagentaとかかれたプロモーション用と思われるものだった。URLもかいてある。
かえるのクー:「ああ、magentaNsynthだったら知ってる。それ、音を生成するやつだよね。生成されるやつじゃなくて、元ネタがほしいんだよね~。」マスターはコースターを裏返して、上目づかいににこりともせずぼくをみた。
コースターの裏には「The NSynth Dataset Apr 5, 2017」とかかれていた。マスタはさらに言った。
マスター:「...あるよ。」


言い訳

 寸劇をやらずにいられないボクの複雑な心境をお察しください。

NSynthの存在も知っていました。サウンドデータベース、データセット検索もしましたとも。でもNSynthの一環でデータセットが公開されているのは知りませんでした。
googleでサウンド 機械学習 データセット もしくはデータベース で検索してもサウンドに線が引かれ、mnistやcifar-10が検索されるばかり。いくつかの大学や研究機関からは有償の媒体提供が可能などはありました。そうです。現時点で検索してもほとんどNSynthのデータセットは検索にかかりません。Youtube-8Mは知ってます。けど、すぐに機械学習にかけられるMNISTと同じようなサウンドデータベース・サウンドデータセットが欲しかったんです。
ないので作っていましたが、ありました
日本でも外国でも紹介されるのはNSynthやA.I DuetばかりでNSynth Dataset を取りあげてくれてないようです。声を大にしていいます。

機械学習そのまま使えるサウンドデータセット ありますgoogle magentaチームの NSynth Datasetです。

f:id:np2LKoo:20170727212831p:plain

ボクが考えていたのとほぼ同じ(あるいはあきらめていた)すべてのフルスペックを装備しています。

ボクの「サウンドデータベース作成」はあえなく中止・終了となることを潔く宣言します。丸いタイヤが無料で手に入るのにごつごつの車輪を開発するようなことは無意味とおもわれます。(自由研究のコンセプトからすれば、「なしよりのあり」ではありますが)

オリジナルサイトは以下です。(ダウンロードはこちらから)

magenta.tensorflow.org

それではデータセットのスペックをみていみましょう。

おもいっきり意訳

画像機械学習、生成モデリングのためのMNIST、CIFAR、およびImageNetと同様の扱い易いオーディオデータセットが必要だ。ないのでつくっちゃいました。どんどん使ってね。

主なスペック

全部で 305,979 (30万音超え!)の楽音からなり、訓練用に289,205、検証用に12,678、テスト(本番)用に4,096 準備しています。それぞれに重複はありません。以下は「json/wav」のファイル容量例です。

train / nsynth-train.jsonwav.tar.gz / 23.2GB /解凍後 34.6GB

valid / nsynth-valid.jsonwav.tar.gz / 1.04GB /解凍後 1.51GB

test / nsynth-test.jsonwav.tar.gz / 341MB /解凍後 502MB

テンソルフロー用にすぐ使用できるシリアライズされた「TFRecord files」と一般的な「json/wav」がそれぞれ提供されており、どちらかを使用します。

各音は16bit、4秒、モノラル16kHzサンプリングで、MIDIノートで21~88(ピアノ88鍵に相当)で、MIDI Volume=(25,50,75,100,127)のベロシティで個別に録音されています。

楽器の音のでる範囲で録音されていますので、楽器によってノート範囲が異なります。

以下の種類があります。(11種類)

Family Acoustic Electronic Synthetic Total
Bass 200 8,387 60,368 68,955
Brass 13,760 70 0 13,830
Flute 6,572 35 2,816 9,423
Guitar 13,343 16,805 5,275 35,423
Keyboard 8,508 42,645 3,838 54,991
Mallet 27,722 5,581 1,763 35,066
Organ 176 36,401 0 36,577
Reed 14,262 76 528 14,866
String 20,510 84 0 20,594
Synth Lead 0 0 5,501 5,501
Vocal 3,925 140 6,688 10,753
Total 108,978 110,224 86,777 305,979

 

音質はそれぞれ以下のような配分になっています。

Quality Bright Dark Distortion Fast Decay Long Release Multiphonic Nonlinear Envelope Percussive Reverb Tempo-Synced
Dark 0.0                  
Distortion 25.9 2.5                
Fast Decay 10.0 7.5 8.1              
Long Release 9.0 5.2 9.8 0.0            
Multiphonic 6.0 1.5 5.4 2.8 6.9          
Nonlinear Envelope 8.5 1.4 6.6 2.1 6.7 8.6        
Percussive 6.2 5.1 3.0 52.0 0.8 2.4 0.9      
Reverb 6.6 8.9 0.3 13.0 13.7 0.7 3.5 12.4    
Tempo-Synced 2.4 1.8 5.2 0.4 6.4 9.3 2.3 1.5 0.0  
Frequency 13.5 11.0 17.0 14.7 8.5 3.4 3.2 10.2 16.8 1.8

 

ライセンス

The dataset is made available by Google Inc. under a Creative Commons Attribution 4.0 International (CC BY 4.0) license.

クリエイティブ・コモンズ・ライセンスです。CC BY なので、任意の媒体や形式でコピーし、再配布可能です。リミックスや改変してつかったり、素材として使用し作品をつくるなど、利用目的によらず、商用でも使用可能です。

使用した作品などを公開する場合は、原作者クレジット表記は必要です。

f:id:np2LKoo:20170727220731p:plain

 

ほぼすべてにおいてボクの考えていたことを凌駕していますが、1点だけ不満があります。

各音4秒にするなら1.5とか2秒にしてもいいから「48KHzサンプリング」にしてほしかったです。ぜいたくなのは分かっていますが、ここまでするならそこも欲しかった。(ボクのDB案では時間を犠牲にして、サンプリングレートを優先させていました)

ダウンサンプリングしたあと、アップサンプリングするときに、欠落した「周波数」を学習させ、それ以上の周波数構成を予測する「疑似ハイレゾ化学習」の実験がやりたかったためです。とはいえ、ほぼ120点満点の構成で大満足です。*1音はきいているところですが、各種奏法での音もあったりしてバリエーションに富み、シンプルですっきりした音です。(16kHzサンプルなのでいささかすっきりしすぎですが、音に不満は(いまのところ)ありません。

ライセンス順守のもと2次配布OKなので、NSynth Datasetを元にして、実験に適した形に前処理したものを作成して実験していく方向にしたいと考えています。

以上、報告と簡単な紹介でした。

さぁ。みんなでNSynth Datasetを使って、音の実験をしよう!!!今年の夏は暑いぜ!!!

 

 

*1:その後確認してつっこみどろが結構でてきたので、20点減点して100点満点にします。音の好みが偏りすぎな点(SytheBassとMalletが異常に好きなんですね。)と、AcousticのPianoとStringがバランス的に少ない点です。