Gå till huvudinnehållet
SubtitleMatrix

Exportera undertexter som text

Export och integrationTranskription i ren text
Eller klistra in undertexttext

Inställningar

Millisekunder tystnad mellan att ett textblock slutar och nästa börjar. Nås den börjar transkriptionen ett nytt stycke; håll dig under den och de två läses som ett sammanhängande tal. Talet avgör hur texten läses, inte vad den säger: 2000 håller en mening samman när undertexterna delar den över tre eller fyra textblock, medan 0 sätter varje textblock i ett eget stycke. En paus mäts mot det senaste textblocket som hade några ord i sig, så ett tomt textblock i mitten bryter inte ett stycke i två.

Av som standard, vilket ger dig ett rent textblock du kan klistra in direkt i ett dokument. Slå på det och varje stycke får prefixet [HH:MM:SS] – starttiden för det första textblocket i stycket, till sekunden, utan millisekunder. En läsare använder märket för att hitta tillbaka till ögonblicket i en spelare, och starten är det enda av de tre kandidaterna (början, mitten, slutet av stycket) som stämmer med det spelaren visar.

Vilken bildfrekvens tiderna räknas i. På formatsidorna är det här vad MicroDVD behöver, eftersom formatet lagrar tider som bildnummer. På bildfrekvenssidorna är det den frekvens som filens tider byggdes för – den version som undertexterna gjordes för – och sidans andra fält tar frekvensen för den video du ska använda dem med. 23,976, 24, 25, 29,97, 30, 50, 59,94 och 60 är de vanligaste. Blir det fel förskjuts hela tidslinjen, och på bildfrekvenssidorna förskjuts den med ett förhållande i stället för med ett fast belopp.

Den här sidan läser en undertextfil och ger tillbaka samma ord som flytande stycken i klartext: radbrytningarna som bara fanns på skärmen fogas ihop, och textblock som följer tätt på varandra läses som en sammanhängande passage. Släpp in filen, kör den, och ut kommer en textmassa du kan klistra in i mötesprotokoll, en granskningslista eller en artikel. Inget lämnar fliken, så material som inte får laddas upp stannar där det är.

Det ena du ska vara tydlig med är radbrytningen. En undertextfil använder radbrytning av ett skäl som inte har med meningen att göra: raden blev för lång för skärmen, så den kapades och de två halvorna balanserades. Sparar du en undertextfil som .txt behålls de brytningarna och varje textblock hamnar på en egen rad, vilket är rätt om texten ska tillbaka in i en spelare. En transkription läses av en människa på en sida, där en brytning mitt i en mening bara är brus, så den här sidan fogar ihop dem. Två halvor av en mening kommer ut som en rad, och det går inte att i efterhand se var skärmbrytningen satt.

Stycken avgörs av tystnad, inte av textblock. Ett stycke per textblock skulle bryta en mening var tredje eller fjärde sekund, eftersom en normal undertextfil delar en enda talad mening i flera block så att varje block hinner med sin tid. I stället tittar sidan på glappet mellan att ett block slutar och nästa börjar: ett glapp på omkring två sekunder öppnar ett nytt stycke, och allt kortare låter orden fortsätta. Det talet står i fältet och är den enda inställning som är värd att tänka på – sätt det lägre för snabb dialog fram och tillbaka och högre för en föreläsning med långa pauser inuti en tanke. Sätter du det till noll hamnar varje textblock i ett eget stycke, vilket är det närmaste den här sidan kommer en rad per textblock.

Det finns också en växel för att sätta en starttid framför varje stycke, avstängd från början. Slår du på den hamnar en stämpel som [00:42:17] före varje stycke, läst från det första textblocket i stycket. Den går till sekunden och kastar millisekunderna med avsikt: stämpeln finns så att en läsare ska kunna hitta tillbaka till ögonblicket i en spelare, och 00:42:17 gör det. En stämpel på varje textblock i stället skulle göra transkriptionen till en undertextfil med extra skiljetecken.

Det sidan inte gör är att sätta ett namn på något. Ingen av undertextformaten som läses här registrerar vem som talar – SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON och CSV lagrar alla en tid och lite text, och varje etikett i den texten är något en människa skrev inuti orden. En transkription från den här sidan bär därför inga talarnamn, och inget gissas utifrån hur raderna ser ut. Textblock som inte innehåller något alls hoppas över i stället för att lämnas som tomma stycken, och varje rad trimmas, så du hittar inga lösa mellanslagsserier där ett block kapades.

Exempel

Två textblock som läses som en mening

Indata

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?

Resultat

I missed the last train home and had to walk. Back before midnight, you said.

Every night this week?

Tre textblock in, två stycken ut. De två första ligger 400 ms isär, väl innanför pausen på två sekunder, så de stannar i samma stycke och varje blocks två visningsrader fogas till en rad. Det tredje blocket följer efter ett glapp på fyra sekunder och öppnar ett andra stycke. Alla ord finns kvar – det som ändrades var vilka radbrytningar som överlevde.

