Zur Navigation springen

Synchronisation

Synchronisation wird nativ auf POST /v2/generate unterstützt. Übergebe das Objekt dubParams zusammen mit deiner normalen Generierungsanfrage und Sync Labs extrahiert Audio aus der Videoeingabe, synchronisiert es in die Zielsprache und führt dann lipsync auf dem synchronisierten Ergebnis aus, alles als ein Job.

Ein Video mit Audio reicht aus, damit Synchronisation funktioniert. Eine reine Videoeingabe (mit eingebetteter Audiospur) ist zulässig. Du musst keine separate Audioeingabe angeben. Audioeingaben im Array input werden ignoriert, wenn dubParams vorhanden ist. Du musst die Synchronisation-Parameter (dubParams) übergeben, um Synchronisation zu aktivieren.

Wann Synchronisation verwendet werden sollte

  • Nativer dubParams-Flow (diese Seite): einzelner API-Aufruf, empfohlen für standardmäßige Übersetzung-plus-lipsync-Workflows.
  • Manuelle Orchestrierung: wenn du individuelle Kontrolle über Transkription, TTS Stimmenklonen oder Zwischenschritte brauchst, siehe das Tutorial für Übersetzung und Synchronisation, das ElevenLabs, OpenAI und Sync Labs manuell verbindet.

Workflow

1

Ein Video mit Audio vorbereiten

Stelle sicher, dass deine Quelldatei ein Video ist, dessen Audiospur du übersetzen möchtest. Eine separate Audioeingabe ist nicht erforderlich.

2

Eine Zielsprache auswählen

Wähle einen der unterstützten targetLang-Codes (die vollständige Liste findest du im Enum DubLanguage in der API-Referenz).

3

Die Generierungsanfrage senden

Nimm dubParams in den Request-Body auf. providerName und targetLang sind erforderlich, sourceLang ist standardmäßig auto.

4

Auf Abschluss pollen

Polle GET /v2/generate/{id}, bis status COMPLETED ist. outputUrl enthält dann das synchronisierte und lipsyncte Video.

DubDto-Felder

Siehe die vollständige API-Referenz für dubParams.

  • providerName (DubProviderName, erforderlich): Synchronisationsanbieter, der verwendet wird. Aktuell ist elevenlabs der einzige unterstützte Wert.
  • targetLang (DubLanguage, erforderlich): Zielsprachcode für Synchronisation, zum Beispiel es, fr, ja.
  • sourceLang (DubSourceLanguage, optional, Standard auto): Quellsprachcode oder auto, damit die Engine ihn erkennt.
  • numSpeakers (integer, optional): veraltet und wird ignoriert. Synchronisation v2 erkennt Sprecher automatisch. Nur zur Abwärtskompatibilität akzeptiert.

Wenn du eine Zielsprache brauchst, die nicht in DubLanguage aufgeführt ist, generiere oder nimm das übersetzte Audio selbst auf und übermittle es als normale audio-Eingabe anstatt dubParams zu verwenden. Lipsync-Modelle können klares Audio in jeder Sprache abgleichen.

Anfragebeispiele

import { SyncClient } from "@sync.so/sdk";
const sync = new SyncClient();
const response = await sync.generations.create({
model: "lipsync-2",
input: [
{ type: "video", url: "https://assets.sync.so/docs/example-video.mp4" }
],
dubParams: {
providerName: "elevenlabs",
targetLang: "es"
}
});
from sync import Sync
client = Sync()
response = client.generations.create(
model="lipsync-2",
input=[
{"type": "video", "url": "https://assets.sync.so/docs/example-video.mp4"}
],
dub_params={
"provider_name": "elevenlabs",
"target_lang": "es"
},
)
curl -X POST https://api.sync.so/v2/generate \
-H "x-api-key: $SYNC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "lipsync-2",
"input": [
{ "type": "video", "url": "https://assets.sync.so/docs/example-video.mp4" }
],
"dubParams": {
"providerName": "elevenlabs",
"targetLang": "es"
}
}'

Verhaltenshinweise

  • Wenn dubParams gesetzt ist, wird Audio aus der Videoeingabe extrahiert, über ElevenLabs in die Zielsprache synchronisiert und lipsync gegen dieses synchronisierte Audio ausgeführt.
  • Audioeingaben im Array input werden ignoriert, wenn Synchronisation aktiviert ist. Übergib nur die Videoeingabe.
  • Für das Quellvideo ist eine ermittelte Audiodauer erforderlich. Synchronisationsanfragen ohne dekodierbare Audiospur werden abgelehnt.
  • Die Abrechnung erfolgt pro ausgegebener Minute für Synchronisation. Details findest du auf der Seite Abrechnung.

Siehe auch