Diff-SVC란
diff-svc는 홍콩 중문 대학에서 연구 목적으로 개발한 오픈소스 AI입니다. diffusion model - Singing voice conversion의 약자인데, 번역하자면 확산 모델 - 노래 음성 변환이라고 볼 수 있습니다. 이 확산 모델은 쉽게 말해서, 노이즈가 있는 이미지를 정확하게 인식하도록 도와주는데, 소리도 파형으로 나타내면 이미지이므로 적용시켜 사용할 수 있다고 합니다.
간단히 이해하자면, 목소리 학습파일을 넣으면, 스스로 학습을 통해 정확한 목소리의 형태를 잡아내고, 그걸 다른 음악에 덮어씌워주는 것입니다. 많은 학습과 양질의 데이터가 존재할수록 더 높고 자연스러운 품질을 보이게 됩니다.
음성 학습시키기
만약 CUDA를 지원하는 엔비디아 그래픽카드가 있다면 가정에서도 하실 수 있으나, 필자는 지포스 그래픽카드가 없는 관계로 구글의 colab환경에서 실행시켜 학습시키는 것을 목표로 합니다. 구글 계정만 있다면 누구나 무료로 사용 가능하니 따라 하시면 됩니다.
https://www.youtube.com/watch?v=JMCxsc-kJ24 이 영상의 설명란에서 코랩링크를 얻을 수 있습니다.
Step.0 준비
기본적으로 학습시킬 음성이 있어야 하고, 많고 다양할수록 좋습니다. 한국어로 말한 문장, 외국어로 발음한 데이터, 노래한 음성, 이렇게 3 부류로 데이터를 모아서 최소 1시간 정도만 넘기면 충분히 괜찮은 데이터를 확보하실 수 있습니다. 녹음한 음성파일을 자르고, 파일 확장자를 바꾸기 위해 프로그램을 설치해야 합니다.
음성 녹음
기본 휴대폰이던, 컴퓨터의 기본 녹음프로그램이 던 간에, 잡음이 없는 환경에서 녹음된 목소리면 충분합니다. 저의 경우에는 맥 기본 내장 녹음기를 사용했으나, 잡음만 적다면 어느 프로그램이던 상관은 없습니다. 그냥 길게 쭉 녹음해 줍니다. 인터넷에서 소설 명언 모음집이나 기사 등을 읽는 것도 좋은 방법입니다.
데이터 준비
녹음한 음성파일을 자르고, 파일 확장자를 바꾸기 위해 프로그램을 설치해야 합니다. 웨이브 패드라는 프로그램은 가정에서 사용하려면 무료이고, 성능 또한 뛰어나기 때문에, 사용하기에 알맞습니다.
https://www.nch.com.au/wavepad/에서 다운로드하실 수 있습니다. 윈도 및 맥 어떤 환경도 지원합니다.
이제 녹음한 파일을 최소 15초 ~ 20초 정도로 분할해줘야 합니다. 하지만 직접 일일이 시간을 확인해 가며자르고, 새 파일로 저장하기는 너무 번거롭고 귀찮기 때문에, 이 프로그램의 기능을 이용해 자동으로 잘라주면 편합니다.
상단바의 편집 > 공백에서 분할 또는 같은 크기로 분할을 이용하시면 됩니다. 이 글에서는 공백에서 분할을 기준으로 설명되었습니다.
공백에서 분할을 선택하면 이런 창이 뜨게 됩니다. 따로 건드려줄 것은 없고, 출력형식을. wav형식으로 바꾸어줍니다. 앞서 설명했듯이 diffusion 모델은 이미지를 기반으로 학습하는 모델이기 때문에, 프로그램에서 인식할 수 있도록 파형이 나오는 wave형식으로 바꾸어줘야 합니다. 이건 학습용뿐만 아니라, 덮어씌우기용 음성에도 동일하게 적용됩니다.
출력 형식: wav를 보면 옆에 설정..이라는 버튼이 보일 것입니다. 클릭하면 오른쪽 사진 같은 화면이 떠오르는데, 채널은 모노, 샘플속도는 44.1kHz, 16비트로 설정해 주시면 됩니다.
분할을 진행하면 프로그램이 알아서 자동으로 나누어줍니다. 다만 파일이름에 한글이나 언더바(_), 하이픈(-)등이 들어가면 오류가 생기니 고쳐 주셔야 합니다. 영어 소문자로만 구성된 파일명을 해주시는 게 좋습니다.
파일 업로드
만들어준 학습파일을 zip으로 압축해서 구글드라이브에 업로드해주어야 합니다. 코랩은 구글의 가상컴퓨터에서 작동하는 프로그램이기 때문이죠. 구글드라이브에 diff-svc라는 폴더를 만들어주고, 그 안에 목소리파일의 이름 폴더를 만들어 zip파일을 업로드합니다.
학습시키기
학습용 코랩으로 돌아가서, 이제 시키는 대로만 진행하시면 됩니다! 재생 버튼을 누르고, 초록색 체크표시가 뜰 때까지만 기다린다음, 다음단계로 넘어가주시기만 하면 됩니다. 다만 처음 사용하시는 분들은 2-a단계를 건너뛰시고 진행하시면 되겠습니다. 학습시키던 파일에서 다시 이어서 진행할 때 사용하는 세션이라고 보시면 됩니다.
옆의 폴더버튼을 누른 다음, 자기 자신의 드라이브 > 파일을 우클릭해서 경로복사하기를 한 다음 단계마다 알맞게 넣어주시면 됩니다. 학습은 1만 스텝정도만 시켜도 들어줄 정도로는 나옵니다.
결과물 출력
학습이 완료되었다면 ckpt와 yami 파일 두 종류의 파일들이 있을 것입니다. 이 파일들로 출력용 코랩으로 들어가 결과물을 출력해 주기 위해서, 원하는 노래의 보이스만 추출해주어야 합니다. 악기의 소리까지 전부 융합된 파형은 이상하게 학습되기 때문입니다.
음성만 추출하려면 https://studio.gaudiolab.io/라는 곳을 이용하면 됩니다. 무료로 사용할 수 있고 깔끔하게 따지네요.
그 후 학습용 코렙에서 파일을 업로드한 후에, 덮어씌우기 작업을 하면 변조된 목소리로 즐길 수 있습니다.
추가 참고
diff svc 가이드북
https://docs.google.com/document/d/1nA3PfQ-BooUpjCYErU-BHYvg2_NazAYJ0mvvmcjG40o/edit
DIFF-SVC FOR VOCAL SYNTH USERS
DIFF-SVC FOR VOCAL SYNTH USERS by julieraptor UTAU twitter | main twitter | youtube See also: Tacotron for Vocal Synth Users 日本語チュートリアル ( @aman0_kei) If you find this tutorial useful, please consider supporting me at my Ko-Fi! TABLE OF
docs.google.com
'Tech News' 카테고리의 다른 글
VirtualBox 우분투 설치하는법 (0) | 2023.07.04 |
---|---|
윈도우 USB 맥에서 안될때, USB 맥 포맷하는 방법 (0) | 2023.03.04 |
코딩 스타일 이란? (0) | 2023.02.16 |
파이썬 프로그래밍 #1 (0) | 2023.02.15 |
유튜브 크리에이터를 위한 크리에이터 뮤직 출시 (2) | 2023.02.14 |