구글이 제공하는 오픈소스 Applio 를 사용해 노래목소리 wav 파일들로부터 더빙에 쓸 수 있도록 학습을 시켜보자. Applio 는 노래 목소리 더빙 뿐만 아니라 개인 목소리나 TTS 등 많은 음성 응용을 가지고 있는 대단히 유용한 코드이므로 각자 응용을 위한 사용법을 연구해 볼 필요가 있어 보인다.
사용자 PC 에서 Aplleio 가 실행은 되지만 인공지능 학습시간이 엄청나게 소요되므로 반드시 Colab 에서 무료 GPU T-4 서비스를 사용하도록 한다.GPU 를 사용해도 1곡이면 30분, 6곡이면 1시간 30분 소요된다. 적어도 10곡은 해야 되지 않나 싶다.
Applio.ipynb 파일은 다음의 Github 주소에서 다운 받을 수 있다.
https://github.com/IAHispano/Applio
다운 받은 후 구글 크롬에서 NDRIVE 를 열고 내드라이브(MyDrive)에서 가칭 RVC-WebUI 폴더를 만든 후 Applio.ipynb 를 업로딩한다. 노래 목소리 파일은 별도로 업로딩할 필요 없다. 해당 단계에서 직접 사용자 PC 의 폴더로 부터 Drop 또는 Drag 작업을 하면 된다.
Applio 를 윈도즈나 리눅스 시스템에서 직접 실행을 통해 학습을 할 수도 있으나 연산 시간이 어마어마하게 요구된다. 설사 게임용 그래픽 카드가 설치되어 있어도 요구되는 연산 시간 부담이 엄청나다. 따라서 그 대안으로 구글 NDRIVE 의 무료 엔비디아 GPU T-4 서비스를 사용하도록하자. 런타임 탭을 눌러서 다음과 같이 T-4 GPU를 선택하여 저장하자.

구글 NDRIVE 에서 Applio.ipynb 가 업로드 되어 있는 RVC-WebUI 폴더를 클릭하여 연 후 구글마운트 작업이 이루어지는 모두실행 이전에 이전에 디렉토리 탐섹기를 사용하여 폴더를 살펴보자. RVC-WebUI 폴더에 Applio.ipynb 만 업로드 되어 들어 있으면 된다.

Applio 실행 전 NDRIVE 상태는 #1 과 같다. 사용자의 NDRIVE 는 content/drive/MyDrive 에 해당한다. 이구조는 Applio.ipynb 실행에 따라 내부적으로 생성되는 파일 구조이므로 눈여겨 볼 필요가 있다.
코드를 실행 시키게 되면 아래 그림에서 처럼 단계 별로 폴더들이 생성되는데 시작 전에 클리어 되지 않은 상태라면 Error 가 발생할 수가 있으므로 애초에 #5 에서처럼 ApplioBackup 과 ApplioExported 가 보이면 삭제해 버리고 시작하자.

Applio 가 실행되면 #2 구글마운팅에 의해 #2에서 처럼 MyDrive 를 포함하는 drive 폴더가 생성되어 있으며 아울러 Applio 폴더가 생성된다. 클라우드 사용법인 구글 마운팅은 정해진 방식대로 /content/drive/MyDrive/ 로 경로가 형성되고 MyDrive 내부에 사용자가 구성한 폴더들이 위치하게 되어 필요시 파일들을 불러올 수 있게 된다.
Applio.ipynb 를 모두 실행하게 되면 5분 정도 걸리는데 구글 마운팅 작업 후 끝 부분에 2개의 URL주소가 나타나고 Inactive 하다는 출력과 함께 텐서보드 그래픽이 나타난다. Gemini에게 문의한 바에 의하면 이 부분에서 Error 라고 생각하면 안된다.

http://127.0.0.1/6969 는 파이선에서 워크프레임 코드 작업에서 사용되는 그래픽 화면창의 웹 주소이다.
그 다음의 https://... URL 주소를 클릭하면 Applio 그래픽 입력 창이 http://127.0.0.1/6969 주소에 생성된다.
그 다음 이 URL 주소를 클릭하게 되면 아래의 Appio 그래픽 화면창이 별도로 나타난다. 아래는 67% 디스플레이 해상도로 본 그래픽이다. 실제로는 100% 상태에서 스크롤 작업이 가능하다. 사용법을 배워야 하므로 거의 Dfault 값들을 사용하자.

