DeepComposerの響きで
さわやかな目覚めを
2020.9.13(Sun) JAWS SONIC
@nid777 新居田晃史 Akifumi Niida
#jawsug #jawssonic2020
※本内容はすべて個人的な見解であり、所属する会社や組織を代表するものではありません
自己紹介
• 新居田 晃史(にいだ あきふみ)
• 所属
• JBアドバンスト・テクノロジー株式会社
• 先進技術研究所
• 日本最速ITエンジニア(※週刊BCN編集部調べ)
• フルマラソン 2:29:56
• JAWS-UG 横浜支部(宇宙一早いre:Capでお馴染みのあの支部です)
Twitter @nid777
Facebook Akifumi Niida
DeepComposerとは
• 世界初の機械学習対応のミュージカルキーボード
• re:Invent 2019で発表
• 機械学習で音楽を生成
• モデルをトレーニングしながらGANを体験
• SageMakerによるカスタムモデルの作成
コンピュータが音楽を理解する方法
• Pitch
• Velocity
• Tempo
• MIDI
ピッチは、音階上の相対位置が割り当てられているトーンです。各音符には数値が割り当てられており、0から最低音まで、
最高音は127まであります。
AWS DeepComposerキーボードのキーの範囲は41〜72です。オクターブ調整ボタンは、ピッチの値を12の倍数単位で上下
にシフトして、ピッチを高くしたり低くしたりします。
1つの音符が押される強さをエンコードします。キーをより速く押すと、ベロシティの値が高くなり、より大きな音が作成
されます。速度の値の範囲は1(最小、実際には聞こえない)〜127(最大)です。
テンポは、音楽の再生速度を表します。音楽は通常、特定のビートまたはメーターに従い、演奏されるノートのリズムを
動かします。このビートの速度は、ビート/分で測定されます。1分あたりのビート数が多いほど、再生速度が速くなります
(テンポ)。
MIDIのファイル形式は、レコードや店舗の音楽をコンピュータで使用される業界標準です。ファイル形式は、使用される
楽器の再生テンポや、ノートのピッチやベロシティなど、押したり離したりするノートをエンコードする一連のイベント
などの詳細をエンコードします。
MIDI えーあい ええ感じの音
音階 音の強さ テンポ 音の種類
• ピアノ
• ギター
• ドラム
AI
強化学習
教師あり学習
教師なし学習
強化学習
教師あり
学習
教師なし
学習
Deep Composer
Deep Racer
GAN
GANs VAEs
Auto
regression
GANの仕組み
本物そっくりな音楽を作るでー!
ええやん
あかんやん
お前、5点やな
本物と見分けるでー!
Generator Loss
Discriminator Loss
改善や!
さぁ、概要もわかったし準備は整った!
あとは音楽を生成するだけ♪
最大の課題
キーボードが弾けない
※ 30年ぐらい前にピアノを少し習ったようなそうじゃないような。。
弾けたつもりでも結構テンポがズレる問題
結構ズレるんすよ。。
元が悪いと、よくわからないものが出来上がる
方向転換。ITに頼ろう
ギリギリ楽譜は読めるので、ネットで楽譜見ながらポチポチっと
http://takabosoft.com/domino
使用したMIDIソフト
作者の @takabosoft様 ありがとうございます!
はまったこと①
DeepComposerは
シングルトラックのMIDIデータを受け付けるので、
エクスポート時に注意が必要
Dominoの場合は format 0 で出力すればOK
シングルトラック
なぜかテンポが合わない
はまったこと②
← 本当はここまでの長さになっててほしい
Domono.exeでの設定ミスが原因
トレーニングについて
Epoch: 100
Learning rate: 0.01
Update ratio: 5
Epoch: 200
Learning rate: 0.0001
Update ratio: 5
Epoch: 200
Learning rate: 0.0005
Update ratio: 5
Discremenator Lossが0に近い値で収束
したが、十分に学習したかどうか怪しい
損失関数の値を監視しましょう
• 弁別器の損失はゼロに収束
• 発生器の損失はゼロである必要のない数値に収束することを期待
• 損失関数がplateaus(水平状態)になると、モデルが学習しなくなったことを示します。
Discremenator Lossが0で収束していな
い
良い感じ
Demo
音声が大きいので、ボリュームにご注意ください
いくらかかったか
ほぼ無料枠の範囲内でできました
DeepComposerの何かに16ドルぐらい使った。
多分、推論で「AutoregressiveCNN Bach」使った時なのでは。。
トレーニング 6個 x 8時間 x 1.26 USD = 60.48 USD
推論 150回 x 0.0166..時間(1分) x 0.0083 USD = 5.35 USD
無料利用枠がなかった場合
良い朝を迎えられましたか?
The end

Jaws sonic 2020_yokohama_deepcomposer