Kode untuk makalah Vande Veire, Len dan De Bie, Tijl dan De Boom, Cedric, "Sigmoidal NMFD: NMF Konvolusional dengan Aktivasi Jenuh Untuk Dekomposisi Drum Loop" .
# Unduh klon repositorigit https://github.com/aida-ugent/sigmoidal-nmfdcd sigmoidal-nmfd# Persyaratan pemasangan...# ... untuk pengguna conda:conda create --name sigmoidnmfd --file requiremen.txt# ... alternatifnya: pip install -r persyaratan.txt
Anda juga perlu menginstal file suara:
sudo apt-get install libsndfile1
Skrip run_nmfd_sigmoid.py
menerapkan NMFD sigmoidal ke file audio yang disediakan. Misalnya:
python -m scripts.run_nmfd_sigmoid resources/moonkits-hiphop.wav 4 --plot
Algoritma NMFD asli dapat dijalankan sebagai berikut:
python -m scripts.run_nmfd_vanilla resources/moonkits-hiphop.wav 4 --plot
Garis dasar NMFD yang jarang dapat dijalankan sebagai berikut:
python -m scripts.run_nmfd_sparsity resources/moonkits-hiphop.wav 4 --sparsity 0.1 --plot
Pertama, unduh kumpulan data ENST.
Kemudian, jalankan skrip 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"
Ini akan secara otomatis memotong file frase ENST seperti yang dijelaskan di makalah, menyimpannya di direktori baru, dan menerapkan semua garis dasar dan model sigmoidal yang diusulkan ke semua frase yang dipotong dalam kumpulan data. Hasilnya disimpan dalam arsip .npz (catatan: ini memerlukan ruang disk sekitar 1 GB). Ini kemudian akan mencetak nilai metrik yang dikumpulkan dari semua contoh.
Eksperimen ablasi dapat dilakukan dengan cara yang sama.
Untuk eksperimen ablasi pada NMFD sigmoidal, termasuk evaluasi berbagai strategi optimasi:
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"
Untuk NMFD sparse dengan tahap pemanasan tidak dibatasi:
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"
Perhatikan bahwa pemrosesan paralel didukung dengan menambahkan tanda --parallel
pada perintah yang disebutkan di atas untuk eksperimen ablasi.
Nilai inisialisasi untuk templat W
dalam kerangka NMFD dapat dibuat ulang menggunakan skrip create_nmf_drum_templates_from_sample_library.py
.
Misalnya, gunakan sampel drum dari Producerspot, seperti yang kami lakukan untuk makalah ini.
Kemudian jalankan:
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
Hak Cipta 2020 Len Vande Veire.
Kode dalam repositori ini adalah perangkat lunak bebas: Anda dapat mendistribusikan ulang dan/atau memodifikasinya berdasarkan ketentuan Lisensi Publik Umum GNU sebagaimana diterbitkan oleh Free Software Foundation, baik versi 3 dari Lisensi tersebut, atau (sesuai pilihan Anda) yang lebih baru. versi.
Program ini disebarluaskan dengan harapan dapat bermanfaat, namun TANPA JAMINAN APA PUN; bahkan tanpa jaminan tersirat mengenai KELAYAKAN UNTUK DIPERDAGANGKAN atau KESESUAIAN UNTUK TUJUAN TERTENTU. Lihat Lisensi Publik Umum GNU untuk lebih jelasnya.
Anda seharusnya sudah menerima salinan Lisensi Publik Umum GNU bersama dengan program ini. Jika tidak, lihat https://www.gnu.org/licenses/.