위 동영상은 소스가 되는 목소리, 출력물, 원본 노래를 들어볼 수 있는 영상이다. 데레의 사토 신 보이스로 만들어진 모델을 사용함
1. 준비 단계
일단 데이터셋을 준비해야 하는데, 반주와 화음이 없는 노래 음성, 배경음과 잡음이 없는 말하기 음성을 준비하자. 추가적으로 숨소리 같은 것도 넣을 수 있음
준비했다면 파일을 전부 최소 1초~최대 15초가 되게 잘라준다. 자른 파일엔 공백이 없는 편이 좋음.
그리고 위 파일들을 전부 44100Hz, 16비트 모노채널 wav파일로 변환시켜야 한다.
전부 변환시켰다면 압축시켜주자. 그러면 데이터셋 준비는 끝임
참고로 노래 음성이 더 많은 게 좋긴 한데 전부 노래 음성만 넣거나 말하기 음성만 넣어도 노상관, 다만 말하는 음성만 넣었을 시에 다소 어색할 수 있음.
2. 코랩 사용 (데이터 전처리/훈련)
https://colab.research.google.com/drive/1kiUvz1TrNJa_MOfOld7DHanv4gZsl7MN
https://colab.research.google.com/drive/1kiUvz1TrNJa_MOfOld7DHanv4gZsl7MN
데이터셋을 쓰기 위해선 일단 구글드라이브와 마운트를 해야 한다. Mount Google Drive를 누르고 팝업에서 계정 선택하면 금방 됨.
그리고 GPU 체크 어쩌구가 있는데 이건 필수도 아니고 괜히 시간 더 드니까 안해도 노상관
스텝 1에서 툴을 다운받을 때 Official Diff-SVC Repo와 UtaUtaUtau Diff-SVC Repo가 있는데 후자로 다운받기로 하자. 왜냐면 후자가 더 깔끔하게 뽑힘.
스텝 2는 Decompress dataset인데 데이터셋을 전처리하는 단계임
모델의 이름을 정하고 dataset_location에 데이터셋을 업로드했던 구글드라이브 경로를 복붙하고 실행하면 된다. 데이터뎃 음역대가 좁은 경우에는 Attempt to increase range 옵션에 체크하고 실행시켜보자. 보통 10초 이내로 끝남. 대신 Attempt to increase range 옵션에 체크했으면 더 오래 걸린다
2-A는 그냥 넘어가면 됨
그 밑엔 Training Options/Parameters 탭이 있을 텐데 어떻게 설정하냐면
use_crepe 체크 해제
use_pretrain_model 체크 (완성된 다른 모델을 기반으로 니 모델을 훈련시키는 건데 안쓰면 들어줄만한 결과물 나올때까지 개오래 훈련시켜야되니까 체크하자)
use_save_dir 체크 (이거 체크 안하면 훈련 파일 다 날아가니까 꼭 체크하고 경로도 제대로 지정해주자)
resume_training_from_ckpt 항목은 전에 훈련시켰던 파일에서 불러오기 해서 이어 훈련하는 건데 이 글 읽는 사람들은 다 처음 시작하는 걸 테니까 체크 ㄴㄴ
endless_ds 항목은 배치사이즈를 늘려서 작은 크기의 데이터셋의 품질을 향상시키는 옵션인데 니 데이터셋 총 길이가 1시간이 안되면 꼭 체크하셈.
다 셋팅했다면 이 항목을 한 번 실행하고 다음으로 넘어가면 된다. 이것도 실행하면 10초정도 걸림
다음 탭은 트레이닝인데, 본격적으로 훈련을 하기 전에 데이터를 전처리해야 된다. 그냥 버튼 한번 누르면 자동으로 되는데 이거 시간이 좀 오래 걸림. 600개 파일 전처리하는데 50분 걸린다. 딴거하면서 기다리도록 하자
스텝 4랑 5 사이에 Tensorboard란걸 활성화시킬수 있는데 훈련 진행상황을 그래프로 보여주는 GUI임. 딱히 안 실행시켜도 상관없음
그리고 스텝 4 전처리가 다 끝났으면 드디어 데이터를 훈련시킬 수 있다!!
이것도 걍 실행버튼 한번 눌러주면 되고 이건 일정시간 되면 끝나는게 아니라 계속 돌아감. 걍 니가 만족스러운 결과물이 뽑힐때까지 계속 훈련시키면 된다. 난 사전학습모델 썼을 때 기준으로 4만스텝 정도면 좀 들을만하게 나오고 6만스텝부터는 꽤 괜찮았던 거 같음
3. 노래 출력
그리고 갤럼들이 원할 파트
바로 노래를 뽑는 방법
저 위에 코랩에서도 가능한데 어째 난 자꾸 오류가 나서 이걸 주로 씀
https://colab.research.google.com/drive/1zGPrh-qxscYU2mvhiv8rrjqEn0WHnOOF?usp=sharing
이것도 똑같이 구글드라이브 마운트 후 툴 받아줘야 하는데 꼭 UtaUtaUtau 레포로 받고 Load Model 탭에 모델이름 .ckpt 파일이랑 config.yaml 파일 있는 경로 복붙해주고 실행하면 모델이 로드됨.
그리고 원본 소스가 될 노래를 넣어야 하는데 노래파일도 반주 없고 44100Hz 16비트 모노 wav파일만 됨
upload your reference audio와 Import your audio 항목이 있는데 전자로 하면 노래파일 올리는데 개오래걸리니까 다른 방법을 쓰자.
Import your audio 한번 실행하면 Diff-SVC 폴더 밑에 Batch_audio 폴더가 생기는데 우선 니 드라이브에 노래파일 옮기고 Batch_auido 폴더에 옮겨주면 됨
Input audio and adjust parameters 항목은 이것저것 설정하고 노래파일을 전처리하는 단계임.
키 Key 항목은 원본 노래의 키 설정인데 원본 노래가 좀 낮다 싶으면 1부터 12 사이의 값을 입력해보자. 마이너스값은 안됨.
그리고 나머지것들은 건들 필요 없고 use_crepe만 꼭 체크 해제하자!!!!!!! 맨날 출력물이 뭔 말보로 한보루 통째로 피운거같은 목소리로 나와서 뭔가 했는데 이게 문제였음
다 설정했으면 실행하면 됨. 노래길이 따라서 30초에서 2분정도 걸림
위 과정이 끝났으면 Zip up the result to your drive 칸에 압축파일 이름을 써주고 Delete old inputted wav and rendered wav를 실행한 뒤 드라이브에 저장되어있는 압축파일을 다운받아 출력된 파일을 실행하면 된다!
4. 팁
데이터셋을 준비해야 되는데 무반주 노래파일이 없다? 커버시키고 싶은 노래의 무반주버전이 없다?
그럼 이 사이트를 이용하자
https://studio.gaudiolab.io/
mr과 보컬을 분리시켜주는 사이트인데 여러 툴이나 사이트 써보고 비교한 결과로는 이게 가장 나았음
-끝-
뭐 오류나거나 궁금한점 더 있으면 댓으로 질문해주셈
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.