How to Deploy RVC Voice Conversion with Docker: Complete Step-by-Step Tutorial
From pulling the Docker image to training your first AI voice model and performing real-time conversion — this tutorial covers every step of deploying RVC with Docker.
How to Deploy RVC with Docker: Complete Tutorial
This tutorial walks you through every step of deploying RVC (Retrieval-based Voice Conversion) with Docker — from pulling the image to training your first voice model and performing real-time conversion. No prior ML experience required.
🚀 Want to deploy RVC yourself?
Docker configs, system requirements, and installation guides — all on one page.
View RVC Tool Page →
Prerequisites
- Docker and Docker Compose installed
- NVIDIA GPU with at least 4GB VRAM (8GB+ recommended for training)
- NVIDIA Container Toolkit (for GPU access inside Docker)
- 20GB+ free disk space (for models and training data)
- 10+ minutes of audio of the voice you want to clone
Step 1: Pull the Docker Image
docker pull thaomike/rvc:latest
This image comes pre-loaded with all RVC dependencies — PyTorch, HuBERT, Wav2Vec2, and the full WebUI. No need to install Python packages manually.
Step 2: Create docker-compose.yml
version: '3.8'
services:
rvc:
image: thaomike/rvc:latest
restart: unless-stopped
ports:
- "7865:7865"
volumes:
- ./weights:/app/assets/weights
- ./logs:/app/logs
- ./datasets:/app/datasets
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
What each line does:
ports: 7865— exposes the WebUI on port 7865./weights— persists your trained voice models./logs— keeps training logs and TensorBoard data./datasets— mount point for your training audiodeploy.resources— gives the container GPU access
Step 3: Start the Service
mkdir -p weights logs datasets
docker compose up -d
# Check if it's running
docker compose logs -f --tail=20
Wait until you see Running on local URL: http://0.0.0.0:7865 in the logs. Then open http://localhost:7865 in your browser.
Step 4: Train Your First Voice Model
- Prepare your audio — Collect 10+ minutes of clean audio of the target voice. WAV or MP3 format works. Remove long silences and background noise.
- Upload to the container — Copy your audio files to the
datasetsfolder:cp my_voice_samples/*.wav ./datasets/ - In the WebUI, go to the "Train" tab:
- Set Experiment name — e.g., "my_voice"
- Set Sample rate — 40k is a good default
- Set Training audio path —
/app/datasets - Click "Process Data" — RVC will preprocess and slice your audio
- Click "Feature Extraction" — extracts HuBERT features from your audio
- Click "Train Model" — starts training. This takes 30-60 minutes on a decent GPU
- Download the model — After training completes, your model will be in the
weightsfolder as a.pthfile.
Step 5: Perform Voice Conversion
Go to the "Model Inference" tab in the WebUI:
- Select your trained model — choose the
.pthfile from the dropdown - Upload source audio — this is the audio whose voice you want to replace
- Set pitch — adjust by +12 for female-to-male, -12 for male-to-female (or 0 for same pitch)
- Choose pitch extraction — use
rmvpefor best quality,pmfor speed - Click "Convert" — your converted audio will appear for download
Step 6: Real-Time Voice Conversion
RVC supports live voice conversion — perfect for streaming or gaming:
- Go to the "Real-Time" tab
- Select your trained model
- Set input/output audio devices
- Click "Start Audio Conversion"
- Speak into your microphone — your voice will be converted in real-time
For best real-time performance, use a GPU with 6GB+ VRAM and the pm pitch extraction method for lower latency.
Troubleshooting
Problem: "CUDA out of memory"
Solution: Reduce batch size in training settings (try 8 or 4), or use a lower sample rate (32k instead of 48k). Close other GPU-intensive applications.
Problem: WebUI not loading
Solution: Check if the container is running with docker compose ps. Check logs with docker compose logs rvc. Make sure port 7865 is not in use by another application.
Problem: Training is very slow
Solution: Ensure the container has GPU access — run docker exec rvc nvidia-smi to verify. If no GPU is detected, make sure NVIDIA Container Toolkit is installed on your host.
Problem: Converted voice sounds robotic
Solution: Train with more audio data (30+ minutes), use rmvpe pitch extraction, and try adjusting the index rate parameter (0.6-0.8 usually works best).
Problem: Cannot find trained model in dropdown
Solution: Make sure the .pth file is in the ./weights directory and restart the container: docker compose restart.
Advanced: Using the API
For programmatic access, RVC's WebUI also exposes API endpoints:
# Convert audio via API
curl -X POST http://localhost:7865/run/convert_audio \
-F "model_name=my_voice.pth" \
-F "input_audio=@input.wav" \
-F "pitch=0" \
-F "f0_method=rmvpe" \
-o converted.wav
Conclusion
With Docker, RVC is surprisingly easy to deploy. The entire process — from pulling the image to training a custom voice model — takes about an hour on a decent GPU. The WebUI handles all the complexity, so you can focus on creating great voice content.
Remember: with great power comes great responsibility. Always use voice conversion ethically and with consent from the person whose voice you're cloning.
🚀 Explore RVC on Run This Ai
Docker Compose configs, system requirements, installation guides, and more — all in one place.
View RVC Tool Page →