JSON subtitles and transcripts

OtevřeníUloženíPřepisyPřevod řeči na text

Není to jeden formát, ale mnoho: JSON je způsob, jakým enginy pro převod řeči na text, video weby a weby s titulky předávají titulky a přepisy, každý v tvaru svém. Subtitld ukládá svůj vlastní, v tvaru, který zapisuje Whisper, se vším, co titulek drží, a otevře to, co zapisuje tucet dalších nástrojů.

Na první pohled

Přípona.json
Typ médiaapplication/json
SpecifikaceSamotný JSON: RFC 8259 a ECMA-404. Tvar každého nástroje je jeho vlastní.
Přesnost časuSubtitldova: sekundy, na milisekundy. Jiné: milisekundy, sekundy, takty po 100 nanosekundách, nebo text jako "1.400s".
Kódování textuUTF-8
StylSubtitldův: značky, které jeho text drží. YouTube: tučné, kurzíva, podtržení a barvy. Ostatní: žádný.
UmístěníSubtitldovo: v textu, jako {\an8}. YouTube: okna. Bilibili: poloha.
MluvčíSubtitldův speaker; služby pro převod řeči na text označují své
V kontejnerechŽádné

Stavba Subtitldova JSON

Co Subtitld ukládá, pro jeden titulek:

{
  "language": "en-us",
  "segments": [
    {
      "id": 0,
      "start": 23.0,
      "end": 24.5,
      "text": "You're a jerk, Thom.",
      "speaker": "Celia"
    }
  ],
  "text": "You're a jerk, Thom."
}
Část Co to je
"language" Jazyk projektu, tak jak ho Subtitld pojmenovává (en-us)
"segments" Titulky, v pořadí
"id" Jejich číslo, od 0, jak je číslují Whisper
"start", "end" Sekundy
"text" Jejich text, se značkami (<i>, {\an8}) a zalomeními řádků (\n)
"speaker", "translations" … Cokoli dalšího, co titulek drží: mluvčí, překlady podle jazyka, dabingy
"text", na konci Veškerý text na jednom řádku, pro nástroje, které chtějí jen to. Nečte se zpět.

Tvar Whisperu, záměrně. Je to tvar, který zapisuje Whisper od OpenAI, takže nástroje, které čtou segmenty Whisperu, čtou soubory Subtitldu, a Subtitld otevírá Whisperovy, bez statistik jeho dekódování a časů jednotlivých slov.

Co Subtitld otevírá

Každý JSON nástroje se pozná podle svých klíčů. Subtitld otevírá tyto:

Nástroj Co z něj Subtitld bere
Subtitld, Whisper od OpenAI Každé pole (Subtitldovo); text a jazyk (Whisperovy)
whisper.cpp Jeho segmenty, a jeho mluvčí, pokud rozlišuje dva kanály
WhisperX Jeho segmenty a mluvčí
YouTube (.json3, jak ho ukládá yt-dlp) Text, tučné, kurzívu, podtržení, barvy a místo
Bilibili (.bcc) Text a místo
AssemblyAI, Deepgram, AWS Transcribe, Rev.ai, Google Speech-to-Text, Azure Speech, Speechmatics Slova, mluvčí a jazyk, převedené na titulky
Amara Text, kurzívu, tučné, podtržení a titulky nahoře

JSON, který není žádným z nich, to oznámí. Ten, který není platný JSON, ukáže, kde se pokazil, podle řádku a sloupce.

Přepisy na titulky

Služby pro převod řeči na text předávají slova s časy, nebo dlouhé úseky řeči. Subtitld z nich dělá titulky v mezích, které povoluje panel Ověření kvality: znaky na řádek, řádky a sekundy. Titulek končí:

  • tam, kde se mění mluvčí, nebo řeč utichne na víc než sekundu;
  • na konci věty, když by další přetekl přes jeden řádek;
  • když je plný: u posledního interpunkčního znaménka, které ho nechá dost zaplněný, jinak mezi dvěma slovy.

