JSON subtitles and transcripts

AçKaydetDökümlerKonuşmadan metne

Tek bir biçim değil, birçoğu: JSON, konuşmadan metne motorlarının, video sitelerinin ve altyazı sitelerinin altyazıları ve dökümleri teslim ettiği yoldur; her birinin kendi şekli var. Subtitld kendi dosyalarını, OpenAI'ın Whisper'ının yazdığı şekilde, bir altyazının tuttuğu her şeyle birlikte kaydeder; ve bir düzine başka aracın yazdıklarını açar.

Kısaca

Uzantı.json
Ortam türüapplication/json
BelirtimJSON'un kendisi: RFC 8259 ve ECMA-404. Her aracın şekli kendine ait.
Zaman hassasiyetiSubtitld'nin: saniye, milisaniyeye kadar. Diğerlerinde: milisaniye, saniye, 100 nanosaniyelik tikler ya da "1.400s" gibi metin.
Metin kodlamasıUTF-8
BiçimlendirmeSubtitld'nin: metnin tuttuğu etiketler. YouTube'un: kalın, italik, altı çizili ve renkler. Diğerleri: yok.
KonumlandırmaSubtitld'nin: metnin içinde, {\an8} olarak. YouTube'un: pencereler. Bilibili'nin: bir konum.
KonuşmacılarSubtitld'nin speaker'ı; konuşmadan metne servisleri kendilerininkini etiketler
KapsayıcılardaYok

Subtitld'nin JSON'unun yapısı

Subtitld'nin kaydettiği, bir altyazı için:

{
  "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."
}
Parça Ne anlama gelir
"language" Projenin dili, Subtitld'nin adlandırdığı gibi (en-us)
"segments" Altyazılar, sıralı
"id" Numarası, 0'dan başlayarak; Whisper'ın numaraladığı gibi
"start", "end" Saniye
"text" Etiketleriyle (<i>, {\an8}) ve satır sonlarıyla (\n) metni
"speaker", "translations" … Altyazının tuttuğu diğer her şey: konuşmacısı, dillere göre çevirileri, dublajları
En sondaki "text" Tüm metin tek satırda, yalnızca bunu isteyen araçlar için. Geri okunmaz.

Whisper'ın şekli, bilerek. OpenAI'ın Whisper'ının yazdığı şekil; bu yüzden Whisper'ın segmentlerini okuyan araçlar Subtitld'nin dosyalarını okur, ve Subtitld Whisper'ınkileri açar; kod çözmesinin istatistiklerini ve her kelimenin zamanlarını dışarıda bırakarak.

Subtitld hangi dosyaları açar

Her aracın JSON'u, anahtarlarıyla hangisi olduğunu söyler. Subtitld şunları açar:

