> For the documentation index, fetch https://sync.so/docs/llms.txt. Append .md to a page URL for Markdown. Documentation-search MCP: https://sync.so/docs/_mcp/server.

# Übersetzung und Synchronisation

> Tutorial für KI-Videoübersetzung und Synchronisation. Übersetze Videos in jede Sprache mit lipsyncten Mundbewegungen mithilfe der sync. labs API und ElevenLabs.

## Übersetzung und Synchronisation

> **Note**
>
> Wenn du nur eine standardmäßige Sprachübersetzung mit lipsync brauchst, ist der Single-Call-Flow mit `dubParams` einfacher, siehe [Synchronisationsanleitung](/docs/tutorials/Synchronisation). Dieses Tutorial ist für Nutzer, die feingranulare Kontrolle über die Orchestrierung zwischen ElevenLabs, OpenAI und Sync Labs möchten.

Videoübersetzung und Synchronisation ermöglichen dir, Inhalte in verschiedene Sprachen umzuwandeln und dabei natürliche Lippenbewegungen und Sprachqualität beizubehalten. Dieses Tutorial zeigt dir, wie du Videos programmatisch übersetzt und synchronisierst, um deine Inhalte für globale Zielgruppen zugänglich zu machen.

Folge diesen Schritten, um das Übersetzung und Synchronisation-Beispiel auszuführen:

#### Github-Repository klonen

Klone das [sync-examples repository](https://github.com/synchronicity-labs/sync-examples).

```bash
git clone https://github.com/synchronicity-labs/sync-examples.git
cd sync-examples/translation/python
```

#### Umgebung einrichten

Erstelle eine virtuelle Umgebung und installiere die erforderlichen Abhängigkeiten:

```bash
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```

#### Eingaben und Einstellungen konfigurieren

Bearbeite die Datei `args.py`, um die folgenden Eingaben und Einstellungen zu konfigurieren:

* `SYNCLABS_API_KEY`: Dein API-Schlüssel für Sync Labs
* `ELEVENLABS_API_KEY`: Dein API-Schlüssel für ElevenLabs
* `OPENAI_API_KEY`: Dein API-Schlüssel für OpenAI

Erforderliche Einstellungen:

* `input_vid_url`: URL des zu übersetzenden/synchronisierenden Videos.
* `target_language`: Zielsprache für die Übersetzung (zum Beispiel "Spanish")
* `output_json_path`: Dateipfad zum Speichern der Ausgabe-JSON-Daten

Optionale Einstellungen:

* `source_language`: Ausgangssprache des Videos (für automatische Erkennung leer lassen)
* `voice_id`: ElevenLabs voice ID (leer lassen, um die Stimme automatisch aus dem Eingabevideo zu klonen)
* `sync_mode`: Modus zum Synchronisieren von Text mit Video bei Längenabweichungen (Standard: "bounce")
* `lipsync_model`: Sync.so lipsync-Modell (Standard: "lipsync-2")
* `tts_model`: ElevenLabs Text-zu-Sprache-Modell (Standard: "eleven\_multilingual\_v2")
* `gpt_model`: OpenAI GPT-Modell für Übersetzung (Standard: "gpt-3.5-turbo")
* `transcription_model`: OpenAI-Modell für Transkription (Standard: "whisper-1")
* `segment_start`: Startzeit des zu übersetzenden/synchronisierenden Videosegments (in Sekunden, -1 für gesamtes Video)
* `segment_end`: Endzeit des zu übersetzenden/synchronisierenden Videosegments (in Sekunden, -1 für gesamtes Video)

> **Note**
>
> * Die Eingabevideodatei muss Audio enthalten, das für Stimmenklonen verwendet wird, wenn keine voice ID angegeben ist.
> * Weitere Informationen zu unterstützten Sprachen und Modellen findest du bei [ElevenLabs](https://elevenlabs.io/docs/overview/models) und [OpenAI](https://developers.openai.com/api/docs/guides/speech-to-text).

#### Videos übersetzen/synchronisieren

Führe das Python-Skript aus:

```bash
python main.py
```

Dieser Befehl startet den Prozess zur Übersetzung/Synchronisierung des Videos basierend auf der Konfiguration in `args.py`.

Nach Abschluss wird eine JSON-Datei unter dem in `output_json_path` angegebenen Pfad gespeichert und enthält folgende Informationen:

* `input_video`: URL des verarbeiteten Originalvideos
* `generated_audio`: URL zur übersetzten Audiodatei
* `lipsync_jobID`: Eindeutige ID für den lip sync-Job
* `outputUrl`: URL für den Zugriff auf das finale übersetzte/synchronisierte Video
* `voice_id`: ID der in der Übersetzung verwendeten Stimme (wenn nicht angegeben, automatisch generiert)

> **Note**
>
> * **Temporäres File Hosting**: Dieser Code nutzt den temporären File-Hosting-Dienst [Uguu](https://uguu.se/), um URLs für TTS-Audiodateien zu erzeugen. Diese URLs laufen nach 3 Stunden ab. Um deinen eigenen Hosting-Dienst zu verwenden, ändere `upload_file_uguu()` in `FileProcessor.py`.
> * **Job Polling**: Das Polling für den Abschluss des lipsync-Jobs läuft nach 60 Minuten in ein Timeout. Passe das Timeout-Limit in `LipSyncService.py` an oder nutze `fetch_updates.py`, um Ausgabe-URLs über `output_json_path` abzurufen.