寸劇
かえるのクー:「マスター。ひさしぶり、お疲れっす。ジンジャエールがいいかな。リーズ・ジンジャー・ブリューなんておいてないよね」
マスター:「...あるよ。」
マスターはコースターの上にグラスをおいて、ビンからリーズ・ジンジャー・ブリューを注いだ。
かえるのクー:「えーすげー。キンキンに冷えてる~。ボクがきてこれを注文するのわかってた?」
マスター:「...」
かえるのクー:「ところで最近、音楽関連に興味があって、音のデータセットをつくっているんだ。この店、通販やネットの取り扱いもしているみたいだけど、そんなのないよね?」
マスター:「...あるよ。」
かえるのクー:「え~マジっすか。でも、申請もなく無料で使えて、全部で60,000音以上そろっているのなんてそうそうないよね。」
マスター:「...あるよ。」
かえるのクー:「ヤバイ。機械学習用につかいたいんだけど、各楽器いろんな音の高さと強さで、種類は10種類くらいはないと。いくらなんでも、そこまでは無理だよね。」
マスター:「...あるよ。」
かえるのクー:「マジやばくないっすか~。音がそろっているだけじゃなくて、JSONとかで、その音の情報がそろったものがいいんすけど」
マスター:「...あるよ。」
かえるのクー:「ちょ、ちょっとまてよ~、それ、本当すか。ボクはずっとネットで探していたんだけど、ぶっちゃけ、みつかんなかったすけど。」
マスター:「...あるよ。」
マスターはジンジャエールグラスの下に敷いたコースタを指さした。そのコースターはGoogleのロゴ下にmagentaとかかれたプロモーション用と思われるものだった。URLもかいてある。
かえるのクー:「ああ、magentaのNsynthだったら知ってる。それ、音を生成するやつだよね。生成されるやつじゃなくて、元ネタがほしいんだよね~。」マスターはコースターを裏返して、上目づかいににこりともせずぼくをみた。
コースターの裏には「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です。
ボクが考えていたのとほぼ同じ(あるいはあきらめていた)すべてのフルスペックを装備しています。
ボクの「サウンドデータベース作成」はあえなく中止・終了となることを潔く宣言します。丸いタイヤが無料で手に入るのにごつごつの車輪を開発するようなことは無意味とおもわれます。(自由研究のコンセプトからすれば、「なしよりのあり」ではありますが)
オリジナルサイトは以下です。(ダウンロードはこちらから)
それではデータセットのスペックをみていみましょう。
おもいっきり意訳
画像機械学習、生成モデリングのための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 なので、任意の媒体や形式でコピーし、再配布可能です。リミックスや改変してつかったり、素材として使用し作品をつくるなど、利用目的によらず、商用でも使用可能です。
使用した作品などを公開する場合は、原作者クレジット表記は必要です。
ほぼすべてにおいてボクの考えていたことを凌駕していますが、1点だけ不満があります。
各音4秒にするなら1.5とか2秒にしてもいいから「48KHzサンプリング」にしてほしかったです。ぜいたくなのは分かっていますが、ここまでするならそこも欲しかった。(ボクのDB案では時間を犠牲にして、サンプリングレートを優先させていました)
ダウンサンプリングしたあと、アップサンプリングするときに、欠落した「周波数」を学習させ、それ以上の周波数構成を予測する「疑似ハイレゾ化学習」の実験がやりたかったためです。とはいえ、ほぼ120点満点の構成で大満足です。*1音はきいているところですが、各種奏法での音もあったりしてバリエーションに富み、シンプルですっきりした音です。(16kHzサンプルなのでいささかすっきりしすぎですが、音に不満は(いまのところ)ありません。
ライセンス順守のもと2次配布OKなので、NSynth Datasetを元にして、実験に適した形に前処理したものを作成して実験していく方向にしたいと考えています。
以上、報告と簡単な紹介でした。
さぁ。みんなでNSynth Datasetを使って、音の実験をしよう!!!今年の夏は暑いぜ!!!
*1:その後確認してつっこみどろが結構でてきたので、20点減点して100点満点にします。音の好みが偏りすぎな点(SytheBassとMalletが異常に好きなんですね。)と、AcousticのPianoとStringがバランス的に少ない点です。