Run This Ai
EN DE

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.

RVC Logo

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 →
RVC WebUI Interface

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 audio
  • deploy.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

  1. Prepare your audio — Collect 10+ minutes of clean audio of the target voice. WAV or MP3 format works. Remove long silences and background noise.
  2. Upload to the container — Copy your audio files to the datasets folder:
    cp my_voice_samples/*.wav ./datasets/
  3. 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
  4. Download the model — After training completes, your model will be in the weights folder as a .pth file.

Step 5: Perform Voice Conversion

Go to the "Model Inference" tab in the WebUI:

  1. Select your trained model — choose the .pth file from the dropdown
  2. Upload source audio — this is the audio whose voice you want to replace
  3. Set pitch — adjust by +12 for female-to-male, -12 for male-to-female (or 0 for same pitch)
  4. Choose pitch extraction — use rmvpe for best quality, pm for speed
  5. 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:

  1. Go to the "Real-Time" tab
  2. Select your trained model
  3. Set input/output audio devices
  4. Click "Start Audio Conversion"
  5. 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 →
#voice-conversion #docker #tutorial #rvc #deployment