Dublagem
Duble um vídeo para outro idioma pela Direct API com dub_media no Morphic Dub, orce antes, acompanhe a geração e leia a cobrança acertada.
dub_media dubla uma gravação para outro idioma nas vozes dos próprios falantes. No Morphic Dub (mdl_h2z5a7af7y50), ela recebe um vídeo de até 10 minutos e devolve o mesmo vídeo, com a mesma duração, com cada falante regravado na própria voz e os close-ups com os lábios sincronizados com a nova fala. É uma geração longa, de até cerca de 13 minutos por minuto de vídeo, e a cobrança dela é uma estimativa no início, acertada pelo que a execução gastou.
Escolha o modelo
| Modelo | model_id | Recebe | Devolve |
|---|---|---|---|
| Morphic Dub | mdl_h2z5a7af7y50 | um vídeo, de até 10 minutos | o vídeo, dublado e com os lábios sincronizados |
| ElevenLabs Dubbing | veja o catálogo | um arquivo de áudio ou vídeo, de até 30 minutos | um arquivo de áudio, com a duração da origem |
Omita model_id e um vídeo roda no modelo de dublagem padrão da sua organização, que é o Morphic Dub nos planos pagos. Informe mdl_h2z5a7af7y50 para fixá-lo. Um arquivo de áudio, ou um vídeo com mais de 10 minutos, é recusado no Morphic Dub com 422 citando o limite; envie esses para o ElevenLabs Dubbing.
Entradas
| Campo | Obrigatório | |
|---|---|---|
media_asset_id | sim | o vídeo a dublar: um id de ativo de list_assets, o ativo de uma geração concluída ou uma URL HTTPS pública (veja Como passar sua própria mídia) |
target_language | sim | uma tag BCP-47, como hi, es ou pt-BR. Um idioma por chamada; para vários mercados, faça uma chamada por idioma. O Morphic Dub dubla uma variante regional no idioma principal dela e avisa isso no notice da resposta |
source_language | não | o idioma falado, como tag BCP-47. Omita para que ele seja detectado; defina-o quando o áudio tiver ruído ou misturar idiomas |
keyterms | não | nomes, lugares e marcas que a tradução mantém como falados, cada um com até 5 palavras |
voice_mode | não | original (o padrão) mantém a própria voz de cada falante; assigned faz cada pessoa falar com uma voz do catálogo. Apenas no Morphic Dub |
voices | não | quem fala com qual voz, até 20 entradas; exige voice_mode: "assigned". Veja Atribua vozes |
source_transcript_asset_id | não | seu próprio SRT com tempos da fala, no idioma falado, usado no lugar da transcrição; no Morphic Dub exige voice_mode: "assigned", no ElevenLabs Dubbing exige source_language |
translation_asset_id | não | seu próprio SRT com tempos das falas no idioma de destino, usado no lugar da tradução; no Morphic Dub exige voice_mode: "assigned", no ElevenLabs Dubbing vai apenas junto com source_transcript_asset_id |
model_id | não | mdl_h2z5a7af7y50 para o Morphic Dub. Uma chamada com voice_mode: "assigned", voices ou um dos SRTs sem modelo informado roda no Morphic Dub; informar outro modelo com eles é recusado |
project_id | sim | o projeto onde a dublagem vai ficar, de list_projects |
Um vídeo sem faixa de áudio, ou uma target_language igual à source_language que você definiu, é recusado antes de qualquer cobrança.
Atribua vozes, traga a sua própria transcrição ou tradução
Por padrão, cada falante mantém a própria voz e o Morphic transcreve e traduz a fala. Com voice_mode: "assigned", cada pessoa fala com uma voz do catálogo de vozes do Morphic, e você pode entregar o seu próprio texto. No Morphic Dub, uma transcrição ou tradução sua exige assigned: as vozes originais são dubladas em uma única passagem que não recebe elenco nem texto, e uma chamada que envia qualquer um dos dois com original é recusada com 422 citando o campo.
- Liste as vozes que uma dublagem pode atribuir:
list_voicescommodel_id: "mdl_h2z5a7af7y50". Não exige escopo e devolve ovoice_idde cada voz. Apenas vozes do catálogo; uma voz da sua organização é recusada - Para um falante identificado por uma imagem do rosto ou um clipe, passe o id do ativo ou a URL HTTPS dele como
speaker_asset_id; caso contrário, descreva-o emspeaker_description(até 120 caracteres, sem;,=nem"). Exatamente um dos dois por entrada, e cada falante uma única vez; os falantes que você deixar de fora recebem uma voz adequada do catálogo - Para o seu próprio SRT, passe a URL HTTPS dele ou o id de um documento SRT que já está na sua biblioteca (
list_assetso mostra) comosource_transcript_asset_id(idioma falado) outranslation_asset_id(idioma de destino); uma URL é adicionada ao projeto como documento antes de a dublagem começar, como qualquer outro arquivo por URL. Os dois campos recebem dois arquivos diferentes
{
"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-…"
}
}Os dois modos de voz são cobrados pela mesma tarifa.
Pelo MCP, os dois campos de SRT funcionam também no ElevenLabs Dubbing, com model_name: "ElevenLabs Dubbing" e sem vozes: cada falante mantém a própria voz, source_language é obrigatório, já que o motor não consegue detectar o idioma a partir de uma transcrição, e translation_asset_id vai apenas ao lado de source_transcript_asset_id, com uma marcação traduzida sobre cada marcação da transcrição. Quando a maioria das marcações começa com um rótulo de falante, como Mira: …, os rótulos decidem quem fala quando, uma voz por falante. O ElevenLabs Dubbing não tem model_id, então, pela Direct API, uma dublagem com o seu próprio texto roda no Morphic Dub.
Orce antes
Uma dublagem é cobrada pela duração da origem, por idioma. plan_media calcula o preço da chamada sem iniciá-la; no Morphic Dub, o orçamento é a estimativa que o início vai cobrar, e que o acerto pode mover depois.
{
"input": {
"steps": [
{ "id": "dub", "tool_name": "dub_media", "arguments_json": "{\"media_asset_id\":\"01928f4e-…\",\"target_language\":\"hi\",\"model_id\":\"mdl_h2z5a7af7y50\"}" }
]
}
}Veja Orce antes de gastar para a chamada completa.
Inicie a dublagem
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-…"
}
}'A resposta é 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 é a estimativa cobrada agora; credits_settle_on_output_duration: true indica que ela será acertada.
Acompanhe a geração
Uma dublagem no Morphic Dub leva até cerca de 13 minutos por minuto de vídeo, e um clipe curto leva mais do que essa proporção sugere, já que as etapas fixas custam o mesmo seja qual for a duração: um clipe de 50 segundos levou 17 minutos. Não consulte desde o início. Espere cerca de 13 vezes a duração do clipe, depois leia com uma espera longa e vá espaçando as consultas a partir do poll_after_seconds que cada leitura traz.
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"Um webhook dispensa o loop: passe um webhook_id registrado no corpo da chamada e o Morphic chama o seu endpoint quando a dublagem for final. Use o webhook como sinal principal e uma consulta ocasional como rede de segurança.
Quando a geração estiver succeeded, os assets dela contêm o vídeo dublado. O notice da resposta é preenchido quando a dublagem rodou com uma entrada diferente da informada, como uma variante regional dublada no idioma principal dela.
Quanto custa
O Morphic Dub é cobrado pela duração da origem, nas tarifas de API da sua organização, por idioma:
- No início, a estimativa é cobrada:
estimated_credits, também embilling.credits_charged - Quando a dublagem termina, a cobrança é acertada pelo que a execução realmente gastou. O valor acertado pode ficar abaixo ou acima da estimativa, mas nunca mais de três vezes ela; acima disso, o Morphic absorve o restante
- Quando a geração é final,
billing.credits_chargedé o valor líquido acertado ecredits_are_finalétrue. Uma dublagem que falha ou é cancelada é reembolsada por inteiro
Leia a geração de novo quando ela for final para ver o valor acertado; um webhook só é enviado quando ela é. Veja Créditos e uso para o extrato.
Se você tiver algum problema ou alguma dúvida, entre em contato. Teremos prazer em ajudar. Escreva para nós em support@morphic.com.