Communitygithub.com

Video-Übersetzung

Übersetzt und synchronisiert Videos von einer Sprache in eine andere, ersetzt die Original-Audiospur durch TTS und behält das Video intakt.

Was ist Video-Übersetzung?

Diese Fähigkeit ermöglicht es, die gesprochene Sprache eines Videos zu übersetzen und durch eine synthetische, zeitlich abgestimmte Audiospur zu ersetzen, wobei das Video selbst unverändert bleibt. Sie ist nützlich für Benutzer, die fremdsprachige Inhalte in ihrer Muttersprache anhören möchten, und unterstützt die Integration in KI-Agenten-Plattformen wie Claude Code, Cursor und Codex. Der Workflow umfasst das Herunterladen des Videos und der Untertitel, die Übersetzung der Untertitel mit einem festen Prompt, die Erzeugung einer zeitgenauen, emotionsangepassten Sprachausgabe mit dem Noiz-TTS-Backend (mithilfe des Originaltons als Referenz), und das Ersetzen der Audiospur mit ffmpeg. Die Fähigkeit erfordert die Skills 'youtube-downloader' und 'tts', sowie eine konfigurierte NOIZ_API_KEY und installiertes ffmpeg.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/noizai/skills/tree/main/skills/video-translation

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Video-Übersetzung?

Übersetze die gesprochene Sprache eines Videos in eine andere Sprache, generiere die synchronisierte Audiospur mit TTS und ersetze die Original-Audiospur.

Auslöser

  • Übersetze dieses Video
  • Synchronisiere dieses Video auf Englisch
  • Übersetze Video von X nach Y
  • Video Übersetzung

Anwendungsfälle

  • Der Benutzer möchte ein fremdsprachiges YouTube-Video ansehen, es aber lieber in seiner Muttersprache hören.
  • Der Benutzer gibt einen Videolink an und bittet ausdrücklich um eine Änderung der Audiosprache.

Arbeitsablauf

Wenn der Benutzer bittet, ein Video zu übersetzen:

  1. Video und Untertitel herunterladen: Verwende die youtube-downloader-Fähigkeit, um das Video und seine Untertitel als SRT herunterzuladen. Gib die Ausgangssprache an, um die korrekten Untertitel zu erhalten.

    python pfad/zu/youtube-downloader/scripts/download_video.py "VIDEO_URL" --subtitles --sub-lang <sprachcode_quelle> -o /tmp/video-translation
    
  2. Untertitel übersetzen: Lese die heruntergeladene .srt-Datei. Übersetze ihren Inhalt Satz für Satz in die Zielsprache mit dem folgenden festen Prompt. Behalte das exakte SRT-Index- und Zeitstempelformat bei!

    Übersetzungs-Prompt:

    Übersetze den folgenden Untertiteltext von in . Gib NUR den übersetzten Text aus. Keine Erklärungen, keine Notizen, keine Indexnummern. Die Übersetzung muss umgangssprachlich, natürlich klingen und für die Video-Synchronisation geeignet sein.

    Speichere den übersetzten Text in einer neuen Datei translated.srt.

  3. Synchronisierte Audiospur generieren: Verwende die tts-Fähigkeit, um die zeitgenaue Audiospur aus dem übersetzten SRT zu rendern. Das Noiz-Backend passt die Dauer jedes Satzes automatisch an die ursprünglichen Videountertitel-Zeitstempel an.

    Um sicherzustellen, dass die synthetisierte Stimme genau die Tonlage und Emotion des Originalsprechers für jeden Satz trifft, übergib die Originalvideodatei mit --ref-audio-track. Die TTS-Engine schneidet automatisch die Originalaudiospur an den genauen Zeitstempeln jedes Untertitels aus und verwendet sie als Referenz für das jeweilige Segment.

    Erstelle eine einfache voice_map.json:

    {
      "default": {
        "target_lang": "<zielsprachcode>"
      }
    }
    

    Rendere die zeitgenaue Audiospur:

    bash skills/tts/scripts/tts.sh render --srt translated.srt --voice-map voice_map.json --backend noiz --auto-emotion --ref-audio-track original_video.mp4 -o dubbed.wav
    
  4. Audio im Video ersetzen: Verwende das Skript replace_audio.sh, um das Originalvideo mit der neuen synchronisierten Audiospur zu mischen. Um den nicht-sprachlichen Audiohintergrund des Originalvideos außerhalb der übersetzten Segmente zu erhalten, übergib die --srt-Datei.

    bash skills/video-translation/scripts/replace_audio.sh --video original_video.mp4 --audio dubbed.wav --output final_video.mp4 --srt translated.srt
    
  5. Ergebnis präsentieren: Gib den Dateipfad der final_video.mp4-Datei an den Benutzer zurück.

Eingaben

  • Erforderliche Eingaben:
    • VIDEO_URL: Die URL des zu übersetzenden Videos.
    • target_language: Die Sprache, in die die Audiospur übersetzt werden soll.
  • Optionale Eingaben:
    • source_language: Die Sprache des Originalvideos (falls nicht automatisch erkannt oder angegeben).
    • reference_audio: Bestimmte Audiodatei/URL für die Stimmklonierung anstelle der dynamischen Originalvideospur.

Ausgaben

  • Erfolg: Pfad zur endgültigen Videodatei mit ersetzter Audiospur.
  • Fehler: Klare Fehlermeldung, die angibt, ob der Download, die TTS oder das Ersetzen der Audiospur fehlgeschlagen ist.

Anforderungen

  • Abhängigkeiten (andere Fähigkeiten)
    • youtube-downloader (crazynomad/skills) — SKILL.md Installation: Klone oder kopiere das Verzeichnis skills/youtube-downloader von crazynomad/skills in deinen skills/-Ordner, sodass skills/youtube-downloader/scripts/download_video.py verfügbar ist.
    • tts (NoizAI/skills) — SKILL.md Falls nicht bereits in diesem Repository: Klone oder kopiere das Verzeichnis skills/tts von NoizAI/skills in deinen skills/-Ordner. Stelle sicher, dass skills/tts/scripts/tts.sh und zugehörige Skripte vorhanden sind.
  • NOIZ_API_KEY für das Noiz-Backend konfiguriert. Falls nicht gesetzt, führe den Benutzer zunächst dazu, einen API-Schlüssel von https://developers.noiz.ai/api-keys zu erhalten. Nachdem der Benutzer den Schlüssel bereitgestellt hat, frage, ob er ihn dauerhaft speichern möchte; falls ja, schreibe/aktualisiere NOIZ_API_KEY=... in der .env-Datei des Projekts oder führe bash skills/tts/scripts/tts.sh config --set-api-key DEIN_SCHLUESSEL aus, um ihn zu speichern.
  • ffmpeg installiert.

Einschränkungen

  • Das Quellvideo muss Untertitel (oder automatisch generierte Untertitel) auf der Plattform für die Ausgangssprache verfügbar haben.
  • Sehr lange Videos können erhebliche Zeit für die Übersetzung und Synchronisation benötigen.

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

Verwandte Skills