프로젝트 소개

## 프로젝트 개요 Retrieval-based-Voice-Conversion-WebUI(RVC)는 사용하기 쉬운 음성 음색 변환/변성 프레임워크로, 웹 조작 인터페이스를 제공합니다. README에 따르면 기반 모델은 약 50시간 분량의 오픈소스 VCTK 훈련 세트로 훈련되었으며, 저작권 측면에서 문제가 없다고 명시되어 있습니다. ## 주요 특징 - top1 검색을 사용하여 입력 소스 특징을 훈련 세트 특징으로 대체함으로써 음색 누출을 억제합니다. - 비교적 성능이 낮은 그래픽 카드에서도 빠르게 훈련할 수 있습니다. - 적은 데이터로도 훈련 가능하며, 최소 10분 이상의 배경 잡음이 적은 음성 데이터를 권장합니다. - ckpt-merge를 통해 모델 융합으로 음색을 변경할 수 있습니다. - 간단하고 사용하기 쉬운 웹 인터페이스를 제공합니다. - pymss/MSST 모델을 호출하여 보컬과 반주를 분리할 수 있습니다. - InterSpeech2023-RMVPE 음성 피치 추출 알고리즘을 사용하며, README는 음소거 문제를 완화하고 속도가 빠르며 리소스 점유가 적다고 설명합니다. - AMD/Intel 그래픽 카드는 CPU 의존 방식을 사용합니다. Windows에서는 DirectML을 사용할 수 있고, Linux에서는 CPU를 사용합니다. ## 인터페이스 및 지연 시간 README에는 훈련/추론 인터페이스와 실시간 변성 인터페이스가 나와 있습니다. 실시간 변성 부분은 종단 간 170ms 지연 시간을 구현했다고 하며, ASIO 입력/출력 장치를 사용할 경우 종단 간 90ms 지연 시간도 가능하지만 하드웨어 드라이버 지원에 크게 의존합니다. ## 환경 구성 이 브랜치는 Python 3.12 x64를 대상으로 하며, 저장소 루트 디렉터리로 먼저 이동해야 합니다. Ubuntu는 Ubuntu 24.04 x86_64를 권장합니다. Ubuntu 24.04에서는 python3.12, python3.12-venv, python3.12-dev, ffmpeg, unzip, libsndfile1, libportaudio2를 설치한 다음 가상 환경을 만들고 pip, setuptools, wheel을 업그레이드해야 합니다. Windows에서 Python 3.12 x64를 설치한 후에도 동일하게 가상 환경을 만듭니다. 의존성은 하드웨어에 따라 선택합니다: - CPU, AMD, Intel: requirments_cpu_py312.txt 사용; Windows는 DirectML 사용 가능, Linux는 CPU 사용. - NVIDIA RTX 50 시리즈: 먼저 CUDA 12.8 버전 Torch를 설치한 다음 requirments_cu128_py312.txt 설치. - NVIDIA RTX 50 시리즈 이전: 먼저 CUDA 11.8 버전 Torch를 설치한 다음 requirments_cu118_py312.txt 설치. README에는 Torch와 CUDA 상태를 확인하는 명령이 제공됩니다. 세 의존성 파일 상단에는 다운로드 소스가 이미 포함되어 있으며, 중국 본토 사용자는 기본 미러를 유지하거나 공식 소스로 교체할 수 있습니다. ## 모델 및 실행 디렉터리 WebUI는 자동으로 실행 디렉터리를 생성합니다. 모델은 Hugging Face 모델 저장소에서 다운로드하고 지정된 경로를 유지해야 합니다. 여기에는 assets/hubert_base, assets/rmvpe, assets/pretrained, assets/pretrained_v2, assets/pymss_weights, assets/weights, assets/indices 및 logs/mute가 포함됩니다. README에는 huggingface_hub를 사용하여 각 구성 요소 모델을 다운로드하는 명령이 나와 있으며, Windows AMD/Intel DirectML 환경에서만 rmvpe.onnx도 필요하다고 설명합니다. FFmpeg는 Ubuntu에서 시스템 의존성으로 이미 설치됩니다. Windows 사용자는 ffmpeg.exe와 ffprobe.exe를 프로젝트 루트 디렉터리에 넣으면 됩니다. ## 사용 시작 WebUI 시작은 python webui.py를 사용합니다. 데스크톱이 없는 Ubuntu 서버에서는 python webui.py --noautoopen을 사용합니다. 기본 서비스 수신 포트는 7865입니다. 사용자 모델 .pth 파일은 assets/weights/에, .index 파일은 assets/indices/에 넣습니다. ## 참고 프로젝트 README에는 ContentVec, VITS, HIFIGAN, Gradio, FFmpeg, Ultimate Vocal Remover, pymss, audio-slicer 및 RMVPE 등의 참고 프로젝트가 나열되어 있으며, RMVPE 사전 훈련 모델은 yxlllc와 RVC-Boss가 훈련하고 테스트했다고 설명합니다.