Ir para a navegação

Tradução/Dublagem

Tradução/Dublagem

Se você precisa apenas de tradução padrão com sincronização labial, o fluxo de chamada única dubParams é mais simples - veja o Guia de Dublagem. Este tutorial é para usuários que desejam controle detalhado sobre a orquestração entre ElevenLabs, OpenAI e Sync Labs.

A tradução e dublagem de vídeo permite converter seu conteúdo para diferentes idiomas mantendo movimentos labiais naturais e qualidade de voz. Este tutorial mostrará como traduzir e dublar vídeos programaticamente, tornando seu conteúdo acessível para audiências globais.

Siga estes passos para executar o exemplo de tradução/dublagem:

1

Clonar Repositório Github

Clone o repositório sync-examples.

git clone https://github.com/synchronicity-labs/sync-examples.git
cd sync-examples/translation/python
2

Configurar Ambiente

Crie um ambiente virtual e instale as dependências necessárias:

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
3

Configurar Entradas e Configurações

Modifique o arquivo args.py para configurar as seguintes entradas e configurações:

  • SYNCLABS_API_KEY: Sua chave de API para Sync Labs
  • ELEVENLABS_API_KEY: Sua chave de API para ElevenLabs
  • OPENAI_API_KEY: Sua chave de API para OpenAI

Configurações obrigatórias:

  • input_vid_url: URL do vídeo a ser traduzido/dublado.
  • target_language: Idioma alvo para tradução (exemplo: “Spanish”)
  • output_json_path: Caminho do arquivo para salvar os dados JSON de saída

Configurações opcionais:

  • source_language: Idioma de origem do vídeo (deixe em branco para detecção automática)
  • voice_id: ID da voz ElevenLabs (deixe em branco para clonar automaticamente a voz do vídeo de entrada)
  • sync_mode: Modo para sincronizar texto com vídeo quando os comprimentos não coincidem (padrão: “bounce”)
  • lipsync_model: Modelo lipsync do Sync.so (padrão: “lipsync-2”)
  • tts_model: Modelo de texto para fala da ElevenLabs (padrão: “eleven_multilingual_v2”)
  • gpt_model: Modelo GPT da OpenAI para tradução (padrão: “gpt-3.5-turbo”)
  • transcription_model: Modelo OpenAI para transcrição (padrão: “whisper-1”)
  • segment_start: Tempo inicial do segmento do vídeo para traduzir/dublar (em segundos, -1 para o vídeo inteiro)
  • segment_end: Tempo final do segmento do vídeo para traduzir/dublar (em segundos, -1 para o vídeo inteiro)
  • O arquivo de vídeo de entrada deve conter áudio que será usado para clonagem de voz, caso um voice ID não seja fornecido.
  • Consulte ElevenLabs e OpenAI para mais informações sobre idiomas e modelos suportados.
4

Traduzir/Dublar Vídeos

Execute o script Python:

python main.py

Este comando iniciará o processo de tradução/dublagem do vídeo com base na configuração em args.py.

Ao concluir, um arquivo JSON será salvo no caminho especificado em output_json_path, contendo as seguintes informações:

  • input_video: URL do vídeo original processado
  • generated_audio: URL do arquivo de áudio traduzido
  • lipsync_jobID: ID único do trabalho de sincronização labial
  • outputUrl: URL para acessar o vídeo final traduzido/dublado
  • voice_id: ID da voz usada na tradução (gerado automaticamente se não fornecido)
  • Hospedagem Temporária de Arquivos: Este código usa o serviço temporário de hospedagem de arquivos Uguu para gerar URLs dos arquivos de áudio TTS. Essas URLs expiram após 3 horas. Para usar seu próprio serviço de hospedagem, modifique upload_file_uguu() em FileProcessor.py.
  • Polling de Job: A espera pela conclusão do job de lipsync expira após 60 minutos. Ajuste o limite de timeout em LipSyncService.py ou use fetch_updates.py para recuperar URLs de saída usando o output_json_path.

Recursos Relacionados