Code für den Artikel Vande Veire, Len und De Bie, Tijl und De Boom, Cedric, „Sigmoidal NMFD: Convolutional NMF with Saturating Activations For Drum Loop Decomposition“ .
# Laden Sie den Repositorygit-Klon herunter https://github.com/aida-ugent/sigmoidal-nmfdcd sigmoidal-nmfd# Installationsanforderungen...# ... für Conda-Benutzer:conda create --name sigmoidnmfd --file require.txt# ... alternativ:pip install -r require.txt
Sie müssen außerdem die Sounddatei installieren:
sudo apt-get install libsndfile1
Das Skript run_nmfd_sigmoid.py
wendet sigmoidales NMFD auf die bereitgestellte Audiodatei an. Zum Beispiel:
python -m scripts.run_nmfd_sigmoid resources/moonkits-hiphop.wav 4 --plot
Der ursprüngliche NMFD-Algorithmus kann wie folgt ausgeführt werden:
python -m scripts.run_nmfd_vanilla resources/moonkits-hiphop.wav 4 --plot
Die dünn besetzte NMFD-Basislinie kann wie folgt ausgeführt werden:
python -m scripts.run_nmfd_sparsity resources/moonkits-hiphop.wav 4 --sparsity 0.1 --plot
Laden Sie zunächst den ENST-Datensatz herunter.
Führen Sie dann das Skript experiment_nmfdsigmoid_on_enst.py
aus:
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"
Dadurch werden die ENST-Phrasendateien automatisch wie im Dokument beschrieben zugeschnitten, in einem neuen Verzeichnis gespeichert und alle Basislinien und das vorgeschlagene Sigmoidalmodell auf alle zugeschnittenen Phrasen im Datensatz angewendet. Die Ergebnisse werden in .npz-Archiven gespeichert (Hinweis: Dies erfordert etwa 1 GB Speicherplatz). Anschließend werden die über alle Beispiele aggregierten Metrikwerte ausgedruckt.
Die Ablationsexperimente können analog durchgeführt werden.
Für die Ablationsexperimente zum sigmoidalen NMFD, einschließlich der Bewertung der verschiedenen Optimierungsstrategien:
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"
Für spärliches NMFD mit einer uneingeschränkten Aufwärmphase:
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"
Beachten Sie, dass die Parallelverarbeitung durch das Hinzufügen eines Flags --parallel
in den oben genannten Befehlen für die Ablationsexperimente unterstützt wird.
Die Initialisierungswerte für die Vorlagen W
im NMFD-Framework können mit dem Skript create_nmf_drum_templates_from_sample_library.py
neu erstellt werden.
Verwenden Sie beispielsweise diese Drum-Samples von Producerspot, wie wir es für diesen Artikel getan haben.
Führen Sie dann Folgendes aus:
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 Len Vande Veire.
Bei diesem Code in diesem Repository handelt es sich um freie Software: Sie können ihn unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, entweder Version 3 der Lizenz oder (nach Ihrer Wahl) einer späteren Version weiterverbreiten und/oder ändern Version.
Dieses Programm wird in der Hoffnung verbreitet, dass es nützlich ist, jedoch OHNE JEGLICHE GARANTIE; ohne die stillschweigende Garantie der MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Weitere Einzelheiten finden Sie in der GNU General Public License.
Sie sollten zusammen mit diesem Programm eine Kopie der GNU General Public License erhalten haben. Wenn nicht, siehe https://www.gnu.org/licenses/.