17. diff -svc를 직접 사용해 보자.
이번 글에서는 저번 글에서 알아보았던 diffusion 모델 중 하나인 diff-svc를 직접 사용해보겠습니다.
https://github.com/prophesier/diff-svc 이 링크의 자료들을 활용하였습니다.
이 모델을 이용하면 어느 사람의 말소리들로 다른 노래를 부르도록 만들 수 있습니다.
저는 쿤타라는 가수의 목소리로 뉴진스의 디토를 부르도록 만들어 볼건데요.
우선 쿤타라는 가수의 목소리를 얻어서 15초 단위로 끊어야 합니다. 데이터가 아주 많아야 결과가 좋긴 하지만 시간 관계상 조금의 데이터로 진행을 해보겠습니다. 보통 몇시간 정도의 데이터가 필요하지만 저는 고작 3분 정도로 해보겠습니다. ㅋㅋ 결과가 어떨지 궁금합니다.
오디오 파일들을 이런식으로 나눠서 준비해 주고요 이걸 압축해 줍니다. 그리고 부르게할 노래도 mr을 제거하고 보컬파일만 준비해 줍니다. 이 준비한 파일들을 모두 구글 드라이브에 업로드 해줍니다.
우선 이부분에서 GPU 타입을 확인하고 구글드라이브와 연동합니다.
학습시킬 모델을 선택하는 건데요. fork는 위와 같이 선택해주고 아래는 24와 44.1 중 골라서 선택해주시면 됩니다.
다음은 데이터의 압축을 풀어줄 것입니다.
그 다음은 여러 옵션을 체크 해줄것입니다. 1번째는 뭔지는 잘 모르겠는데 체크하면 빨라지는 것 같아서 일단 체크.. 두번째는 학습한 후 파일들을 어디에 저장할지 지정해줄 수 있는 옵션입니다. 3번째는 학습을 저장해뒀던 체크 포인트부터 재개 할 수 있는 옵션인것 같네요. 저는 처음 학습이라 체크하지 않았습니다. 마지막은 저같이 적은 데이터를 사용할 때 체크하면 학습이 빨라지는 효과가 있다고 합니다.
그다음 드디어 학습을 시키면 되는데요.. 이게 정말 작은 파일도 오래걸립니다.
과제를 제출해야 해서 시간 관계상 일단 2000step만 학습을 시키고 진행을 해보겠습니다..
모델을 불러와서 음악 파일을 추출할 수 있는 부분입니다.
예상대로 엄청난 결과가 나왔네요. 전혀 노래라고 할 수 없는게 나와버렸습니다. 과제 제출하고 데이터 더 모으고 학습도 오래 시켜서 좋은 결과를 꼭 도출해 내봐야 겠습니다.