跳至主要內容
SubtitleMatrix

字幕結構問題掃描

品質檢查完整結構掃描
或者貼上字幕文字

選項

允許在上一條字幕結束與下一條開始之間出現的黑畫面毫秒數。空白是從目前為止到達的最遠結束時間量起,而不是緊鄰的前一條,所以一條長字幕壓在幾條短字幕下面時,不會憑空算出一段畫面上從未出現過的間隙。這個數字的作用取決於你所在的頁面:補間隙頁面會合上比它寬的間隙(0 是常見值,表示兩端正好相接),而檢查頁會列出所有比它寬的區間並讓檔案保持不動。無論哪一種,小於或等於這個值的都保持原樣。

一個時長 —— 1000、1s、1.5s 和 00:00:01,000 都可以。這是「停留得夠久、讀得完」和「一閃而過」之間的界線。低於這條線時會發生什麼取決於你所在的頁面:補間隙頁面會把短字幕多留一會兒,多出來的時間從後面的間隙裡扣,保證任何一條都不會蓋住下一條的字,檔案裡最後一條後面沒有別的,就直接延長;而檢查頁會列出所有低於這條線的字幕,檔案保持不動。

一個欄位,兩個選項,每個都有自己的頁面。完全沒有文字的字幕段落佔著時間軸卻什麼也不顯示 —— 任何讀法下這都不對,所以報告把它標為錯誤。沒有字母的字幕段落則是有內容但沒有詞:用音符代替歌詞、單獨的數字、三條橫線。廣播字幕會刻意使用這些,所以報告把它們標為需要看一眼,而不是錯誤,實測那一欄會顯示實際存在的字元。

時間以哪個影格率計算。在格式頁面上,這是 MicroDVD 需要的值,因為它把時間存成影格編號。在影格率頁面上,它是檔案當初對應的速率 —— 字幕是照這個版本製作的 —— 而頁面的第二個欄位填你要搭配的影片速率。常見的有 23.976、24、25、29.97、30、50、59.94 和 60。填錯會讓整條時間軸位移;在影格率頁面上,位移是按比例發生,而不是固定的量。

當你還不知道一份檔案哪裡有問題時,就來這一頁。它讓字幕檔案一次跑完六項結構檢查——字幕重疊、間隙、空白字幕、沒有對白、開始時間順序錯亂,以及時長落在你設定的範圍之外——然後回傳一份報告,每一項檢查各一節。無論有沒有找到東西,每一節都會印出來,而這正是重點:只列出問題的報告,會讓你分不清「檢查過、結果乾淨」與「根本沒跑過」。

每一項檢查保留自己的語言。重疊用共享的毫秒數衡量,間隙用空白的毫秒數衡量,時長對照你設定的兩個上限,而兩項順序檢查則以檔案層級的發現呈現,因為被排序或修復過的字幕條,在檔案裡不會留下任何可以指認的位置。各節的數字加起來不等於檔案的毛病總數,也不該如此:一條字幕可以同時太短、空白又重疊,而這些都由懂得怎麼描述它的那項檢查各自回報。報告給你的是問題的形狀,不是一個總數。

報告開頭本身就是答案的一部分。它寫出檔案名稱、以哪種格式讀取、裡面有幾條字幕、跑了幾項檢查,以及讀取器沿途不得不修復的東西——照原樣留不住的時碼,或必須先搬動、檔案才站得起來的字幕條。那些修復說明了一件事:重新排序或零長度時長為什麼會出現在發現區裡、卻沒有字幕條編號——證據是修復次數,不是檔案裡的某一條字幕。掃描發現什麼之後,再各自去跑對應的單項頁面,因為那幾頁會把一種缺陷講透,並提供適合它的修補方式。

範例

一口氣有好幾種毛病的檔案

字幕

1
00:00:01,000 --> 00:00:03,000
Where were you?

2
00:00:03,500 --> 00:00:04,000


3
00:00:04,500 --> 00:00:09,000
I was working late.

4
00:00:09,300 --> 00:00:12,000
Until when?

報告發現了什麼

Checks run   6
Cues         4

Overlapping cues — 1 found
Gaps between cues — 2 found
Cue duration outside the limit — 1 found
Cues with no words — 1 found
Cues out of sequence — Nothing found
Cues ending before they start — Nothing found

