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:
-
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 -
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. -
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 -
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 -
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-downloadervon crazynomad/skills in deinenskills/-Ordner, sodassskills/youtube-downloader/scripts/download_video.pyverfügbar ist. - tts (NoizAI/skills) — SKILL.md
Falls nicht bereits in diesem Repository: Klone oder kopiere das Verzeichnis
skills/ttsvon NoizAI/skills in deinenskills/-Ordner. Stelle sicher, dassskills/tts/scripts/tts.shund zugehörige Skripte vorhanden sind.
- youtube-downloader (crazynomad/skills) — SKILL.md
Installation: Klone oder kopiere das Verzeichnis
NOIZ_API_KEYfür das Noiz-Backend konfiguriert. Falls nicht gesetzt, führe den Benutzer zunächst dazu, einen API-Schlüssel vonhttps://developers.noiz.ai/api-keyszu erhalten. Nachdem der Benutzer den Schlüssel bereitgestellt hat, frage, ob er ihn dauerhaft speichern möchte; falls ja, schreibe/aktualisiereNOIZ_API_KEY=...in der.env-Datei des Projekts oder führebash skills/tts/scripts/tts.sh config --set-api-key DEIN_SCHLUESSELaus, um ihn zu speichern.ffmpeginstalliert.
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.