제어판 구성을 살펴보자.
1. Training 탭에서 프로젝트 명을 입력한다.

2. Advanced Settings 를 클릭하여 CPU core 수, GPU information 을 살펴보고 Default 로 두고 넘어가자.
CPU core 수는 보통 4개 이상이지만 그대로 두자. GPU 는 런타임에서 지정했듯이 T4 가 연결되었다.

3. Preprocess 를 클릭하여 Dataset 경로를 assets/datasets/ 로 설정한다.
Dataset Name 을 예를 들어서 bahodatasets 로 명명하ㅈ하고 다음의 업로딩 작업을 수행하자.
assets 폴더는 위 #3 를 보면 Applio 내부에 생성되어 있는 폴더이다. 사용자 PC 탐섹기에서 노래 목소리 하나 하나씩 또는 모조리 한번에 Drop 하면 처리 후 자동으로 datasets 폴더 하부에 위애ㅔ서 명명된 bahodatasets 에 저장된다.

업로딩 후 아래의 결과를 관찰해 보자. 돌아가는 삼각지 wav 파일 하나가 업로딩 되었다. 몇개의 노래 목소리를 업로딩 할 것인지는 사용자 몫이다. 여기서는 1곡만 하도록 하자.

4. Advanced Settings 버튼을 누른 후 Default 값들을 관찰만하고 Preprocess Dataset 버튼을 누른다. 한곡에 10여초 정도 소요된다.

5. 목소리 처리를 위한 몇가지 Default 파라메터 설정을 관찰하자. Silent training files 에서노래 목소리 파형을 관찰해 보면 앞 부분에 순수 반주가 이루어지는 부분은 반주 제거시 무음 영역이 되므로 0 으로 세팅한다. 마지막으로 Extract Features(특징추출) 버튼을 누르면 준비가 끝난다. 한곡당 20 초 가량 소요되었다.

6. 학습(Training)에서도 Default 값을 그대로 받아들여 epoch 값을 200 으로 하고 중간 출력은 50 epoch 로 설정하자.
Batch Size 는 4 이면 정확도는 향상되지만 연산 속도가 느리며 반면에 8 이면 빠르고 표준적인 결과를 제공하므로 8 을 세팅한다.
아울러 Advanced Settings 에서는 Save Every Weights 와 처음 학습이므로 Fresh Training 을 선택 클릭한다. 학습 시간이 무척 많이 걸리기때문에 정보를 저장했다가 epoch 수를 늘려 연산할 때 시간 절약을 위한 기능들이다.

7. 학습(Training) 이 제대로 이루어지게 되면 Colab 에서 아래와 같이 epoch 수에 따라 학습 진행을 모니터 할 수 있다. 일단 그래픽에서 초기에 주어지는 Default 값을 가지고 하나당 대략 3분 정도인 노래목소리 1개 데이터 파일을 학습시키는 경우 T-4 GPU 를 사용하면서 빠른 속도의 Batch Sixe=8 을 사용함에도 불구하고 20 ~ 30분 정도가 소요될 수 있음에 주의하자. 곡 수가 많으면 곡당 15분 정도로 좀 들어들 수도 있다. 평균적으로 1 epoch 당 1분 정도면 200 epoch 면 기본적으로 ~ 200분 정도 소요시간이 필요하다.

학습 완료 전에 ApplioBackup 하위의 프로젝트명 baho 폴더에서 중간 pth 파일들 출력 결과를 점검해 볼 수 있다.

~ 30분에 결쳐 학습이 성공적으로 완료되었다는 메세지가 출력되었다.

마지막 출력 결과를 요약하자. Applio/logs/baho 폴더에 G_...pth, D_...pth, baho_200e_2800s.pth alc baho.index 학습 데이터 파일들이 생성되었으며, 이들은 추론(inference) 단계에서 사용된다.

8. Export Model 버튼을 클릭하고 업로드를 시켜 다음의 결과를 확인하자.

