Spaces:
Running
Running
| 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(""" | |
| <div style="background: #000000; text-align: center; padding: 15px; border-radius: 10px;"> | |
| <h3 style="color: #ff6b6b;">🎉 EXEMPLO DE 5 OUTPUTS 🎉</h3> | |
| <p style="color: #aaa;">Clique no play para ouvir cada versão:</p> | |
| </div> | |
| """) | |
| 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 |