Synchronisation

Synchronisieren Sie ein Video über die Direct API mit dub_media auf Morphic Dub in eine andere Sprache, kalkulieren Sie es zuerst, verfolgen Sie die Generierung und lesen Sie die abgerechnete Belastung.

dub_media synchronisiert eine Aufnahme in eine andere Sprache, in den eigenen Stimmen ihrer Sprecher. Auf Morphic Dub (mdl_h2z5a7af7y50) nimmt es ein Video von bis zu 10 Minuten und liefert dasselbe Video in derselben Länge zurück, mit jedem Sprecher in seiner eigenen Stimme neu eingesprochen und den Nahaufnahmen lippensynchron zur neuen Sprache. Es ist eine lange Generierung, bis zu etwa 13 Minuten pro Minute Video, und ihre Belastung ist beim Start eine Schätzung, die auf das abgerechnet wird, was der Durchlauf verbraucht hat.

Das Modell wählen

Modellmodel_idNimmtLiefert
Morphic Dubmdl_h2z5a7af7y50ein Video, bis zu 10 Minutendas Video, synchronisiert und lippensynchron
ElevenLabs Dubbingsiehe den Katalogeine Audio- oder Videodatei, bis zu 30 Minuteneine Audiodatei, so lang wie die Quelle

Lassen Sie model_id weg, läuft ein Video auf dem Standard-Synchronisationsmodell Ihrer Organisation, das in kostenpflichtigen Tarifen Morphic Dub ist. Nennen Sie mdl_h2z5a7af7y50, um es festzulegen. Eine Audiodatei oder ein Video über 10 Minuten wird auf Morphic Dub mit 422 abgelehnt, das das Limit nennt; senden Sie diese an ElevenLabs Dubbing.

Eingaben

FeldErforderlich
media_asset_idjadas zu synchronisierende Video: eine Asset-ID aus list_assets, das Asset einer fertigen Generierung oder eine öffentliche HTTPS-URL (siehe Eigene Medien übergeben)
target_languagejaein BCP-47-Tag wie hi, es oder pt-BR. Eine Sprache pro Aufruf; für mehrere Märkte machen Sie einen Aufruf pro Sprache. Morphic Dub synchronisiert eine regionale Variante in ihrer Hauptsprache und sagt das im notice der Antwort
source_languageneindie gesprochene Sprache als BCP-47-Tag. Lassen Sie es weg, damit sie erkannt wird; setzen Sie es, wenn das Audio verrauscht ist oder Sprachen mischt
keytermsneinNamen, Orte und Marken, die die Übersetzung wie gesprochen beibehält, jeweils bis zu 5 Wörter
voice_modeneinoriginal (der Standard) behält die eigene Stimme jedes Sprechers; assigned spricht jede Person in einer Katalogstimme. Nur Morphic Dub
voicesneinwer in welcher Stimme spricht, bis zu 20 Einträge; braucht voice_mode: "assigned". Siehe Stimmen zuweisen
source_transcript_asset_idneinIhre eigene SRT-Datei des Gesprochenen mit Zeitmarken, in der gesprochenen Sprache, die statt der Transkription verwendet wird; braucht auf Morphic Dub voice_mode: "assigned", auf ElevenLabs Dubbing source_language
translation_asset_idneinIhre eigene SRT-Datei der Zeilen mit Zeitmarken, in der Zielsprache, die statt der Übersetzung verwendet wird; braucht auf Morphic Dub voice_mode: "assigned", geht auf ElevenLabs Dubbing nur zusammen mit source_transcript_asset_id
model_idneinmdl_h2z5a7af7y50 für Morphic Dub. Ein Aufruf mit voice_mode: "assigned", voices oder einer der beiden SRT-Dateien und ohne genanntes Modell läuft auf Morphic Dub; ein anderes Modell zusammen mit ihnen zu nennen wird abgelehnt
project_idjadas Projekt, in dem die Synchronisation landet, aus list_projects

Ein Video ohne Audiospur oder eine target_language, die der von Ihnen gesetzten source_language entspricht, wird abgelehnt, bevor etwas belastet wird.

Stimmen zuweisen, eigenes Transkript oder eigene Übersetzung mitbringen

