论文代码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 --filerequirements.txt# ...或者:pip install -r requests.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/tracklist_enst_allphrases.csv"
对于具有无约束预热阶段的稀疏 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/。