Saltar a la navegación

Doblaje

Doblaje está soportado de forma nativa en POST /v2/generate. Pasa el objeto dubParams junto con tu request normal de generación y Sync Labs extraerá el audio del video de entrada, lo doblará al idioma objetivo y ejecutará lipsync sobre el resultado doblado, todo como un solo job.

Un video con audio es suficiente para que el doblaje funcione. La entrada de video sola, con una pista de audio embebida, es aceptable. No necesitas enviar una entrada de audio separada; cualquier entrada de audio en el array input se ignora cuando dubParams está presente. Debes pasar los parámetros de doblaje (dubParams) para habilitar el doblaje.

Cuándo usar doblaje

  • Flujo nativo con dubParams (esta página): una sola llamada de API, recomendado para workflows estándar de traducción más lipsync.
  • Orquestación manual: cuando necesitas control personalizado sobre transcripción, voice cloning con TTS o pasos intermedios, consulta el tutorial de Traducción/Doblaje, que conecta ElevenLabs, OpenAI y Sync Labs manualmente.

Workflow

1

Prepara un video con audio

Asegúrate de que tu archivo fuente sea un video cuya pista de audio quieres traducir. No se requiere una entrada de audio separada.

2

Elige un idioma objetivo

Elige uno de los códigos targetLang soportados (consulta el enum DubLanguage en la API Reference para ver la lista completa).

3

Envía el request de generación

Incluye dubParams en el body del request. providerName y targetLang son obligatorios; sourceLang usa auto por defecto.

4

Consulta hasta que termine

Consulta GET /v2/generate/{id} hasta que status sea COMPLETED; outputUrl contendrá el video doblado y con lip sync.

Campos de DubDto

Consulta la referencia completa de API para dubParams.

  • providerName (DubProviderName, obligatorio): proveedor de doblaje que se usará. Actualmente elevenlabs es el único valor soportado.
  • targetLang (DubLanguage, obligatorio): código del idioma objetivo para doblaje, por ejemplo es, fr, ja.
  • sourceLang (DubSourceLanguage, opcional, default auto): código del idioma fuente, o auto para dejar que el motor lo detecte.
  • numSpeakers (integer, opcional): deprecado e ignorado. Doblaje v2 detecta hablantes automáticamente. Se acepta solo por compatibilidad hacia atrás.

Si necesitas un idioma objetivo que no aparece en DubLanguage, genera o graba el audio traducido tú mismo y envíalo como una entrada normal de audio en lugar de usar dubParams. Los modelos de lipsync pueden sincronizar audio claro en cualquier idioma.

Ejemplos de request

import { SyncClient } from "@sync.so/sdk";
const sync = new SyncClient();
const response = await sync.generations.create({
model: "lipsync-2",
input: [
{ type: "video", url: "https://assets.sync.so/docs/example-video.mp4" }
],
dubParams: {
providerName: "elevenlabs",
targetLang: "es"
}
});
from sync import Sync
client = Sync()
response = client.generations.create(
model="lipsync-2",
input=[
{"type": "video", "url": "https://assets.sync.so/docs/example-video.mp4"}
],
dub_params={
"provider_name": "elevenlabs",
"target_lang": "es"
},
)
curl -X POST https://api.sync.so/v2/generate \
-H "x-api-key: *** \
-H "Content-Type: application/json" \
-d '{
"model": "lipsync-2",
"input": [
{ "type": "video", "url": "https://assets.sync.so/docs/example-video.mp4" }
],
"dubParams": {
"providerName": "elevenlabs",
"targetLang": "es"
}
}'

Notas de comportamiento

  • Cuando se proporciona dubParams, el audio se extrae del video de entrada, se dobla mediante ElevenLabs al idioma objetivo y se ejecuta lipsync contra el audio doblado.
  • Cualquier entrada de audio en el array input se ignora cuando el doblaje está habilitado. Pasa solo la entrada de video.
  • Se requiere una duración de audio detectada en el video fuente; los requests de doblaje sin una pista de audio decodificable se rechazan.
  • La facturación se reporta por minuto de salida doblado. Consulta la página de Facturación para más detalles.

Ver también