跳至主要內容
SubtitleMatrix

字幕依句子拆分

時間軸在某個時間點拆分
或者貼上字幕文字

選項

在一句結束、下一句開始的地方切開,也會在字幕換行的地方切開,因為字幕檔案經常省略句號。真正開啟新句的句號、問號或驚嘆號都算,包括全形的 。!?;像 e.g. this 這樣小寫接續、像 3.5 這樣的小數,以及 Mr. 或 Dr. 這樣的常見縮寫則不算。每個句子按文字量分得這條字幕時間的一部分。

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

這一頁讓每條字幕只裝一句話。轉錄匯出的檔案經常把好幾句寫進同一條字幕——按說話者輪次或自動分段——這一頁會在一句結束、下一句開始的地方把字幕分開,再按各句攜帶的文字量分配原本的時間。

沒有數字要填。斷點來自文字本身:開始新句的句號、問號、驚嘆號,也包括中文與日文使用的全角版本。換行也算斷點,因為字幕檔經常一行一句、省略句末標點——沒有這條規則,這類檔案看起來會像工具拒絕處理。

判斷什麼結束一句話是啟發式的,而且偏向不動字幕。小寫續寫(例如 e.g. this)、小數點(例如 3.5),以及 Mr.、Dr.、etc. 這類常見縮寫不結束句子;兩個數字之間的點也永遠不算。漏掉一個縮寫,最壞是有一條字幕沒被分開,你看得見也能手動修;反過來太積極,就會把名字切成兩半,而讀輸出的人無法還原。

全部在瀏覽器分頁裡完成——檔案不上傳。SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON 與 CSV 都按同一方式讀取,條數改變的檔案會按時間軸順序從 1 重新編號。

範例

一條字幕裡的三句話

輸入

1
00:00:01,000 --> 00:00:04,000
He left. She stayed. We waited.

輸出

1
00:00:01,000 --> 00:00:01,828
He left.

2
00:00:01,828 --> 00:00:02,966
She stayed.

3
00:00:02,966 --> 00:00:04,000
We waited.

三秒按 828、1138、1034 毫秒分配——比例對應 8、11、10 個字元。閱讀速度正是拆分的目的,所以最長的一句占螢幕最久是預期結果,不是算術的副作用。

不結束句子的那些點

輸入

1
00:00:01,000 --> 00:00:03,000
Mr. Smith left at 3.5 seconds.

2
00:00:05,000 --> 00:00:08,000
Dr. Jones arrived. The room was full.

輸出

1
00:00:01,000 --> 00:00:03,000
Mr. Smith left at 3.5 seconds.

2
00:00:05,000 --> 00:00:06,500
Dr. Jones arrived.

3
00:00:06,500 --> 00:00:08,000
The room was full.

第一條字幕有三個點,沒有一個結束句子,所以完整返回。第二條有兩個真正的句末,變成兩條,Dr. 又一次被單獨留下。這一對就是整個判斷的縮影:縮寫表涵蓋什麼,決定這裡發生什麼。

一行一句,完全沒有標點

輸入

1
00:00:01,000 --> 00:00:04,000
He said hello
then she answered quietly.

輸出

1
00:00:01,000 --> 00:00:02,000
He said hello

2
00:00:02,000 --> 00:00:04,000
then she answered quietly.

兩行之間沒有句號,所以換行本身被當成句末。轉錄匯出常這樣寫,而這條規則才讓它們可以被拆。這裡各拿一半,因為第二行的 26 個字元是第一行 13 個的兩倍。

常見問題

按句拆分怎麼判斷一句話在哪裡結束?

它尋找開始新句的句號、問號、驚嘆號,以及中日常用的全角版本,並把字幕內部每個換行也當作句末。三種情況會讓點不算數:後面跟小寫字母(例如 e.g. this)、兩邊都是數字(例如 3.5),以及詞在縮寫表裡——表中有 Mr.、Mrs.、Dr.、Prof.、St.、Jr.、Sr.、vs.、etc.、fig.、no.、vol.、approx.、inc.、ltd.、co.、dept.、a.m.、p.m.、u.s.、u.k.,以及 J. 這樣的單字母。

沒有標點、只按行寫的字幕,按句拆分會處理嗎?

只看那裡是否換行。換行算句末,所以一行一句寫成的檔案即使完全沒有標點也能拆開,多數轉錄匯出正是這樣。把兩句話擠進一行、中間又沒有標點的字幕,工具無從下手,那條字幕會原樣返回——報告會說有多少條無法拆分,而不是假裝做了什麼。

按句拆分和按標點符號拆有區別嗎?

有,遇到引號和括號時差別明顯。句末標點後的右引號或右括號跟前一句走——He said "Stop." And left. 在右引號之後分,而不是在句號與引號之間。數字裡的點、首字母縮寫裡的點根本不是句末,所以 Dr. Jones arrived at 3.5 p.m. 這樣的字幕會一直保留到下一個真正的句末或換行。

按句拆分出來的句子會沿用原來的時間嗎?

不能。原檔案只記錄整條字幕何時在屏,沒有任何資訊說明區間內部哪一刻從一句換到下一句。於是各段按字元數占比分得時間,用來代替閱讀速度:文字多一倍的一句停留約一倍,第一段從原字幕開始處開始,最後一段在它結束處結束。

能用字幕按句拆分把文稿變成字幕嗎?

可以,前提是文稿已經是帶時間的字幕檔。這一頁處理字幕條,不是散文;純文字沒有可分的邊界,也沒有時間可分。它不會為從來沒有過時間的檔案憑空造出時間軸。請先把檔案當作 SRT 匯入或從純文字轉換,再在這裡拆分,得到的每段一句話,之後再處理時間。

按句拆分後,原來的樣式還在嗎?

樣式、位置和卡拉 OK 計時屬於它們被寫在的那條字幕,所以第一段保留,新建的各段沒有。這在 ASS 和帶定位的 WebVTT 上看得見,報告會計數有多少新字幕沒有格式。對每條都帶重樣式的檔案,在字幕編輯器裡手動分可能比整份跑一遍更不破壞格式。

相關工具