논문 코드 Vande Veire, Len 및 De Bie, Tijl 및 De Boom, Cedric, "S자형 NMFD: 드럼 루프 분해를 위한 포화 활성화를 사용한 컨볼루셔널 NMF" .
# 저장소 다운로드git clone https://github.com/aida-ugent/sigmoidal-nmfdcd sigmoidal-nmfd# 설치 요구 사항...# ... conda 사용자의 경우:conda create --name sigmoidnmfd --file 요구 사항.txt# ... 대안:pip install -r 요구사항.txt
사운드 파일도 설치해야 합니다:
sudo apt-get install libsndfile1
run_nmfd_sigmoid.py
스크립트는 제공된 오디오 파일에 S자형 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 구문 파일이 자동으로 자르고 새 디렉터리에 저장되며 모든 기준선과 제안된 S자형 모델이 데이터세트의 잘린 모든 구문에 적용됩니다. 결과는 .npz 아카이브에 저장됩니다(참고: 약 1GB의 디스크 공간 필요). 그런 다음 모든 예에 대해 집계된 측정항목 값을 인쇄합니다.
절제 실험은 유사하게 실행될 수 있습니다.
다양한 최적화 전략의 평가를 포함하여 S자형 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"
무제한 워밍업 단계가 있는 희박한 NMFD의 경우:
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
플래그를 추가하면 병렬 처리가 지원됩니다.
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 General Public License(라이센스 버전 3) 또는 (귀하의 선택에 따라) 이후 버전의 조건에 따라 재배포 및/또는 수정할 수 있습니다. 버전.
이 프로그램은 유용할 것이라는 희망으로 배포되지만 어떠한 보증도 제공하지 않습니다. 상품성이나 특정 목적에의 적합성에 대한 묵시적인 보증도 제공되지 않습니다. 자세한 내용은 GNU 일반 공중 사용 허가서를 참조하세요.
이 프로그램과 함께 GNU General Public License 사본을 받으셨을 것입니다. 그렇지 않은 경우 https://www.gnu.org/licenses/를 참조하세요.