Ga naar hoofdinhoud

Vibe Coding: een transcriptietool bouwen in één avond

Ik maak cursussen, en elke cursus heeft geschreven materiaal nodig. Aantekeningen bij colleges, hoofdstukteksten, uitleg; het moet allemaal op papier staan. Maar hier zit het punt: ik heb al video's opgenomen waarin ik alles vertel wat ik wil zeggen. Waarom zou ik het allemaal opnieuw uitschrijven als de inhoud al in gesproken vorm bestaat?

Daarbovenop ben ik dyslectisch. Lange teksten schrijven kost mij aanzienlijk meer tijd en moeite dan de meeste mensen. Spreken daarentegen gaat vanzelf. Dus voor mij is een tool die gesproken woorden omzet in geschreven tekst niet zomaar een handige snelkoppeling; het is een gamechanger.

Daarom besloot ik een tool te bouwen die mijn cursusvideo's transcribeert naar tekstbestanden. Vervolgens combineer ik die transcripties met mijn collegeaantekeningen om het uiteindelijke geschreven cursusmateriaal te maken. Wat vroeger uren schrijfwerk kostte, kost nu minuten transcriptie, en de tool zelf heb ik in één avond gebouwd met vibe coding.

Het probleem

Cursusmateriaal maken is tweedelig werk. Eerst bereid je de videocolleges voor en neem je ze op. Daarna moet je de geschreven versie produceren: de hoofdstukken, de uitleg, het referentiemateriaal dat studenten later kunnen teruglezen. Dat allemaal vanaf nul schrijven is enorm veel werk, zeker als je alles al in de video hebt gezegd.

Er bestaan online transcriptiediensten, maar die kosten geld per minuut audio, hebben bestandslimieten en vereisen dat je je nog niet uitgebrachte cursusinhoud uploadt naar een derde partij. Voor een volledige cursus met tientallen video's loopt dat snel op. En het is weer een extra externe service in je workflow; uploaden, wachten, downloaden, herhalen.

Wat ik wilde was simpel: een lokale tool die direct naast mijn projectbestanden staat. Ik sleep een collegevideo erin, krijg binnen een paar minuten een tekstbestand terug, en dat bestand staat al op mijn computer, klaar om te combineren met mijn aantekeningen. Geen contextwisseling, geen browsertabbladen, geen uploads. Gewoon onderdeel van de workflow.

De ingrediënten: weten wat er bestaat

Ik heb zelf geen enkele regel code geschreven. Maar ik bracht wel iets cruciaals mee: kennis van wat er bestaat.

Ik wist van OpenAI's Whisper, een state-of-the-art spraakherkenningsmodel dat lokaal draait. Ik had eerder al met Whisper gewerkt in een vorig project, waar ik de code zelf schreef. Dus ik wist dat het beschikbaar was op Hugging Face in verschillende formaten; van kleine modellen die op elke laptop draaien tot grote modellen die bijna-menselijke nauwkeurigheid leveren. En ik wist dat de transformers-bibliotheek van Hugging Face het eenvoudig maakt om deze modellen te laden en te draaien.

Die eerdere ervaring betekende dat ik niet hoefde te onderzoeken wat er mogelijk was; ik kende de bouwstenen al. Ik had alleen geen zin om alle code opnieuw te schrijven en er met de hand een mooie GUI omheen te bouwen. Ik wilde de tool, niet het proces om hem te maken. Daar kwam vibe coding om de hoek kijken.

Dat gezegd hebbende, dit hele project had waarschijnlijk ook zonder voorkennis gewerkt. Dit is geen technisch moeilijk probleem; het kost alleen veel tijd om uit te programmeren. Als je zou gaan zitten met Claude of een andere AI-assistent en simpelweg bespreekt wat je nodig hebt ("Ik wil video's lokaal transcriberen"), zou het je naar Whisper, Hugging Face en de juiste bibliotheken leiden. Het project is eenvoudig genoeg dat een gesprek over je wensen voldoende is om te beginnen.

Classroom Training: Agentic Engineering
Leer in één dag hoe je met AI agents een complete webshop bouwt, van architectuur tot deployment. Utrecht · Max 12 deelnemers · Inclusief lunch
Bekijk data en schrijf je in →

