나도 입문한지 3일 차라 모르는게 좀 있을수 있음



니가 좋아하는 보컬 (예를 들어 노짱이라고 칭하겠음)

의 목소리를 AI 한테 학습 시켜서


노짱이 부른적이 없는 다른 노래를 부르게 시킬수 있다

이게 RVC 기술임


그럼 어떻게 학습시킬까?

노짱이 생전에 부른 노래 (노래가 없으면 그냥 말하는거) 를 준비한다

여기서  AI한테 훈련시킬 목소리 데이터를 추출해야 한다


노래에서 악기와 보컬을 분리한다

백보컬이나 화음 분리도 가능한데 아직 완벽하진 않다

이건 따로 AI가 있음, 난 라라 AI 결제해서 쓰는중. 유료가 성능이 좋음


보통 보컬에는 거의 에코 (리버브) 이펙트가 들어가 있기 때문에

에코도 함께 제거해야한다 (옵션 선택시 AI가 알아서 없앤다)


이렇게 추출한 보컬을 적당히 5초~15초 간격으로 잘라서 편집해준다

최소 수십개에서 수백개 수천개의 파일을 만들었다면   

데이터셋 준비가 완료된거다


데이터는 많으면 많을수록 정확해진다

이제 이 데이터를 RVC 라는 프로그램을 열어서

사전학습된 모델에게 훈련시킨다 

이를 파인튜닝 이라고 한다


사전학습모델은 여러가지 버젼이 존재한다

미리 사전학습된 모델에게 노짱의 목소리를 입히는거라고 보면 된다

사전학습 모델 없이 처음부터 노짱을 학습시키려면

엄청난 양의 노짱 데이터와 방대한 훈련 시간이 필요하므로 비효율적이다


데이터가 많을수록, 훈련 횟수가 많을수록 정확해지는데 훈련시간도 길어진다

로컬에서 돌리려면 고성능 GPU가 필요하고 똥컴은 구글 코랩으로 서버에서 돌리면 된다




노래 부르기 시키기


1. 보이스 모델을 선택한다 -> 내가 만든 노짱 선택


2. 바꿀 목소리를 선택한다 -> 니가 커버 시킬 노래의 보컬 추출 파일 


커버 시킬 노래를 그냥 집어넣으면 안되고


이것도 목소리랑 보컬을 분리해야 한다


그럼 노짱이 그 목소리를 따라부르는 식이다






여기서 현재 기술적 한계와 문제점


훌륭한 가수는 여러 가지 창법과 스타일, 음색을 구현하며

다양한 감정 표현이 가능하다


그런데 현재 RVC 기술의 한계상,

AI는 너가  때려박은 노짱 보컬 데이터셋을 전체적으로 훈련한후

너가 따라부르게 한 가수의 목소리의 창법이나 스타일을

가지고 있는 노짱 데이터셋에서 비슷하게 끄집어내어 흉내낼뿐이다


그러므로 이렇게 불러라 저렇게 불러라 같은 직접적인 지시가 불가능하다

이 느낌을 바꾸려면 데이터셋을 다시 만들어야 한다


만약 너가 노짱의 어떤 특정 스타일과 창법으로  노래를 부르게 하고 싶다면 

그 해당 창법으로만 이루어진 데이터셋으로만 모델을 훈련 시켜야 한다  

그런데 이렇게하면 문제점이 데이터셋이 부족하기 때문에 범용성이 떨어진다

그래서 다른 여러 데이터셋을 같이 섞어줘서 보충해야 하는데

그럼 그 해당 특색이나 개성이 희석된다 


나는 그래서 일단 최소 3가지~5가지 모델을 따로따로 훈련시켜서

각 상황에 맞게끔 모델을 골라 적용하는 방식을 사용하고 있는데

세부적인 조절이 불가능해서 아쉬운점이 많다


근 미래에는 이런 문제를 해결해주는 기술이 등장할수 있다고 본다

그러면 엄청날거 같다