9. 동시에 NDRIVE의 내드라이브(MyDrive)에서 살펴보면 ApplioBackup 폴더가 있음을 알 수 있다. 구글 마운팅이 되어 있었기에 끝날때까지 모니터링한 출력 결과들이 고스란히 저장되어 있음을 알 수 있다. ApplioExported 폴더도 만들어졌을 텐데 어디 있는지 모르겠다. 대신에 Applio 폴더의 프로젝트 baho 폴더의 내용이 고스란히 ApplioBackup 폴더에 출력되므로 이를 이용하면 될 것이다.
10. 다음 단계는 학습 PTH 파일들과 index 파일을 가지고 노래에 더빙하는 과정이 될 것이다. 이는 Applio 그래픽 화면 창에서 추론(Inference) 작업이 될 것이다.Voice Model 에는 ApplioBackup/baho/baho_200e_2800s.pth 파일을 Index File 에는 Applio/logs//baho/baho.index 파일을 입력하자.
Unload 버튼 클릭은 NDRIVE 에 많은 메모리를 점유하며 쌓여 있는 불요한 파일들을 정리할 수 있으므로 일단 한번 클릭 후 Voice Model 과 Index 파일을 지정한다.

일단 합번 AI VoiceCover 작업을 실시하면 다음과 같이 업로드한 파형이 남아 있게 된다. 앞 선 작업을 지우고 새로 타겟 노래 목소리를 업로드 하기 위해서는 우측 상단의 x 버튼을 클릭하여 지우자.

다음과 같이 새로운 타겟 노래 목소리를 사용자 PC 로부터 직접 업로드 가능하다. 이번에는 배호의 5_5 당신(Vocals) 를 업로드 하자.

다음과 같이 업로딩이 이루어진다.

완료되면 다음과 같이 음성의 진폭 파형을 볼 수 있으며, 이는 Applio/assets/audios/5-5 당신_Vocals.wav 로 저장됨을 확인할 수 있다. 준비가 다되었으므로 마지막 Convert 버튼을 누르자.

아래와 같이 AI Voice Cover 파형이 얻어진다. 위의 원래 파형과 비교하면 쐐기 모양 파형의 시간 적인 흐름은 유사하나 진폭의 크기는 좀 다름을 확인할 수 있을 것이다. 그래서 배호의 노래 목소리를 학습하면 배호의 노래에서 AI Voice Cover로 바꿔치기하여 얼머나 유사한지 들어볼 필요가 있다. 해보니 배호 자신의 노래와는 제법 음색이 같다는 생각이 든다.

결론적으로 배호의 노래 "돌아가는 삼각지" 한곡을 학습하여 자신의 노래 Voice Cover 를 특히 안개낀 장충단 공원이나 여타의 곡들을 만들어 들어보니 제법 비슷헀다.
남은 과제로서는 가수 배호는 히트 곡이 무척 많아 적어도 10곡 정도를 GPU 로 수시간 학습해서 제대로된 VOICE Cover 를 만들어 봐야겠다. Applio 코드 한번 실행해보기 위해서 습득과정이 3주 정도 걸렸는데 독자 여러분께서는 본 블로그를 참조하신다면 당일에 가능하리라 본다. 하고난 후에 소감은 아두이노 LED 배선할 때 처럼 정말 재미있었고, 앞으로도 계속해 볼 예정이다. 아울러 Applio 는 스피치 및 TTS 관련 응용도 풍부하다는 점에 유의하자.
Under Construction
'인공지능응용: AI Cover' 카테고리의 다른 글
| 배호의 10곡 학습 AI Cover 로 트로트를 더빙해보자. (0) | 2026.02.28 |
|---|---|
| Applio로 가수 배호의 노래목소리 AI Cover 를 만들어 보자 목차 (0) | 2026.02.21 |
| 윈도우즈 Applio 에서 가수 배호의 목소리 AI Cover 로 트로트를 더빙해보자 (0) | 2026.02.15 |
| Gemini 코칭에 따른 노래 목소리 분리 UVR5 윈도우 버전 설치 (0) | 2026.02.07 |
| 배호 노래가사로부터 텍스트를 출력해보자. (0) | 2026.02.06 |