Het vibe coding proces

Ik opende mijn AI-codingtool en beschreef wat ik wilde. Mijn eerste idee was om een simpele HTML-frontend te bouwen, iets dat ik kon openen in een browser met een drag-and-drop-veld. Maar de AI wees op een probleem: browsers geven het volledige bestandspad van gedropt bestanden niet vrij vanwege beveiligingsredenen. Aangezien de transcriptie lokaal moet draaien en toegang nodig heeft tot de daadwerkelijke bestanden op schijf, zou een webgebaseerde UI niet goed werken.

In plaats daarvan stelde het voor om PyQt6 te gebruiken, een Python-framework voor het bouwen van native desktopapplicaties. Ik had PyQt6 nog nooit eerder gebruikt, maar dat maakte niet uit. De AI wist hoe het moest, en ik hoefde alleen maar te beschrijven wat ik wilde:

"Bouw me een desktopapplicatie met PyQt6. Het moet me video- of audiobestanden laten slepen en neerzetten, ze in een wachtrij plaatsen, en ze transcriberen met Whisper van Hugging Face. Ik wil verschillende modelgroottes en chunk-lengtes kunnen kiezen. Oh, en een donker thema; ik ben tenslotte een programmeur."

Dat was het in essentie. De AI genereerde de volledige applicatie: een Transcriber-klasse die Whisper-modellen laadt en audio verwerkt via ffmpeg, een DropZone-widget voor drag-and-drop, een MainWindow met een bestandswachtrij, voortgangsindicatoren en een strak donker thema.

Heb ik elke regel gecontroleerd? Nee. Begreep ik de grote lijnen? Ja. Ik wist wat Whisper was, ik wist wat PyQt6 kon, en ik kon aan het draaien van de app zien dat het de juiste dingen deed.

Een paar rondes "dit werkt niet" en "kun je ook X toevoegen" later had ik een volledig werkende tool.

Het resultaat

Whisper Transcriber UI
De Whisper Transcriber: een strakke drag-and-drop-interface voor lokale transcriptie.

De tool heeft alles wat ik nodig heb:

  • Modelselectie; zeven Whisper-varianten van Tiny (snelste) tot Large V3 Turbo (beste kwaliteit)
  • Drag and drop; sleep gewoon video- of audiobestanden op het venster
  • Batchverwerking; zet meerdere bestanden in de wachtrij en transcribeer ze achter elkaar
  • Chunk-lengte-instelling; configureer hoe de audio wordt opgesplitst voor verwerking. Dit heb ik toegevoegd zodat ik kon afstemmen wanneer timestamps worden gegenereerd, wat me helpt bij het maken van hoofdstukmarkeringen voor mijn video's
  • Uitvoer met timestamps; elke transcriptie bevat timestamps, opgeslagen als een overzichtelijk tekstbestand
  • Volledig lokaal; er verlaat niets je computer

Het ondersteunt alle gangbare mediaformaten: MP4, MKV, AVI, MOV, WebM, WAV, MP3, FLAC, OGG en M4A. De tool gebruikt onder de motorkap ffmpeg om audio te extraheren en voert het vervolgens in configureerbare chunks aan Whisper.

Een college van 30 minuten? Getranscribeerd in een paar minuten op een degelijke GPU. Zelfs op CPU werkt het; het duurt alleen wat langer. Ik sleep een batch college-opnames erin, klik op Transcribe, en kom terug bij een map vol tekstbestanden die klaar zijn om tot cursushoofdstukken te worden gevormd.

Wat dit project deed slagen

Dit is precies het soort project waarbij vibe coding tot zijn recht komt. Laat me uitleggen waarom.

Het is een persoonlijke tool. Ik ben de enige gebruiker. Als er iets kapotgaat, repareer ik het. Er is geen team dat deze code hoeft te onderhouden, geen klanten die afhankelijk zijn van uptime, geen schaalbaarheids-eisen. Het "litteken"-probleem dat vibe coding gevaarlijk maakt voor productiesoftware is hier simpelweg niet van toepassing. Als je productiecode bouwt, moet je voorzichtiger zijn; daar komt agentic engineering om de hoek kijken. Maar voor een persoonlijke tool als deze doet vibe coding precies wat het moet doen.

