https://github.com/SWNA-P/Diff-SVC-notebooks
깃에서 ipynb 파일을 둘 다 받으셈 ㅇㅅㅇ
ipynb 파일이 원래 공개된게 아니고 요청해야 보내주는 파일인데, 누군가 올려주심
Diff_SVC_inference_notebook_(colab_ver_).ipynb -> 학습된 모델로 추론
Diff_SVC_training_notebook_(colab_ver_).ipynb -> 학습하기
1. 준비 작업
코랩 https://colab.research.google.com/ Diff_SVC_training_notebook_(colab_ver_).ipynb 파일 업로드
ipynb 파일이 구버전이라 다운받는 URL들이 변경된 게 있어서 수정이 필요합니다.
Step 1: Install Diff-SVC 소스보기 한 다음에
파일 다운 받는 부분의 URL를 수정해주세요.
-> https://github.com/haru0l/Diff-SVC-notebooks/releases/download/models_24khz/config.yaml
hifigan_24k.zip
-> https://github.com/haru0l/Diff-SVC-notebooks/releases/download/models_24khz/hifigan_24k.zip
Step 3: Edit training parameters에서는 nyaru.ckpt URL 수정
2. 데이터셋 준비
TTS 데이터셋과 다르게 말을 흐리거나 그래도 상관없음.
wav 파일들을 모와서 (가수 이름).zip으로 구글 drive에 업로드하세요.
노래는 당연히 보컬만 들어가야 됩니다.
vocal extractor로 보컬만 추출해 (https://vocalremover.org/)
3. 학습
위에서부터 순서대로 실행하면 됩니다.
시키는데로 경로 설정하셈.
Step 2-A: Decompress training data은 처음 학습하는 경우에는 생략합니다.
Decompresses training data directly to diff-svc/data/binary, usable only if you already have the output files of Step 4. ㅇㅅㅇ
Use custom save directory에서 use_save_dir 체크
save_dir에 저장할 곳 지정. (/content/drive/MyDrive/diff-svc/)
/content/drive/MyDrive/ 폴더가 구글 드라이브임
Pretrain model usage에서
use_pretrain_model: 체크
pretrain_model_select: nyaru
기존 모델가지고 fine tuning(미세조정) 하겠단거임.
처음부터 학습시키면 수십시간 걸릴텐데, fine tuning하면 6시간 정도면 충분함.
데이터셋이 적을 경우 endless_ds 체크
이제 학습 고고
tensorboard 보면 학습이 진행되는것을 볼 수 있다.
audio 메뉴에서 직접 들어볼 수도 있는데
gt(ground truth)는 데이터셋 원본이고
wav을 들어보면 모델로 생성한 음성을 들을 수 있음.
loss가 떨어지지 않아도 오래 학습하면 성능이 더 좋아짐.
4. 추론
Diff_SVC_inference_notebook_(colab_ver_).ipynb 파일을 돌리면 된다 ㅇㅅㅇ
추론할때 반드시 GPU가 필요한게 아니지만, 짧은 음성파일 추론하는데 9분이나 걸렸다.
누군가 만들어둔 huggingface을 이용해도 된다.
https://huggingface.co/spaces/DIFF-SVCModel/Inference
비밀번호가 필요한데, 비밀번호는 fuck2023arianitesshitcelebrities 이다.
현재 암호 바뀜.
파라미터 추가 설명
· key :
→ 음성의 키를 반음 단위로 변경합니다. 그렇지 않으면 "0"이 입력되지 않으면 오류가 발생합니다. 크게 변경하면 활설 등이 붕괴 될 가능성이 있으므로 조심하십시오.
· pndm_speedup :
→값을 크게 하면 빨리 합성할 수 있습니다만, 50 이상으로 하면 음질이 저하하기 때문에 망설이지 않는 편이 좋습니다
· wav_gen :
→ 합성된 wav를 어디에 저장할지입니다.
기본값은 런타임 내에 있으므로 'test_output.wav' 앞에 '/content/drive/MyDrive/'를 붙여 GDrive에 저장하도록 변경하는 것이 좋습니다.
· add_noise_step :
→use_gt_mel 매개변수를 사용할 때 사용할 수 있습니다. 1로 하면 학습 음성 100%, 1000으로 하면 완전히 모델의 음성에 들립니다. 값이 300 부근이 되면, 음색이 섞여 있는 느낌이 됩니다. (이 매개 변수를 매우 낮게 설정하여 pndm_speedup 값을 줄이면 렌더링 품질이 높아지는 것 같습니다)
·thre:
→원음원이 깨끗하면 값을 늘릴 수 있습니다. 음질이 미묘하면 값을 줄이십시오.
※use_crepe에 체크를 넣지 않은 경우는 사용할 수 없습니다.
· use_crepe :
→ 체크하면 피치 계산 방법에 crepe를 사용합니다.
기본적으로는 체크를 넣으면 좋은 느낌이 됩니다. 끄면 공식 Diff-SVC 리포지토리를 사용하면 parselmouth, UtaUtaUtau는 Harvest를 사용합니다.
다만, 개인적으로는 UtaUtaUtau의 Harvest를 사용하는 것이 품질 나옵니다.
· use_pe :
→ 체크를 하면 메르켑스트럼에서 피치를 입력하고 끄면 원음의 F0가 사용됩니다. 기본적으로는 체크를 넣으면 좋은 느낌이 됩니다.
· use_gt_mel :
→체크를 넣으면 좋은 느낌이 됩니다만, 원래 음성다움은 약간 잃어버립니다. (설명에 의하면, AI에 의한 화상 생성의 image-to-image와 유사하고, 입력 음성과 타겟 음성의 혼합 음성이 된다는 것입니다)
※키 변경 기능은 사용할 수 없습니다
(분위기로서는 이런 느낌)