컴퓨터 관련 삽질

AI 노래 관련 - 1

이건나이스가아니야 2023. 7. 13. 14:25

요즘 유튜브에 AI 노래들을 많이 볼 수 있다.

어쩌다보니 내 알고리즘에도 이제 AI 노래들이 많이 생기게 되면서, 가끔 들어보게된다.

 

내 주관에서 AI 노래에 대한 큰 생각들은 다음과 같았다.

1. 내가 좋아하는 방송인이 노래를 부른다면 어떨까?

2. 한번도 노래를 불러보지 않은 사람이 노래를 부르면 어떨까?

3. 내 목소리를 이용해서 하게 된다면 내가 들어봐도 나 같을까?

 

그래서 찾아보고 시도해보게 되었다. ㅋㅋ

 

우선 현재 주로 사용되고 있는 기술들은 다음과 같다.

1. Diff-SVC

2. DDSP-SVC

3. so-vits-svc

4. RVC

 

여기서 주로 SVC라는 것이 많이 적혀있는 것을 볼 수 있는데, Singing Voice Conversion의 약자이다.

 

위 기술들을 소개하기 앞서, 해당 기술들을 사용하는데 기본적으로 준비물이 아래와 같이 필요하다.

 

필수

1. 학습시킬 깨끗한 목소리 (저음~고음 구간의 무손실 음원)

- 저음 ~ 고음구간 모두 있으면 좋다. (일상 대화로도 진행하는데 문제는 없음..)

- 무손실 음원일수록 좋은 결과를 보여주는 것 같다.

- 잡음이 없어야 좋은 결과를 보여준다. (노래방에서 직접부른 것을 샘플링하는 경우 X)

2. 적용할 목소리

- 노래라면 보컬과 inst 분리 필요

- 잘모르겠는데, 전자음이 섞이면 이상하게 들어간다. 

- 무손실 음원일수록 좋다.

3. 엔비디아 6GB이상의 VRAM을 가진 그래픽카드

- 만약 엔비디아 그래픽 카드가 없다면 Colab같은 플랫폼을 통해 자원을 빌려서 하는 방법도 있음

- 혹은 AMD 그래픽 카드라면 PyTorch를 ROCm 버젼으로 다운받아서 하는 방법도 있음

 

필자는 AMD로 시도하다가 정신나갈것같아서 엔비디아 그래픽카드 구매후 무난하게 진행했습니다.

 

현재 Diff-SVC는 Colab으로 결과를 확인했고, RVC는 Windows GUI로 결과를 확인했으며, 과정은 모두 비슷하게 흘러갔습니다. 

1. 학습 음성 파일 샘플링

- 조건: 파일형식 (WAV),  44.1khz, 16bit, 모노 채널 샘플링 10~15초 이내로 여러개 필요 대략 100개 이상 있으면 좋음.

- GoldWave를 통해 시도하였음 ( http://www.goldwave.com/goldwave.php )

-  10~15초 샘플링 관련 ( https://kin.naver.com/qna/detail.naver?d1id=1&dirId=1020402&docId=446586871&qb=V0FWIOuzgO2ZmCDtlITroZzqt7jrnqg=&enc=utf8&section=kin.ext&rank=1&search_sort=0&spq=0  )

 

2. 학습 음성 파일들 경로지정 후 학습

- Diff-svc의 경우 진행 Step이 높으면 높을수록 품질이 많이 좋아짐을 느낌

- RVC의 경우 epoch(학습횟수) 가 많을수록 좋은건 아님. 30~40정도로 해두고 사용하는 경우가 많음.

3. 학습한 내용의 데이터를 이용하여 노래에 씌우기

- Diff-SVC 기억이 안난다. 나중에 Colab이 아닌환경에서 테스트하면서 추가할 예정..

- RVC는 키를 조절할 수 있고, 타겟의 음성과 학습한 음성간의 밸런스를 조절할 수 있다.