Код для статьи Ванде Вейре, Лен и Де Би, Тейл и Де Бум, Седрик, «Сигмоидальная NMFD: сверточная NMF с насыщающими активациями для разложения барабанного цикла» .
# Загрузите клон репозитория https://github.com/aida-ugent/sigmoidal-nmfdcd sigmoidal-nmfd# Требования к установке...# ... для пользователей conda: conda create --name sigmoidnmfd --file require.txt# ... альтернативно: pip install -r require.txt
Вам также потребуется установить звуковой файл:
sudo apt-get install libsndfile1
Скрипт run_nmfd_sigmoid.py
применяет сигмоидальную NMFD к предоставленному аудиофайлу. Например:
python -m scripts.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 scripts.run_nmfd_sparsity resources/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 ГБ дискового пространства). Затем он распечатает значения метрик, агрегированные по всем примерам.
Эксперименты по абляции можно провести аналогично.
Для экспериментов по абляции сигмоидального 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"
Для разреженного НМФД с неограниченной стадией прогрева:
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
в вышеупомянутые команды для экспериментов по удалению.
Значения инициализации для шаблонов W
в среде NMFD можно воссоздать с помощью сценария 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
Copyright 2020 Лен Ванде Вейре.
Этот код в этом репозитории является свободным программным обеспечением: вы можете распространять его и/или изменять в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения, либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии. версия.
Данная программа распространяется в надежде, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. Дополнительную информацию см. в Стандартной общественной лицензии GNU.
Вместе с этой программой вы должны были получить копию Стандартной общественной лицензии GNU. Если нет, см. https://www.gnu.org/licenses/.