Kdenlive kann seit kurzem auch Whisper von OpenAI nutzen, um automatisch Untertitel für ein Video zu generieren. Dabei erstellt Whisper die Untertitel in der Ausgangssprache – samt Zeichensetzung – oder übersetzt den Text gleich ins Englische. Die Untertitel muss man dann nur noch auf YouTube hochladen.
Bisher nutzte der Kdenlive das Open-Source-Spracherkennungssystem VOSK, um Untertitel für ein Video zu erzeugen. Seit Kdenlive 23.04 unterstützt es auch Whisper AI, das nicht nur bessere Ergebnisse, sondern auch Satzzeichen liefert, was die Untertitel leichter lesbar macht. Außerdem kann Whisper die Untertitel ins Englische übersetzen für eine zusätzliche Untertitelspur bei YouTube. Ich nutze im Folgenden Kdenlive in der aktuellen Version 24.05 unter Linux. Ob Kdenlive aus den Paketquellen installiert wurde oder als Flatpak oder AppImage spielt dabei keine Rolle, wichtig ist aber die Versionsnummer, weil frühere Versionen die Funktion gar nicht oder noch in einer nicht ganz so ausgereiften Fassung mitbringen. Wie Kdenlive grundsätzlich funktioniert, beschreibt der Blogbeitrag Schneller Einstieg in den Videoschnitt mit Kdenlive.
Hier gibt’s das Ganze als Videoanleitung:
Virtuelle Python-Umgebung einrichten
Damit Kdenlive Untertitel mit Whisper erzeugen kann, muss ich es erstmal einrichten. Kdenlive braucht dafür das Modul openai-whisper. Je nach Kdenlive-Version müsst ihr dabei unterschiedlich vorgehen. In früheren Kdenlive-Versionen reichte es oft, mit pip in einem Terminalfenster das Modul openai-whisper zu installieren. Oft funktionierte das aber auch nicht. Wenn ihr also eine ältere Version nutzt (ich würde davon abraten), dann könnt ihr das probieren.
Mit der aktuellen Version 24 läuft die Konfiguration etwas anders: Erst richte ich die virtuelle Python-Umgebung ein. Anschließend sorge ich dafür, dass Kdenlive darauf zugreifen kann und installiere dann aus dem Programm heraus Whisper AI. Falls das mit der von Eurem System bereitgestellten Python-Version nicht klappt und ihr parallel eine andere installieren wollt, hilft vielleicht dieser Blogbeitrag weiter.
Und so richte ich die virtuelle Python-Umgebung ein: In einem Terminalfenster wechsle ich in den Ordner mit den Kdenlive-Einstellungen:
cd ~/.local/share/kdenlive
Der folgende Befehl legt dort eine virtuelle Pythonumgebung an:
python -m venv venv
Und diese muss ich schließlich noch aktivieren:
source venv/bin/activate
Danach öffne ich Kdenlive und dort im Menü “Einstellungen, Kdenlive einrichten”. Unter “Umgebung” setze ich im Reiter “Python” einen Haken bei “Use python virtual environment (recommended)” und bestätige mit “Anwenden”.
Whisper AI installieren
In den Kdenlive-Einstellungen wechsle ich zu “Sprache-zu-Text” und aktiviere ganz oben “Whisper”. Jetzt noch ein Klick auf “Fehlende Abhängigkeiten installieren”, dann lädt Kdenlive das Modul openai-whisper, srt, torch und alles weitere Nötige herunter und richtet es ein. Wenn das geklappt hat, steht da anschließend “Sprache-zu-Text ist eingerichtet”. Nun kann ich oben als Gerät meine Grafikkarte, eine Nvidia Geforce RTX 3060 Ti, auswählen und mit “OK” bestätigen.
Untertitel erzeugen
Damit Kdenlive aus einer Audiospur mit Voice-Over die Untertitel erzeugt, öffne ich zunächst das Untertitel-Tool. Das geht entweder per Klick auf das Icon in der Timeline-Werkzeugleiste oder über den Menüpunkt “Projekt, Untertitel, Edit Subtitle Tool”.
Das öffnet eine weitere, leere Spur über der Timeline. Links im Spurkopf klicke ich nun auf das Zauberstabsymbol und öffnen damit den Dialog für Whisper. Verschieden große Modelle stehen zur Wahl, hier gilt: Je größer, desto besser in der Regel die Ergebnisse, aber umso höher auch die Hardware-Voraussetzungen. Welches davon ihr verwenden könnte, hängt davon ab, wie leistungsfähig eure Grafikkarte ist, das könnt ihr im Zweifel aber einfach ausprobieren.
Dann wähle ich die Sprache der Tonspur, also Deutsch. Und falls ich aus meiner deutschen Tonspur englische Untertitel erzeugen will, setze ich den Haken bei “Translate to English”. Die vier Optionen darunter legen fest, welche Spur oder welchen Clip Whisper ausliest. Zum Beispiel kommt unter Umständen nur Quatsch heraus, wenn beispielsweise sowohl der Ton eines Spiels als auch das Voice-Over ausgelesen werden. Welche Option hier sinnvoll ist, hängt also auch vom Video ab. Um Untertitel für einen einzelnen Clip zu erstellen, markiere ich den Clip per Klick auf der Tonspur in der Timeline, öffne dann das Untertitel-Tool und wähle “Ausgewählter Clip”.
In meinem Fall sind es oft mehrere Clips und zwei Tonspuren. Dabei liegt auf der zweiten Tonspur das Voice-Over. In diesem Fall wähle ich per Klick vorn auf den Spurkopf die Tonspur mit dem Voice-Over und markiere anschließend den gewünschten Bereich, also das ganze Video. Am schnellsten geht das mit der Tastatur: Strg+Pos1 springt an den Anfang der Timeline, die Taste i markiert den Anfang, Strg+Ende springt ans Ende des Videos und die Taste o markiert das Ende. Jetzt liegt über den Timeline ein Markierung, die zeigt, was als “Zeitleistenbereich” ausgewählt ist.
Danach öffne ich erneut das Untertiteltool und wähle “Zeitleistenbereich (ausgewählte Spur)”, damit ausschließlich die Voice-Over-Spur im ausgewählten Bereich ausgelesen wird. Nach einem Klick auf “Process” heißt es warten. Je nach Länge des Videos und der eigenen Hardware kann das eine Weile dauern. Direkt anschließend liegen die Untertitel in der entsprechenden Spur über dem Video. Wenn Kdenlive die Meldung “Untertitel wurden importiert” zeigt, kann ich das Fenster mit “Schließen” zumachen.
Untertitel bearbeiten
Die von Whisper AI aus dem Transkript angelegten Untertitel waren bei mir bisher immer ziemlich gut. Mindestens bei Eigennamen muss ich allerdings in der Regel nachbessern. Dazu gibts zwei Möglichkeiten:
Entweder zoome ich in die Timeline hinein, bis der Text lesbar wird. Dann öffnet ein Doppelklick einen Block zum Bearbeiten und ich kann direkt hineinschreiben.
Oder ich öffne über das Menü “Ansicht, Untertitel” ein Modul zum Bearbeiten der Untertitel. Da kann kann ich dann mit den Pfeilbuttons von einem Block zum nächsten springen, den Text korrigieren, in einzelne Untertitel aufteilen und nicht zuletzt Schriftart, -größe und Position der Untertitel ändern.
Untertitel exportieren & bei YouTube hochladen
Um die Untertitelspur zu exportieren, öffne ich das Menü Projekt und dann “Untertitel, Untertiteldatei exportieren”. Nun wähle ich einen Ort zum Speichern der SRT-Datei, die ich anschließend bei YouTube als Untertitel hochladen kann.
In YouTube-Studio öffne ich dazu die Details des Videos und wechsle zu „Untertitel”. Will ich englische Untertitel hochladen, klicke ich auf „Sprache hinzufügen“, wähle “Englisch” und klicke dann in der zweiten Spalte der neuen Zeile auf “Hinzufügen”. Daraufhin öffnet sich ein Fenster, wo ich Untertitel von YouTube automatisch übersetzen lassen könnte. Stattdessen wähle ich hier “Datei hochladen”, um meine eigene, korrekturgelesene Spur einzufügen. Die folgende Nachfrage “Mit Zeitangabe” muss ich bestätigen, dann die die Datei mit der Endung SRT auswählen und die Untertitel sind eingelesen. Ein Klick auf “Veröffentlichen” schaltet sie frei.
Damit das Video nicht nur englische Untertitel, sondern auch noch einen englischsprachigen Titel und Beschreibung bekommt, muss ich in diesem Dialog rechts daneben in der Untertitel-Zeile “Englisch” noch Titel und Beschreibung einfügen. Dazu tippe ich in dieser Spalte auf “Hinzufügen”. Dann sehe ich links Titel und Beschreibung des Videos im Original und kann rechts eine Übersetzung eintippen. Mit “Veröffentlichen” wird sie freigegeben.
Um zu sehen, wie das so aussieht, kann man den YouTube-Kanal im Browser öffnen und über das Icon oben rechts die Sprache auf Englisch umstellen. Danach zeigt YouTube den englischen Titel, während alle weiteren Videos ohne englischen Titel weiterhin den deutschen tragen.
Kdenlive kann Tonspuren aus vielen verschiedenen Sprachen einlesen, sie allerdings nur in derselben Sprache ausgeben oder ins Englische übersetzen. Praktisch ist das allemal und die Qualität kann sich wirklich sehen lassen. Wie macht ihr das? Macht Ihr Untertitelspuren für eure YouTube-Videos?