論文代碼Vande Veire、Len 和 De Bie、Tijl 和 De Boom、Cedric,「Sigmoidal NMFD:用於鼓循環分解的具有飽和活化的捲積 NMF」 。
# 下載儲存庫git clone https://github.com/aida-ugent/sigmoidal-nmfdcd sigmoidal-nmfd# 安裝需求...# ... 對於 conda 使用者:conda create --name sigmoidnmfd --filerequirementsments.txt# ....或者:pip install -rrequirements.txt
您還需要安裝聲音檔案:
sudo apt-get install libsndfile1
腳本run_nmfd_sigmoid.py
將 sigmoidal NMFD 套用到提供的音訊檔案。例如:
python -m script.run_nmfd_sigmoid resources/moonkits-hiphop.wav 4 --plot
原始的 NMFD 演算法可以運行如下:
python -m scripts.run_nmfd_vanilla resources/moonkits-hiphop.wav 4 --plot
稀疏 NMFD 基線可以如下運行:
python -m script.run_nmfd_sparsity resources/moonkits-hiphop.wav 4 --sparsity 0.1 --plot
首先,下載 ENST 資料集。
然後,執行experiment_nmfdsigmoid_on_enst.py
腳本:
python -m script.experiment_nmfdsigmoid_on_enst --dir-enst /path/to/ENST-drums-public --dir-out /home/user/somedirectory --tracklist “資源/tracklists/tracklist_enst_allphrases.csv”
這將按照論文中的描述自動裁剪 ENST 短語文件,將它們保存在新目錄中,並將所有基線和建議的 sigmoidal 模型應用於資料集中的所有裁剪短語。結果保存在 .npz 存檔中(注意:這需要大約 1 GB 的磁碟空間)。然後它將列印出所有範例聚合的指標值。
消融實驗可以類似地進行。
對於sigmoidal NMFD的消融實驗,包括不同最佳化策略的評估:
python -m script.experiment_ablation_nmfdsigmoid_on_enst --dir-enst /path/to/ENST-drums-public --dir-out /home/user/somedirectory --tracklist "resources/tracklists/tlist_enst_allphrases. --tracklist"
對於具有無約束預熱階段的稀疏 NMFD:
python -m script.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 resources/tracklist/templates/samples_kick.csv --output-file resources/templates/kick.npy python create_nmf_drum_templates_from_sample_library.py --samples-list-file resources/tracklist/templates/samples_snare.csv --output-file resources/templates/snare.npy python create_nmf_drum_templates_from_sample_library.py --samples-list-file resources/tracklist/templates/samples_hihat.csv --output-file resources/templates/hihat.npy python create_nmf_drum_templates_from_sample_library.py --samples-list-file resources/tracklist/templates/samples_crash.csv --output-file resources/templates/crash.npy
版權所有 2020 Len Vande Veire。
此儲存庫中的此程式碼是免費軟體:您可以根據自由軟體基金會發布的GNU 通用公共授權的條款重新分發和/或修改它,無論是授權的第3 版,還是(由您選擇)任何更高版本版本。
分發此程序的目的是希望它有用,但不提供任何保證;甚至沒有適銷性或特定用途適用性的默示保證。 有關更多詳細信息,請參閱 GNU 通用公共許可證。
您應該隨該程式一起收到 GNU 通用公共授權的副本。 如果沒有,請參閱 https://www.gnu.org/licenses/。