字幕每行字元數檢查
或者貼上字幕文字
選項
限值不是你輸入的數字:它來自一份公開發布的文件,報告會寫明那份文件、引用原句、說明那句話是要求還是建議,並給出我們最後核對的日期和連結。選你要對其負責的那份文件。它們彼此並不一致:Netflix 按每秒字元數計算,並把每行限制在 42 個字元;Ofcom 和 BBC 按每分鐘詞數計算,而行長方面 BBC 限制為 37 個字元。其中三份完全沒有給數字 —— 47 CFR §79.1、WCAG 2.2 SC 1.2.2 和 EN 301 549(它要求網頁與非網頁文件滿足同一條準則)。這三份要求字幕標明說話者並包含非語音資訊,把所有數字留給播出方;檢查它們的頁面問的是檔案有沒有做到,而不是某個數字有沒有超標。它們的效力也不同:同一種缺陷在 WCAG 下是警告,在 EN 301 549 下是錯誤,因為該標準把這條準則寫成了必須。改變這個欄位會同時改變限值和引用,所以報告不會把一份文件的數字掛在另一份文件的名下。只檢查某一份文件所述內容的頁面,只提供那一份。
時間以哪個影格率計算。在格式頁面上,這是 MicroDVD 需要的值,因為它把時間存成影格編號。在影格率頁面上,它是檔案當初對應的速率 —— 字幕是照這個版本製作的 —— 而頁面的第二個欄位填你要搭配的影片速率。常見的有 23.976、24、25、29.97、30、50、59.94 和 60。填錯會讓整條時間軸位移;在影格率頁面上,位移是按比例發生,而不是固定的量。
每行字元數上限,是一行字幕最多可以放幾個字元。這一頁會拿你選定的標準逐行量測——Netflix 定時文字風格指南是每行 42 個字元,BBC 的字幕指引是 37 個——並列出每一個超出的行,附上量到的長度,以及這條上限是從哪一句話讀出來的。檔案在你的瀏覽器裡讀取、從不上傳,也不會被改動。
數的是看得見的字元。樣式標記會先剝掉才開始量,所以 ASS 檔案裡一行斜體,和 SRT 檔案裡同樣的幾個字,量出來完全一樣;而空格與標點要算,因為它們在畫面上也佔位。這一點很重要,因為這條上限談的是「塞不塞得下」:超出的那一行會頂到畫面邊緣、被縮小,或被這套字幕所服務的裝置裁掉。美式英語把這類屏上文字叫 caption,英式叫 subtitle,兩種說法指向同一份被量測的檔案。
這一頁不做兩件事。第一,它逐行分開量,所以一條兩行各 40 個字元的字幕,在 42 的上限下不會被回報,即使畫面上同時有 80 個字元——一條字幕可以放幾行,在兩份文件裡都是另一條上限,這裡不檢查。第二,它接受純文字:.txt 檔案沒有時間,所以每一行會被給一個兩秒的時段,好讓量測結果有個地方待著,而報告會在列出的那一行印出這些時間,你可以看到它們原本不在檔案裡。
範例
比 Netflix 上限多三個字元的一行
字幕
1
00:00:01,000 --> 00:00:03,000
I missed the last train home and had to walk.
Back before midnight, you said.
2
00:00:04,000 --> 00:00:06,000
Every night this week?
報告發現了什麼
Lines longer than the limit — 1 found
Severity Cues Start End Measured Limit Clause
Warning 1 00:00:01.000 00:00:03.000 45 characters per line 42 characters per line Netflix Timed Text Style Guide: General Requirements — Line length: maximum 42 characters per line (43–44 only in rare exceptions)
Checked against
Standard: Netflix Timed Text Style Guide
Limit: 42 characters per line
Where it is stated: Line length: maximum 42 characters per line (43–44 only in rare exceptions)
Stated as: Guideline
Not checked by this page: Duration: minimum duration 5/6 second (20 frames at 24fps); Duration: maximum duration 7 seconds; Reading speed: 20 characters per second for adult content (17 for children's); Line length: maximum 2 lines per subtitle event第一條字幕的開頭那一行有 45 個字元,被列出來了;同一條的第二行量到 31,沒有被列。量測值取的是這條字幕最長的那一行,所以一條折成兩行、長度舒服的字幕會乾淨回來,而一行過長的就不會。
兩行都剛好 42 個字元
字幕
1
00:00:01,000 --> 00:00:04,000
I waited at the station for an hour today.
I waited for you at the station all night.
報告發現了什麼
Lines longer than the limit — Nothing found.
Checked against
Standard: Netflix Timed Text Style Guide
Limit: 42 characters per line
Where it is stated: Line length: maximum 42 characters per line (43–44 only in rare exceptions)
Stated as: Guideline
Not checked by this page: Duration: minimum duration 5/6 second (20 frames at 24fps); Duration: maximum duration 7 seconds; Reading speed: 20 characters per second for adult content (17 for children's); Line length: maximum 2 lines per subtitle event兩行都正好落在上限上,所以兩行都沒被回報——一條字幕同時在畫面上放 84 個字元,完全允許,因為上限是每行,不是每條字幕。
同樣四十個字元,放到 BBC 的 37 之下
字幕
1
00:00:01,000 --> 00:00:03,000
We can talk about it all in the morning.
2
00:00:04,000 --> 00:00:06,000
Every night this week?
報告發現了什麼
Lines longer than the limit — 1 found
Severity Cues Start End Measured Limit Clause
Warning 1 00:00:01.000 00:00:03.000 40 characters per line 37 characters per line BBC Subtitle Guidelines — Line length: maximum 37 characters per line
Checked against
Standard: BBC Subtitle Guidelines
Limit: 37 characters per line
Where it is stated: Line length: maximum 37 characters per line
Stated as: Guideline
Not checked by this page: Line length: maximum 2 lines (a third only if no important picture is obscured); Reading speed: 160–180 words per minute檔案一點都沒變,變的只有標準,裁決就翻轉了:40 個字元在 Netflix 的 42 之下綽綽有餘,卻比 BBC 的 37 多了三個。Clause 那一欄寫出 BBC 的指引名稱,當兩份報告的量測數字一模一樣時,這就是分辨它們的東西。
沒有時間的純文字檔
字幕
The last train had already gone when I finally left the office.
Every night this week?
報告發現了什麼
Lines longer than the limit — 1 found
Severity Cues Start End Measured Limit Clause
Warning 1 00:00:00.000 00:00:02.000 63 characters per line 42 characters per line Netflix Timed Text Style Guide: General Requirements — Line length: maximum 42 characters per line (43–44 only in rare exceptions)
Checked against
Standard: Netflix Timed Text Style Guide
Limit: 42 characters per line
Where it is stated: Line length: maximum 42 characters per line (43–44 only in rare exceptions)
Stated as: Guideline
Not checked by this page: Duration: minimum duration 5/6 second (20 frames at 24fps); Duration: maximum duration 7 seconds; Reading speed: 20 characters per second for adult content (17 for children's); Line length: maximum 2 lines per subtitle event這是一份純文字稿,而不是字幕檔案,但它照樣被量測:一行就是一行,不管有沒有時間碼。只有第一行超過 42 個字元。列裡那些開始與結束時間,是這一頁為了讓量測結果有地方附著而編出來的時間軸——從零開始每行兩秒——而讀檔時沒有丟失任何東西,因為一行的長度不依賴時鐘。
常見問題
這一頁量一行字幕時,哪些字元會被算進去?
每一個看得見的字元,包含空格與標點,而且會先移除所有樣式標記。這是同一句話在十二種格式裡能被同樣量測的唯一辦法:ASS 的一行斜體帶著 SRT 沒有的標記,把標記算進去,就會讓兩份在畫面上看起來一模一樣的字幕得到不同的數字。
我該用 42 個字元還是 37 個字元來檢查字幕?
看你對哪一份文件負責。這裡兩個數字都提供。Netflix 的風格指南允許每行 42 個字元,43 與 44 只在極少數例外;BBC 的指引則把一行壓在 37。它們是對同一個問題的不同答案,因為是為不同的交付對象寫的,而報告會寫出它用的是哪一份文件,所以數字永遠有出處。美式說法把這類屏上文字叫 caption,英式叫 subtitle,兩者量的是同一份檔案裡的同一行。
這條上限是逐行檢查還是逐條字幕檢查?
逐行。一條兩行各 40 個字元的字幕,在 42 的上限下不會被回報,即使它一次把 84 個字元放上畫面。一條字幕可以放幾行是另一條上限——這裡兩份文件都是兩行——而這一頁不檢查它;依據區塊會把它列進「未檢查」的清單裡。
可以拿純文字稿或純文字檔來檢查每行字元數嗎?
可以,而這是這個類別裡唯一接受純文字的一頁。.txt 檔案沒有時間,所以讀取器會給每一行一個從零開始的兩秒時段;那些時間出現在報告的列裡,只是為了讓量測結果有個地方坐。一行的字元數不依賴時鐘,所以每一行的裁決都是真的。
檢查每行字元數會改動我檔案裡的換行嗎?
不會。什麼都不會被改寫,檔案也不會被上傳。如果你要把行重新折到某個欄寬,那是另一個工具,產物是一份新的字幕檔案。這一頁只告訴你哪些行超過上限、超過多少。
量測每行字元數,跟限制行數,差在哪裡?
一個談的是一行可以有多寬,另一個談的是一條字幕可以放幾行。兩份文件都把這兩條上限分開寫,而一份檔案可以單獨違反其中一條:一條字幕可以是兩行短句而完全合格,也可以是一行很長而超出上限。這一頁只回答第一個問題。
這項檢查會看什麼
- 報告描述的是一份檔案;它背後那些數字所在的文件,則是寫給服務商與供應商的。Netflix 的 42 與 BBC 的 37 來自為各自交付對象而寫的風格指南,不是法律。你的 caption(美式用語)是否必須滿足它們,是關於你的合約或主管機關的問題,這一頁不回答——它只回報哪些行超過了哪一條公開的上限。這也與閱讀速度(reading speed)那一頁分開:那裡量的是讀者讀不讀得完,這裡量的是這一行塞不塞得下。
- 每行字元數,是字幕檔案裡少數會直接讓觀眾付出代價的性質之一。一行跑出畫面邊緣,或被縮小到塞得下為止,對任何依賴文字的人都難以閱讀,對低視力觀眾更是如此。這就是為什麼兩份文件都把它當成上限而不是偏好,也是為什麼量它,會是與量「文字得多快被讀完」分開的一頁;在某些檔案裡,auditory cues 佔去的字元會讓這個問題變得更明顯。
參考資料
- Netflix Timed Text Style Guide: General Requirements — 每行長度上限 42 個字元,43 至 44 僅限極少數例外。
- BBC Subtitle Guidelines — 每行長度上限 37 個字元。