四條字幕、四個缺陷,六節裡有兩節是空的。字幕順序那一節是空白的,是結果而不是報告漏了一塊——它正是你知道這份檔案被檢查過、而且乾淨回來的方式。空白的那條與太短的那條是同一條字幕,被兩條描述方式不同的規則各數了一次。

乾淨的檔案

字幕

1
00:00:01,000 --> 00:00:03,000
Where were you?

2
00:00:03,000 --> 00:00:05,000
I was working late.

報告發現了什麼

Checks run   6
Cues         2

Overlapping cues — Nothing found
Gaps between cues — Nothing found
Cue duration outside the limit — Nothing found
Cues with no words — Nothing found
Cues out of sequence — Nothing found
Cues ending before they start — Nothing found

六項檢查、六個空節。這是這一頁多數時候該給的答案,也是唯一能看出「沒有發現」是逐項印、而不是整份檔案印一次的辦法——只給一行總結,讀的人就分不清哪五項檢查被跳過了。

讀取器必須動手修復的檔案

字幕

1
00:00:09,000 --> 00:00:11,000
I was working late.

2
00:00:01,000 --> 00:00:02,000
Where were you?

3
00:00:05,000 --> 00:00:05,000
Until when?

報告發現了什麼

Lost while reading   Timing × 1, Cue order × 2

Cues out of sequence — 1 found
Cues ending before they start — 1 found
Gaps between cues — 1 found
Cue duration outside the limit — 1 found

三條字幕、三個問題,其中一個讀取器必須先修好才檢查得下去。開頭記下了兩次修復,而替第 3 條憑空生出的一毫秒,又以「對照一秒下限量到的數字」回到時長那一節——同一個缺陷,在同一份報告裡從兩個方向被描述。

常見問題

這一頁會對字幕檔案跑哪幾項檢查?

六項:字幕重疊、長於你設定間隙上限的空檔、空白字幕、沒有任何文字的字幕、開始時間倒退的字幕,以及時長落在你設定的最短與最長之外的字幕。每一項在報告裡都有自己的區段,永遠以相同順序印出,而且不管有沒有找到東西都會出現。

為什麼乾淨的檢查在報告裡還是有一節?

因為「沒有發現」和「沒有檢查」是兩種不同的答案,而只列問題的報告會讓你分不出來。六個區段代表六項檢查跑過了;空白的區段表示那項檢查看過了、什麼都沒找到,那是一個可以依賴的結果,而不是資訊的缺席。

各節的數字加起來,會等於檔案裡的問題數嗎?

不會,而且本來就不該。一條字幕可以同時太短、空白又重疊,而這些都由能夠描述它的規則各自回報——所以同一條字幕可以出現在三個區段裡。不要加總;順著區段讀下去,把每一節當成它自己的答案。

跑掃描之前我必須先設定哪些上限?

兩個:間隙上限,也就是你願意接受的最長停頓;以及最短顯示時長,也就是一條字幕最少可以停在畫面上多久。最長時長不是必填,預設是七秒。三個數字都會印在它們產生的每一筆發現旁邊,所以報告會說明拿什麼在比,不必靠你記。

為什麼有些發現沒有字幕條編號或時間碼?

因為它們是檔案層級的發現。字幕順序的問題與被修復的零長度時碼,都是讀檔過程中產生的——等到能檢查的時候,字幕條早就排好或修好了——所以證據是修復的次數,檔案裡已經沒有哪個位置能誠實地被指為出錯的那一個。

我該用這一頁取代個別檢查的頁面嗎?

用它來查出哪裡有問題,再用個別頁面去處理。那幾頁會把一種缺陷從頭講到尾、各自設定自己的上限,並連到修那個問題的操作。掃描是入口,不是它身後那六頁的替代品。

哪些字幕格式可以掃描?

十種同時記錄開始與結束時間的格式:SRT、WebVTT、ASS、SSA、SBV、SMI、MicroDVD、TTML、JSON 與 CSV。LRC 與純文字不接受,因為六項檢查裡有四項需要結束時間,另外兩項需要字幕條模型——掃描這兩種格式,只會得到一片空白區段,而那讀起來會像一張健康證明。

可以一次掃描整部影集嗎?

可以。想排幾個檔案就排幾個,它們會依序掃描,各自產生一份報告,最後一起以 zip 下載。進度會逐檔顯示,執行到一半也能停止,而且整個過程沒有任何檔案離開瀏覽器。

相關工具