Doblaje

Doble un video a otro idioma con la Direct API mediante dub_media en Morphic Dub, presupuéstelo antes, siga la generación y lea el cobro liquidado.

dub_media dobla una grabación a otro idioma con la voz propia de sus hablantes. En Morphic Dub (mdl_h2z5a7af7y50) recibe un video de hasta 10 minutos y devuelve el mismo video, con la misma duración, con cada hablante locutado de nuevo con su propia voz y sus primeros planos sincronizados con el nuevo diálogo. Es una generación larga, de hasta unos 13 minutos por minuto de video, y su cobro es una estimación al inicio que se liquida según lo que gastó la ejecución.

Elija el modelo

Modelomodel_idRecibeDevuelve
Morphic Dubmdl_h2z5a7af7y50un video, de hasta 10 minutosel video, doblado y con los labios sincronizados
ElevenLabs Dubbingvea el catálogoun archivo de audio o video, de hasta 30 minutosun archivo de audio, con la duración del origen

Si omite model_id, un video se ejecuta en el modelo de doblaje predeterminado de su organización, que en los planes de pago es Morphic Dub. Nombre mdl_h2z5a7af7y50 para fijarlo. Un archivo de audio, o un video de más de 10 minutos, se rechaza en Morphic Dub con un 422 que indica el límite; envíelos a ElevenLabs Dubbing.

Entradas

CampoObligatorio
media_asset_idsíel video que doblar: un id de activo de list_assets, el activo de una generación terminada o una URL HTTPS pública (vea Pasar su propio contenido multimedia)
target_languagesíuna etiqueta BCP-47, como hi, es o pt-BR. Un idioma por llamada; para varios mercados, haga una llamada por idioma. Morphic Dub dobla una variante regional en su idioma principal y lo indica en el notice de la respuesta
source_languagenoel idioma hablado, como etiqueta BCP-47. Omítalo para que se detecte; indíquelo cuando el audio tenga ruido o mezcle idiomas
keytermsnonombres, lugares y marcas que la traducción mantiene como se dicen, de hasta 5 palabras cada uno
voice_modenooriginal (el predeterminado) conserva la voz propia de cada hablante; assigned hace hablar a cada persona con una voz del catálogo. Solo en Morphic Dub
voicesnoquién habla con qué voz, hasta 20 entradas; necesita voice_mode: "assigned". Vea Asigne voces
source_transcript_asset_idnosu propio SRT con tiempos del habla, en el idioma hablado, usado en lugar de transcribir; en Morphic Dub necesita voice_mode: "assigned", en ElevenLabs Dubbing necesita source_language
translation_asset_idnosu propio SRT con tiempos de las líneas en el idioma de destino, usado en lugar de traducir; en Morphic Dub necesita voice_mode: "assigned", en ElevenLabs Dubbing va solo con source_transcript_asset_id
model_idnomdl_h2z5a7af7y50 para Morphic Dub. Una llamada que lleve voice_mode: "assigned", voices o cualquiera de los dos SRT sin nombrar un modelo se ejecuta en Morphic Dub; nombrar otro modelo con ellos se rechaza
project_idsíel proyecto en el que queda el doblaje, de list_projects

Un video sin pista de audio, o un target_language igual al source_language que usted indique, se rechaza antes de cobrar nada.

Asigne voces, aporte su propia transcripción o traducción

De forma predeterminada, cada hablante conserva su propia voz y Morphic transcribe y traduce el habla. Con voice_mode: "assigned", cada persona habla en su lugar con una voz del catálogo de voces de Morphic, y usted puede entregar su propio texto. En Morphic Dub, una transcripción o traducción propia necesita assigned: las voces originales se doblan en una sola pasada que no admite ni reparto ni texto, y una llamada que envíe cualquiera de las dos con original se rechaza con un 422 que nombra el campo.

  1. Liste las voces que un doblaje puede asignar: list_voices con model_id: "mdl_h2z5a7af7y50". No necesita ningún permiso y devuelve el voice_id de cada voz. Solo voces del catálogo; una voz de su organización se rechaza
  2. Para un hablante nombrado con una imagen de su rostro o un clip, pase el id del activo o su URL HTTPS como speaker_asset_id; si no, descríbalo en speaker_description (hasta 120 caracteres, sin ;, = ni "). Exactamente uno de los dos por entrada, y cada hablante una sola vez; los hablantes que deje fuera reciben una voz del catálogo que les encaje
  3. Para su propio SRT, pase su URL HTTPS o el id de un documento SRT que ya esté en su biblioteca (list_assets lo muestra) como source_transcript_asset_id (idioma hablado) o translation_asset_id (idioma de destino); una URL se añade al proyecto como documento antes de que empiece el doblaje, como cualquier otro archivo por URL. Los dos campos reciben dos archivos distintos
{
  "input": {
    "media_asset_id": "01928f4e-…",
    "target_language": "es",
    "voice_mode": "assigned",
    "voices": [
      { "speaker_asset_id": "https://cdn.example.com/host-face.jpg", "voice_id": "0192b1c0-…" },
      { "speaker_description": "the narrator", "voice_id": "0192b1c1-…" }
    ],
    "source_transcript_asset_id": "https://cdn.example.com/interview.en.srt",
    "translation_asset_id": "https://cdn.example.com/interview.es.srt",
    "model_id": "mdl_h2z5a7af7y50",
    "project_id": "01928f4e-…"
  }
}

Ambos modos de voz se cobran a la misma tarifa.

Por MCP, los dos campos de SRT funcionan también en ElevenLabs Dubbing, con model_name: "ElevenLabs Dubbing" y sin voces: cada hablante conserva su propia voz, source_language es obligatorio, porque el motor no puede detectar el idioma a partir de una transcripción, y translation_asset_id va solo junto a source_transcript_asset_id, con una entrada traducida sobre cada entrada de la transcripción. Cuando la mayoría de las entradas empiezan con una etiqueta de hablante, como Mira: …, las etiquetas deciden quién habla en cada momento, una voz por hablante. ElevenLabs Dubbing no tiene model_id, así que por la Direct API un doblaje con su propio texto se ejecuta en Morphic Dub.

Presupuéstelo antes

Un doblaje se cobra según la duración del origen, por idioma. plan_media pone precio a la llamada sin iniciarla; en Morphic Dub el presupuesto es la estimación que cobrará el inicio, y que la liquidación puede mover después.

{
  "input": {
    "steps": [
      { "id": "dub", "tool_name": "dub_media", "arguments_json": "{\"media_asset_id\":\"01928f4e-…\",\"target_language\":\"hi\",\"model_id\":\"mdl_h2z5a7af7y50\"}" }
    ]
  }
}

Consulte Presupueste antes de gastar para la llamada completa.

Inicie el doblaje

curl -s https://mcp.morphic.com/v1/direct/tools/dub_media \
  -H "Authorization: Bearer $MORPHIC_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: dub-interview-hi-1" \
  -d '{
        "input": {
          "media_asset_id": "https://cdn.example.com/interview.mp4",
          "target_language": "hi",
          "keyterms": ["Arjun", "Meera"],
          "model_id": "mdl_h2z5a7af7y50",
          "project_id": "01928f4e-…"
        }
      }'

La respuesta es 202 Accepted:

{
  "result": {
    "generation_id": "0192a7b3-a1c4-7e02-8f9d-1a2b3c4d5e6f",
    "status": "queued",
    "model_id": "mdl_h2z5a7af7y50",
    "estimated_credits": 580,
    "credits_settle_on_output_duration": true
  },
  "billing": { "credits_charged": 580, "credits_are_final": false }
}

estimated_credits es la estimación que se cobra ahora; credits_settle_on_output_duration: true indica que se liquidará.

Siga la generación

Un doblaje en Morphic Dub tarda hasta unos 13 minutos por minuto de video, y un clip corto tarda más de lo que indica esa proporción, porque las etapas fijas cuestan lo mismo sea cual sea la duración: un clip de 50 segundos tardó 17 minutos. No sondee desde el principio. Espere unas 13 veces la duración del clip, luego lea con una espera larga y espacie las lecturas según el poll_after_seconds que lleva cada una.

sleep 660   # a 50 s clip: about 13 times its length
curl -s "https://mcp.morphic.com/v1/direct/generations/$GENERATION_ID?wait=45" \
  -H "Authorization: Bearer $MORPHIC_API_KEY"

Un webhook le ahorra el bucle: pase un webhook_id registrado en el cuerpo de la llamada y Morphic llamará a su endpoint cuando el doblaje sea final. Use el webhook como señal principal y un sondeo ocasional como red de seguridad.

Cuando la generación está en succeeded, sus assets contienen el video doblado. El notice de la respuesta se rellena cuando el doblaje se ejecutó con una entrada distinta de la indicada, como una variante regional doblada en su idioma principal.

Cuánto cuesta

Morphic Dub se factura según la duración del origen a las tarifas de API de su organización, por idioma:

  1. Al inicio se cobra la estimación: estimated_credits, también billing.credits_charged
  2. Cuando termina el doblaje, el cobro se liquida según lo que la ejecución gastó realmente. El importe liquidado puede quedar por debajo o por encima de la estimación, pero nunca más de tres veces por encima; a partir de ahí, Morphic asume el resto
  3. Una vez que la generación es final, billing.credits_charged es el importe neto liquidado y credits_are_final es true. Un doblaje que falla o se cancela se reembolsa por completo

Vuelva a leer la generación cuando sea final para obtener el importe liquidado; solo se envía un webhook cuando ya lo es. Consulte Créditos y uso para el registro.


Si tiene algún problema o alguna pregunta, no dude en ponerse en contacto con nosotros. Estaremos encantados de ayudarle. Escríbanos a support@morphic.com.

En esta página