Zo maakten we onze YouTube-podcasts toegankelijker met ondertiteling

7 uren geleden 1

Met regelmaat krijgen we de vraag of we onze podcasts ook als artikelen kunnen publiceren. Dat is lastig, niet in de laatste plaats omdat een podcast een gesprek is. Wat gelukkig een stuk minder lastig is, is het maken van goede transcripties. Daardoor kunnen ook mensen die om wat voor reden dan ook geen geluid kunnen horen, de verhalen toch tot zich nemen. Met andere woorden: per vandaag zijn al onze podcasts op YouTube voorzien van gecontroleerde ondertiteling.

Hoe hebben we dat gedaan? We kunnen niet ontkennen dat de kwaliteit van bepaalde large language models (AI of kunstmatige intelligentie in de volksmond) daaraan heeft bijgedragen. Onze teksten zijn vaak best complex met veel bijzondere woorden, moeilijke namen en heel veel getalletjes. De standaardondertiteling van YouTube was daardoor geregeld echt onleesbaar. Daarom leek het ons goed dit beter te doen en ook leuk om onze manier van werken met jullie te delen.

Wat heb je nodig?

Verschillende tools, waaronder large language models of llm’s, zijn cruciaal om de tijd die nodig is om een podcast te transcriberen, te controleren en vervolgens weer als ondertitelingsbestand met de juiste tijdcodes op te slaan, enorm in te korten.

In ons geval hebben we verschillende tools gebruikt, namelijk, naast het gewone internet en een browser:

  • ffmpeg om mp3’s om te zetten in relatief kleine mono-WAV-bestanden
  • Whisper van OpenAI, een model dat gratis te downloaden is en lokaal op je computer kan draaien
  • ChatGPT, eerst model 5.4 en later 5.5, voor het controleren van de teksten op fouten
  • Visual Studio Code (VSCode) met de Kilo Code-plugin voor het draaien van verschillende agents naast elkaar

ffmpeg

Deze tool is de basis voor ongeveer alles op internet dat met beeld en geluid te maken heeft. Van streaming tot het converteren van bestanden en de backbone van videoproductiesoftware: je kunt het zo gek niet bedenken. Voor ons was ffmpeg vooral belangrijk omdat de tool via de command line of terminal heel snel een podcast van een uur kan omzetten. In dit geval van een mp3 naar een klein 16-bit mono-WAV-bestand. Dat bestandstype vindt Whisper het fijnst om mee te werken.

Screenshot van ffmpeg-actie (mp3 --> wav) ffmpeg aan het werk

Whisper

Whisper gebruik je ook via de terminal. De tool is gewoon goed in het omzetten van gesproken tekst naar een SRT-bestand met tijdcodes, dat vervolgens naar YouTube geüpload kan worden om de juiste ondertitels neer te zetten.

Alleen is Whisper niet zo goed in namen. Scientias wordt van alles, maar geen ‘Scientias’. Krijn wil nog wel, maar Soeteman krijgt ook allerlei varianten, net als Diederiks achternaam Jekel. En dan zijn er natuurlijk nog heel veel kleine dingen die je in spreektaal net niet helemaal lekker zegt. Met andere woorden: de tekst is bruikbaar, maar moet wel helemaal nagelopen worden.

whisper aan het werk op de command line whisper aan het werk

ChatGPT

Waarom ChatGPT? Omdat het op het werk beschikbaar is. Zo simpel ligt het eigenlijk.

Wat vraag je dan aan zo’n chatbot? Een paar dingen, zoals: “loop de tekst van het SRT-bestand na op spelling en grammatica, controleer namen, gebeurtenissen en eventueel andere opvallende woorden op correcte spelling, gebruik betrouwbare bronnen zoals Wikipedia en controleer datums van gebeurtenissen. Pas de spreektaal en zinsbouw niet aan, want de teksten horen bij bestaande YouTube-video’s. Blijf zo dicht mogelijk bij het origineel. Output: in SRT-bestandsformaat.”

Dan is de bot echt wel even bezig. Met het oudere model kostte dat makkelijk tien minuten tot een kwartier. Het nieuwere model, 5.5, deed er ongeveer vijf minuten per aflevering over.

De workflow in Visual Studio Code

Visual Studio Code is een open-source (?) tool van Microsoft. Misschien wat gek op een Linux-machine, maar wel heel praktisch om al die tools naast elkaar te laten draaien. Uiteindelijk werd de workflow als volgt:

  • een verbinding met ChatGPT via Kilo Code
  • verschillende workflows naast elkaar aanzetten:
    • lokale omzetting van mp3’s naar mono-WAV-bestandjes
    • een volgende agent de opdracht geven om alle WAV-bestanden met Whisper te transcriberen naar SRT-bestandjes, met behulp van een redelijke GPU. Dat duurde ongeveer acht minuten per bestand
    • een volgende agent de opdracht geven om alle omgezette SRT-bestanden na te lopen met behulp van ChatGPT 5.5, daarbij de instructieset toe te passen en er een SRT-bestand met tijdcodes voor YouTube van te maken. Dat duurde ongeveer vijf minuten per stuk
Visual Studio Code met ChatGPT 5.5-agent en instellingen van de providers in Kilo

Het eindresultaat

Daarna bleef er nog één handeling over die vooralsnog door een mens gedaan moest worden: per video het tekstbestand uploaden en met een paar steekproeven door de video heen controleren of de tekst klopt. Eén keer bleek dat ChatGPT er ineens nette zinnen van had gemaakt. Gelukkig ontdekten we dat voordat we de workflow echt inzetten. Dat zorgde voor de extra instructie: ‘blijf bij het origineel en pas geen zinsbouw aan, want het is spreektaal’.

Was het veel werk? Het uploaden was best veel werk, al kon dat gelukkig tussen de bedrijven door. De rest werd uit handen genomen door verschillende tools, waarbij ChatGPT fungeerde als orkestrator of dirigent van het werk binnen VS Code. Dit had overigens ook met scripts gekund, maar dat moet je kunnen. Als dit iets is wat je wekelijks doet is het wellicht handig om zoiets in een script te gieten. Voor ons was deze manier sneller en haalbaarder.

We hopen dat de Scientias Podcast met deze ondertiteling weer een stukje toegankelijker is geworden.

PS: wil je nu ook lokaal met AI-modellen aan de slag? Dat kan op verschillende manieren. Voor gesproken tekst is er bijvoorbeeld Handy.computer, een tooltje waarmee je vrij eenvoudig verschillende spraak-naar-tekstmodellen lokaal kunt gebruiken. Ook kun je met LM Studio lokale taalmodellen op je eigen computer draaien. Voor simpele taken is dat prima te doen. Voor grotere of ingewikkeldere modellen heb je vaak wel een krachtige computer nodig als je wilt dat het een beetje snel gaat. Maar je ziet waar het naartoe kan: je draait steeds meer lokaal en maakt alleen af en toe nog een uitstapje naar een datacenter. Er zijn vast nog heel veel meer mogelijkheden om lokaal je LLM te draaien, heb je een goeie? Zet het in de comments!

Alle afleveringen vind je bij het Podcast-overzicht.

Uitgelezen? Luister ook eens naar de Scientias Podcast:

Lees het hele artikel