Standardmäßig behält jeder Sprecher seine eigene Stimme, und Morphic transkribiert und übersetzt die Sprache. Mit voice_mode: "assigned" spricht jede Person stattdessen in einer Stimme aus dem Stimmkatalog von Morphic, und Sie können eigenen Text übergeben. Auf Morphic Dub braucht ein eigenes Transkript oder eine eigene Übersetzung assigned: Die Originalstimmen werden in einem Durchgang synchronisiert, der weder Besetzung noch Text annimmt, und ein Aufruf, der eines von beiden mit original sendet, wird mit 422 abgelehnt, das das Feld nennt.

  1. Listen Sie die Stimmen auf, die eine Synchronisation zuweisen kann: list_voices mit model_id: "mdl_h2z5a7af7y50". Es braucht keine Berechtigung und liefert die voice_id jeder Stimme. Nur Katalogstimmen; eine Stimme Ihrer Organisation wird abgelehnt
  2. Für einen Sprecher, der durch ein Gesichtsbild oder einen Clip benannt wird, übergeben Sie die ID des Assets oder seine HTTPS-URL als speaker_asset_id; andernfalls beschreiben Sie ihn in speaker_description (bis zu 120 Zeichen, ohne ;, = oder "). Genau eines von beiden pro Eintrag, und jeder Sprecher einmal; Sprecher, die Sie weglassen, bekommen eine passende Katalogstimme
  3. Für Ihre eigene SRT-Datei übergeben Sie ihre HTTPS-URL oder die ID eines SRT-Dokuments, das bereits in Ihrer Bibliothek liegt (list_assets zeigt es), als source_transcript_asset_id (gesprochene Sprache) oder translation_asset_id (Zielsprache); eine URL wird vor dem Start der Synchronisation als Dokument zum Projekt hinzugefügt, wie jede andere Datei per URL. Die beiden Felder nehmen zwei verschiedene Dateien
{
  "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-…"
  }
}

Beide Stimmmodi werden zum selben Tarif berechnet.

Über MCP funktionieren die beiden SRT-Felder auch auf ElevenLabs Dubbing, mit model_name: "ElevenLabs Dubbing" und ohne Stimmen: Jeder Sprecher behält seine eigene Stimme, source_language ist erforderlich, da die Engine die Sprache aus einem Transkript nicht erkennen kann, und translation_asset_id geht nur neben source_transcript_asset_id, mit einer übersetzten Zeitmarke über jeder Zeitmarke des Transkripts. Wenn die meisten Zeitmarken mit einer Sprecherangabe beginnen, etwa Mira: …, entscheiden diese Angaben, wer wann spricht, eine Stimme pro Sprecher. ElevenLabs Dubbing hat keine model_id, über die Direct API läuft eine Synchronisation mit eigenem Text daher auf Morphic Dub.

Zuerst kalkulieren

Eine Synchronisation wird nach der Länge der Quelle berechnet, pro Sprache. plan_media kalkuliert den Aufruf, ohne ihn zu starten; auf Morphic Dub ist die Kalkulation die Schätzung, die der Start belastet und die die Abrechnung später verschieben kann.

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

Siehe Vor dem Ausgeben kalkulieren für den vollständigen Aufruf.

Die Synchronisation starten

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-…"
        }
      }'

Die Antwort ist 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 ist die jetzt belastete Schätzung; credits_settle_on_output_duration: true sagt, dass sie abgerechnet wird.

Die Generierung verfolgen

Eine Synchronisation auf Morphic Dub dauert bis zu etwa 13 Minuten pro Minute Video, und ein kurzer Clip braucht länger, als dieses Verhältnis nahelegt, da die festen Stufen unabhängig von der Länge gleich viel kosten: Ein Clip von 50 Sekunden brauchte 17 Minuten. Fragen Sie nicht von Anfang an ab. Warten Sie etwa das 13-Fache der Clip-Länge, lesen Sie dann mit einer langen Wartezeit und verlängern Sie die Abstände anhand der poll_after_seconds, die jedes Lesen enthält.

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"

Ein Webhook erspart Ihnen die Schleife: Übergeben Sie eine registrierte webhook_id im Aufrufbody, und Morphic ruft Ihren Endpunkt auf, sobald die Synchronisation endgültig ist. Nutzen Sie den Webhook als Hauptsignal und eine gelegentliche Abfrage als Sicherheitsnetz.

Sobald die Generierung succeeded ist, enthält assets das synchronisierte Video. Das notice der Antwort ist gesetzt, wenn die Synchronisation auf einer anderen Eingabe lief als der angegebenen, etwa einer regionalen Variante, die in ihrer Hauptsprache synchronisiert wurde.

Was es kostet

Morphic Dub wird nach der Länge der Quelle zu den API-Tarifen Ihrer Organisation berechnet, pro Sprache:

  1. Beim Start wird die Schätzung belastet: estimated_credits, ebenso billing.credits_charged
  2. Wenn die Synchronisation abgeschlossen ist, wird die Belastung auf das abgerechnet, was der Durchlauf tatsächlich verbraucht hat. Der abgerechnete Betrag kann unter oder über der Schätzung liegen, aber nie mehr als das Dreifache davon; was darüber hinausgeht, trägt Morphic
  3. Sobald die Generierung endgültig ist, ist billing.credits_charged der abgerechnete Nettobetrag und credits_are_final ist true. Eine Synchronisation, die fehlschlägt oder abgebrochen wird, wird vollständig erstattet

Lesen Sie die Generierung erneut, sobald sie endgültig ist, um den abgerechneten Betrag zu erhalten; ein Webhook wird erst dann gesendet. Siehe Credits und Nutzung für das Buchungsprotokoll.


Wenn Sie Probleme haben oder Fragen haben, können Sie sich gerne an uns wenden. Wir helfen Ihnen gerne. Schreiben Sie uns an support@morphic.com.

Auf dieser Seite