API-Anleitung für Videosynchronisation
Bei der Videosynchronisation werden übersetzte Audioinhalte mit lippensynchronen Videos kombiniert, sodass synchronisierte Inhalte in der Zielsprache natürlich aussehen. Sie können entweder den integrierten Synchronisierungsablauf von Sync Labs mit dubParams verwenden oder selbst übersetztes Audio bereitstellen und Sync Labs für den lip syncsschritt verwenden.
Voraussetzungen - A Sync Labs API Schlüssel - Ein Quellvideo (URL oder hochgeladenes Asset) - Für integriertes Überspielen: Quellaudio in der Videodatei - Für manuelles Überspielen: übersetztes Audio in der Zielsprache (von einem TTS-Dienst oder einem menschlichen Synchronsprecher)
Installieren Sie den SDK für Ihre Sprache:
Legen Sie Ihren API-Schlüssel fest:
Integriertes API-Überspielen mit dubParams
Verwenden Sie dubParams, wenn Sie möchten, dass Sync Labs das Quellaudio aus dem Video extrahiert, es über ElevenLabs übersetzt und überspielt und dann die lip sync für das überspielte Ergebnis durchführt. Dies ist der einfachste Weg, wenn Ihr Eingabevideo bereits über Quellaudio verfügt.
Wenn dubParams vorhanden ist: - Stellen Sie einen einzelnen video-Eingang mit Audio bereit - Stellen Sie dubParams.targetLang auf den Zielsprachencode ein, z. B. "es", "fr" oder "hi" - optionales Set dubParams.sourceLang; Lassen Sie es weg oder verwenden Sie "auto" für die automatische Erkennung der Quellsprache - dubParams.numSpeakers ist veraltet und wird ignoriert - Synchronisation v2 erkennt Lautsprecher automatisch - Fügen Sie keinen separaten Audioeingang für den übersetzten Titel hinzu. Audioeingänge werden ignoriert, während das Überspielen aktiviert ist
<Note> Die integrierte Synchronisierung wird durch ElevenLabs unterstützt. Wenn das Video kein verwendbares Quellaudio hat, stellen Sie stattdessen Ihr eigenes übersetztes Audio bereit und folgen Sie der Anleitung pipeline unten. </Note>
Manuelle Synchronisationspipeline
<Steps> <Step title=“Bereiten Sie Ihr übersetztes Audio vor”> Generieren Sie übersetzte Audiodaten mit einem Text-zu-Sprache-Dienst wie ElevenLabs, Google Cloud TTS oder Amazon Polly. Sie können auch einen menschlichen Synchronsprecher einsetzen. Das Audio muss auf einem öffentlich zugänglichen URL gehostet werden. Wenn Sie bereits über eine übersetzte Audiodatei verfügen, laden Sie diese auf Ihren Hosting-Dienst hoch und schnappen Sie sich den URL. </Step> <Step title=“Senden Sie an Sync Labs API”> Senden Sie das Quellvideo und das übersetzte Audio an den Sync Labs API. Der API generiert neue Lippenbewegungen passend zum übersetzten Audio. <CodeBlocks> ```typescript dub.ts import { SyncClient } from “@sync.so/sdk”;
const sync = new SyncClient();
// Source video with original language const videoUrl = “https://your-cdn.com/original-video.mp4”; // Translated audio in target language const dubbedAudioUrl = “https://your-cdn.com/translated-audio-spanish.wav”;
const response = await sync.generations.create({ input: [ { type: “video”, url: videoUrl }, { type: “audio”, url: dubbedAudioUrl }, ], model: “lipsync-2”, options: { sync_mode: “cut_off” }, });
const jobId = response.id;
console.log(Synchronisation job submitted: $\{jobId});
</CodeBlocks>
</Step>
<Step title=“Umfrage zum Abschluss”>
Überprüfen Sie den Generierungsstatus, bis er abgeschlossen ist. Verwenden Sie für Produktionssysteme webhooks anstelle von Polling.
<CodeBlocks> ```typescript
let generation = await sync.generations.get(jobId);
while (![“COMPLETED”, “FAILED”, “REJECTED”].includes(generation.status)) {
console.log(Status: $\{generation.status});
await new Promise((r) => setTimeout(r, 10000));
generation = await sync.generations.get(jobId);
}
if (generation.status === “COMPLETED”) {
console.log(Dubbed video ready: $\{generation.outputUrl});
} else {
console.log(Dubbing failed for job $\{jobId});
}
</CodeBlocks>
</Step>
<Step title=“Laden Sie das synchronisierte Video herunter”>
Der output_url (Python) oder outputUrl (TypeScript) enthält einen direkten Link zum synchronisierten Video. Laden Sie es herunter oder geben Sie es an Ihre Lieferung pipeline weiter.
</Step>
</Steps>
Verwendung der ElevenLabs-Integration
Sync Labs verfügt über eine integrierte ElevenLabs-Integration, die Text-zu-Sprache und lip sync in einem einzigen API-Anruf übernimmt. Anstatt Audio separat zu generieren, übergeben Sie den übersetzten Text direkt. <CodeBlocks>```typescript dub_with_elevenlabs.ts import { SyncClient } from “@sync.so/sdk”;
const sync = new SyncClient();
const response = await sync.generations.create({ input: [ { type: “video”, url: “https://your-cdn.com/original-video.mp4”, }, { type: “text”, provider: { name: “elevenlabs”, voiceId: “EXAVITQu4vr4xnSDxMaL”, script: “Hola, bienvenidos a nuestra plataforma. Hoy les mostraremos las nuevas funciones.”, stability: 0.5, similarityBoost: 0.75, }, }, ], model: “lipsync-2”, options: { sync_mode: “cut_off” }, });
console.log(Job ID: $\{response.id});
</CodeBlocks>
<Note>
Das Feld script hat maximal 5.000 Zeichen pro Generation. Teilen Sie längere Skripte in Segmente auf. Einzelheiten zur ElevenLabs-Einrichtung finden Sie auf der Seite Integrationen.
</Note>
Unterstützte Sprachen
Die Lipsync-Modelle von Sync Labs sind sprachunabhängig. Sie arbeiten mit Audio in jeder Sprache - die Modelle analysieren Mundformen anhand der Audiowellenform, nicht anhand der Sprache selbst. Wenn Ihr übersetzter Ton klar und gut produziert ist, stimmt die lip syncsausgabe überein.
Wählen Sie für den integrierten dubParams-Flow einen der unterstützten targetLang-Codes in der API-Referenz. Wenn Sie eine Sprache außerhalb dieser Liste benötigen oder mehr Kontrolle über die Übersetzung wünschen, generieren oder zeichnen Sie die übersetzten Audiodaten separat auf und verwenden Sie das Handbuch pipeline oben.
Eine vollständige Komplettlösung für die Übersetzung von pipeline (Transkription, Übersetzung, TTS und Lipsync) finden Sie im Video Translation API-Handbuch.
Synchronisation mit mehreren Sprechern
Bei Videos mit mehreren Sprechern nutzen Sie die Segmente API, um unterschiedliche Audiospuren unterschiedlichen Zeitbereichen zuzuordnen. Jedes Segment kann auf einen separaten Audioeingang mit einer bestimmten Stimme verweisen.
Eine vollständige Dokumentation und weitere Beispiele finden Sie im Segment-Leitfaden.
Leistungstipps
<CardGroup cols={1}>
<Card title=“Verwenden Sie webhooks für die Produktion” icon=“bell”>
Ersetzen Sie die Abfrage durch webhooks für Produktions-pipelines. Sie erhalten eine POST-Benachrichtigung, wenn der Auftrag abgeschlossen ist, wodurch unnötige API-Aufrufe vermieden werden.
</Card>
<Card title=“Verwenden Sie die batch-Verarbeitung für die Massenüberspielung” icon=“layer-group”>
Eine ganze Videobibliothek überspielen? Mit dem Batch-API können Sie bis zu 500 Generationen in einem einzigen Vorgang mit einer Bearbeitungszeit von 24 Stunden einreichen.
</Card>
<Card title=“Wählen Sie das richtige Modell” icon=“sliders”>
Verwenden Sie lipsync-2 für die meisten Synchronisationsaufträge. Verwenden Sie sync-3 für Synchronisation in Produktionsqualität, komplexe Szenen, Hindernisse, Profilwinkel oder 4K-Ausgabe. Wechseln Sie zu lipsync-2-pro, wenn Sie erstklassige Gesichtsdetails zu einem günstigeren Preis als sync-3 benötigen.
</Card>
<Card title=“Passen Sie die Audiodauer an” icon=“clock”>
Stellen Sie sync_mode ein, um zu steuern, was passiert, wenn Audio- und Videolängen unterschiedlich sind. cut_off schneidet überschüssiges Audio ab. bounce wiederholt das Video, um es an die Audiolänge anzupassen. Die vollständige Verhaltensmatrix finden Sie unter Sync-Modus.
</Card>
</CardGroup>
<llms-ignore>
Nächste Schritte - Video Translation API-Anleitung - Erstellen Sie eine vollständige Transkription-zu-Lipsync-pipeline - Batch-API - Hunderte von Synchronisationsaufträgen gleichzeitig verarbeiten - Segment-Leitfaden - Behandeln Sie Videos mit mehreren Sprechern - Leitfaden für Lip sync mit Text-zu-Sprache - Kombinieren Sie TTS mit Lipsync
</llms-ignore>

