Desenvolvimento e uso do pipeline de dublagem automática…
INEMA
● Pronto! Integração completa. Resumo:
Novos parâmetros disponíveis:
| Parâmetro | Descrição | Padrão | |---------------------|---------------------------------------------|----- ---------------------| | --asr | Engine de transcrição (whisper ou parakeet) | whisper | | --parakeet-model | Modelo Parakeet | nvidia/parakeet-tdt-1.1b | | --segment-pause | Pausa mínima para novo segmento (segundos) | 0.3 | | --segment-max-words | Máximo de palavras por segmento | 15 |
Uso:
# Whisper (padrão - não muda nada) python dublar_pro_v4.py --in video.mp4 --tgt pt --tradutor ollama
# Parakeet (mais rápido) python dublar_pro_v4.py --in video.mp4 --tgt pt --asr parakeet --tradutor ollama
# Parakeet com segmentação customizada python dublar_pro_v4.py --in video.mp4 --tgt pt --asr parakeet --segment-pause 0.5 --segment-max-words 20
O que foi mantido:
- Whisper continua como padrão
- Todos os parâmetros existentes funcionam igual
- Fallback automático para Whisper se NeMo não estiver instalado
large-v3-turbo | ⭐⭐⭐⭐ | 2x mais rápido | Grátis | Novo, otimizado | | Parakeet (NVIDIA) | ⭐⭐⭐⭐⭐ | Muito rápido | Grátis | Requer GPU NVIDIA |
Recomendação: Testar Parakeet da NVIDIA - você tem GB10, seria perfeito.
- Tradução (LLM) - Alternativas ao Ollama/llama3
| Modelo | Qualidade | Velocidade | Custo | Observação | |-----------------------|-----------|--------------|---------------------- -|---------------------------| | Ollama + llama3 | ⭐⭐⭐ | Lento | Grátis | Você está usando | | Ollama + llama3.1:70b | ⭐⭐⭐⭐ | Muito lento | Grátis | Precisa muita RAM | | Ollama + mistral | ⭐⭐⭐⭐ | Médio | Grátis | Bom para tradução | | Ollama + qwen2.5:14b | ⭐⭐⭐⭐⭐ | Médio | Grátis | Excelente em PT-BR | | Claude API | ⭐⭐⭐⭐⭐ | Rápido | Pago ($3/1M tokens) | O melhor | | GPT-4o | ⭐⭐⭐⭐⭐ | Rápido | Pago ($2.5/1M tokens) | Muito bom | | DeepL API | ⭐⭐⭐⭐⭐ | Muito rápido | Pago ($5.49/1M chars) | Especializado em tradução |
Recomendação: Testar qwen2.5:14b no Ollama - é muito melhor que llama3 para português.
- TTS - Alternativas ao Edge-TTS
| Modelo | Naturalidade | Velocidade | Custo | Observação | |------------------|--------------|------------|-----------------------|-- -------------------| | Edge-TTS | ⭐⭐⭐ | Rápido | Grátis | Você está usando | | XTTS v2 | ⭐⭐⭐⭐ | Lento | Grátis | Clona voz | | ElevenLabs | ⭐⭐⭐⭐⭐ | Rápido | Pago ($0.30/1K chars) | O melhor do mercado | | Azure Neural TTS | ⭐⭐⭐⭐⭐ | Rápido | Pago ($15/1M chars) | Muito natural | | Fish Speech | ⭐⭐⭐⭐ | Médio | Grátis | Zero-shot cloning | | Coqui XTTS | ⭐⭐⭐⭐ | Lento | Grátis | Open source | | F5-TTS | ⭐⭐⭐⭐⭐ | Médio | Grátis | Novo, muito bom |
Recomendação: Testar F5-TTS - open source, qualidade próxima ao ElevenLabs.
Resumo - O que testar:
| Componente | Atual | Sugestão Grátis | Sugestão Paga |
|---|---|---|---|
| ASR | Whisper large-v3 | Parakeet (NVIDIA) | Deepgram |
| Tradução | llama3 | qwen2.5:14b | Claude/DeepL |
| TTS | Edge-TTS | F5-TTS | ElevenLabs |
Quer que eu implemente suporte a algum desses?
● Boa pergunta! Vou fazer uma análise do estado da arte atual:
- Transcrição (ASR) - Alternativas ao Whisper
| Modelo | Qualidade | Velocidade | Custo | Observação | |-------------------------------|-----------|----------------|------------ --------|--------------------| | Whisper large-v3 | ⭐⭐⭐⭐ | Médio | Grátis | Você está usando | | Deepgram Nova-2 | ⭐⭐⭐⭐⭐ | Muito rápido | Pago ($0.0043/min) | Melhor segmentação | | AssemblyAI | ⭐⭐⭐⭐⭐ | Rápido | Pago ($0.006/min) | Ótima pontuação | | Faster-Whisper large-v3-turbo | ⭐⭐⭐⭐ | 2x mais rápido | Grátis | Novo, otimizado | | Parakeet (NVIDIA) | ⭐⭐⭐⭐⭐ | Muito rápido | Grátis | Requer GPU NVIDIA |
Recomendação: Testar Parakeet da NVIDIA - você tem GB10, seria perfeito.
- Tradução (LLM) - Alternativas ao Ollama/llama3
| Modelo | Qualidade | Velocidade | Custo | Observação | |-----------------------|-----------|--------------|---------------------- -|---------------------------| | Ollama + llama3 | ⭐⭐⭐ | Lento | Grátis | Você está usando | | Ollama + llama3.1:70b | ⭐⭐⭐⭐ | Muito lento | Grátis | Precisa muita RAM | | Ollama + mistral | ⭐⭐⭐⭐ | Médio | Grátis | Bom para tradução | | Ollama + qwen2.5:14b | ⭐⭐⭐⭐⭐ | Médio | Grátis | Excelente em PT-BR | | Claude API | ⭐⭐⭐⭐⭐ | Rápido | Pago ($3/1M tokens) | O melhor | | GPT-4o | ⭐⭐⭐⭐⭐ | Rápido | Pago ($2.5/1M tokens) | Muito bom | | DeepL API | ⭐⭐⭐⭐⭐ | Muito rápido | Pago ($5.49/1M chars) | Especializado em tradução |
Recomendação: Testar qwen2.5:14b no Ollama - é muito melhor que llama3 para português.
- TTS - Alternativas ao Edge-TTS
| Modelo | Naturalidade | Velocidade | Custo | Observação | |------------------|--------------|------------|-----------------------|-- -------------------| | Edge-TTS | ⭐⭐⭐ | Rápido | Grátis | Você está usando | | XTTS v2 | ⭐⭐⭐⭐ | Lento | Grátis | Clona voz | | ElevenLabs | ⭐⭐⭐⭐⭐ | Rápido | Pago ($0.30/1K chars) | O melhor do mercado | | Azure Neural TTS | ⭐⭐⭐⭐⭐ | Rápido | Pago ($15/1M chars) | Muito natural | | Fish Speech | ⭐⭐⭐⭐ | Médio | Grátis | Zero-shot cloning | | Coqui XTTS | ⭐⭐⭐⭐ | Lento | Grátis | Open source | | F5-TTS | ⭐⭐⭐⭐⭐ | Médio | Grátis | Novo, muito bom |
Recomendação: Testar F5-TTS - open source, qualidade próxima ao ElevenLabs.
Resumo - O que testar:
| Componente | Atual | Sugestão Grátis | Sugestão Paga |
|---|---|---|---|
| ASR | Whisper large-v3 | Parakeet (NVIDIA) | Deepgram |
| Tradução | llama3 | qwen2.5:14b | Claude/DeepL |
| TTS | Edge-TTS | F5-TTS | ElevenLabs |
Quer que eu implemente suporte a algum desses?● Boa pergunta! Vou fazer uma análise do estado da arte atual:
- Transcrição (ASR) - Alternativas ao Whisper
| Modelo | Qualidade | Velocidade | Custo | Observação | |-------------------------------|-----------|----------------|------------ --------|--------------------| | Whisper large-v3 | ⭐⭐⭐⭐ | Médio | Grátis | Você está usando | | Deepgram Nova-2 | ⭐⭐⭐⭐⭐ | Muito rápido | Pago ($0.0043/min) | Melhor segmentação | | AssemblyAI | ⭐⭐⭐⭐⭐ | Rápido | Pago ($0.006/min) | Ótima pontuação | | Faster-Whisper
python dublar_pro.py --in Videos/nvlink.mp4 --src en --tgt pt --large-model --use-rubberband
com o ollama ficou ruim a voz
=== Metricas de Qualidade ===
Segmentos totais: 2219 Sincronizacao: - Dentro de 5%: 2196 - Dentro de 10%: 21 - Dentro de 20%: 2 - Acima de 20%: 0 Traducao: - Compressao media: 259.74%
============================================================ DUBLAGEM CONCLUIDA! ============================================================
Saidas: Video: dublado/youtube_video_dublado.mp4 Legendas: dub_work/asr_trad.srt Logs: dub_work/logs.json Metricas: dub_work/quality_metrics.json
Intermediarios em: dub_work/
python dublar_pro_v4.py --in youtube.com/watch ↗ --tgt pt --tradutor ollama
● O formato básico de uso:
# Ativar ambiente source venv/bin/activate
# Uso básico (auto-detecta idioma origem) python dublar_pro_v4.py --in video.mp4 --tgt pt
# Especificando idioma origem python dublar_pro_v4.py --in video.mp4 --src en --tgt pt
# URL do YouTube python dublar_pro_v4.py --in "youtube.com/watch ↗" --tgt pt
Presets de qualidade: --qualidade rapido # Edge + M2M100 + Whisper small --qualidade balanceado # (padrão) --qualidade maximo # Ollama + Whisper large
Opções comuns: | Parâmetro | Descrição | Default | |------------|----------------------|-------------| | --in | Vídeo ou URL | obrigatório | | --src | Idioma origem | auto | | --tgt | Idioma destino | obrigatório | | --tts | edge/bark/piper/xtts | edge | | --tradutor | m2m100/ollama | m2m100 | | --voice | Voz específica | auto | | --sync | none/fit/pad/smart | smart |
Exemplos avançados: # Tradução com Ollama (mais natural) python dublar_pro_v4.py --in video.mp4 --tgt pt --tradutor ollama
# Voz feminina python dublar_pro_v4.py --in video.mp4 --tgt pt --voice pt-BR-FranciscaNeural
# Clonar voz do vídeo original python dublar_pro_v4.py --in video.mp4 --tgt pt --clonar-voz
# Múltiplos falantes python dublar_pro_v4.py --in video.mp4 --tgt pt --diarize
────────────────────────────────────────────────────────────────────────────────
──────────────────────────────────────────────────────────────────────────────── ⏵⏵ accept edits on (shift+tab to cycle)
● Pronto! Implementada a detecção automática de idioma:
Mudanças: 1. --src agora é opcional (default: None) 2. Quando omitido, Whisper detecta automaticamente o idioma 3. Exibe idioma detectado e probabilidade na saída 4. Documentação atualizada
Uso simplificado: # Antes (obrigatório especificar idioma) python dublar_pro_v4.py --in video.mp4 --src en --tgt pt
# Agora (auto-detecção) python dublar_pro_v4.py --in video.mp4 --tgt pt
A transcrição mostrará algo como: [INFO] Idioma origem: AUTO-DETECTAR [INFO] Idioma detectado: en (probabilidade: 99.2%) [INFO] Usando idioma detectado: en
Passo a passo completo:
- Instalar Ollama
curl -fsSL ollama.com/install.sh ↗ | sh
- Baixar um modelo (escolha um):
# Llama 3 (Meta) - recomendado, bom para tradução ollama pull llama3
# Ou Gemma 2 (Google) - mais leve ollama pull gemma2
# Ou Mistral - também bom ollama pull mistral
- Iniciar o servidor
ollama serve &
- Usar no dublar
python dublar_pro_v4.py --in video.mp4 --src en --tgt pt --tradutor ollama --modelo llama3
Resumo
| Etapa | Comando | O que faz | |---------------|-----------------------------------------------|--------- ---------------| | Instalar | curl -fsSL ollama.com/install.sh ↗ | sh | Instala o Ollama | | Baixar modelo | ollama pull llama3 | Baixa o Llama 3 (~4GB) | | Iniciar | ollama serve & | Liga o servidor | | Usar | --tradutor ollama | Tradução via LLM |
Quer que eu instale e configure tudo?
Para deixar completo agora:
1. Iniciar Ollama (em outro terminal)⌗
ollama serve
2. Instalar pyannote (diarizacao)⌗
pip install pyannote.audio
Sobre o XTTS
Não funciona no Python 3.13. Alternativas:
- Ignorar - Use Edge TTS (já é muito bom e consistente)
- Ambiente separado - Criar conda com Python 3.11 só para XTTS
Quer que eu instale o pyannote agora?
● Dublar Pro v4 - COMPLETO!
Todas as 4 fases implementadas:
Arquivos criados
| Arquivo | Descricao |
|---|---|
| dublar_pro_v4.py | Pipeline principal (~2200 linhas) |
| test_v4.py | Script de teste |
| README_V4.md | Documentacao |
| PLANO_V4.md | Plano de desenvolvimento |
| requirements.txt | Dependencias atualizadas |
Features implementadas
| Fase | Feature | Status |
|---|---|---|
| 1 | Normalizacao audio segura | ✅ |
| 1 | max_length 1024 | ✅ |
| 1 | maxstretch 2.0 | ✅ |
| 1 | Seed fixa + Edge padrao | ✅ |
| 2 | Contexto na traducao | ✅ |
| 2 | CPS adaptativo | ✅ |
| 2 | Ollama LLM | ✅ |
| 3 | Download YouTube | ✅ |
| 3 | Clonagem voz (XTTS) | ✅ |
| 3 | Diarizacao | ✅ |
| 4 | Script de teste | ✅ |
| 4 | Documentacao | ✅ |
Como usar
# Testar instalacao python test_v4.py
# Uso basico python dublar_pro_v4.py --in video.mp4 --src en --tgt pt
# YouTube python dublar_pro_v4.py --in "youtube.com/watch ↗" --src en --tgt pt
# Maxima qualidade python dublar_pro_v4.py --in video.mp4 --src en --tgt pt --qualidade maximo
Basico (Edge TTS + M2M100)⌗
python dublar_pro_v4.py --in video.mp4 --src en --tgt pt
YouTube direto⌗
python dublar_pro_v4.py --in "youtube.com/watch ↗" --src en
--tgt pt
Maxima qualidade⌗
python dublar_pro_v4.py --in video.mp4 --src en --tgt pt --qualidade
maximo
Com Ollama⌗
python dublar_pro_v4.py --in video.mp4 --src en --tgt pt --tradutor ollama
--modelo llama3
v4
============================================================ === Métricas de Qualidade === ============================================================ Segmentos totais: 2747 Sincronização: - Dentro de 5%: 1451 - Dentro de 10%: 370 - Dentro de 20%: 367 - Acima de 20%: 559 Tradução: - Compressão média: 79.81%
============================================================ DUBLAGEM CONCLUÍDA! ============================================================
Saídas: Vídeo: dublado/ccmaster2_dublado.mp4 Legendas: dub_work/asr_trad.srt Logs: dub_work/logs.json Métricas: dub_work/quality_metrics.json
Intermediários em: dub_work/
(base) nmaldaner@spark-922b:~/projetos/dublar2$
Instalar⌗
pip install yt-dlp
# Download básico (melhor qualidade) yt-dlp "youtube.com/watch ↗"
# Só vídeo MP4 com áudio yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]" "URL"
Escolher nome de saída⌗
yt-dlp -o "meu_video.mp4" "URL"
ffmpeg -i ccmaster2.mp4.webm -c:v copy -c:a copy ccmaster2.mp4
python dublar_pro.py --in Videos/nvlink.mp4 --src en --tgt pt --large-model --use-rubberband --tts edge
1