はじめに
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 に設定することでこの動作を無効にすることができます。生成された音楽サンプルは以下の3つの形式で保存される:
- .npy`:生のnumpy配列
- .png`: 画像ファイル
- .npz`: Pypianoroll パッケージから読み込むことができる、マルチトラックのピアノロールファイル。
設定ファイルで `save_array_samples`、`save_image_samples`、`save_pianoroll_samples` を False に設定することで、特定のフォーマットの保存を無効にすることができます。生成されたピアノロール・ファイルは容量と処理時間を節約するために `.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): 様々なステップで生成された結果の例