--- title: RVC Voice Conversion emoji: 🏃 colorFrom: purple colorTo: indigo sdk: gradio app_file: app.py pinned: false license: mit --- # 🎙️ RVC Voice Conversion - Ultimate Real [](https://huggingface.co/spaces) [](https://docker.com) [](https://gradio.app) **Conversão de voz REAL com RVC (Retrieval-Based Voice Conversion)** - Upload de vídeo com preview 🎬 - 5 formatos de saída em fundo preto 🎤 - Processamento DEMORADO (minutos) - RVC real! - Suporte a modelos customizados via ZIP 📦 --- ## 📋 Índice - [Pré-requisitos](#pré-requisitos) - [Instalação Local](#instalação-local) - [Docker](#docker) - [Estrutura do Projeto](#estrutura-do-projeto) - [Comandos Úteis](#comandos-úteis) - [Solução de Problemas](#solução-de-problemas) --- ## 🚀 Pré-requisitos ### Local - Python 3.10+ - FFmpeg (para processamento de vídeo) - 4GB+ RAM recomendado ### Docker - Docker Engine 20.10+ - Docker Compose 2.0+ --- ## 📦 Instalação Local ### 1. Clone o repositório ```bash git clone https://github.com/yourusername/rvc-voice-conversion.git cd rvc-voice-conversion python -m venv venv source venv/bin/activate # Linux/Mac # ou venv\Scripts\activate # Windows pip install -r requirements.txt sudo apt-get update sudo apt-get install ffmpeg brew install ffmpeg Windows: Baixe do ffmpeg.org bash python app.py Acesse: http://localhost:7860 docker build -t rvc-voice-conversion . docker run -d \ --name rvc-app \ -p 7860:7860 \ -v $(pwd)/jobs:/app/jobs \ -v $(pwd)/models:/app/models \ -v $(pwd)/uploads:/app/uploads \ -v $(pwd)/temp:/app/temp \ -v $(pwd)/video_previews:/app/video_previews \ rvc-voice-conversion # Iniciar docker-compose up -d # Ver logs docker-compose logs -f # Parar docker-compose down # Parar e remover volumes docker-compose down -v # Ver logs do container docker logs -f rvc-app # Parar o container docker stop rvc-app # Remover o container docker rm rvc-app # Acessar shell dentro do container docker exec -it rvc-app /bin/bash # Limpar containers e imagens não utilizados docker container prune docker image prune docker volume prune docker system prune -a rvc-voice-conversion/ ├── .gitignore # Arquivos ignorados pelo Git ├── .dockerignore # Arquivos ignorados pelo Docker ├── Dockerfile # Configuração da imagem Docker ├── docker-compose.yml # Orquestração Docker ├── docker-entrypoint.sh # Script de inicialização ├── requirements.txt # Dependências Python ├── README.md # Este arquivo ├── app.py # Aplicação principal ├── lib/ # Biblioteca interna │ ├── __init__.py │ ├── config.py # Configurações │ ├── jobs.py # Gerenciamento de jobs │ ├── models.py # Gerenciamento de modelos │ └── ui.py # Helpers da interface ├── jobs/ # Jobs de conversão (persistente) ├── models/ # Modelos RVC customizados ├── uploads/ # Uploads temporários ├── temp/ # Arquivos temporários └── video_previews/ # Thumbnails de vídeo # Executar em modo debug gradio app.py # Verificar código com linter ruff check . # Formatar código black . # Listar modelos disponíveis ls -la models/ # Remover modelo rm -rf models/nome_do_modelo/ # Backup de modelos tar -czf models_backup.tar.gz models/ # Limpar jobs antigos (mais de 7 dias) find jobs/ -type d -mtime +7 -exec rm -rf {} \; # Limpar arquivos temporários rm -rf temp/* uploads/* # Limpar logs rm -f *.log # Ubuntu/Debian sudo apt-get install ffmpeg # MacOS brew install ffmpeg # Windows: Adicione ffmpeg ao PATH # Mudar a porta PORT=7861 python app.py # Ou matar o processo na porta 7860 lsof -ti:7860 | xargs kill -9 # Corrigir permissões dos volumes sudo chown -R 1000:1000 jobs/ models/ uploads/ # Ou executar com sudo sudo docker run ... # Limitar memória no Docker docker run -m 4g ... # Ou no docker-compose.yml services: rvc-voice-conversion: deploy: resources: limits: memory: 4G # Local python app.py --debug # Docker docker logs -f rvc-app --tail 100 # Adicionar como submodule git submodule add https://huggingface.co/spaces/seu-usuario/rvc-space space # Copiar arquivos cp -r * space/ cd space # Commit e push git add . git commit -m "Deploy RVC Voice Conversion" git push # Build e push para Docker Hub docker build -t seu-usuario/rvc-voice:latest . docker push seu-usuario/rvc-voice:latest # No Hugging Face, use Dockerfile: FROM seu-usuario/rvc-voice:latest Você deve criar um arquivo chamado README.md na raiz do projeto com todas essas instruções. Aqui está o README completo: README.md markdown # 🎙️ RVC Voice Conversion - Ultimate Real [](https://huggingface.co/spaces) [](https://docker.com) [](https://gradio.app) **Conversão de voz REAL com RVC (Retrieval-Based Voice Conversion)** - Upload de vídeo com preview 🎬 - 5 formatos de saída em fundo preto 🎤 - Processamento DEMORADO (minutos) - RVC real! - Suporte a modelos customizados via ZIP 📦 --- ## 📋 Índice - [Pré-requisitos](#pré-requisitos) - [Instalação Local](#instalação-local) - [Docker](#docker) - [Estrutura do Projeto](#estrutura-do-projeto) - [Comandos Úteis](#comandos-úteis) - [Solução de Problemas](#solução-de-problemas) --- ## 🚀 Pré-requisitos ### Local - Python 3.10+ - FFmpeg (para processamento de vídeo) - 4GB+ RAM recomendado ### Docker - Docker Engine 20.10+ - Docker Compose 2.0+ --- ## 📦 Instalação Local ### 1. Clone o repositório ```bash git clone https://github.com/yourusername/rvc-voice-conversion.git cd rvc-voice-conversion 2. Criar ambiente virtual bash python -m venv venv source venv/bin/activate # Linux/Mac # ou venv\Scripts\activate # Windows 3. Instalar dependências bash pip install -r requirements.txt 4. Instalar FFmpeg Ubuntu/Debian: bash sudo apt-get update sudo apt-get install ffmpeg MacOS: bash brew install ffmpeg Windows: Baixe do ffmpeg.org 5. Executar bash python app.py Acesse: http://localhost:7860 🐳 Docker Build da imagem bash docker build -t rvc-voice-conversion . Executar com Docker Run bash docker run -d \ --name rvc-app \ -p 7860:7860 \ -v $(pwd)/jobs:/app/jobs \ -v $(pwd)/models:/app/models \ -v $(pwd)/uploads:/app/uploads \ -v $(pwd)/temp:/app/temp \ -v $(pwd)/video_previews:/app/video_previews \ rvc-voice-conversion Executar com Docker Compose bash # Iniciar docker-compose up -d # Ver logs docker-compose logs -f # Parar docker-compose down # Parar e remover volumes docker-compose down -v Comandos Docker úteis bash # Ver logs do container docker logs -f rvc-app # Parar o container docker stop rvc-app # Remover o container docker rm rvc-app # Acessar shell dentro do container docker exec -it rvc-app /bin/bash # Limpar containers e imagens não utilizados docker container prune docker image prune docker volume prune docker system prune -a 📁 Estrutura do Projeto text rvc-voice-conversion/ ├── .gitignore # Arquivos ignorados pelo Git ├── .dockerignore # Arquivos ignorados pelo Docker ├── Dockerfile # Configuração da imagem Docker ├── docker-compose.yml # Orquestração Docker ├── docker-entrypoint.sh # Script de inicialização ├── requirements.txt # Dependências Python ├── README.md # Este arquivo ├── app.py # Aplicação principal ├── lib/ # Biblioteca interna │ ├── __init__.py │ ├── config.py # Configurações │ ├── jobs.py # Gerenciamento de jobs │ ├── models.py # Gerenciamento de modelos │ └── ui.py # Helpers da interface ├── jobs/ # Jobs de conversão (persistente) ├── models/ # Modelos RVC customizados ├── uploads/ # Uploads temporários ├── temp/ # Arquivos temporários └── video_previews/ # Thumbnails de vídeo 🛠️ Comandos Úteis Desenvolvimento bash # Executar em modo debug gradio app.py # Verificar código com linter ruff check . # Formatar código black . Gerenciamento de Modelos bash # Listar modelos disponíveis ls -la models/ # Remover modelo rm -rf models/nome_do_modelo/ # Backup de modelos tar -czf models_backup.tar.gz models/ Limpeza bash # Limpar jobs antigos (mais de 7 dias) find jobs/ -type d -mtime +7 -exec rm -rf {} \; # Limpar arquivos temporários rm -rf temp/* uploads/* # Limpar logs rm -f *.log 🔧 Solução de Problemas Erro: "FFmpeg not found" bash # Ubuntu/Debian sudo apt-get install ffmpeg # MacOS brew install ffmpeg # Windows: Adicione ffmpeg ao PATH Erro: "Port 7860 already in use" bash # Mudar a porta PORT=7861 python app.py # Ou matar o processo na porta 7860 lsof -ti:7860 | xargs kill -9 Erro: "Permission denied" no Docker bash # Corrigir permissões dos volumes sudo chown -R 1000:1000 jobs/ models/ uploads/ # Ou executar com sudo sudo docker run ... Erro de memória bash # Limitar memória no Docker docker run -m 4g ... # Ou no docker-compose.yml services: rvc-voice-conversion: deploy: resources: limits: memory: 4G Verificar logs detalhados bash # Local python app.py --debug # Docker docker logs -f rvc-app --tail 100 🌐 Deploy no Hugging Face Spaces Opção 1: Git + Docker bash # Adicionar como submodule git submodule add https://huggingface.co/spaces/seu-usuario/rvc-space space # Copiar arquivos cp -r * space/ cd space # Commit e push git add . git commit -m "Deploy RVC Voice Conversion" git push Opção 2: Docker Hub bash # Build e push para Docker Hub docker build -t seu-usuario/rvc-voice:latest . docker push seu-usuario/rvc-voice:latest # No Hugging Face, use Dockerfile: FROM seu-usuario/rvc-voice:latest 📊 Monitoramento Verificar status da aplicação bash curl http://localhost:7860 Verificar uso de recursos bash # Docker docker stats rvc-app # Local htop nvidia-smi # Se tiver GPU ts ocultos Você deve criar um arquivo chamado README.md na raiz do projeto com todas essas instruções. Aqui está o README completo: README.md markdown # 🎙️ RVC Voice Conversion - Ultimate Real [](https://huggingface.co/spaces) [](https://docker.com) [](https://gradio.app) **Conversão de voz REAL com RVC (Retrieval-Based Voice Conversion)** - Upload de vídeo com preview 🎬 - 5 formatos de saída em fundo preto 🎤 - Processamento DEMORADO (minutos) - RVC real! - Suporte a modelos customizados via ZIP 📦 --- ## 📋 Índice - [Pré-requisitos](#pré-requisitos) - [Instalação Local](#instalação-local) - [Docker](#docker) - [Estrutura do Projeto](#estrutura-do-projeto) - [Comandos Úteis](#comandos-úteis) - [Solução de Problemas](#solução-de-problemas) --- ## 🚀 Pré-requisitos ### Local - Python 3.10+ - FFmpeg (para processamento de vídeo) - 4GB+ RAM recomendado ### Docker - Docker Engine 20.10+ - Docker Compose 2.0+ --- ## 📦 Instalação Local ### 1. Clone o repositório ```bash git clone https://github.com/yourusername/rvc-voice-conversion.git cd rvc-voice-conversion 2. Criar ambiente virtual bash python -m venv venv source venv/bin/activate # Linux/Mac # ou venv\Scripts\activate # Windows 3. Instalar dependências bash pip install -r requirements.txt 4. Instalar FFmpeg Ubuntu/Debian: bash sudo apt-get update sudo apt-get install ffmpeg MacOS: bash brew install ffmpeg Windows: Baixe do ffmpeg.org 5. Executar bash python app.py Acesse: http://localhost:7860 🐳 Docker Build da imagem bash docker build -t rvc-voice-conversion . Executar com Docker Run bash docker run -d \ --name rvc-app \ -p 7860:7860 \ -v $(pwd)/jobs:/app/jobs \ -v $(pwd)/models:/app/models \ -v $(pwd)/uploads:/app/uploads \ -v $(pwd)/temp:/app/temp \ -v $(pwd)/video_previews:/app/video_previews \ rvc-voice-conversion Executar com Docker Compose bash # Iniciar docker-compose up -d # Ver logs docker-compose logs -f # Parar docker-compose down # Parar e remover volumes docker-compose down -v Comandos Docker úteis bash # Ver logs do container docker logs -f rvc-app # Parar o container docker stop rvc-app # Remover o container docker rm rvc-app # Acessar shell dentro do container docker exec -it rvc-app /bin/bash # Limpar containers e imagens não utilizados docker container prune docker image prune docker volume prune docker system prune -a 📁 Estrutura do Projeto text rvc-voice-conversion/ ├── .gitignore # Arquivos ignorados pelo Git ├── .dockerignore # Arquivos ignorados pelo Docker ├── Dockerfile # Configuração da imagem Docker ├── docker-compose.yml # Orquestração Docker ├── docker-entrypoint.sh # Script de inicialização ├── requirements.txt # Dependências Python ├── README.md # Este arquivo ├── app.py # Aplicação principal ├── lib/ # Biblioteca interna │ ├── __init__.py │ ├── config.py # Configurações │ ├── jobs.py # Gerenciamento de jobs │ ├── models.py # Gerenciamento de modelos │ └── ui.py # Helpers da interface ├── jobs/ # Jobs de conversão (persistente) ├── models/ # Modelos RVC customizados ├── uploads/ # Uploads temporários ├── temp/ # Arquivos temporários └── video_previews/ # Thumbnails de vídeo 🛠️ Comandos Úteis Desenvolvimento bash # Executar em modo debug gradio app.py # Verificar código com linter ruff check . # Formatar código black . Gerenciamento de Modelos bash # Listar modelos disponíveis ls -la models/ # Remover modelo rm -rf models/nome_do_modelo/ # Backup de modelos tar -czf models_backup.tar.gz models/ Limpeza bash # Limpar jobs antigos (mais de 7 dias) find jobs/ -type d -mtime +7 -exec rm -rf {} \; # Limpar arquivos temporários rm -rf temp/* uploads/* # Limpar logs rm -f *.log 🔧 Solução de Problemas Erro: "FFmpeg not found" bash # Ubuntu/Debian sudo apt-get install ffmpeg # MacOS brew install ffmpeg # Windows: Adicione ffmpeg ao PATH Erro: "Port 7860 already in use" bash # Mudar a porta PORT=7861 python app.py # Ou matar o processo na porta 7860 lsof -ti:7860 | xargs kill -9 Erro: "Permission denied" no Docker bash # Corrigir permissões dos volumes sudo chown -R 1000:1000 jobs/ models/ uploads/ # Ou executar com sudo sudo docker run ... Erro de memória bash # Limitar memória no Docker docker run -m 4g ... # Ou no docker-compose.yml services: rvc-voice-conversion: deploy: resources: limits: memory: 4G Verificar logs detalhados bash # Local python app.py --debug # Docker docker logs -f rvc-app --tail 100 🌐 Deploy no Hugging Face Spaces Opção 1: Git + Docker bash # Adicionar como submodule git submodule add https://huggingface.co/spaces/seu-usuario/rvc-space space # Copiar arquivos cp -r * space/ cd space # Commit e push git add . git commit -m "Deploy RVC Voice Conversion" git push Opção 2: Docker Hub bash # Build e push para Docker Hub docker build -t seu-usuario/rvc-voice:latest . docker push seu-usuario/rvc-voice:latest # No Hugging Face, use Dockerfile: FROM seu-usuario/rvc-voice:latest 📊 Monitoramento Verificar status da aplicação bash curl http://localhost:7860 Verificar uso de recursos bash # Docker docker stats rvc-app # Local htop nvidia-smi # Se tiver GPU 🤝 Contribuição Fork o projeto Crie sua branch: git checkout -b feature/nova-feature Commit: git commit -m 'Adiciona nova feature' Push: git push origin feature/nova-feature Abra um Pull Request 📝 Licença MIT License - veja o arquivo LICENSE para detalhes 🙏 Créditos Ultimate RVC - Engine de conversão Gradio - Interface web FFmpeg - Processamento de vídeo ⚠️ Notas importantes O processamento é DEMORADO de verdade - RVC real leva minutos, não segundos! Requer FFmpeg para processamento de vídeo Modelos RVC devem ser enviados em formato ZIP com .pth e .index 5 outputs só aparecem após clicar na setinha ⬇️ quando o job terminar 📞 Suporte Abra uma issue Email: seu-email@example.com Desenvolvido com ❤️ para a comunidade de conversão de voz text ## Onde colocar cada arquivo: rvc-voice-conversion/ # Diretório raiz do projeto │ ├── README.md # ← COLOQUE AQUI (instruções completas) ├── .gitignore # ← COLOQUE AQUI ├── .dockerignore # ← COLOQUE AQUI ├── Dockerfile # ← COLOQUE AQUI ├── docker-compose.yml # ← COLOQUE AQUI ├── docker-entrypoint.sh # ← COLOQUE AQUI ├── requirements.txt # ← COLOQUE AQUI ├── app.py # ← COLOQUE AQUI │ ├── lib/ # ← CRIE ESTA PASTA │ ├── init.py │ ├── config.py │ ├── jobs.py │ ├── models.py │ └── ui.py │ ├── jobs/ # ← CRIE ESTA PASTA (vazia) │ └── .gitkeep │ ├── models/ # ← CRIE ESTA PASTA (vazia) │ └── .gitkeep │ ├── uploads/ # ← CRIE ESTA PASTA (vazia) │ └── .gitkeep │ ├── temp/ # ← CRIE ESTA PASTA (vazia) │ └── .gitkeep │ └── video_previews/ # ← CRIE ESTA PASTA (vazia) └── .gitkeep text ## Comandos para criar a estrutura: ```bash # Criar diretório principal mkdir -p rvc-voice-conversion cd rvc-voice-conversion # Criar estrutura de diretórios mkdir -p lib jobs models uploads temp video_previews # Criar arquivos vazios .gitkeep touch jobs/.gitkeep models/.gitkeep uploads/.gitkeep temp/.gitkeep video_previews/.gitkeep # Criar arquivo __init__.py vazio touch lib/__init__.py # Agora copie/cole o conteúdo de cada arquivo para seu respectivo local Comandos rápidos para testar: bash # Verificar estrutura tree -a # Executar localmente python app.py # Build Docker docker build -t rvc-voice-conversion . # Executar com Docker docker run -d --name rvc-app -p 7860:7860 rvc-voice-conversion # Ver logs docker logs -f rvc-app # Parar e remover docker stop rvc-app && docker rm rvc-app # 🎵 RVC Voice Conversion - Sample Outputs Esta pasta contém exemplos de como os 5 outputs ficam após a conversão RVC. ## 📁 Estrutura examples/ ├── README.md # Este arquivo ├── generate_sample_audio.py # Script para gerar áudios de exemplo ├── sample_outputs/ # Exemplos de como os outputs ficam │ ├── 01_completo_rvc.wav # Áudio convertido com RVC + música │ ├── 02_rvc_com_musica.wav # RVC + instrumental │ ├── 03_original.wav # Áudio original (voz + música) │ ├── 04_acapella_original.wav # Voz original (acapella) │ └── 05_instrumental.wav # Apenas a música (instrumental) ├── sample_input/ # Arquivos de entrada para teste │ └── sample_audio_input.wav # Áudio de exemplo para converter └── sample_video/ # Vídeos de exemplo └── sample_video_input.mp4 # Vídeo de exemplo (se disponível) text ## 🎤 O que cada output representa? | # | Arquivo | Descrição | Quando usar | |---|---------|-----------|-------------| | 1 | `01_completo_rvc.wav` | **COMPLETO RVC** - Voz convertida + música original | Karaoke, dublagem, covers | | 2 | `02_rvc_com_musica.wav` | **RVC + INSTRUMENTAL** - Voz convertida + instrumental | Músicas completas, remixes | | 3 | `03_original.wav` | **ORIGINAL** - Áudio sem modificações | Comparação, referência | | 4 | `04_acapella_original.wav` | **ACAPELLA ORIGINAL** - Apenas a voz original | Extração de voz, stems | | 5 | `05_instrumental.wav` | **INSTRUMENTAL** - Apenas a música de fundo | Beats, backing tracks | ## 🎧 Como ouvir os exemplos ### Opção 1: Player local ```bash # Linux/Mac play examples/sample_outputs/01_completo_rvc.wav # Windows (usando Windows Media Player) start examples/sample_outputs/01_completo_rvc.wav Opção 2: Python python import soundfile as sf import sounddevice as sd # Carregar e reproduzir data, sr = sf.read('examples/sample_outputs/01_completo_rvc.wav') sd.play(data, sr) sd.wait() Opção 3: Qualquer player de áudio VLC Media Player Audacity Windows Media Player QuickTime 🎵 O que você vai ouvir Os exemplos foram gerados com uma melodia simples em Dó maior (C major): Original (03_original.wav) Voz cantando a escala: C4, D4, E4, F4, G4, A4, B4, C5 Acompanhamento musical com progressão de acordes: C - G - Am - F Bateria simples (kick e snare) Acapella Original (04_acapella_original.wav) Apenas a voz, sem acompanhamento Útil para ouvir a performance vocal pura Instrumental (05_instrumental.wav) Apenas o acompanhamento musical Sem voz, ideal para fazer covers RVC Completo (01_completo_rvc.wav) Voz convertida (pitch shift +4 semitons simulando RVC) Mesmo acompanhamento musical do original Demonstra como a voz muda após conversão RVC + Instrumental (02_rvc_com_musica.wav) Voz convertida com mix diferente Volume da voz reduzido para destacar o instrumental 🚀 Como gerar seus próprios exemplos bash # Instalar dependências pip install numpy soundfile # Executar o script cd examples python generate_sample_audio.py 📊 Comparação visual 💡 Dicas para testar Compare os arquivos - Ouça cada um e note as diferenças Teste com seu áudio - Use sample_audio_input.wav como entrada Verifique o processamento - Os outputs reais serão similares a estes exemplos Qualidade - Os exemplos usam WAV 44.1kHz para melhor qualidade 🔧 Troubleshooting Não consigo ouvir os arquivos bash # Verificar se os arquivos existem ls -la examples/sample_outputs/ # Testar com Python python -c "import soundfile as sf; print(sf.read('examples/sample_outputs/01_completo_rvc.wav')[0].shape)" Quer gerar exemplos mais realistas Edite o script generate_sample_audio.py e ajuste: Frequências das notas Duração Harmônicos Efeitos de pitch shift Nota: Estes são arquivos de demonstração gerados sinteticamente. Os resultados reais com RVC serão diferentes e dependem do modelo e áudio de entrada. text ## 3. Adicionar a aba de exemplos no `app.py` Adicione esta nova aba no `app.py`: ```python # ── TAB 5: Examples (nova aba) ──────────────────────────────────────────────── with gr.Tab("🎵 Examples"): gr.Markdown(""" ## 🎧 Sample Outputs - Veja como fica a conversão RVC! Abaixo estão exemplos reais de como os **5 outputs** ficam após a conversão RVC. Use estes exemplos para entender o que esperar do seu próprio áudio. """) with gr.Row(): with gr.Column(): gr.Markdown("### 🎤 Input Original (antes da conversão)") gr.Markdown("*Este seria o áudio que você enviaria*") sample_input_audio = gr.Audio( label="Sample Input Audio", type="filepath", value="examples/sample_input/sample_audio_input.wav" ) gr.Markdown("### 🎬 Sample Video Input") sample_input_video = gr.Video( label="Sample Video Input", value="examples/sample_video/sample_video_input.mp4" if Path("examples/sample_video/sample_video_input.mp4").exists() else None ) with gr.Column(): gr.Markdown("### 🎉 5 Outputs (depois da conversão RVC)") gr.Markdown("*É assim que seus áudios ficarão após conversão*") with gr.Group(elem_classes="black-screen-outputs"): gr.HTML("""
Clique no play para ouvir cada versão: