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
| Modelo | model_id | Recibe | Devuelve |
|---|---|---|---|
| Morphic Dub | mdl_h2z5a7af7y50 | un video, de hasta 10 minutos | el video, doblado y con los labios sincronizados |
| ElevenLabs Dubbing | vea el catálogo | un archivo de audio o video, de hasta 30 minutos | un 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
| Campo | Obligatorio | |
|---|---|---|
media_asset_id | sí | 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_language | sí | 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_language | no | el idioma hablado, como etiqueta BCP-47. Omítalo para que se detecte; indíquelo cuando el audio tenga ruido o mezcle idiomas |
keyterms | no | nombres, lugares y marcas que la traducción mantiene como se dicen, de hasta 5 palabras cada uno |
voice_mode | no | original (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 |
voices | no | quién habla con qué voz, hasta 20 entradas; necesita voice_mode: "assigned". Vea Asigne voces |
source_transcript_asset_id | no | su 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_id | no | su 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_id | no | mdl_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_id | sí | 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.
- Liste las voces que un doblaje puede asignar:
list_voicesconmodel_id: "mdl_h2z5a7af7y50". No necesita ningún permiso y devuelve elvoice_idde cada voz. Solo voces del catálogo; una voz de su organización se rechaza - 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 enspeaker_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 - Para su propio SRT, pase su URL HTTPS o el id de un documento SRT que ya esté en su biblioteca (
list_assetslo muestra) comosource_transcript_asset_id(idioma hablado) otranslation_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:
- Al inicio se cobra la estimación:
estimated_credits, tambiénbilling.credits_charged - 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
- Una vez que la generación es final,
billing.credits_chargedes el importe neto liquidado ycredits_are_finalestrue. 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.