--- title: RVC Voice Conversion emoji: 🏃 colorFrom: purple colorTo: indigo sdk: gradio app_file: app.py pinned: false license: mit --- # 🎙️ RVC Voice Conversion - Ultimate Real [![Hugging Face Spaces](https://img.shields.io/badge/Hugging%20Face-Spaces-yellow)](https://huggingface.co/spaces) [![Docker](https://img.shields.io/badge/Docker-Ready-blue)](https://docker.com) [![Gradio](https://img.shields.io/badge/Gradio-4.0+-orange)](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 [![Hugging Face Spaces](https://img.shields.io/badge/Hugging%20Face-Spaces-yellow)](https://huggingface.co/spaces) [![Docker](https://img.shields.io/badge/Docker-Ready-blue)](https://docker.com) [![Gradio](https://img.shields.io/badge/Gradio-4.0+-orange)](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 [![Hugging Face Spaces](https://img.shields.io/badge/Hugging%20Face-Spaces-yellow)](https://huggingface.co/spaces) [![Docker](https://img.shields.io/badge/Docker-Ready-blue)](https://docker.com) [![Gradio](https://img.shields.io/badge/Gradio-4.0+-orange)](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("""

🎉 EXEMPLO DE 5 OUTPUTS 🎉

Clique no play para ouvir cada versão:

""") with gr.Row(): with gr.Column(): gr.Audio(label="🎤 COMPLETO (RVC)", type="filepath", value="examples/sample_outputs/01_completo_rvc.wav") gr.Audio(label="🎵 RVC + INSTRUMENTAL", type="filepath", value="examples/sample_outputs/02_rvc_com_musica.wav") with gr.Column(): gr.Audio(label="📀 ORIGINAL", type="filepath", value="examples/sample_outputs/03_original.wav") gr.Audio(label="🎙️ ACAPELLA", type="filepath", value="examples/sample_outputs/04_acapella_original.wav") gr.Audio(label="🎼 INSTRUMENTAL", type="filepath", value="examples/sample_outputs/05_instrumental.wav") gr.Markdown(""" --- ### 📖 Entendendo cada output: | Arquivo | Descrição | Melhor para | |---------|-----------|-------------| | 🎤 **COMPLETO (RVC)** | Áudio convertido com a voz do modelo RVC + música original | Karaoke, dublagem | | 🎵 **RVC + INSTRUMENTAL** | Voz convertida + trilha instrumental | Músicas completas | | 📀 **ORIGINAL** | Seu áudio original sem nenhuma modificação | Comparação | | 🎙️ **ACAPELLA** | Apenas a voz original, sem música | Extração de voz | | 🎼 **INSTRUMENTAL** | Apenas a música de fundo | Beats, backing tracks | ### 💡 Como usar os exemplos: 1. **Ouça o input original** - É assim que seu áudio soa antes 2. **Ouça os 5 outputs** - É assim que ficará após conversão RVC 3. **Compare as diferenças** - Note como a voz muda com o modelo RVC 4. **Teste com seu áudio** - Use a aba "Convert" para converter seu próprio áudio ### 🎯 Por que demora? O RVC (Retrieval-Based Voice Conversion) é um modelo de IA que: - Processa o áudio em tempo real - Leva de 30 segundos a 5 minutos dependendo do tamanho - **Não é instantâneo** - aguarde o processamento! ### 📊 Status dos jobs: - ⏰ **Esperando** - Na fila, aguarde sua vez - ⏳ **Convertendo** - Processamento em andamento (ampulheta) - ✅ **Concluído** - Clique na setinha ⬇️ para ver os 5 outputs --- *Estes são exemplos gerados sinteticamente. Os resultados reais dependem do modelo RVC e do áudio de entrada.* """) 4. Script para baixar exemplos reais (opcional) Crie examples/download_real_samples.py: python #!/usr/bin/env python3 """ Download real RVC sample outputs from online sources Opcional - para demonstração mais realista """ import os import requests from pathlib import Path # URLs de exemplo (substitua por URLs reais de samples RVC) SAMPLE_URLS = { "01_completo_rvc.wav": "https://example.com/sample_complete.wav", "02_rvc_com_musica.wav": "https://example.com/sample_rvc_music.wav", "03_original.wav": "https://example.com/sample_original.wav", "04_acapella_original.wav": "https://example.com/sample_acapella.wav", "05_instrumental.wav": "https://example.com/sample_instrumental.wav", } def download_samples(output_dir): """Download sample files from URLs""" output_dir = Path(output_dir) output_dir.mkdir(parents=True, exist_ok=True) print("📥 Downloading sample RVC outputs...") for filename, url in SAMPLE_URLS.items(): output_path = output_dir / filename if output_path.exists(): print(f" ⏭️ {filename} already exists, skipping") continue try: response = requests.get(url, stream=True) if response.status_code == 200: with open(output_path, 'wb') as f: for chunk in response.iter_content(chunk_size=8192): f.write(chunk) print(f" ✅ Downloaded: {filename}") else: print(f" ❌ Failed: {filename} (HTTP {response.status_code})") except Exception as e: print(f" ❌ Error downloading {filename}: {e}") print("\n💡 If downloads failed, run generate_sample_audio.py instead") if __name__ == "__main__": download_samples(Path(__file__).parent / "sample_outputs") 5. Atualizar o .gitignore para incluir exemplos gitignore # Examples (mantém os exemplos, mas ignora gerados) examples/sample_outputs/generated_* examples/temp/ !examples/sample_outputs/01_completo_rvc.wav !examples/sample_outputs/02_rvc_com_musica.wav !examples/sample_outputs/03_original.wav !examples/sample_outputs/04_acapella_original.wav !examples/sample_outputs/05_instrumental.wav !examples/sample_input/sample_audio_input.wav Como gerar os exemplos: bash # Instalar dependências pip install numpy soundfile # Gerar os áudios de exemplo cd examples python generate_sample_audio.py # Verificar os arquivos gerados ls -la sample_outputs/ # Testar se os arquivos estão ok python -c "import soundfile as sf; print(sf.read('sample_outputs/01_completo_rvc.wav')[0].shape)" Estrutura final: text rvc-voice-conversion/ ├── app.py # Aplicação principal ├── examples/ # PASTA DE EXEMPLOS │ ├── README.md # Documentação dos exemplos │ ├── generate_sample_audio.py # Script para gerar exemplos │ ├── download_real_samples.py # Opcional: baixar samples reais │ ├── sample_outputs/ # 5 outputs de exemplo │ │ ├── 01_completo_rvc.wav │ │ ├── 02_rvc_com_musica.wav │ │ ├── 03_original.wav │ │ ├── 04_acapella_original.wav │ │ └── 05_instrumental.wav │ └── sample_input/ # Inputs de exemplo │ └── sample_audio_input.wav ├── lib/ # Biblioteca │ ├── __init__.py │ ├── config.py │ ├── jobs.py │ ├── models.py │ └── ui.py ├── jobs/ # Jobs processados ├── models/ # Modelos RVC ├── uploads/ # Uploads temporários └── requirements.txt # Dependências