本リポジトリは「AIミュージックバトル!『弁財天』」から提供されたスターターキットのPyTorch版に相当するPythonスクリプト群を提供する。
MIT licence.
- Copyright (C) 2022 Akira Tamamori
- Copyright (C) 2022 北原 鉄朗 (Tetsuro Kitahara)
実装はUbuntu 22.04上でテストした。Pythonのパージョンは3.10.6
である。
- torch
- joblib
- midi2audio
- hydra-core
- progressbar2
- numpy
- scipy
- matplotlib
Ubuntuで動かす場合、FluidSynthに関するサウンドフォントが必要なので入れておく。
apt-get install fluidsynth
ファイル名 | 機能 |
---|---|
preprocess.py | 前処理を実施するスクリプト |
training.py | モデルの訓練を実施するスクリプト |
synthesis.py | 訓練済のモデルを用いてメロディを合成するスクリプト |
各種の設定はyamlファイル(config.yaml)に記述する。
- config.yamlの編集
- preprocess.py による前処理の実施
- training.pyによるモデル訓練の実施
- synthesis.pyによるメロディ合成の実施
preprocess.pyは一度だけ動かせばよい。preprocess.pyにはモデル訓練に用いるMusicXML群(下記参照)のダウンロードや、それらからの特徴量抽出、またスターターキットが提供する伴奏データ・コード進行データのダウンロードが含まれる。
synthesis.pyには合成結果のMIDIファイルへの書き出し、Wavファイルへのポート、またメロディのピアノロール画像の作成・保存が含まれる。
訓練データは以下のサイトから入手可能なMusicXMLを用いる。
https://homepages.loria.fr/evincent/omnibook/
Ken Deguernel, Emmanuel Vincent, and Gerard Assayag. "Using Multidimensional Sequences for Improvisation in the OMax Paradigm", in Proceedings of the 13th Sound and Music Computing Conference, 2016.
本PyTorch版のGoogle Colabのノートブックを用意した。
- Google Driveのマイドライブ直下に「benzaiten」フォルダを作成
- 以下のURLからyamlファイルをダウンロードして(config_gdrive.yamlとして保存)、上記benzaitenフォルダに置く https://gist.github.com/tam17aki/3ea977954d9ab7e152bf907c140a22b3
- 「ランタイム」→ 「ランタイムのタイプを変更」から、ハードウェアアクセラレータとして「GPU」を選択
- 「ランタイム」→「すべてのセルを実行」