Naar de hoofdinhoud
SubtitleMatrix

Audio transcriberen naar ondertitels

Media-invoerSpraak naar ondertitels

De eerste run downloadt het spraakmodel — ongeveer 45 MB voor het snelle niveau, 81 MB voor het nauwkeurige, door deze site geleverd en daarna door de browser gecachet. Niets wordt geüpload, en de transcriptie is machinaal gemaakt: lees de formulering en de tijden proef voordat je publiceert.

Opties

Twee niveaus van hetzelfde model. Het snelle is ongeveer 45 MB en transcribeert ruwweg twee keer zo snel; het nauwkeurige is ongeveer 81 MB en krijgt hoofdletters en leestekens beter. Beide draaien hier, en de download gebeurt één keer per browser. Probeer bij een lange opname eerst het snelle niveau om te controleren of de taal klopt.

De taal die in de opname wordt gesproken. Er is geen automatische optie: deze versie van het model herkent geen taal en gaat zonder keuze uit van Engels. Een Chinese opname die als Engels wordt gelezen mislukt niet — ze levert vloeiend lijkende onzin op, wat veel moeilijker te merken is. Kies de taal die je echt hoort.

.srt speelt overal, ook in oudere editors en televisies; .vtt is het webformaat en draagt iets meer structuur. Beide bevatten precies dezelfde blokken met precies dezelfde timing, dus kies het formaat dat het volgende hulpmiddel in je keten verwacht.

Deze pagina luistert naar een opname en schrijft op wat hij hoort, als ondertitelbestand: één blok per zin, met het begin en einde van elk blok waar de woorden werkelijk vallen. Je sleept een interview, een lezing, een spraakmemo of de audiotrack van een film zonder ondertiteltrack erin, en je krijgt een .srt of .vtt die in elke speler afspeelt. Er hoeft vooraf geen ondertiteltrack te bestaan — dit is de pagina voor wanneer er niets valt te extraheren.

Het luisteren gebeurt in de tab. Het spraakmodel draait op WebAssembly via onnxruntime, de modelbestanden worden vanaf deze site geserveerd en het enige netwerkverkeer is die download: ongeveer 45 MB voor het snelle model, ongeveer 81 MB voor het nauwkeurige, daarna door de browser gecacht. De opname wordt nergens naartoe gestuurd. Kijk je in het netwerkpaneel terwijl een bestand wordt getranscribeerd, dan zie je verzoeken omlaag voor modelgegevens en geen enkel byte omhoog.

Wat eruit komt is de beste gok van een machine, geen transcriptie van record. Woorden die hij verkeerd hoort blijven verkeerd, en de tijden zijn nauwkeurig tot ongeveer de lengte van een zin in plaats van tot een frame. Proeflees voordat je publiceert, en behandel het resultaat zoals je een eerste doorgang zou behandelen die door een snelle mens is getypt die het onderwerp niet kende. Dat is dezelfde eerlijkheidsregel die de OCR-pagina’s volgen, en de reden dat deze pagina het bovenaan zegt in plaats van in een voetnoot.

De opname wordt in vensters van 30 seconden met 5 seconden overlap geknipt, en elk venster wordt apart getranscribeerd. Dat maakt lange bestanden mogelijk zonder een uur audio tegelijk in het model te houden, en het is ook de reden dat annuleren bij het volgende venster ingaat in plaats van meteen. Zinnen die over een grens heen lopen worden gededupliceerd door alles weg te laten dat het volgende venster meldt en vóór het einde van het vorige venster begint — de eerdere lezing wint, omdat die de hele zin hoorde.

Lange zinnen worden op zinsgrenzen gesplitst en daarna door twee limieten: geen blok langer dan zeven seconden en geen blok breder dan 84 tekens, afgebroken op hoogstens 42 tekens per regel. Dat zijn dezelfde limieten die de meeste omroepen voorschrijven, dus de uitvoer haalt meestal een eerste compliancecontrole zonder bewerking.

Veelgestelde vragen

