機械学習を用いた音楽生成ツールプロジェクトMagenta
Magentaは,``An open source research project exploring the role of machine learning as a tool in the createive process.’’ である。
Generating music with Python and Neural Networks using Magenta for TensorFlow を参照して,使う.
まずは,Pythonでmagentaをインストールする.
インストールできたら,最初にTensorFlowチームが生成した訓練ずみのモデルを用いて旋律を生成することにする.
上記のサイトにリンクのあるbasic_rnn.mag
をダウンロードする。このファイルは,多くのMIDIファイルで訓練ずみのニューラルネットモデルを表すものである。旋律を生成するには,--primer_melody
を指定する。
melody_rnn_generate \
--config=basic_rnn \
--bundle_file=./basic_rnn.mag \
--output_dir=./tmp/melody_rnn/generated \
--num_outputs=10 \
--num_steps=128 \
--primer_melody="[60]"
これを実行すると,カレントディレクトリの下のtmp
ディレクトリにmelody_rnn
ディレクトリが作成され,さらにその下にgenerated
が作成され,そこに10個のMIDIファイルが生成される。
Magentaの開発チームは,LookbackRNNモデルも用意している。この訓練ずみモデルを表すファイルlookback_rnn.mag
をダウンロードし,次の命令を実行する。
melody_rnn_generate \
--config=lookback_rnn \
--bundle_file=./lookback_rnn.mag \
--output_dir=/tmp/melody_rnn/generated \
--num_outputs=10 \
--num_steps=128 \
--primer_melody="[60]"
次に,指定したMIDIファイルが表す旋律を元に,旋律を生成する。
同じく上記のブログ記事から,T-squareのOmens of Lovesの4小節分のメロディのMIDIファイルOmensOfLove.mid
をダウンロードする。
これを元に旋律を生成するには,次の命令を実行する。ニューラルネットとして,ここではlookback RNNを指定した。
melody_rnn_generate \
--config=lookback_rnn \
--bundle_file=./lookback_rnn.mag \
--output_dir=./tmp/melody_rnn/generated \
--num_outputs=10 \
--num_steps=128 \
--primer_midi=./OmensOfLove.mid