- Introduction
- What RVC does, and what it does not
- Step 1: Check your hardware
- Step 2: Choose the dependency set for your GPU
- Step 3: Install RVC
- Step 4: Prepare your recordings
- Step 5: Train the model
- Step 6: Convert audio
- Common errors and how to fix them
- Whose voice can you train? Consent and the law
- The bottom line
- Recommended
We are ready to help
RVC Voice Conversion at Home: A Step-by-Step Local Setup Guide
RVC (Retrieval-based Voice Conversion) is an MIT-licensed open-source project that changes the timbre of an existing audio recording using a model trained on recordings of a target voice. Everything runs locally: training and conversion use your GPU, and recordings are not uploaded anywhere. This guide covers hardware, installation, dataset preparation, training, conversion and common errors.
What RVC does, and what it does not
RVC takes an already spoken phrase and re-voices it with a different timbre. The words, intonation and pace remain from the original recording. The program does not read text itself and does not translate what was said: to voice written text, you first need text-to-speech (TTS) or a live recording, then apply RVC as a second step.
The word retrieval in the name means searching within the training data. During processing, the system replaces features of the source voice with the closest features from the training set (top-1 retrieval), reducing leakage of the original timbre into the result. The internet is not used: the search runs against the index file built after training.
According to the developers, the project includes:
- a web interface for training and conversion;
- a separate graphical interface for real-time voice changing;
- pitch extraction with RMVPE, which, according to the authors, delivers better results than Crepe_full, runs faster and requires fewer resources;
- tools for separating vocals from music;
- model merging.
The base model is pretrained on roughly 50 hours of recordings from the open VCTK dataset, so a relatively small dataset is sufficient for your own model.
Step 1: Check your hardware
Requirements depend on the task. Converting audio with a finished model puts noticeably less load on the system than training your own model.
| Task | What matters most | What the project documentation says |
|---|---|---|
| Model training | GPU memory capacity | if memory runs out, lower the batch size; if even a value of 1 does not help, you need a different GPU |
| Audio conversion | GPU memory and chunk settings | cards with around 4 GB may still work after adjusting x_pad, x_query, x_center and x_max in config.py |
| Dataset preparation | system RAM and CPU cores | on memory errors, reduce the number of CPU threads or pre-cut long recordings |
| Real-time use | audio-path latency | about 170 ms from input to output, about 90 ms with ASIO devices |
Batch size is the number of chunks processed in one training step. The larger it is, the more stable and faster training becomes, but the more GPU memory it requires. Therefore, a GPU with more memory primarily shortens training time rather than changing voice quality.
Before buying components, it makes sense to test your current PC on a small set: cut ten minutes of audio, run a short training session and process one phrase. You will quickly see whether the limit is GPU memory, system RAM or the CPU. If you need a computer not only for RVC but also for language models or image generation, the GPU requirements for those tasks are different.
Step 2: Choose the dependency set for your GPU
The current project version is designed for Python 3.12 x64, and Ubuntu 24.04 is recommended for Linux. The package set depends on the GPU:
| Hardware | What to install |
|---|---|
| NVIDIA GeForce RTX 50 | PyTorch 2.7.1 for CUDA 12.8, then requirments_cu128_py312.txt |
| NVIDIA before RTX 50 | PyTorch 2.7.1 with CUDA 11.8, then requirments_cu118_py312.txt |
| AMD, Intel or CPU only | requirments_cpu_py312.txt; DirectML acceleration on Windows, CPU processing on Linux |
The misspelling “requirments” is in the filenames used by the authors, so enter it exactly as written. AMD and Intel GPUs on Windows also require the rmvpe.onnx model file.
If you do not want to set up the environment manually, there is Applio: an RVC-based project with a desktop application for Windows, macOS and Linux. Its documentation lists NVIDIA through CUDA, supported AMD configurations and Apple through MPS. The compiled Windows package already includes its own Python environment; simply extract it and run run-applio.bat.
Step 3: Install RVC
- Download the RVC-Project/Retrieval-based-Voice-Conversion-WebUI repository from GitHub into a folder whose path contains no spaces, brackets or non-Latin characters.
- Create a Python 3.12 virtual environment and update pip, setuptools and wheel.
- For NVIDIA, install the required PyTorch pair first, then the dependency file from the table above.
- On Windows, place
ffmpeg.exeandffprobe.exein the project root. On Ubuntu, install the ffmpeg, libsndfile1 and libportaudio2 packages. - Download pretrained models from the lj1995/VoiceConversionWebUI repository on Hugging Face:
hubert_baseandrmvpe.ptare needed for conversion; thepretrainedandpretrained_v2directories and themute.ziparchive (extracted tologs/mute) are needed for training. - Start the web interface with
python webui.pyorgo-webui.bat. It opens in your browser on port 7865. The real-time interface starts throughgo-realtime_gui.bat.
Step 4: Prepare your recordings
Model quality is determined almost entirely by the dataset. The project FAQ recommends:
- an optimal amount of 10 to 50 minutes of clean speech;
- 5 to 10 minutes may be enough for a very distinctive voice at good quality;
- less than one minute of audio is not recommended;
- if the sound is clean and the timbre is consistent, the dataset can be larger.
Practical preparation rules:
- Record in a quiet room with one microphone, without music, echo or live noise suppression.
- If there is background music, separate the vocals first with the built-in separation tool.
- Remove long pauses, coughs, clicks and other voices.
- Put the files in one folder with no nested directories: according to the project’s older instructions, files in subfolders are not loaded.
- Check the path: spaces, brackets and non-Latin characters in the recording path cause FFmpeg and UTF-8 encoding errors.
The program automatically cuts long recordings at pauses and then into chunks of about 4 seconds with a 0.3-second overlap. If system RAM runs out at this stage, pre-cutting the files into chunks of a few minutes helps.
Step 5: Train the model
Training in the web interface takes place in three stages:
- Data processing. Set the experiment name and specify whether the model needs pitch information (it is required for singing). Recordings are sliced and resampled.
- Feature extraction. The program calculates pitch and HuBERT speech features. RMVPE is the sensible choice for pitch.
- Training and index. Start model training from the pretrained weights, then build the feature index (the faiss library,
added_XXX.indexfile).
The number of epochs depends on the recording quality:
| Dataset | FAQ-recommended number of epochs |
|---|---|
| noisy recordings, poor quality | 20–30; more will not improve the result |
| clean recordings of sufficient length | more is fine; 200 is acceptable |
Choose batch size from the bottom up: start with a low value and increase it while training runs without an out-of-memory error. On NVIDIA, you can conveniently monitor GPU memory usage with nvidia-smi.
Step 6: Convert audio
A finished model consists of two files: the weights .pth (placed in assets/weights/) and the .index index (in assets/indices/). Conversion works without the index, but preserves the timbre less well.
The main control on the conversion tab is index rate:
- a value of 1 pulls the sound as close as possible to the timbre in the training recordings;
- a value of 0 disables blending features from the index;
- if the dataset is long and clean, the index matters less and can be omitted.
For the first test, it is better to record a new phrase in your own voice that was not in the dataset. You can then immediately hear whether the model learned to transfer timbre rather than simply memorising the training fragments.
Common errors and how to fix them
| Symptom | Cause | Fix |
|---|---|---|
| CUDA out of memory during training | batch size is too large | lower the batch size; if even 1 does not help, GPU memory is insufficient |
| GPU memory runs out during conversion | large processing chunks | lower x_pad, x_query, x_center and x_max in config.py |
| System RAM error during preparation | too many parallel processes | reduce the number of CPU threads; cut long recordings |
| FFmpeg or UTF-8 error | a path with spaces, brackets or non-Latin characters | move the project and recordings to a simple Latin-character path |
| The original voice is audible in the result | a weak index or low index rate | raise index rate and check that the index was built |
Whose voice can you train? Consent and the law
Your own voice is the best choice for initial tests: it lets you evaluate both the technology and the quality without rights questions. Using someone else’s voice is more complex.
- Personal data. A voice recording may be personal data under UAE Federal Decree-Law No. 45 of 2021 on the Protection of Personal Data if it can identify a person. Obtain a lawful basis for processing; consent is the appropriate starting point for an individual voice model and should be specific, informed and unambiguous.
- Biometric data. Not every voice recording is automatically biometric data. The classification depends on whether its characteristics are used to identify a person, so assess the intended use and applicable UAE requirements before processing it.
- Performer’s rights. A recording of an actor’s or musician’s performance may be protected. A file being publicly available does not itself grant permission to train a model on it.
In an agreement with the voice owner, specify which recordings are used for training, where the results will be heard, who can access the model and when files are deleted. When publishing, state clearly that the voice was changed by AI and do not present generated lines as a person’s real words.
The bottom line
RVC runs on an ordinary home PC: a mid-range GPU is enough for conversion, while GPU memory capacity mainly determines training speed and the usable batch size. The dataset affects the result more than the hardware: 10–50 minutes of clean speech from one person produce a predictable model. If you need one machine for several AI workloads at once, you can choose a configuration with headroom in GPU memory and RAM in the HYPERPC configurator.