字幕清理與台灣字幕慣例
現在要生逐字稿很容易——但自動轉錄的逐字稿不能直接當字幕。 這篇整理從「逐字稿」到「能上片的字幕」中間,那條固定要跑的後處理管線。
一、台灣字幕的三條慣例
看一下台灣的電視節目、電影、YouTube 影片字幕,會發現幾個共通規則:
句尾不放句號
字幕本身就是一句一句出現的,句號是多餘的。
句中的標點用「空格」取代,不要直接刪
句號、逗號、頓號在字幕裡改用一個空格處理。
別直接刪標點
直接刪掉會讓前後兩句黏在一起變成一長串,反而更難讀。要換成空格,保留呼吸感。
「?」「!」保留
這兩個有語氣意義,是資訊而不是格式。
語助詞不上字幕
哦、嗯、啊、欸這些,除非有戲劇作用(例如刻意的停頓、情緒),否則不要出現在字幕上。逐字稿裡滿篇的「哦」,放到螢幕上是純粹的閱讀干擾。
二、自動刪語助詞的誤傷邊界
想用程式批次刪語助詞的話,這件事只能動一組安全字元:
✅ 可以自動刪:
哦、喔、嗯、欸、呃、啊(這幾個字幾乎不會是某個詞的一部分)
❌ 不能碰這些,看起來像語助詞,但常常是詞的一部分:
| 字 | 誤傷例子 |
|---|---|
| 嘛 | 幹嘛 |
| 呢 | 呢絨、句中的「呢」 |
| 吧 | 好吧、酒吧 |
| 啦 | 很多詞尾都有 |
這幾個交給詞彙表規則或人工處理,不要放進自動刪除清單。
三、自動轉錄的中文特性(實測心得)
以 macOS 26 內建的 SpeechTranscriber 跑一場兩小時的線上會議錄影為例:
- 速度約 59 倍速(兩小時的影片約 2 分鐘跑完),本機執行、免費,中文(zh-TW)可用
- 一段常常長達 10~17 秒 —— 直接燒上去就是一面文字牆
專有名詞的錯字是「系統性」的
這是最重要的一個發現:同一個詞每次都會錯成同一個樣子。
例如佛學內容裡的「四聖諦 → 四聖地」、「苦集滅道 → 苦及滅道」、「釋迦牟尼 → 釋迦利摩尼」。
錯得一致,代表 建一份詞彙表做批次取代,是投報率最高的修正方式——比換一個幾 GB 的大模型划算太多。每個領域(宗教、醫學、遊戲、你的產品名)都值得養一份自己的詞彙表,一次建立長期複用。
順帶一提,也會出現少量港式異體字(裏麵、導緻、癥狀),同樣批次取代即可。
用逐詞時間軸切出正常長度的字幕
現在的轉錄工具多半會提供每個字/詞的時間點,不只是整段的起訖。有了逐詞時間,就可以照下面的規則重新切段:
- 滿 22 個字必斷
- 滿 10 個字時,遇到標點就斷
切出來大約是 3~10 秒一條,這才是正常的字幕長度。
四、順序鐵律:先剪片,再轉錄
SRT 的時間碼是「從檔案開頭起算的絕對時間」。
- ✅ 純轉檔(整支影片換格式,不動長度):字幕不會錯位
- ❌ 先轉錄、後剪接:字幕會整體偏移你剪掉的長度;如果用的是不重編碼的「極速剪接」,還會再加上關鍵影格貼齊造成的偏移
正確流程永遠是:先把影片剪好 → 對剪好的成品轉錄。
五、完整管線
轉錄
→ 詞彙表批次取代(修同音錯字)
→ 清理語助詞與標點
→ 逐段人工掃過一次
→ 輸出
中間三步可以自動化,但最後那次人工掃過不能省。
六、輸出:軟嵌字幕 vs 燒錄字幕
| 軟嵌(Soft Sub) | 燒錄(Hard Sub) | |
|---|---|---|
| 本質 | 獨立的字幕軌 | 字幕畫進畫面像素裡 |
| 處理時間 | 秒級(不用重編碼) | 需要完整重編碼 |
| 觀眾可否關閉 | 可以 | 不行 |
| 相容性 | 看播放器 / 平台支援 | 任何裝置都看得到 |
軟嵌:mp4 / mov 容器要用 mov_text 格式;其他容器建議改輸出 mkv。
燒錄:用 ffmpeg 的 subtitles 濾鏡。
燒錄時的路徑地雷
subtitles=濾鏡的檔案路徑跳脫規則很難搞(冒號、引號、中文都會出事)。最省事的解法不是想辦法正確跳脫,而是繞開它——把 SRT 先複製到一個純英數的暫存路徑,再餵給 ffmpeg。
平台選哪個
- 上 YouTube:軟嵌或直接上傳 SRT。字幕檔對 SEO 有幫助,觀眾也能自己關掉
- 上 Instagram、TikTok、Threads 這類手機短影音:燒錄。這些平台多半不吃外掛字幕軌,而且觀眾常常靜音看