Saltar a la navegación

Traducción y doblaje

Traducción/Doblaje

Si solo necesitas traducción de idioma estándar con lipsync, el flujo de una sola llamada dubParams es más simple. Consulta la guía de Doblaje. Este tutorial es para usuarios que quieren control detallado de la orquestación entre ElevenLabs, OpenAI y Sync Labs.

La traducción y el doblaje de video te permite convertir tu contenido a distintos idiomas manteniendo movimientos labiales naturales y calidad de voz. Este tutorial te mostrará cómo traducir y doblar videos de forma programática para que tu contenido sea accesible a audiencias globales.

Sigue estos pasos para ejecutar el ejemplo de traducción/doblaje:

1

Clonar repositorio de Github

Clona el repositorio sync-examples.

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

Configurar entorno

Crea un entorno virtual e instala las dependencias requeridas:

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

Configurar entradas y ajustes

Modifica el archivo args.py para configurar las siguientes entradas y ajustes:

  • SYNCLABS_API_KEY: Tu API key de Sync Labs
  • ELEVENLABS_API_KEY: Tu API key de ElevenLabs
  • OPENAI_API_KEY: Tu API key de OpenAI

Ajustes requeridos:

  • input_vid_url: URL del video que se va a traducir/doblar.
  • target_language: Idioma objetivo para la traducción (por ejemplo, “Spanish”)
  • output_json_path: Ruta de archivo para guardar los datos JSON de salida

Ajustes opcionales:

  • source_language: Idioma fuente del video (déjalo vacío para detección automática)
  • voice_id: Voice ID de ElevenLabs (déjalo vacío para clonar automáticamente la voz del video de entrada)
  • sync_mode: Modo para sincronizar texto con video cuando las longitudes no coinciden (por defecto: “bounce”)
  • lipsync_model: Modelo de lipsync de Sync.so (por defecto: “lipsync-2”)
  • tts_model: Modelo de texto a voz de ElevenLabs (por defecto: “eleven_multilingual_v2”)
  • gpt_model: Modelo GPT de OpenAI para traducción (por defecto: “gpt-3.5-turbo”)
  • transcription_model: Modelo de OpenAI para transcripción (por defecto: “whisper-1”)
  • segment_start: Tiempo de inicio del segmento de video a traducir/doblar (en segundos, -1 para todo el video)
  • segment_end: Tiempo de fin del segmento de video a traducir/doblar (en segundos, -1 para todo el video)
  • El archivo de video de entrada debe contener audio que se usará para clonado de voz, si no se proporciona un voice ID.
  • Consulta ElevenLabs y OpenAI para más información sobre idiomas y modelos compatibles.
4

Traducir/Doblar videos

Ejecuta el script de Python:

python main.py

Este comando iniciará el proceso de traducir/doblar el video según la configuración de args.py.

Al completar, se guardará un archivo JSON en la ruta especificada en output_json_path, que contendrá la siguiente información:

  • input_video: URL del video original que se procesó
  • generated_audio: URL del archivo de audio traducido
  • lipsync_jobID: ID único del trabajo de lip-sync
  • outputUrl: URL para acceder al video final traducido/doblado
  • voice_id: ID de la voz usada en la traducción (se genera automáticamente si no se proporciona)
  • Alojamiento temporal de archivos: Este código usa el servicio de alojamiento temporal Uguu para generar URLs de archivos de audio TTS. Estas URLs caducan después de 3 horas. Para usar tu propio servicio de hosting, modifica upload_file_uguu() en FileProcessor.py.
  • Sondeo de trabajos: El sondeo para finalización del trabajo de lipsync vence después de 60 mins. Ajusta el límite de tiempo en LipSyncService.py o usa fetch_updates.py para recuperar URLs de salida usando output_json_path.

Recursos relacionados