#1 들어가기 앞서
요즘 유튜브나 컴뮤니티에서 AI 음성 학습 기술을 이용해 가수의 목소리 혹은 특정인의 목소리로 노래를 부르는 것을 본 적이 있을거다.
특히 Google Colab에서 딥러닝 모델을 보기 쉽게 GPU instance까지 지원을 해줌으로써 너도 나도 쉽게 학습을 시키고 parmeter tuning까지 시킬 수가 있다. 하지만 실제 Google Colab으로 딥러닝 모델을 한번이라도 돌린 사람들은 한번에 되는 경우가 없다는 것을 알 것이다. Google 계정을 mount 시키는 것부터 정말 정말 다양한 오류를 쉽게 마주칠 수 가 있다.
때문에 나와 팀원들은 이런 AI 음성 학습 모델을 정말 일반인들도 쉽게 돌리고 결과를 받을 수 있는 프로젝트를 하기로 계획을 했다. 이번 포스팅 부터 당분간 지난 1년동안 이 프로젝트를 어떻게 진행을 해왔는지 모델 튜닝부터 AWS를 이용한 Backend Architecture 구성까지 어떻게 해왔는지 작성하고자 한다.
#2 프로젝트 개요
우리의 프로젝트 목표는 다음과 같았다. 먼저 인터페이스는 첫 그림과 같이 뮤직 플레이어 형태의 모습을 취할 것이다.(사용자의 편리함과 간편함을 위해서)
이런 뮤직플레이어의 폼 형태에서 노래를 선택하고, 원하는 가수 목소리를 선택하면 특정 가수의 목소리로 노래를 변환해주는 것이다!
그렇다면 리스트에 없는 가수 목소리로 합성을 원한다면? 당연히 어떻게 보면 가장 중요한 기능이기에 특정 가수의 4분짜리 음성(노래)를 삽입하면 모델이 직접 학습 부터 추론까지 해주는 기능까지 포함을 시켰다.
#3 AI 모델
사실 이부분에서 매우 많은 고민을 했었다. AI 음성 학습 모델 종류가 워낙에 많다 보기에 직접 실험을 해가며 어떤 모델이 우리 프로젝트에 잘 맞는지, 효과가 좋은지 등을 고민했었다. 다양한 요구사항을 고민해본 결과 우리에게 필요한 모델은 다음을 만족해야했다.
1. 짧은 학습시간
2. 적은 데이터(음성 길이)로도 좋은 결과를 도출
3. 노이즈를 포함하더라도 추론이 잘되는 모델
이 세가지를 만족하는 모델은 성능이 안좋은것이 아닌가라고 생각 할 수도 있다. 하지만 다양한 실험을 해본결과 현재 나온 음성 합성 AI 모델들 같은 경우에는 성능에서 큰 차이가 별로 없기 때문에 문제가 될 건 없어 보였다.
그래서 우리가 사용하는 모델이 무엇이냐?
바로 RVC 라는 모델이다. google Colab에서는 아래에서 실행시키면 된다.
https://colab.research.google.com/github/ardha27/AI-Song-Cover-RVC/blob/main/RVC_TrainingV2.ipynb
RVC_TrainingV2.ipynb
Run, share, and edit Python notebooks
colab.research.google.com
특히 이 모델은 MIT Licence를 갖고 있기에 자유롭게 쓸 수 있다는 장점이있다.
위에서 말했듯이 이 RVC 모델은 실제 3분 ~ 4분 정도의 음성 파일만 있으면 8분만에 학습을 완료하고 추론까지는 3분으로 총 11분 안에 음성 합성이 완료된다.
하지만 이 RVC 만으로 모든것이 해결되는 것은 절대 아니다. 실제 가수의 음성파일을 넣기 위해선 가수의 음원을 MR과 Vocal을 분리하고, 분리 된 보컬로 학습을 시키고 또 다시 RVC가 학습을 하면 미리 분리된 MR과 다시 합성을 시켜줘야하는 매우매우 번거로운 작업이 요구된다. 특히 음성과 MR을 분리하기 위해서는 다양한 사이트를 뒤져가면 해야한다는 매우 귀찮은 과정이 포함된다..
때문에 우리는 이 모든 과정을 한번에 알아서 해주기 위해 UVR이라는 기술을 씀으로써 사용자가 정말 매우 간편하게 사용하게 할 수 있도록 하였다. UVR은 노래를 넣으면 알아서 MR과 Vocal을 노이즈 없이 분리를 깔끔하게 잘해주고 그 시간 또한 2분도 채 걸리지 않는다!
결론적으로 총 14분 안에 본인이 원하는 가수의 목소리로 음성 학습한 결과를 받아볼 수 있는것이다!

하지만 이걸 완성하기 위해서는 모델 학습 및 추론과정 설계와 배포를 위한 AWS 아키텍쳐 구상이 중요했다. 다음 포스팅은 먼저 모델 설계도 부터 Backend architecture 설명까지 차근차근 해보도록 하겠다.
'MLOps > MLOps projects' 카테고리의 다른 글
AI Voice Conversion Project(음성 합성 모델) #4: 모델 배포과정(Docker) (1) | 2024.03.28 |
---|---|
AI Voice Conversion Project(음성 합성 모델) #3: 모델 로컬화 (2) | 2024.03.26 |
AI Voice Conversion Project(음성 합성 모델) #2: 모델 생성 (0) | 2024.03.19 |