모델 - 내가 최종적으로 구현하고자 하는 목소리를 지닌 것

데이터셋 - 내가 만들고자하는 악에서 추출된 보컬


즉 데이터셋에서 추출된 보컬을 "목소리 모델"에 학습시켜

결과적으로 데이터셋이 부르는 노래를 "모델의 목소리"로  듣는다는게 최종 목표.


- 기본적으로 RVC를 사용한다. ( 다른 방법도 다수 존재하긴 한다. )

전제 : 원곡의 보컬을 A로 지칭, 내가 구현하고자 하는 목소리를 B로 지칭한다.


1. 우선 B가 다양한 노래를 부른 자료를 다수 수집하여, 그 자료를 보컬 분리 기능을 이용하여 보컬을 분리한다.  이 자료의 품질이 좋을 수록 퀄리티가 상승하며 10~20초 정도의 자료를 약 20분 정도의 분량으로 준비한다. 

( 보컬 분리는 입문자는 RVC 내장 기능을 사용하는게 편하고 이것도 UVR 등 다양한 방법 존재 )


2. 그 후 추출된 보컬 자료들을 각자의 단점을 극복하기위한 플러그인을 사용한다.

( ex) ㅊ,ㅅ 발음의 정도 개선, 치찰음 및 노이즈 약화 목적 등 )


3. RVC의 학습 기능에 내가 모든 B의 모든 자료들을 넣고 학습을 한다.

이 경우 나오는 것이 "내가 구현할 목소리"의 데이터셋. 

Q1. --- 여기까지 읽다보면 헷갈리는게.. 이 경우 "모델"은 대체 무엇인가?

1~3번동안 내가 B의 목소리를 구현하기 위해 만든것이 즉 모델인 것인가?




4. 이제 B의 목소리를 통해 듣고 싶은 노래의 원곡 A를 준비한다.

여기서 A곡을 보컬만 분리해낸다. ( 즉 원곡의 보컬을 분리해서 준비 )


5. 이제 나는 1~3번에서 만들어낸 B의 목소리 모델을 기반으로

"추론"이라는 과정을 통해 A가 내뱉는 음성을

B의 목소리로 구현하도록 프로그램을 운용한다. 

( 이 경우 소요시간은 VRAM 용량에 크게 좌우되며 기본적으로 10~30분 정도를 생각해야한다. )


6. 추론을 통해 만들어진 " A가 하는 말을 똑같이 구현하였지만 B의 목소리인 음성파일"을 기존 원곡의 반주와 합친다. 


이게 맞을까?


Q2. 그런데 여기서 궁금한게.

만약 내가 원하는 것이 노래의 커버가 아닌 "대화체"일 경우에는 어떻게 해야해?

내 목소리나 다른 목소리를 통해 "내가 들어보지 못한 노래" 뿐만 아니라 "일상대화체"도 구현해보고 싶은데


뭐 대표적으로 인터넷 방송쪽이 자료가 방대하게 존재하는 경우가 많으니

이 쪽으로 연습해보려는데 이 경우에는 그냥 대화를 나누는 방송같은 자료들에서 

배경음이 없는 파트를 정제하거나, 그걸 그냥 내가 보컬만 분리하여 정제해서

1~3번 과정을 통해 학습하여 모델을 만들면 되는건가?


그리고 대화를 구현하기 위해서는 뭐 TTS를 사용하거나 내가 직접 말하거나 하여

"구현하고자 하는 대사 데이터셋"을 만들고 그것을 내가 만든 목소리 모델로 구현하면 되는거고?

--


Q3. 그리고 이 일련의 과정에서 사용되는건

기본이 RVC, 나머지 플러그인들은 모델 제작시의 데이터의 품질 개선 혹은 후보정을 위해 존재할 뿐이고?


첨 입문해서 이것도 그냥 모델 하나 만들면

프롬프트를 " 안녕하세요 " 이런 식으로 치면

안녕하세요~ 읽어주는 방식인 줄 알아서 지금까지 이해를 잘 못했었네

이렇게 하는게 맞을까?