Google が研究の一貫で開始した Magenta の Drums RNN を使用して、機械学習の結果からドラムトラックを自動生成させます。学習済みのモデルも公開されていることから、python 環境があれば比較的簡単に実行することができます。
Magenta と Drums RNN
Magenta とは
- アートや音楽を生成するプロセスにおける機械学習の役割を調査する
- Google Brain チームの一部の研究者とエンジニアが開始した
- GitHub はこちら
という、プロジェクトです。
Drums RNN とは
- Magenta の一部
- LTSM を使用して ドラムトラックを Midiデータとして生成してくれる
- 学習済みのモデルもある
という、モデルです。
前提
Name | Version |
---|---|
Mac | Catalina(10.15.6) |
Python | 3.6.10 :: Anaconda, Inc. |
セットアップ
1. Magenta セットアップ
Python のインストールからやる方法もありますが、自分の場合すでに Python が入っていたので、 Manual Install
しました。 pip install magenta
したら終われるかと思いきや、以下エラーに遭遇したので、一個ずつ潰して行きました。
エラーと対応方法
環境がすでにある程度出来上がっていたため、必要なライブラリのバージョンが合わないというエラーが出ました。
ERROR: tensorflow 1.15.0 has requirement gast==0.2.2, but you'll have gast 0.3.3 which is incompatible.
ERROR: google-api-core 1.21.0 has requirement protobuf>=3.12.0, but you'll have protobuf 3.11.3 which is incompatible.
ERROR: tensor2tensor 1.15.7 has requirement tensorflow-probability==0.7.0, but you'll have tensorflow-probability 0.10.1 which is incompatible.
ERROR: apache-beam 2.22.0 has requirement dill<0.3.2,>=0.3.1.1, but you'll have dill 0.3.2 which is incompatible.
ERROR: apache-beam 2.22.0 has requirement oauth2client<4,>=2.0.1, but you'll have oauth2client 4.1.3 which is incompatible.
ここは、愚直に合致するバージョンをインストールしていきました。以下はサンプル。
pip install tensorflow-probability==0.7.0
2. Magenta のリポジトリをクローン
git clone https://github.com/magenta/magenta.git
3. 学習済みのモデルをダウンロード
4. Drums RNN の実行
- python コードがあるディレクトリ( /magenta/magenta/models/drums_rnn )に移動
- 実行(オプションは色々ありますが、READEME に詳細があるのでここでは割愛)
python drums_rnn_generate.py --config='one_drum' --bundle_file='~/Downloads/drum_kit_rnn.mag' --output_dir=/tmp/drums_rnn/generated --num_outputs=10 --num_steps=128 --primer_drums="[(36,)]"
- ↑ /tmp/drums_rnn/generated に midi データが生成されているはずなので、移動して確認