「サクラ」交流掲示板

サクラユーザーが交流する掲示板です。

@124■ (#575) 構想だけはある話・その1 - いもむし (2018-06-24 07:54) /低 アイデア
現代IT社会に生きる皆さんは「AI」「機械学習」「ディープラーニング」といった文字を見かけたことがあるのではないでしょうか.実はこの機械学習を用いた自動作曲技術において,MIDIという形式がひそかに脚光を浴びています.今回はサクラの曲掲示板に存在する無数の楽曲を使って独自の自動作曲システムを構築できないかというお話.

まず Deep Neural Network を用いた自動作曲においてMIDI形式が用いられる理由ですが,wavなどの波形データとは違ってmidiは楽譜データのようなものというのが決定的な利点です.8分音符や16分音符区切りでのシンボルの配列に容易にエンコード可能ということが,Recurrent Neural Network の利用に適しているわけです.
すでにMIDIファイルを用いた自動作曲プロジェクトがGoogleにて進行中で,「magenta」という Tensorflow ベースのプロジェクトが公開されています.中身を理解せずに使うだけなら数行のコマンドで訓練と生成ができるので,Ubuntu や Mac 環境をお持ちの方は試してみるのも面白いでしょう.magenta の使い方やちょっとした改造はまた別のエントリーで紹介します.

Tensorflow magenta :
https://magenta.tensorflow.org/
magenta on GitHub :
https://github.com/tensorflow/magenta

さて,根本的に必要な技術については用意されているわけですが,機械学習において肝心なのはデータセットです.何千何万といった可能な限り大きいサイズのデータセットを用意することが望ましいのですが,そこで注目できるのがサクラの曲掲示板です.part5,6掲示板だけでも8000を超える楽曲が公開されており,しかも毎週のように楽曲が追加されていきます.これはまさにデータセットとして最適なのです.
サクラの楽曲を使って自動作曲できたらアツいと思いませんか?

このシステムを構築するためには以下のステップが必要です.

1. Tensorflow と magenta の環境構築
2. サクラ曲掲示板からmmlをDLしmidiへエンコード
3. 学習実行

2番の工程だけ工夫が要りそうですが,ここをクリアすれば独自の自動作曲システムが出来上がります.適当なサーバーを立ててAPIなど整えれば,サクラの新機能として取り入れることも夢ではありませんね.

実は magenta は元々 monophony (つまりメロディのみ)でしか学習・生成ができなかったのですが,最近になって polyphony (つまり和音)に対応したのでこういったシステムも現実味を帯びてきました.今後も magenta の動向を見ていきたいですね.
magenta の polyphony_rnn で使われているエンコード法の元になった論文をまだ詳しく読んでいないので,要素技術はおいおい理解していきたいところです.

-----

諸々の事情が重なって作曲から離れている僕ですが,長らくお世話になっているサクラに何かの形で還元したいと思って投稿した次第です.

感想・提案・議論などお待ちしております.
構想だけはある話・その1 / いもむし (2018-06-24 07:54) (#575)/ 低 アイデア

(#575)へ返信する:

名前
タイトル
本文
重要度
状態
確認キー お手数ですが、いたずら防止のために、「桜」をひらがなで記入してください。
編集キー 編集時に使うキーを入力(省略可能)
添付ファイル 画像ファイル(最大300KB)を添付可能