Araç Subtitld'nin ondan aldıkları
Subtitld, OpenAI'ın Whisper'ı Her alan (Subtitld'nin); metin ve dil (Whisper'ın)
whisper.cpp Segmentleri ve iki kanalı ayırt edebildiğinde konuşmacıları
WhisperX Segmentleri ve konuşmacıları
YouTube (.json3, yt-dlp'nin kaydettiği gibi) Metin, kalın, italik, altı çizili, renkler ve yer
Bilibili (.bcc) Metin ve yer
AssemblyAI, Deepgram, AWS Transcribe, Rev.ai, Google Speech-to-Text, Azure Speech, Speechmatics Kelimeler, konuşmacılar ve dil; altyazıya dönüştürülmüş
Amara Metin, italik, kalın, altı çizili ve üstte gösterilen altyazılar

Hangi aracın olduğunu anlamayan bir JSON dosyası bunu söyler. Geçerli JSON olmayan bir dosya ise hatanın satır ve sütununu gösterir.

Dökümleri altyazıya dönüştürmek

Konuşmadan metne servisleri, kelimeleri zamanlarıyla ya da uzun konuşma turlarını teslim eder. Subtitld bunlardan, Kalite denetimi panelinin izin verdiği ölçüde altyazılar yapar: satır başına karakter, satır sayısı ve saniye. Bir altyazı şu noktalarda biter:

  • konuşmacı değiştiğinde ya da konuşma bir saniyeden uzun durakladığında;
  • bir cümlenin sonunda, bir sonrakisi onu bir satırdan fazlaya taşıyacaksa;
  • dolduğunda: makul ölçüde dolu bırakan son noktalama işaretinde, yoksa iki kelime arasında.

Kelime zamanı olmayan bir tur da, parçalarının uzunluğuna göre zamanı paylaştırılarak aynı şekilde bölünür.

Önce sınırları ayarlayın. Altyazılar dosya açılırken yapılır: daha uzun ya da kısa altyazılar istiyorsanız bir dökümü açmadan önce Kalite denetimi sınırlarını değiştirin.

Konuşmacılar ve diller

Servisler konuşmacılarını numaralandırır: 0, spk_1, SPEAKER_02, S3. Subtitld bunlara, ilk konuştukları sıraya göre A, B, C … adını verir; kendi konuşmacılarını adlandırdığı gibi. Bir dosyanın adlandırdığı bir konuşmacı (Rev.ai'nin yapabildiği gibi) adını korur.

Projenin dili dosyadan gelir: bir kod olarak (en_us, pt) ya da bir ad olarak (English, Whisper'ın istendiğinde tuttuğu gibi); ya da dosya adından: video.en.json3. Projenin kendi dilindeki bir dosya, projenin ülkesini korur: pt-br projesinde pt, pt-br olarak kalır.

YouTube'un json3'ü

YouTube'un oynatıcısının okuduğu ve yt-dlp'nin .json3 olarak kaydettiği: milisaniye cinsinden metin olayları; kalın, italik, altı çizili ve renkler için kalemler; nerede durduklarını söyleyen pencereler. Otomatik altyazılar, bir satırın altına bir satır kayarak ilerler; her biri bir sonraki görünene kadar gösterilir. Subtitld her satırı, bir sonrakinin başlayışına kadar bir altyazı yapar.

Bilibili'nin BCC'si

Bilibili'nin oynatıcısının okuduğu ve Subtitld'nin kaydettiği diğer tek JSON.

{
  "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."
    }
  ]
}

Zamanlar saniye cinsindendir; content düz metindir, satırları \n ile kırılmıştır. Üstteki görünüm, Bilibili'nin kendi dosyalarının taşıdığıdır; Subtitle Edit de yazar.

Bir seferde bir altyazı. Aynı anda gösterilen altyazılar tek bir girişe dönüşür; metinleri her biri bir satırda olur; zaman çizelgesinde çakışma olmaz. location her zaman 2'dir, alt orta: Bilibili'nin oynatıcısının altyazıları başka bir yere yerleştirmek için bunu kullandığı bilinmiyor.

Subtitld'de JSON

Subtitld'nin JSON'unda korunanlar
  • Her altyazının metni, biçimlendirmesi ve yeri
  • Konuşmacılar, çeviriler ve dublajlar
  • Başlangıç ve bitiş, milisaniyesine kadar
  • Projenin dili
Gidecek yeri olmayanlar
  • Kelime zamanları ve bir servisin her birinden ne kadar emin olduğu
  • Whisper'ın kod çözme istatistikleri
  • YouTube'un yazı tipleri, boyutları, kenarları ve arka planları
  • BCC'de: biçimlendirme, yer ve orijinalin yanındaki çeviriler

Subtitld'nin olanları korumak için bir .usfx projesi kaydedin.

Dışa aktarmak

Subtitld'in dışa aktarma penceresi: BCC seçili, önünde orijinal metin ve konuşmacı adları

Dışa aktar, ardından Altyazılar, ikisini de sunar:

  • JSONSubtitld'nin: proje olduğu gibi, her altyazı ve her alan.
  • BCCBilibili'nin: orijinal, bir çeviri ya da ikisi; çeviri altta; konuşmacı adları yazılmaz ya da metinden önce yazılır; isterseniz zamanlar kaydırılır.

Bilgi kırıntıları

UTF-8

JSON'un standardı, 2017 tarihli RFC 8259, sistemler arasında gönderilen JSON'un UTF-8 olması gerektiğini söyler.

10.000.000

Azure'un dökümlerinde saniyedeki tik sayısı: zamanı yüzlerce nanosaniye cinsinden sayar.

5

YouTube'un oynatıcısının, ne kadar süreceğini söylemeyen bir json3 altyazısını gösterdiği saniye.

İlgili biçimler

.json düzeltmek mi istiyorsunuz?

Videoyla birlikte Subtitld'de açın ve dalga biçimi üzerinde yeniden zamanlayın.

Subtitld'yi indirin