Ondertitels als platte tekst
Of plak ondertiteltekst
Opties
Milliseconden stilte tussen het einde van een blok en het begin van het volgende. Wordt die bereikt, dan begint de transcriptie een nieuwe alinea; blijft die eronder, dan worden de twee als één doorlopend stuk spraak gelezen. Het getal bepaalt hoe de tekst leest, niet wat hij zegt: 2000 houdt een zin bij elkaar wanneer de ondertitels hem over drie of vier blokken hakken, terwijl 0 elk blok in een eigen alinea zet. Een pauze wordt gemeten tegen het laatste blok met woorden, dus een leeg blok in het midden breekt een alinea niet in tweeën.
Standaard uit, wat je een blok platte tekst geeft dat je direct in een document kunt plakken. Zet je het aan, dan krijgt elke alinea [HH:MM:SS] ervoor — de begintijd van het eerste blok in die alinea, op de seconde, zonder milliseconden. Een lezer gebruikt die stempel om het moment terug te vinden in een speler, en het begin is van de drie kandidaten (begin, midden, einde van de alinea) de enige die aansluit bij wat de speler toont.
In welke beeldsnelheid de tijden worden geteld. Op de formaatpagina’s is dit wat MicroDVD nodig heeft, want het slaat tijden op als framenummers. Op de beeldsnelheidspagina’s is het de snelheid waartegen het bestand getimed is — de versie waarvoor de ondertitels gemaakt zijn — en het tweede vak op de pagina neemt de snelheid van de video die je gaat gebruiken. 23,976, 24, 25, 29,97, 30, 50, 59,94 en 60 zijn de gebruikelijke. Een verkeerde waarde verschuift de hele tijdlijn, en op de beeldsnelheidspagina’s verschuift ze die met een verhouding in plaats van met een vast bedrag.
Deze pagina leest een ondertitelbestand en geeft dezelfde woorden terug als doorlopende alinea’s platte tekst: de regeleinden die alleen op het scherm bestonden worden aaneengevoegd, en blokken die dicht op elkaar volgen worden als één lopende passage gelezen. Je sleept het bestand erin, laat de pagina lopen, en wat eruit komt is een blok proza dat je in notulen, een beoordelingsformulier of een artikel kunt plakken. Er verlaat niets de browsertab, dus materiaal dat niet geüpload mag worden blijft waar het is.
Het enige waar je duidelijk over moet zijn, is het regeleinde. Een ondertitelbestand gebruikt een regeleinde om een reden die niets met de zin te maken heeft: de regel werd te lang voor het scherm, dus werd hij geknipt en werden de twee helften in balans gebracht. Een ondertitelbestand als .txt opslaan houdt die regeleinden en zet één blok op één regel, wat je wilt als de tekst terug naar een speler gaat. Een transcriptie wordt door een mens op een pagina gelezen, waar een breuk midden in een zin ruis is, dus voegt deze pagina ze samen. Twee helften van een zin komen als één regel uit, en achteraf is nergens meer te zien waar de schermbreuk zat.
Alinea’s worden bepaald door stilte, niet door blokken. Eén alinea per blok zou elke drie of vier seconden een zin breken, omdat een normaal ondertitelbestand één gesproken zin in meerdere blokken knipt zodat elk blok in zijn eigen timing past. In plaats daarvan kijkt de pagina naar het gat tussen het einde van het ene blok en het begin van het volgende: een gat van ongeveer twee seconden opent een nieuwe alinea, en alles korter laat de woorden doorlopen. Dat getal staat in het vak en is de enige instelling die het overdenken waard is — zet het lager voor snel heen-en-weer-dialoog en hoger voor een lezing met lange pauzes binnen één gedachte. Op nul zet je elk blok in een eigen alinea, wat het dichtst komt bij één regel per blok.
Er is ook een schakelaar om elke alinea van een starttijd te voorzien, standaard uit. Aanzetten zet een stempel als [00:42:17] voor elke alinea, gelezen van het eerste blok in die alinea. Hij gaat tot op de seconde en laat de milliseconden bewust weg: de stempel staat er zodat een lezer dat moment in een speler terugvindt, en 00:42:17 doet dat. Een stempel op elk blok in plaats daarvan zou de transcriptie weer in een ondertitelbestand met extra leestekens veranderen.
Wat de pagina niet doet, is ergens een naam op zetten. Geen van de hier gelezen ondertitelformaten legt vast wie er spreekt — SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON en CSV bewaren een tijd en wat tekst, en elk label in die tekst is door een mens in de woorden getypt. Een transcriptie van deze pagina draagt dus geen sprekersnamen, en er wordt niets uit de vorm van de regels afgeleid om ze te verzinnen. Blokken die helemaal niets bevatten worden overgeslagen in plaats van als lege alinea’s te blijven staan, en elke regel wordt aan de randen ontdaan van spaties, zodat je geen losse reeksen spaties vindt waar een blok is afgekapt.
Voorbeelden
Twee blokken die als één zin lezen
Invoer
1
00:00:01,000 --> 00:00:03,000
I missed the last train home
and had to walk.
2
00:00:03,400 --> 00:00:05,000
Back before midnight,
you said.
3
00:00:09,000 --> 00:00:11,000
Every night this week?
Uitvoer
I missed the last train home and had to walk. Back before midnight, you said.
Every night this week?
Drie blokken erin, twee alinea’s eruit. De eerste twee blokken liggen 400 ms uit elkaar, ruim binnen de pauze van twee seconden, dus blijven ze in één alinea en worden de twee schermregels van elk blok tot één regel samengevoegd. Het derde blok volgt na een gat van vier seconden en opent een tweede alinea. Alle woorden staan er nog — wat veranderd is, is welke regeleinden het hebben overleefd.
Een pauze van precies twee seconden
Invoer
1
00:12:30,000 --> 00:12:32,000
The train was late
again.
2
00:12:34,000 --> 00:12:36,000
Third time this week.
Uitvoer
The train was late again.
Third time this week.
Het tweede blok begint twee seconden nadat het eerste eindigt, precies het getal in het pauzevak, en dat is het moment waarop een nieuwe alinea begint. Dit is het voorbeeld om naar te kijken als je de rekenkunde van de pagina controleert: zet het vak op 2500 en deze twee lopen aaneen tot één alinea, omdat een gat van twee seconden de drempel dan niet meer haalt.
Hetzelfde bestand met starttijden erbij
Invoer
1
00:02:15,000 --> 00:02:17,000
Here is where
we came in.
2
01:47:52,000 --> 01:47:55,000
And here is
where we leave.
Uitvoer
[00:02:15] Here is where we came in.
[01:47:52] And here is where we leave.
Met de tijdstempel-schakelaar aan krijgt elke alinea de starttijd van het blok dat hem opent, tot op de seconde. De tweede alinea ligt bijna twee uur in het programma, en dat laat zien waarom het uur wordt uitgeschreven in plaats van in minuten doorgeteld: 01:47:52 vertelt een lezer waar hij moet scrubben, en 107:52 doet dat niet.
Veelgestelde vragen
Hoe verschilt dit van mijn ondertitels als .txt opslaan?
De regeleinden. Een ondertitelbestand als .txt opslaan houdt de eigen regeleinden van het bestand en schrijft één blok per regel, omdat die uitvoer bedoeld is om weer als ondertitelbestand te worden gelezen. Deze pagina doet het omgekeerde: ze voegt de schermbreuken binnen een blok samen tot één regel en voegt daarna hele blokken samen tot alinea’s waar de pauze ertussen kort is. De woorden zijn in beide gevallen identiek. Heb je de oorspronkelijke regeleinden nodig, dan is de conversie naar platte tekst de pagina die je wilt; wil je iets dat een mens als proza kan lezen, dan is het deze.
Hoe besluit de pagina waar de ene alinea ophoudt en de volgende begint?
Door de stilte tussen blokken, niet door de blokken zelf. De pagina meet het gat tussen het einde van het ene blok en het begin van het volgende, en opent een nieuwe alinea wanneer dat gat het getal in het pauzevak bereikt, dat op 2000 ms begint. Blokken die dichter op elkaar liggen worden als één lopende passage gelezen. Alinea’s per blok zouden hier fout zijn, omdat één gesproken zin normaal in drie of vier blokken wordt geknipt zodat elk zijn eigen timing past, en een alineabreuk om de paar seconden is niet hoe een transcriptie eruitziet.
Wat doet de pauze op nul zetten?
Nul is een echte waarde, geen leeg vak: elk gat haalt hem, dus elk blok wordt een eigen alinea. Dat geeft je het dichtst dat deze pagina bij één regel per blok komt, met als extra voordeel dat de interne schermbreuken van elk blok nog steeds worden samengevoegd. Het is de instelling om te kiezen wanneer het bestand een lijst losse uitspraken is in plaats van doorlopende spraak — een set dia’s, of antwoorden in een gestructureerd interview — en je elk daarvan op zichzelf wilt laten staan.
Waarom zijn de tijdstempels alleen tot op de seconde nauwkeurig?
Omdat een stempel in een transcriptie een bladwijzer is, geen knippunt. Hij staat er zodat een lezer die passage in een speler terugvindt, en in een programma van een uur is 00:42:17 al precies genoeg om op de zin te landen — de milliseconden zouden vier tekens aan het begin van elke alinea toevoegen zonder te veranderen waar iemand naartoe scrubt. Een stempel op elk blok, tot op de milliseconde, is waar een ondertitelbestand voor is, en het bestand dat je erin sleepte heeft dat al.
Komen er sprekersnamen in de transcriptie?
Nee, en niet omdat de pagina ze weglaat. Geen van de hier gelezen formaten heeft een veld voor wie er spreekt: SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON en CSV bewaren een tijdsbereik en wat tekst. Waar een bestand wel een spreker noemt, is de naam in de dialoog zelf getypt, meestal in hoofdletters of met een streepje ervoor, dus komt die in de transcriptie precies waar het bestand hem zette en nergens anders. Uit de vorm van de regels wordt niets afgeleid — een gok die als sprekerslabel wordt gepresenteerd is erger dan geen label.
Wat gebeurt er met een blok zonder tekst?
Het wordt overgeslagen en laat geen spoor achter, niet eens een lege regel. Een blok zonder inhoud bestaat meestal voor de positionering en niet om te lezen, en als het bewaard bleef, zou de transcriptie een gat midden in een zin tonen zonder uitleg. Overslaan verstoort de alinea-indeling ook niet: de pauze die alinea’s bepaalt wordt gemeten tegen het laatste blok dat werkelijk woorden had, dus een leeg blok tussen twee gesproken blokken splitst ze niet uit elkaar.
Houdt de transcriptie de regeleinden die op het scherm stonden?
Nee, en dit is het enige dat de pagina doet wat je achteraf niet kunt terugdraaien — de posities van die breuken staan nergens in de uitvoer. Ze waren een opmaakbeslissing om binnen een schermbreedte te passen, en een lezer op een pagina wil zinnen, geen schermbreedtes; daarom lost de pagina ze op. Heb je een kopie van het bestand nodig waarin ze nog staan, neem dan de conversie naar platte tekst: die houdt elke breuk precies zoals het bestand hem schreef, één blok per regel.