はじめに
MuseGANはGenerative Adversarial Networks (GANs)に基づいた音楽生成プロジェクトで、マルチトラック(マルチ楽器)の音楽を生成するように設計されています。MuseGANはLakh Pianoroll Datasetを使用して学習され、ベース、ドラム、ギター、ピアノ、ストリングスを含む人気曲のスニペットを生成する。MuseGANは、実験の管理、新しいモデルのトレーニング、事前にトレーニングされたモデルを使用した推論や補間などの操作を容易にする様々なスクリプトを提供します。
機能一覧
- マルチトラック音楽の生成:複数の楽器を含む音楽クリップをスクラッチから生成。
- 伴奏生成:ユーザーが提供したトラックに基づいて伴奏を生成します。
- 新しいモデルのトレーニング:ユーザーが独自の音楽生成モデルをトレーニングできるように、スクリプトと設定ファイルが提供されています。
- 事前学習済みモデルの使用:音楽生成用に事前学習済みモデルをダウンロードして使用します。
- データ処理:Lakh Pianorollデータセットをサポートするトレーニングデータをダウンロードし、処理する。
- 実験管理:ユーザーが実験を設定・管理しやすいように、さまざまなスクリプトを提供する。
- 出力形式:生成された音楽はnumpy配列、画像ファイル、マルチトラックピアノロールファイル形式で保存できます。
ヘルプの使用
設置プロセス
- pipenv(推奨)またはpipがインストールされていることを確認する。
- pipenv を使って依存関係をインストールする:
バッシュ
pipenv install
pipenv shell
或使用pip安装依赖:
バッシュ
pip install -r requirements.txt
### 数据准备
1. 下载训练数据:
バッシュ
./scripts/download_data.sh
2. 处理训练数据:
バッシュ
./scripts/process_data.sh
### 训练新模型
1. 设置新实验:
バッシュ
./スクリプト/セットアップexp.sh "./exp/myexperiment/" "実験に関する備考"
2. 修改配置文件和模型参数文件以设置实验参数。
3. 训练模型:
バッシュ
./スクリプト/実行train.sh "./exp/myexperiment/" "0"
或运行完整实验(训练+推理+插值):
バッシュ
./スクリプト/実行exp.sh "./exp/myexperiment/" "0"
### 使用预训练模型
1. 下载预训练模型:
バッシュ
./scripts/download_models.sh
2. 使用预训练模型进行推理:
バッシュ
./scripts/run_inference.sh "./exp/default/" "0"
或进行插值:
バッシュ
./scripts/run_interpolation.sh "./exp/default/" "0"
### 输出管理
生成的音乐样本默认会在训练过程中生成,可以通过设置配置文件中的`save_samples_steps`为0来禁用此行为。生成的音乐样本会以以下三种格式保存:
- `.npy`:原始numpy数组
- `.png`:图像文件
- `.npz`:多轨pianoroll文件,可通过Pypianoroll包加载
可以通过设置配置文件中的`save_array_samples`、`save_image_samples`和`save_pianoroll_samples`为False来禁用特定格式的保存。生成的pianoroll文件以`.npz`格式保存,以节省空间和处理时间。可以使用以下代码将其写入MIDI文件:
パイソン
from pypianoroll import Multitrack
m = Multitrack('./test.npz')
m.write('./test.mid')
結果例
いくつかのサンプル結果は./exp/
カタログをご覧ください。その他の例は以下のリンクからダウンロードできます:
- sample_results.tar.gz(54.7 MB): 推論と補間結果の例
- トレーニングサンプル.tar.gz(18.7 MB): 様々なステップで生成された結果の例