รหัสสำหรับกระดาษ Vande Veire, Len และ De Bie, Tijl และ De Boom, Cedric, "Sigmoidal NMFD: Convolutional NMF พร้อมการเปิดใช้งาน Saturating สำหรับการสลายตัวของ Drum Loop"
# ดาวน์โหลดโคลน repositorygit https://github.com/aida-ugent/sigmoidal-nmfdcd sigmoidal-nmfd# ข้อกำหนดการติดตั้ง...# ... สำหรับผู้ใช้ conda:conda create --name sigmoidnmfd --file needs.txt# ... อีกทางหนึ่ง:pip install -r needs.txt
คุณจะต้องติดตั้งไฟล์เสียงด้วย:
sudo apt-get install libsndfile1
สคริปต์ run_nmfd_sigmoid.py
ใช้ sigmoidal NMFD กับไฟล์เสียงที่ให้มา ตัวอย่างเช่น:
python -m scripts.run_nmfd_sigmoid ทรัพยากร / moonkits-hiphop.wav 4 --plot
อัลกอริทึม NMFD ดั้งเดิมสามารถรันได้ดังนี้:
python -m scripts.run_nmfd_vanilla ทรัพยากร / moonkits-hiphop.wav 4 --plot
บรรทัดฐาน NMFD แบบกระจัดกระจายสามารถรันได้ดังนี้:
python -m scripts.run_nmfd_sparsity ทรัพยากร / 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 "ทรัพยากร/รายการเพลง/tracklist_enst_allphrases.csv"
การดำเนินการนี้จะครอบตัดไฟล์วลี ENST โดยอัตโนมัติตามที่อธิบายไว้ในรายงาน บันทึกลงในไดเร็กทอรีใหม่ และใช้เส้นพื้นฐานทั้งหมดและแบบจำลองซิกมอยด์ที่เสนอกับวลีที่ครอบตัดทั้งหมดในชุดข้อมูล ผลลัพธ์จะถูกบันทึกในไฟล์เก็บถาวร .npz (หมายเหตุ: ต้องใช้พื้นที่ดิสก์ประมาณ 1 GB) จากนั้นจะพิมพ์ค่าเมตริกที่รวบรวมจากตัวอย่างทั้งหมดออกมา
การทดลองระเหยสามารถดำเนินการแบบอะนาล็อกได้
สำหรับการทดลองระเหยบน NMFD แบบซิกมอยด์ รวมถึงการประเมินกลยุทธ์การปรับให้เหมาะสมที่แตกต่างกัน:
python -m scripts.experiment_ablation_nmfdsigmoid_on_enst --dir-enst /path/to/ENST-drums-public --dir-out /home/user/somedirectory --tracklist "ทรัพยากร/รายการเพลง/tracklist_enst_allphrases.csv"
สำหรับ NMFD แบบเบาบางที่มีขั้นตอนการวอร์มอัพที่ไม่มีข้อจำกัด:
หลาม -m scripts.experiment_nmfdsparse_with_warmup.py --dir-enst /path/to/ENST-drums-public --dir-out /home/user/somedirectory --tracklist "ทรัพยากร/tracklists/tracklist_enst_allphrases.csv"
โปรดทราบว่าการประมวลผลแบบขนานได้รับการสนับสนุนโดยการเพิ่มแฟล็ก --parallel
ในคำสั่งข้างต้นสำหรับการทดลองระเหย
ค่าเริ่มต้นสำหรับเทมเพลต W
ในเฟรมเวิร์ก NMFD สามารถสร้างขึ้นใหม่ได้โดยใช้สคริปต์ create_nmf_drum_templates_from_sample_library.py
ตัวอย่างเช่น ใช้ตัวอย่างกลองเหล่านี้จาก Producerspot เช่นเดียวกับที่เราทำกับบทความนี้
จากนั้นดำเนินการ:
หลาม create_nmf_drum_templates_from_sample_library.py --samples-list-file resources/tracklist/templates/samples_kick.csv --output-file resources/templates/kick.npy หลาม create_nmf_drum_templates_from_sample_library.py --samples-list-file resources/tracklist/templates/samples_snare.csv --output-file resources/templates/snare.npy หลาม create_nmf_drum_templates_from_sample_library.py --samples-list-file resources/tracklist/templates/samples_hihat.csv --output-file resources/templates/hihat.npy หลาม 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 General Public License ตามที่เผยแพร่โดย Free Software Foundation ไม่ว่าจะเป็นเวอร์ชัน 3 ของใบอนุญาต หรือ (ตามตัวเลือกของคุณ) ในภายหลัง รุ่น
โปรแกรมนี้เผยแพร่ด้วยความหวังว่าจะมีประโยชน์ แต่ไม่มีการรับประกันใดๆ โดยไม่มีการรับประกันโดยนัยถึงความสามารถในการค้าขายหรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ดูใบอนุญาตสาธารณะทั่วไปของ GNU สำหรับรายละเอียดเพิ่มเติม
คุณควรได้รับสำเนาของ GNU General Public License พร้อมกับโปรแกรมนี้ ถ้าไม่ โปรดดู https://www.gnu.org/licenses/