So hat lange gedauert aber wie vorgeschlagen habe ich
Whisper probiert. Hier meine Erfahrung auf Manjaro Linux. Vielleicht hilft es anderen.
Welches Whisper?
Auf Linux hat man die Qual die Wahl, unter Arch als AUR oder doch direkt via Phython?
Wenn man einmal die Quelle eingeschränkt hat stellt sich dann die Wahl welche Variante?
Ich habe mich für das "Reine" whsiper.cpp entschieden, ohne Cuda und auch nicht "whisper-ctranslate2"
Warum? Ich habe eine Radeon RX6900 XT Grafikkarte, ctranslate2 oder jene mit Cuda fallen da weg.
Das Bauen von whisper.cpp ging zügig.
Mein Testobjekt
Herhalten musste "
Day of the Dead" DVD aus dem Jahr 2008. Opensubtitles und co bot Untertitel aber nur mit 23,98fps und nicht 25fps. Diese waren waren einfach nicht vernünftig auf meine PAL Version "umbieggbar" und meilenweit vom Timing entfernt. Meiner Erfahrung immer so bei Horrorfilmen.
Testlauf 1
Klar zuerst mit ffmpeg ein Ausschnitt aus der DVD gefertigt um mit einer kleinen Menge zu sehen wie gut es funktioniert.
Code:
ffmpeg -i DOD.mkv -ss 00:00:00 -t 00:03:00 -c copy AITest.mkv
Dann hat meine (Gemini) Recherche gezeigt whisper braucht natürlich kein Video, Audio reicht.
Also mit ffmpeg vom Ausschnitt eine Audiodatei erstellt:
Code:
ffmpeg -i "AITest.mkv" -vn -ar 16000 -ac 1 -c:a pcm_s16le "audio_for_ai.wav"
Da ich whisper ohne jegliche "vorgefertigte" Modellvariante genommen habe, habe ich mir diese Modelle über den Commandline dann heruntergeladen. Achte, wo man in der Kommendozeile gerade ist (also ~, oder / oder sonswto) dort wird das Modell dann auch abgelegt:
Code:
Modell: large-v3
wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3.bin
Modell: large-v2
wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v2.bin
Und der krönende Abschluss: Die Generierung
Code:
whisper-cli -m ~/Documents/ggml-large-v3.bin -f "audio_for_ai.wav" -pp -osrt -l en
Erfahrung: Am Anfang Freude, die Testdatei wurde tadellos bearbeitet. Mit dem ganzen Film kommt Ernüchterung, das Modell läuft zeitnah in ein
Loop.
Optimiereung
Klar ich habe dann Gemini AI gefragt was kann man tun. Gemini sagt mir Day of the Dead hat viel Rauschen, analoge Effekte, das Gesprochene ist sehr im Hintergrund.
large-v3 ist besser wenn man auch mit anderen Sprachen als nur Englisch hantiert, genauer und sensibler aber schlecht bei alten Audiomaterial.
Ich brauche nur Englisch, also
Testlauf 2 mit v2 Modell
Code:
whisper-cli -m ~/Documents/ggml-large-v2.bin -f "audio_for_ai.wav" -pp -osrt -l en
Erfolg! Lief durch ohne Loops und das Ergebnis war erstaunlich gut.
Hier vom ganzen Film ein Ausschnitt:
Testlauf 3 - Audiooptimierun und neuer Versuch mit Modell v3
ffmpeg ist mächtig und kann natürlich bei der Audioextrahierung Dinge verbessern, sagt Gemini und gab mir diesen Befehl:
Code:
ffmpeg -i "DOD.mkv" -vn -ar 16000 -ac 1 -c:a pcm_s16le \
-af "highpass=f=200, lowpass=f=3500, afftdn, dynaudnorm" \
"audio_for_ai.wav"
Ergebnis?
v3 war besser und lief länger aber halluzinierte dann trotzdem.
Testlauf 4 - Die ultimative Waffe? Whisper mit einem extra "Voice Activity Detection" (VAD) Modell
VAD ist ein Filter und fokussiert sich auf Gesprochenes. Laut Gemini genau das Werkzeug um Dinge wie (coughs) nicht in der Untertiteldatei zu haben.
Code:
whisper-cli -m ~/Documents/ggml-large-v3.bin -f "audio_for_ai.wav" -osrt -l en \
--vad \
--vad-model ~/Documents/ggml-silero-v6.2.0.bin \
--vad-threshold 0.1 \
--vad-min-speech-duration-ms 10
Tatsächlich musste ich mit dem vad-treshold mächtig herumprobieren bis whisper von VAD Material bekommen hat. Und ja 0.1, der niedrigste Wert war schlussendlich nur brauchbar.
Ergebnis?
v3 lief durch und Dinge wie "(coughs)" gabs nicht mehr.

Aber manch Dialoge wurden nicht erfasst und viel kritischer, die Timings waren off!
Trotzdem war das ein netter Test, VAD macht wohl eher mehr Sinn für Live-Captions in schlechter Umgebung und Gemini hat vielleicht etwas halluziniert wie man "(coughs)" und so nicht in der Untertiteldatei bekommt und trotzdem synchron zum Film bleibt oder die Audiodatei war noch immer zu schlecht für die Kombi.
Fazit
Testlauf 2 hat das beste Ergebnis geliefert. Schon ohne optimiertes Audio!
Übrigens viel Zeit brauchte whisper nicht um durch den Film zu laufen.
Den Film konnte ich dann tadellos mit den AI generierten Untertitel auf mein neustes Spielzeug, ein Zidoo Z9X 8K Mediaplayer genießen.
Übrigens, mit Medium AI Enhancements des Geräts wurde der Film quasi auf ca. Netflix 1080p Streamingniveau gehoben, ich konnte die Qualität nicht fassen!