字幕轉句首大寫
或者貼上字幕文字
選項
這個欄位背後有五條有名字的規則,每條都有自己的頁面:全大寫(UPPERCASE)和小寫(lowercase)改寫每個字母;標題式(Title Case)把每個詞的首字母大寫,短詞(a、the、of)保持小寫;句首式(Sentence case)先把整行轉成小寫,再重建每個句子的開頭;每行首字母大寫(Capitalise each line)只改每行的第一個字母。這一頁會把欄位填成標題裡點名的那條規則,並且不列出其他規則,所以這一頁產出的就是這一頁所講的那件事。
時間以哪個影格率計算。在格式頁面上,這是 MicroDVD 需要的值,因為它把時間存成影格編號。在影格率頁面上,它是檔案當初對應的速率 —— 字幕是照這個版本製作的 —— 而頁面的第二個欄位填你要搭配的影片速率。常見的有 23.976、24、25、29.97、30、50、59.94 和 60。填錯會讓整條時間軸位移;在影格率頁面上,位移是按比例發生,而不是固定的量。
這一頁專門處理「全大寫交來的」字幕檔。它先把每一行降成小寫,再把大寫放回句子真正開始的位置:行首一個,每個句號、問號、驚嘆號之後各一個。整份全大寫的檔案出來就是普通的大小寫混排,也是多數人來這裡想找的結果。
句子在哪裡結束是判出來的,不是看到句點就斷。句點後面接數字是數字的一部分,`3.5` 不會另起一句;已知縮寫後面的句點(`etc.`、`Dr.`、`a.m.` 等約三十個)也不算;引號裡的句號照樣算,所以 `He said "go." She left.` 的 `She` 會取得大寫。這套判斷與「按句子拆分字幕」那一頁共用同一份實作,兩頁不會對「句子在哪裡結束」給出不同答案。
跑整季之前有一件事要知道,也是這一頁唯一會讓人意外的地方:專有名詞會跟著其他字母一起降成小寫,因為字幕檔裡沒有任何欄位記錄「這個字是名字」。`DR. SMITH LEFT` 出來是 `Dr. smith left`。這就是句首大寫的定義——按句子重建一行,而不是還原名詞;名字密集的檔案更適合用行首字母大寫或詞首字母大寫,那兩頁對行內其餘字元幾乎不動。
檔案不會上傳,12 種支援格式都按實際內容判讀、不看副檔名。本來就符合句首大寫的檔案逐位元組返回,所以對一份接手來的檔案跑一遍是很便宜的體檢:它改動的每一處,都是它認為需要改的地方。
範例
全大寫交件的檔案
輸入
1
00:00:01,000 --> 00:00:02,000
THE ROOM IS DARK. THE LIGHT IS ON.
2
00:00:03,000 --> 00:00:04,000
WHO TURNED IT OFF?
輸出
1
00:00:01,000 --> 00:00:02,000
The room is dark. The light is on.
2
00:00:03,000 --> 00:00:04,000
Who turned it off?
第一條字幕裡有兩個句子,所以取得兩個大寫:行首一個、句號後一個,其餘全部降下。規則按行套用而不是按字幕套用,所以一條字幕裡有兩句話就得到兩個大寫,不是一個。
不是句子結尾的句點
輸入
1
00:00:01,000 --> 00:00:02,000
IT IS 3.5 METRES, ETC. AND MORE.
2
00:00:03,000 --> 00:00:04,000
DR. SMITH LEFT AT 9 A.M.
輸出
1
00:00:01,000 --> 00:00:02,000
It is 3.5 metres, etc. and more.
2
00:00:03,000 --> 00:00:04,000
Dr. smith left at 9 a.m.
三個句點都不另起句子:`3.5` 後面接的是數字,`etc.` 與 `Dr.` 則在縮寫名單上。所以 `and` 與 `smith` 保持小寫。第二條字幕是這一頁最常讓人意外的輸出——原因見下面的問答,名字多的檔案該換一頁。
引號裡的句點
輸入
1
00:00:01,000 --> 00:00:02,000
HE SAID "GO." SHE LEFT.
2
00:00:03,000 --> 00:00:04,000
"WAIT!" HE CALLED.
輸出
1
00:00:01,000 --> 00:00:02,000
He said "go." She left.
2
00:00:03,000 --> 00:00:04,000
"Wait!" He called.
句點落在引號內,仍然結束句子,所以閤引號之後的 `She` 取得大寫。第二條字幕以引號開頭,大寫落在引號裡的第一個字母——標點沒有大小寫,行首的引號、括號或破折號永遠不會被加上大寫。
本來就正確的檔案
輸入
1
00:00:01,000 --> 00:00:02,000
The room is dark. The light is on.
2
00:00:03,000 --> 00:00:04,000
Who turned it off?
輸出
1
00:00:01,000 --> 00:00:02,000
The room is dark. The light is on.
2
00:00:03,000 --> 00:00:04,000
Who turned it off?
逐位元組相同,因為沒有東西需要重建。對一份接手來的檔案,這是很有用的第一次執行:產物就是這一頁認為錯誤之處的差異清單,清單是空的,代表大小寫不是問題所在。
常見問題
為什麼句首大寫會把我的人名變成小寫?
因為它先把每行降成小寫、再按句子重建,而字幕檔裡沒有任何欄位記錄哪些字是名字。`DR. SMITH LEFT` 會變成 `Dr. smith left`——縮寫防護讓 `smith` 不算句首,於是保留被降下的小寫。這是操作的定義,不是錯誤;名字密集的檔案因此更該改用行首字母大寫(改動小得多)或詞首字母大寫(保護已帶大寫的字)。
句首大寫把哪些字當成縮寫?可以自己加嗎?
內建約三十個:Mr、Mrs、Dr、Prof、St 這類稱謂,etc、e.g、i.e、vs 這類拉丁縮寫,approx、inc、ltd、dept 這類單位與商號寫法,以及 a.m、p.m 與帶句點的變體。頁面上不能自行新增,因為這份名單必須對每一份檔案給出同一個答案。若你的文字有不在名單上的縮寫,那個句點會被讀成句子結束、下一個字會取得大寫,之後用尋找取代改回來即可。
檔案是大小寫混排、只是有些大寫錯了,該用句首大寫嗎?
只在整行都需要重建時才適合。這一頁會丟掉原本的大小寫,只看文字與標點重新決定:本來就正確的行原樣返回,但只錯一個大寫的行會整行重寫。想要小範圍修正時,行首字母大寫或詞首字母大寫改動的字元更少,也保留你對行內其餘部分的判斷。
一行裡有好幾個句子時,句首大寫怎麼處理?
每個句子開頭都會取得大寫,不論一行裡有幾句。`THE ROOM IS DARK. THE LIGHT IS ON.` 會變成 `The room is dark. The light is on.`,一行兩個大寫。字幕經常在一條字幕裡放兩個短句,所以這是常態而不是邊界情況,也正是這一頁不能只把第一個字母改成大寫的原因。
句首大寫會擾動時間軸、字幕順序或樣式嗎?
都不會。它只碰每一行的文字,每條字幕的起止時間是檔案自己的、精確到毫秒,順序也照檔案。樣式同樣保留,只有一個例外:當轉小寫改變字串長度時(常見的是土耳其語帶點大寫 İ),該行的標籤會被丟掉而不是蓋在錯的字母上,丟掉的數量會回報。
英文以外的語言也能用句首大寫嗎?
大小寫轉換適用於任何有大寫與小寫的文字系統,而且逐行套用,所以含兩種文字的雙語檔案兩邊都會處理。不能直接沿用的是標點名單,它是按英文與其他拉丁文字語言的句號、問號、驚嘆號調出來的;這些標記在多數語言仍然適用。沒有大小寫的文字系統(中文、日文、韓文、泰文等)原樣返回,這是正確結果而不是失敗。