De scope is klein en duidelijk afgebakend. Ik heb precies één ding nodig: een mediabestand erin, een transcriptie eruit. Er is geen authenticatie, geen database, geen API, geen deployment naar de cloud. De hele app doet één ding.

Het past in een groter werkproces. De tool hoeft niet perfect te zijn; hij hoeft nuttig te zijn. De transcripties zijn niet het eindproduct. Ze zijn een ruw ingrediënt dat ik combineer met mijn collegeaantekeningen om gepolijst cursusmateriaal te produceren. Zelfs als de transcriptie een paar ruwe randjes heeft, is het oneindig veel sneller dan alles vanaf nul schrijven.

Domeinkennis is belangrijker dan code. Het moeilijke deel was niet het schrijven van Python. Het moeilijke deel was weten dat Whisper bestaat, dat het beschikbaar is in verschillende formaten op Hugging Face, dat transformers het makkelijk maakt om te gebruiken, en dat ffmpeg audio uit elk videoformaat kan halen. Die kennis kwam van mij; de AI zette het alleen om in werkende code. Met vibe coding ben je in essentie de projectmanager en consultant van je eigen project, en de AI-agent is je ontwikkelteam. Hoe beter je weet wat je wilt, hoe beter het resultaat.

Vibe coding om de juiste redenen

Op deze site hebben we geschreven over de beperkingen van vibe coding en waarom agentic engineering de betere aanpak is voor productiesoftware. Dat geldt nog steeds. Als je een product bouwt voor klanten, heb je structuur, architectuur en begrip van je codebase nodig.

Maar voor persoonlijke tools? Vibe coding is een superkracht.

Denk eens aan alle kleine ergernissen in je workflow. De repetitieve taken. De dingen die je handmatig doet omdat het bouwen van een tool "te lang zou duren." Met vibe coding betekent "te lang" vaak één avond. Je hoeft geen programmeur te zijn; je moet weten wat er mogelijk is en kunnen beschrijven wat je wilt.

Wat ideeën om je op weg te helpen:

  • Een tool die bestanden hernoemt en organiseert op basis van regels die jij bepaalt
  • Een batch-beeldverkleiner met een simpele GUI
  • Een lokale zoektool voor je notities of documenten
  • Een script dat een map in de gaten houdt en nieuwe bestanden automatisch verwerkt

Dit zijn allemaal kleine, persoonlijke, goed afgebakende projecten; precies waar vibe coding in uitblinkt.

Conclusie

Vibe coding heeft een slechte reputatie, en vaak terecht. Maar de kritiek geldt voor het gebruik ervan voor de verkeerde dingen. Voor persoonlijke tools met een duidelijke scope is het oprecht transformatief. Ik ging van "cursusmateriaal schrijven duurt eeuwen" naar een geautomatiseerde pijplijn: neem het college op, transcribeer het, combineer het met aantekeningen, klaar.

Het belangrijkste ingrediënt was geen programmeerkennis. Het was weten wat er bestaat: welke modellen er zijn, welke bibliotheken ze toegankelijk maken, en wat er mogelijk is. Dat soort kennis is iets dat iedereen kan opbouwen, programmeur of niet.

En coderen met AI hoeft niet te stoppen bij persoonlijke tools. Je kunt er absoluut productiewaardige software mee maken, maar dat vereist een grondiger proces en meer kennis. Architectuur begrijpen, bewuste technologiekeuzes maken, elke stap valideren. Die aanpak heeft een naam: agentic engineering. Als je wilt leren hoe je van vibe coding naar het bouwen van echte, deploybare producten met AI gaat, bekijk dan onze Agentic Engineering classroom-cursus.

Dus de volgende keer dat je jezelf betrapt op iets saaigs en repetitiefs, stel jezelf de vraag: kan een AI hier een tool voor bouwen? Het antwoord zou je wel eens kunnen verrassen.

Leave your thoughts

Rating