Wat gebeurt er als de opname in een andere taal dan Engels is?

Je moet de pagina vertellen welke taal er wordt gesproken, omdat deze build van het model die niet detecteert. Er is geen automatische optie, en dat is met opzet: zonder gekozen taal gaat het model uit van Engels. Een Chinese opname die als Engels wordt gelezen mislukt niet — hij geeft zelfverzekerd uitziende Engelse woorden terug die vaag als het origineel klinken, wat veel moeilijker te merken is dan een foutmelding. Kies de taal die je werkelijk hoort, en ben je onzeker, transcribere dan eerst dertig seconden met het snelle model en controleer dat.

Hoe nauwkeurig zijn de tijden vergeleken met een handgemaakte ondertitel?

Goed genoeg om af te spelen, niet goed genoeg om onbewerkt uit te zenden. Begin en einde van elk blok komen uit de segmentgrenzen van het model, en die vallen op zinsranden in plaats van op het exacte frame waarin een woord begint. Waar twee blokken zouden overlappen wordt het latere naar voren geschoven en de correctie in het verliesoverzicht geteld, zodat niets overlapt en niets in de tijd teruggaat. Heeft een klant framenauwkeurige synchronisatie nodig — een ondertitelhuis dat aan een omroep levert — dan is het eerlijke antwoord dat deze uitvoer een concept is om met de hand te timen, geen levering.

Waarom wordt het snelle model aangeboden als het nauwkeurige bestaat?

Omdat het verschil op een lang bestand het verschil is tussen wachten en opgeven. Gemeten op een minuut heldere spraak doet het snelle model er ongeveer 3,7 seconden over en het nauwkeurige ongeveer 7,5 — ruwweg twee keer zo lang wachten voor elke minuut audio. Het snelle model zet ook agressiever hoofdletters en verzint soms leestekens; het nauwkeurige ligt dichter bij wat een mens zou schrijven. Een veelvoorkomend patroon is het snelle model over een interview van een uur laten lopen om taal en audiokwaliteit te controleren, en daarna opnieuw met het nauwkeurige zodra je weet dat het bestand in orde is.

Wat betekent „geen spraak herkend" terwijl ik toch iemand hoor praten?

Het betekent dat het model niets hoorde dat het kon opschrijven, en dat heeft drie gebruikelijke oorzaken: de taalinstelling klopt niet met wat er wordt gesproken, de spraak ligt onder muziek of ruis, of de audiotrack is erg zacht. Het bestand zelf is intact — de pagina onderscheidt dit van een bestand waarvan de audio helemaal niet kon worden gedecodeerd, omdat de twee verschillende oplossingen nodig hebben. Wissel de gesproken taal, of controleer of je de audiotrack hebt gesleept die je bedoelde (de commentaartrack van een film is een andere stroom dan zijn dialoog).

Kan ik een transcriptie stoppen die te lang gaat duren?

Ja, en de pagina is expliciet over wanneer hij stopt. Het downloaden van het model kan op elk moment worden geannuleerd. Tijdens de herkenning kan het model niet midden in een venster worden onderbroken — annuleren gaat dus in bij het begin van het volgende venster van 30 seconden, wat met het snelle model een paar seconden verder is. Niets half afgemaakts wordt als download aangeboden. Het model blijft gecacht, dus opnieuw proberen downloadt het niet opnieuw.

Bewaart de resulterende .srt sprekerslabels of leestekens?

Hij bewaart de leestekens die het model heeft geproduceerd, meestal redelijk maar niet betrouwbaar, en hij verzint geen sprekerslabels: dit model scheidt geen stemmen, dus twee pratende mensen worden één tekststroom. Sprekerslabels toevoegen is hier handwerk. Heb je ze nodig, transcribere dan eerst en bewerk daarna — het bestand opent in elke ondertiteleditor, en de blokken zijn al op zinsgrenzen gesplitst, wat de doorgang veel sneller maakt dan vanaf een lege tijdlijn beginnen.

Gerelateerde hulpmiddelen