Úsek bez časů slov se rozdělí stejně, jeho čas podle délky částí.

Nejdřív nastavte limity. Titulky se tvoří při otevření souboru: změňte limity v Ověření kvality před otevřením přepisu, abyste dostali delší nebo kratší titulky.

Mluvčí a jazyky

Služby číslují své mluvčí: 0, spk_1, SPEAKER_02, S3. Subtitld je pojmenuje A, B, C … podle pořadí, v němž poprvé promluví, stejně jako pojmenovává mluvčí sám; mluvčího, kterého soubor pojmenuje, jako to umí Rev.ai, si ponechá jméno.

Jazyk projektu se bere ze souboru, jako kód (en_us, pt) nebo jméno (English, jak ho Whisper uchovává, když mu to řeknete), nebo jinak z názvu souboru: video.en.json3. Soubor ve vlastním jazyce projektu si ponechá zemi projektu: pt v projektu pt-br zůstane pt-br.

JSON YouTube (json3)

Co čte přehrávač YouTube a yt-dlp ukládá jako .json3: události textu v milisekundách, s pery pro tučné, kurzívu, podtržení a barvy, a okny pro místo, kde sedí. Automatické titulky se posouvají, jeden řádek za druhým, každý zobrazen až do dalšího; Subtitld z každého řádku udělá titulek, dokud nezačne další.

BCC od Bilibili

Co čte přehrávač Bilibili a druhý JSON, který Subtitld ukládá.

{
  "font_size": 0.4,
  "font_color": "#FFFFFF",
  "background_alpha": 0.5,
  "background_color": "#9C27B0",
  "Stroke": "none",
  "body": [
    {
      "from": 23.0,
      "to": 24.5,
      "location": 2,
      "content": "You're a jerk, Thom."
    }
  ]
}

Časy jsou v sekundách; content je prostý text, jehož řádky jsou zalomeny znakem \n. Vzhled nahoře je ten, který nesou vlastní soubory Bilibili, a zapisuje ho i Subtitle Edit.

Jeden titulek najednou. Titulky zobrazené ve stejný okamžik se stanou jedním záznamem, jejich texty jsou řádek každý, takže časová osa nemá překryvy. location je vždy 2, dolní střed: není známo, že by přehrávač Bilibili podle něj umisťoval titulky kamkoli jinam.

JSON v Subtitldu

Uloženo v JSON Subtitldu
  • Text, formátování a místo každého titulku
  • Mluvčí, překlady a dabingy
  • Začátek a konec po milisekundách
  • Jazyk projektu
Nemá kam jít
  • Časy slov a to, jak si služba byla každým jistá
  • Statistiky dekódování Whisperu
  • Písma, velikosti, okraje a pozadí z YouTube
  • U BCC: formátování, místo a překlady vedle originálu

Pro uchování toho, co je Subtitldu, použijte projekt .usfx.

Export

Dialog exportu Subtitldu s zvoleným BCC, původním textem a jmény mluvčích před ním

Export, pak v Titulky, nabídne obě možnosti:

  • JSONSubtitldův: projekt tak, jak je, každý titulek a každé pole.
  • BCCBilibili: originál, překlad, nebo obojí, překlad pod originálem; jména mluvčích vynechána, nebo před textem; časy posunuté, pokud zvolíte.

Zajímavosti

UTF-8

Standard JSON, RFC 8259 z roku 2017, říká, že JSON posílaný mezi systémy musí být v UTF-8.

10 000 000

Taktů za sekundu v přepisech Azure: čas počítá ve stovkách nanosekund.

5

Sekund, po které přehrávač YouTube zobrazí titulek json3, který neuvádí, jak dlouho má trvat.

Související formáty

Máte soubor .json, který potřebuje opravit?

Otevřete ho v Subtitld spolu s videem a upravte časování na zvukové vlně.

Stáhnout Subtitld