오프라인 AI 음성 변환 | RVC WebUI
음성 변환 AI 알고리즘 RVC
Retrieval-based-Voice-Conversion(RVC)는 음성 변환 AI 알고리즘으로 실제와 같은 음성 변환을 가능하게 하며, 원래 화자의 억양과 오디오 특성을 정확하게 보존한다는 장점을 가지고 있다. 즉, 기존의 텍스트-음성 변환 시스템(TTS)과 달리 음성-음성 출력을 제공하는 RVC는 소스 오디오의 음색, 발음 등의 음성 특징을 유지하면서 다른 화자의 음성으로 변환할 수 있다.
반면에 데이터베이스 의존성, 복잡한 처리 과정, 음질 저하, 윤리 문제(거짓 정보 유포나 전화 금융사기 같은 사기 범죄에 악용될 수 있음) 등의 단점이 존재한다. 여기서 ‘복잡한 처리 과정’은 RVC WebUI (또는 「음성 복제 도구 | clone-voice」) 같은 다양한 도구가 개발되고 있어 어느 정도 해갈된 셈이다. 이제 일반 사용자들도 ‘음성 복제, 음성 변환’ AI 기술에 쉽게 접근하고 활용할 수 있다.
Retrieval-based-Voice-Conversion-WebUI 특징(원문 보기)
top1 검색을 사용하여 입력 원본 특징을 훈련 시키는 집합 특징으로 대체하여 음색 노출 방지
낮은 성능의 그래픽 카드에서도 빠르게 훈련
적은 양의 데이터를 사용하여 훈련해도 좋은 결과를 얻음(적어도 10분 이상 잡음 없는 음성 데이터를 사용할 것을 추천)
모델 통합을 통해 음색 변경 가능(ckpt 처리 옵션 카드의 ckpt-merge 활용) 간편하고 사용이 쉬운 웹 인터페이스
UVR5 모델을 호출하여 보컬과 반주를 빠르게 분리
최신의 인간 피치 추출 알고리즘 InterSpeech2023-RMVPE를 사용하여 음소거 문제를 제거
AMD 및 INTEL GPU 가속 지원
Retrieval-based-Voice-Conversion-WebUI 다운로드
Retrieval-based-Voice-Conversion-WebUI/releases
┗ For Nvidia GPU users | For AMD/Intel GPU users, 그리고 Source code(zip)도 다운로드Source code(zip) 안의 'go-web-dml.bat'로 실행, GUI 버전은 go-realtime-gui-dml.bat으로 실행
RVC WebUI로 음성 변환(AMD 사용자 기준)
go-web-dml.bat을 실행하면 잠시 후 WebUI로 연결된다(한국어 인터페이스 지원). 음성 변환은 [모델 추론] 탭에서 진행된다.
① 추론 음색(변환에 적용할 음성 모델) 선택
② 변환할 오디오 파일 전체 경로 입력
③ 음높이 추출 알고리즘 선택(기본값 rmvpe)
④ [변환] 클릭이 정도가 음성 변환에 필요한 최소한의 설정이다. 다른 옵션들이 결과물에 어떤 변화를 주는지는 사용해 가며 터득해야 할 것 같다.
RVC WebUI로 음성 모델 훈련
[훈련] 탭에선 [모델 추론] 탭에서 사용할 음성 모델을 훈련할 수 있다. 모델 훈련에 사용할 음성 길이는 10분 이상을 권장한다. 그리고 현재 훈련 과정에는 DirectML(AMD/INTEL)을 지원하지 않는다
① 모델명 입력
② 샘플링레이트 설정
③ 훈련에 사용되는 오디오 소스가 ‘음성’이면 false, ‘노래’라면 true 선택. 이 선택은 음성 변환 결과물에 큰 영향을 끼치므로 잘 확인하고 선택
④ 버전 선택
⑤ 훈련에 사용할 오디오 소스가 있는 폴더 선택
⑥ [훈련 라운드 수](최소 2): 훈련 학습 횟수로 값이 증가할수록 모델 완성도는 높아지지만, 그만큼 시간이 오래 걸린다는 것
⑦ [디스크 공간을 절약하기 위해 최신 ckpt 파일만 저장할지 여부] ‘예’ 선택(잘은 모르지만)
⑧ [저장 시마다 최종 소형 모델을 weights 폴더에 저장할지 여부]: 이걸 선택해 줘야 [모델 추론] 탭에서 사용하는 ‘음성 모델’ 파일이 생성됨
⑨ 이게 중요, 내장 GPU에선 아무것도 입력된 것이 없으면 훈련 진행이 안 된다. AMD/INTEL 내장 GPU의 사용자 경우 ‘0’을 입력해 줘야 CPU만으로도 훈련이 진행된다.모든 선택이 완료되면 [원클릭 훈련]을 클릭하면 훈련이 진행된다. CPU만으로 훈련한다면 꽤 오랜 시간이 소요될 것이다. 위와 같은 설정으로 Ryzen 5300U에서 1분 40초 정도의 오디오 소스를 훈련할 때 대충 두세 시간 걸린 것 같다(훈련 라운드당 8~9분 정도 소요되는 듯). 10분짜리 오디오 소스를 사용했을 땐 훈련 라운드당 30분 정도 소요된다.
훈련이 완료되면 [모델 추론] 탭에서 [음색 목록 및 인덱스 경로 새로고침]을 하면 [추론 음색]에 조금 전에 훈련한 모델이 추가되어 있다. 파일은 \assets\weights 폴더에 저장되어 있다.
훈련 테스트: 1분 40초 vs 10분
훈련에 사용한 소스는 「[원신] 『귀여운 비상식량 페이몬 모음』 [몬드편] (with.페이몬)」이다.
첫 번째 동영상: 변환할 오디오 소스(TTSMAKER로 생성)
두 번째 동영상: 1분 40초짜리 오디오 음성으로 ‘학습 횟수 20번’ 설정으로 훈련한 모델을 사용해 음성 변환
세 번째 동영상: 10분짜리 오디오 음성으로 ‘학습 횟수 2번’ 설정으로 훈련한 모델을 사용해 음성 변환간단한 훈련 테스트 결과 훈련할 때 중요한 것은 ‘학습 횟수(훈련 라운드 수)’보다 (훈련에 사용할) 음성 소스의 길이인 것을 알 수 있다. 만약 10분짜리 오디오 음성으로 ‘학습 횟수 20번’을 했다면 더 좋은 결과물을 얻을 수 있었을 것이다.
amd로 다운받아서 했는데 go realtime gui dmi.bat이고 web ui가 아니라 간이버전 같이 나와서 올려주신 사진처럼 시도를 못하고 있습니다 ㅠ0ㅠ.
답글삭제2.2.231006버전이 맞으실까요?
Source code(zip) 파일 안에 'go-web-dml.bat' 이거로 실행하시면 됩니다. 그걸 빼먹었네요.
삭제감사합니다. 파일 실행했더니 영어로 뜨는데 다행히 한국어 캡쳐본 올려주셔서 그거 보면서 해보고 있습니다.
삭제훈련이 먼저고 이후에 추론을 하는 걸까요? 추론에 파일 올리고 12분 짜리 했더니 삐에로 목소리가 나와서 웃었네요 ㅎㅎㅎ
일단 기본 모델이 몇 개 있으니 그걸로 소스 음성을 변환해 보세요.
삭제내 음성을 삼촌 목소리로 변환하고 싶을 때, 그럴 때 삼촌 목소리를 10분 이상 녹음에서 '훈련' 작업을 통해 모델을 제작하는 겁니다.