Zur Navigation springen

Übersetzung und Synchronisation

Übersetzung und Synchronisation

Wenn du nur eine standardmäßige Sprachübersetzung mit lipsync brauchst, ist der Single-Call-Flow mit dubParams einfacher, siehe Synchronisationsanleitung. 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:

1

Github-Repository klonen

Klone das sync-examples repository.

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

Umgebung einrichten

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

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

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)
  • 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 und OpenAI.
4

Videos übersetzen/synchronisieren

Führe das Python-Skript aus:

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)
  • Temporäres File Hosting: Dieser Code nutzt den temporären File-Hosting-Dienst Uguu, 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.

Verwandte Ressourcen