Doublage

Doublez une vidéo dans une autre langue via la Direct API avec dub_media sur Morphic Dub, obtenez d’abord un devis, suivez la génération et lisez le montant régularisé.

dub_media double un enregistrement dans une autre langue avec la propre voix de ses locuteurs. Sur Morphic Dub (mdl_h2z5a7af7y50), il prend une vidéo de 10 minutes au plus et renvoie la même vidéo, de la même durée, avec chaque locuteur redoublé avec sa propre voix et ses gros plans synchronisés sur la nouvelle voix. C’est une génération longue, jusqu’à environ 13 minutes par minute de vidéo, et son montant facturé est une estimation au lancement, régularisée d’après ce que l’exécution a dépensé.

Choisir le modèle

Modèlemodel_idEntréeRésultat
Morphic Dubmdl_h2z5a7af7y50une vidéo, jusqu’à 10 minutesla vidéo, doublée et aux lèvres synchronisées
ElevenLabs Dubbingvoir le catalogueun fichier audio ou vidéo, jusqu’à 30 minutesun fichier audio, de la durée de la source

Omettez model_id et une vidéo s’exécute sur le modèle de doublage par défaut de votre organisation, qui est Morphic Dub sur les forfaits payants. Nommez mdl_h2z5a7af7y50 pour l’imposer. Un fichier audio, ou une vidéo de plus de 10 minutes, est refusé sur Morphic Dub avec un 422 qui nomme la limite ; envoyez-les à ElevenLabs Dubbing.

Entrées

ChampObligatoire
media_asset_idouila vidéo à doubler : un identifiant d’asset issu de list_assets, l’asset d’une génération terminée, ou une URL HTTPS publique (voir Transmettre vos propres médias)
target_languageouiune étiquette BCP-47, comme hi, es ou pt-BR. Une langue par appel ; pour plusieurs marchés, faites un appel par langue. Morphic Dub double une variante régionale dans sa langue principale et le signale dans le notice de la réponse
source_languagenonla langue parlée, sous forme d’étiquette BCP-47. Omettez-la pour qu’elle soit détectée ; définissez-la quand l’audio est bruité ou mélange des langues
keytermsnonnoms, lieux et marques que la traduction garde tels quels, jusqu’à 5 mots chacun
voice_modenonoriginal (le réglage par défaut) garde la propre voix de chaque locuteur ; assigned fait parler chaque personne avec une voix du catalogue. Morphic Dub uniquement
voicesnonqui parle avec quelle voix, jusqu’à 20 entrées ; nécessite voice_mode: "assigned". Voir Attribuer des voix
source_transcript_asset_idnonvotre propre SRT minuté de la parole, dans la langue parlée, utilisé au lieu de transcrire ; sur Morphic Dub nécessite voice_mode: "assigned", sur ElevenLabs Dubbing nécessite source_language
translation_asset_idnonvotre propre SRT minuté des lignes dans la langue cible, utilisé au lieu de traduire ; sur Morphic Dub nécessite voice_mode: "assigned", sur ElevenLabs Dubbing ne va qu’avec source_transcript_asset_id
model_idnonmdl_h2z5a7af7y50 pour Morphic Dub. Un appel portant voice_mode: "assigned", voices ou l’un des deux SRT sans modèle nommé s’exécute sur Morphic Dub ; nommer un autre modèle avec eux est refusé
project_idouile projet dans lequel le doublage est enregistré, issu de list_projects

Une vidéo sans piste audio, ou une target_language identique à la source_language que vous avez définie, est refusée avant que quoi que ce soit ne soit facturé.

Attribuer des voix, apporter votre propre transcription ou traduction

