Vande Veire、Len および De Bie、Tijl および De Boom、Cedric の論文「Sigmoidal NMFD: Convolutional NMF with Saturating Activations For Drum Loop Decomposition」のコード。
# リポジトリgit クローンをダウンロードします https://github.com/aida-ugent/sigmoidal-nmfdcd sigmoidal-nmfd# インストール要件...# ... conda ユーザーの場合:conda create --name sigmoidnmfd --file required.txt# ... 代わりに:pip install -rrequirements.txt
サウンドファイルもインストールする必要があります。
sudo apt-get install libsndfile1
スクリプトrun_nmfd_sigmoid.py
は、提供されたオーディオ ファイルにシグモイド NMFD を適用します。例えば:
python -m scripts.run_nmfd_sigmoid リソース/moonkits-hiphop.wav 4 --plot
元の NMFD アルゴリズムは次のように実行できます。
python -m scripts.run_nmfd_vanilla resource/moonkits-hiphop.wav 4 --plot
スパース NMFD ベースラインは次のように実行できます。
python -m scripts.run_nmfd_sparsity resource/moonkits-hiphop.wav 4 --sparsity 0.1 --plot
まず、ENST データセットをダウンロードします。
次に、 experiment_nmfdsigmoid_on_enst.py
スクリプトを実行します。
python -m scripts.experiment_nmfdsigmoid_on_enst --dir-enst /path/to/ENST-drums-public --dir-out /home/user/somedirectory --tracklist "resources/tracklists/tracklist_enst_allphrases.csv"
これにより、論文で説明されているように ENST フレーズ ファイルが自動的に切り取られ、新しいディレクトリに保存され、すべてのベースラインと提案されたシグモイド モデルがデータセット内のすべての切り取られたフレーズに適用されます。結果は .npz アーカイブに保存されます (注: これには約 1 GB のディスク容量が必要です)。次に、すべての例で集計されたメトリック値が出力されます。
アブレーション実験も同様に実行できます。
さまざまな最適化戦略の評価を含む、S 状 NMFD のアブレーション実験の場合:
python -m scripts.experiment_ablation_nmfdsigmoid_on_enst --dir-enst /path/to/ENST-drums-public --dir-out /home/user/somedirectory --tracklist "resources/tracklists/tracklist_enst_allphrases.csv"
制約のないウォームアップ ステージを備えたスパース NMFD の場合:
python -m scripts.experiment_nmfdsparse_with_warmup.py --dir-enst /path/to/ENST-drums-public --dir-out /home/user/somedirectory --tracklist "resources/tracklists/tracklist_enst_allphrases.csv"
並列処理は、アブレーション実験用の前述のコマンドに--parallel
フラグを追加することでサポートされることに注意してください。
NMFD フレームワークのテンプレートW
の初期値は、 create_nmf_drum_templates_from_sample_library.py
スクリプトを使用して再作成できます。
たとえば、このペーパーで行ったように、Producerspot のドラム サンプルを使用します。
次に、以下を実行します。
python create_nmf_drum_templates_from_sample_library.py --samples-list-file リソース/トラックリスト/テンプレート/samples_kick.csv --output-file リソース/テンプレート/kick.npy python create_nmf_drum_templates_from_sample_library.py --samples-list-file リソース/トラックリスト/テンプレート/samples_snare.csv --output-file リソース/テンプレート/snare.npy python create_nmf_drum_templates_from_sample_library.py --samples-list-file リソース/トラックリスト/テンプレート/samples_hihat.csv --output-file リソース/テンプレート/hihat.npy python create_nmf_drum_templates_from_sample_library.py --samples-list-file リソース/トラックリスト/テンプレート/samples_crash.csv --output-file リソース/テンプレート/crash.npy
著作権 2020 レン ヴァンデ ヴェール。
このリポジトリ内のこのコードはフリー ソフトウェアです。フリー ソフトウェア財団によって公開されている GNU 一般公衆利用許諾書の条件 (ライセンスのバージョン 3、または (ユーザーの選択により) 以降) に基づいて再配布したり、変更したりすることができます。バージョン。
このプログラムは役立つことを期待して配布されていますが、いかなる保証もありません。商品性や特定目的への適合性についての暗黙の保証もありません。 詳細については、GNU 一般公衆利用許諾書を参照してください。
このプログラムと一緒に GNU 一般公衆利用許諾書のコピーも受け取っているはずです。 そうでない場合は、https://www.gnu.org/licenses/ を参照してください。