가상환경 설정
# 가상환경 설치
virtualenv venv
. venv/bin/activate
cd espnet/tools
./setup_python.sh $(which python3)
# python 패키지 설치(ESPnet 요구사항)
cd ..
pip install -e .
# python 패키지 설치(프로젝트 요구사항)
cd ..
pip install -r requirements.txt
# ESPnet 컴파일
cd espnet/tools
make -j
LibriMix 논문을 참고하여 노이즈와 음성을 합성하는 과정을 직접 수행함
대회측에서 공개한 unlabeled_data에서 노이즈를 추출하기 위해, 화자 분리 및 음성 분할 기술을 이용하여 데이터를 분리함
- 참고논문(데이터셋): LibriMix: An Open-Source Dataset for Generalizable Speech Separation
- 참고논문(모델): EEND-SS: Joint End-to-End Neural Speaker Diarization and Speech Separation for Flexible Number of Speakers
- 사전학습 모델: https://huggingface.co/soumi-maiti/libri23mix_eend_ss
- 코드: https://github.com/espnet/espnet/tree/master/egs2/librimix/enh_diar1
cd espnet/egs2/librimix/enh_diar1
mkdir models
cd models
git lfs install
git clone https://huggingface.co/soumi-maiti/libri23mix_eend_ss
- 입력파일: data/sample_data/unlabeled_data에 있는 wav 파일
- 출력파일: /data/wav.scp
python 01_1_create_metadata.py
- 입력파일: /data/wav.scp 에 정의된 wav 파일 목록
- 출력파일: /data/diar_enh에 3명의 화자로 분할된 파일이 저장됨
bash 01_2_diarization_and_separation.sh
음성 분할된 데이터에서 VAD를 이용하여 음성이 포함되지 않은 파일을 추출하여 노이즈로 사용함
- 사전학습 모델: https://github.com/snakers4/silero-vad/wiki/Version-history-and-Available-Models#available-models (v5.0 사용)
- 코드: https://github.com/snakers4/silero-vad
python 02_1_noise_detection_silero.py
python 02_2_remove_silence.py
python 02_3_noise_detection_marblenet.py
앞 단계에서 추출한 노이즈 음원과 학습 데이터의 음성을 이용하여 데이터를 2가지 레이블의 데이터를 생성함 => 노이즈 음원 + real 음성, 노이즈 음원 + fake 음성
- 참고논문: LibriMix: An Open-Source Dataset for Generalizable Speech Separation
- 코드: https://github.com/popcornell/SparseLibriMix
python 03_1_create_metadata.py
python 03_2_make_mixtures.py