Par défaut, chaque locuteur garde sa propre voix et Morphic transcrit et traduit la parole. Avec voice_mode: "assigned", chaque personne parle plutôt avec une voix du catalogue de voix de Morphic, et vous pouvez fournir votre propre texte. Sur Morphic Dub, une transcription ou une traduction de votre part nécessite assigned : les voix originales sont doublées en une seule passe qui ne prend ni distribution ni texte, et un appel qui envoie l’une des deux avec original est refusé avec un 422 qui nomme le champ.

  1. Listez les voix qu’un doublage peut attribuer : list_voices avec model_id: "mdl_h2z5a7af7y50". Il ne nécessite aucune autorisation et renvoie le voice_id de chaque voix. Voix du catalogue uniquement ; une voix de votre organisation est refusée
  2. Pour un locuteur désigné par une image de son visage ou un extrait, passez l’identifiant de l’asset ou son URL HTTPS dans speaker_asset_id ; sinon, décrivez-le dans speaker_description (jusqu’à 120 caractères, sans ;, = ni "). Exactement l’un des deux par entrée, et chaque locuteur une seule fois ; les locuteurs que vous omettez reçoivent une voix du catalogue qui leur convient
  3. Pour votre propre SRT, passez son URL HTTPS ou l’identifiant d’un document SRT déjà dans votre bibliothèque (list_assets l’affiche) dans source_transcript_asset_id (langue parlée) ou translation_asset_id (langue cible) ; une URL est ajoutée au projet comme document avant le lancement du doublage, comme tout autre fichier par URL. Les deux champs prennent deux fichiers différents
{
  "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-…"
  }
}

Les deux modes de voix sont facturés au même tarif.

Via MCP, les deux champs SRT fonctionnent aussi sur ElevenLabs Dubbing, avec model_name: "ElevenLabs Dubbing" et sans voix : chaque locuteur garde sa propre voix, source_language est obligatoire, puisque le moteur ne peut pas détecter la langue à partir d’une transcription, et translation_asset_id ne va qu’à côté de source_transcript_asset_id, avec un repère traduit en face de chaque repère de la transcription. Quand la plupart des repères commencent par une étiquette de locuteur, comme Mira: …, les étiquettes décident qui parle quand, une voix par locuteur. ElevenLabs Dubbing n’a pas de model_id, donc via la Direct API un doublage avec votre propre texte s’exécute sur Morphic Dub.

Obtenir d’abord un devis

Un doublage est tarifé sur la durée de la source, par langue. plan_media chiffre l’appel sans le lancer ; sur Morphic Dub, le devis est l’estimation que le lancement facturera, que la régularisation peut ensuite faire évoluer.

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

Voir Obtenir un devis avant de dépenser pour l’appel complet.

Lancer le doublage

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 réponse est 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 est l’estimation facturée maintenant ; credits_settle_on_output_duration: true indique qu’elle sera régularisée.

Suivre la génération

Un doublage sur Morphic Dub prend jusqu’à environ 13 minutes par minute de vidéo, et un clip court prend plus longtemps que ce ratio ne le suggère, puisque les étapes fixes coûtent le même temps quelle que soit la durée : un clip de 50 secondes a pris 17 minutes. N’interrogez pas dès le début. Attendez environ 13 fois la durée du clip, puis lisez avec une longue attente et espacez d’après le poll_after_seconds que porte chaque lecture.

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 vous épargne la boucle : passez un webhook_id enregistré dans le corps de l’appel et Morphic appelle votre point de terminaison quand le doublage est final. Utilisez le webhook comme signal principal et un sondage occasionnel comme filet de sécurité.

Quand la génération est succeeded, ses assets contiennent la vidéo doublée. Le notice de la réponse est renseigné quand le doublage a été fait sur une autre entrée que celle donnée, comme une variante régionale doublée dans sa langue principale.

Ce que ça coûte

Morphic Dub est facturé sur la durée de la source aux tarifs API de votre organisation, par langue :

  1. Au lancement, l’estimation est facturée : estimated_credits, aussi dans billing.credits_charged
  2. À la fin du doublage, le montant facturé est régularisé d’après ce que l’exécution a réellement dépensé. Le montant régularisé peut être inférieur ou supérieur à l’estimation, mais jamais plus de trois fois celle-ci ; au-delà, Morphic prend le reste à sa charge
  3. Une fois la génération finale, billing.credits_charged est le montant net régularisé et credits_are_final vaut true. Un doublage qui échoue ou est annulé est intégralement remboursé

Relisez la génération une fois finale pour obtenir le montant régularisé ; un webhook n’est envoyé qu’à ce moment-là. Voir Crédits et consommation pour le registre.


Si vous rencontrez le moindre problème ou si vous avez des questions, n’hésitez pas à nous contacter. Nous serons ravis de vous aider. Écrivez-nous à support@morphic.com.

Sur cette page