Naar de inhoud springen
kenjtecJournal
Het Journal doorzoeken

Ondertitels zonder cloud: spraak lokaal omzetten in tekst met whisper.cpp

Een lokaal transcript is nog geen kant-en-klaar ondertitelspoor. Een korte eigen opname en een WebVTT-voorbeeld laten zien hoe formulering, vertaling en timing samenhangen.

Lena legt onder een papierstrook met een geluidsgolf korte stukjes papier als ondertitels; om haar nek hangt een koptelefoon. AI-illustratie.

„We nemen er vier, nee, zes mappen.” Een herkenningssysteem kan de zin correct transcriberen. Voor een goed leesbare ondertitel wil je de herhaling misschien inkorten. Daarbij mag zes niet weer vier worden. De technische route van geluid naar tekstbestand is daarom pas het begin van het redactionele werk.

whisper.cpp documenteert lokale spraakherkenning, inclusief CPU-ondersteuning. De passende model- en runtimebestanden moeten worden voorbereid. Alleen-Engelse en meertalige varianten, en ook transcriptie en vertaling, zijn afzonderlijke beslissingen; een lokaal gestart programma voert niet automatisch de taak uit die je wilt.

Brontaal en doel vastleggen

Bepaal eerst of het gesprokene in de eigen taal behouden moet blijven of in het Engels moet worden weergegeven. Een Duitse opname met een Duits transcript is een andere opdracht dan een Engelse vertaling. Een vloeiende Engelse tekst zou voor het eerste doel toch het verkeerde resultaat zijn.

De serverinstructies gebruiken –translate voor vertaling van de brontaal naar het Engels; –language beschrijft de gesproken taal. Neem voor je eigenlijke aanroep de opties over uit de bijbehorende help, in plaats van instellingen uit verschillende voorbeelden te mengen.

Een korte eigen opname voorbereiden

Neem zelf een paar niet-gevoelige zinnen op: een wijziging van een hoeveelheid, een verzonnen eigennaam en een voorbehoud zoals „pas na overleg”. Schrijf de bekende formulering vooraf op. Een bewust korte pauze helpt ook om woordherkenning en segmentering in de tijd uit elkaar te houden.

Gebruik een voorbereide lokale omgeving en een passend audioformaat. Maak eerst een tekstbasis die dicht bij de gesproken woorden blijft. Luister de passages met het getal en de naam opnieuw en markeer alles wat onduidelijk is. Een verwachte schrijfwijze uit je namenlijst mag een passage die werkelijk onduidelijk is niet stilletjes vervangen.

Houd deze basis gescheiden van de latere ingekorte ondertitelversie. Zo kun je nagaan welke wijziging van de herkenning komt en welke van je redactionele werk. Dit artikel biedt de methode, geen hier uitgevoerde transcriptie.

Tijd wordt onderdeel van het bestandsformaat

Een ondertitelspoor koppelt tekst aan het begin en het einde van een tijdsbereik. Het WebVTT-formaat van de W3C-specificatie beschrijft zulke in de tijd uitgelijnde tekstsegmenten. Een eenvoudig eigen formaatvoorbeeld ziet er zo uit; de tijden zijn lesvoorbeelden en moeten voor een echte opname worden aangepast:

WEBVTT

00:00:00.000 --> 00:00:04.000
We need six folders for the course.

00:00:04.500 --> 00:00:07.000
Open sealed material only after checking back.

Sla een tekst die echt passend is bewerkt op als UTF-8-bestand en controleer hem met de bijbehorende opname in een geschikte speler of ondertiteltool. Tekst, timing en leesbaarheid zijn drie afzonderlijke waarnemingen. Een correcte regel kan te vroeg verschijnen of te kort zichtbaar blijven.

Plaats regeleinden bij betekenisvolle eenheden. Een losstaand „niet” kan bij snel lezen verkeerd worden begrepen. Ook een goedkeuringsvoorwaarde moet in haar context herkenbaar blijven, in plaats van door een ongeschikte knip te verdwijnen.

Geef de originele audio, het transcript en de ondertitels dezelfde basisbestandsnaam maar verschillende extensies. Een korte notitie over taal en bewerkingsstatus voorkomt dat een oude vertaalde versie per ongeluk naast de nieuwe originele opname belandt.

Wat een lokale workflow aantoont

Met dit voorbeeld kun je onderzoeken of je voorbereide opstelling de gewenste tekst levert en hoeveel bewerking de ondertitels nodig hebben. Het zegt niets algemeens over de herkenningskwaliteit bij alle talen, accenten of achtergrondgeluiden.

Een vertaalronde is vervolgens een aparte test. Die vereist een vergelijking van betekenis, niet alleen van spelling. Als er meerdere talen in dezelfde opname voorkomen, moet je de betreffende passages uitdrukkelijk in de luistercontrole opnemen.

Het voordeel van lokale verwerking ligt in een eigen werkroute die je kunt benoemen. Bruikbare ondertitels ontstaan wanneer je deze route verbindt met de echte opname: kies de juiste taak, controleer de formulering, bewerk bewust en beoordeel de tekst aan de hand van de tijdstempels.

Bronnen en stand

Bronnen per 25 oktober 2026. whisper.cpp README · Opties van het whisper.cpp-servervoorbeeld.

W3C: WebVTT als aanvullende bron over het formaat.

Hamburg is ons vertrekpunt.

Het nuttige reist met je mee.

Praktische AI uit Hamburg, internationaal uitgelegd.

Bewaarde artikelen