En paus på exakt två sekunder

Indata

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.

Resultat

The train was late again.

Third time this week.

Det andra textblocket börjar två sekunder efter att det första slutar, vilket är exakt talet i pausfältet, och där börjar ett nytt stycke. Det här är exemplet att titta på om du vill kontrollera sidans aritmetik: flytta fältet till 2500 och de två blocken flyter ihop till ett stycke, eftersom ett glapp på två sekunder inte längre når tröskeln.

Samma fil med starttider tillagda

Indata

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.

Resultat

[00:02:15] Here is where we came in.

[01:47:52] And here is where we leave.

Med tidsstämpelväxeln på får varje stycke starttiden för det textblock som öppnar det, till sekunden. Det andra stycket ligger nästan två timmar in, och det visar varför timmen skrivs ut i stället för att räknas upp i minuter: 01:47:52 säger en läsare var den ska spola, och 107:52 gör det inte.

Vanliga frågor

Hur skiljer sig den här texttranskriptionen från att spara undertextfilen som .txt?

Radbrytningarna. Att spara en undertextfil som .txt behåller filens egna brytningar och skriver ett textblock per rad, eftersom den utdata är tänkt att läsas tillbaka som en undertextfil. Den här sidan gör motsatsen: den fogar visningsbrytningarna inuti ett block till en rad och slår sedan ihop hela block till stycken där pausen mellan dem är kort. Orden är identiska i båda fallen. Behöver du de ursprungliga radbrytningarna kvar är konverteringen till klartext rätt sida; vill du ha något en människa kan läsa som prosa är det den här.

Hur avgör texttranskriptionen var ett stycke slutar och nästa börjar?

Genom tystnaden mellan textblocken, inte genom blocken själva. Sidan mäter glappet mellan att ett block slutar och nästa börjar, och öppnar ett nytt stycke när glappet når talet i pausfältet, som börjar på 2000 ms. Block som ligger tätare än så läses som en sammanhängande passage. Ett stycke per block skulle bli fel här, eftersom en enda talad mening normalt delas i tre eller fyra block för att varje block ska hinna med sin egen tid, och ett styckebrott varannan sekund är inte vad en transkription ser ut som.

Vad gör pausgränsen noll med texttranskriptionen?

Noll är ett verkligt värde, inte ett tomt fält: varje glapp når det, så varje textblock blir ett eget stycke. Det ger det närmaste den här sidan kommer en rad per block, med fördelen att varje blocks inre visningsbrytningar fortfarande fogas ihop. Det är inställningen att välja när filen är en lista av separata yttranden snarare än sammanhängande tal – en bildserie eller svaren i en strukturerad intervju – och du vill att varje yttrande står för sig.

Varför är starttiderna i texttranskriptionen bara exakta till sekunden?

Eftersom en stämpel i en transkription är ett bokmärke, inte en klippunkt. Den finns så att en läsare ska hitta tillbaka till passagen i en spelare, och i ett program som varar en timme är 00:42:17 redan tillräckligt exakt för att landa på meningen – millisekunderna skulle lägga fyra tecken framför varje stycke utan att ändra var någon spolar till. En stämpel på varje textblock, till millisekunden, är vad en undertextfil är till för, och filen du släppte in har redan det.

Kommer talarnamn med i texttranskriptionen?

Nej, och inte för att sidan utelämnar dem. Ingen av undertextformaten som läses här har ett fält för vem som talar: SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON och CSV lagrar alla ett tidsintervall och lite text. Där en fil ändå namnger en talare skrevs namnet in i dialogen, oftast med versaler eller ett tankstreck framför, så det kommer ut i transkriptionen precis där filen satte det och ingen annanstans. Inget härleds ur radernas form – en gissning presenterad som talaretikett vore värre än ingen etikett alls.

Vad händer med ett textblock som inte innehåller någon text i transkriptionen?

Det hoppas över och lämnar inga spår, inte ens en tom rad. Ett tomt textblock finns oftast för placeringens skull snarare än för läsning, och om det behölls skulle transkriptionen visa ett hål mitt i en mening utan förklaring. Att hoppa över det stör inte heller styckeindelningen: pausen som avgör stycken mäts mot det senaste textblock som faktiskt hade ord, så ett tomt block mellan två talade delar dem inte.

Behåller texttranskriptionen radbrytningarna som fanns på skärmen?

Nej, och det är det enda sidan gör som du inte kan ångra efteråt – positionerna för de brytningarna finns inte någonstans i utdata. De var ett layoutbeslut för att passa en skärmbredd, och en läsare på en sida vill ha meningar, inte skärmbredder, vilket är varför sidan löser upp dem. Behöver du en kopia av filen som fortfarande har dem tar du klartextkonverteringen i stället: den behåller varje brytning precis som filen skrev den, ett textblock per rad.

Relaterade verktyg