目錄(42 節)

SRT 字幕時間軸對齊教學:批量調整、逐句校準與常見問題

SRT 字幕時間軸對齊需要同時處理時間碼、語音節奏與播放器延遲。本文介紹批次位移、逐句微調及檢查重疊字幕的實用流程。

— 港嘢內容團隊約 12 分鐘SRT字幕時間軸對齊字幕同步字幕時間碼
分享:

**一句答你:**SRT 字幕嘅時間軸對齊,核心就係將「邊句對白幾時出現、幾時完結」同畫面對到正,差一兩秒觀眾就會出戲,呢篇會由時間碼格式、常用工具、自動化流,到用 TTS 配合 SRT 一次過做齊。

Key Takeaways

  • SRT 字幕嘅時間軸對齊,本質係控制 00:00:00,000 --> 00:00:00,000 入面嗰兩個 timestamp,精準到毫秒就夠。
  • 對齊嘅主要場景分三類:人手剪片、軟件自動對齊同用 TTS 直接吐出帶時間碼嘅字幕檔,後者最慳力。
  • 廣東話 SRT 嘅時間軸仲有「句長唔等長」「中英夾雜」兩大致命位,要靠語速估算同分段策略救。
  • 一條 10 分鐘嘅廣東話旁白,大約 2,400 字符,喺 240 字符/分鐘嘅語速下做時間軸會比較順。
  • 用支援 SRT 輸出嘅 TTS API,可以慳甩逐句逐段 set timestamp 嘅工序,但 job pool 一凍就要排隊。
  • 對齊完一定要做「離線檢查」:聲畫同步、句間停頓、字數同預期差距,呢三步唔做就會出街即炒。

SRT 時間軸對齊嘅基本概念

SRT(SubRip Subtitle)係香港同華語世界最通用嘅字幕檔格式,一個 .srt 檔入面會有若干段「字幕 block」,每段結構如下:

1
00:00:01,200 --> 00:00:04,500
第一句對白喺度

2
00:00:04,800 --> 00:00:07,000
第二句對白

時間軸對齊,講到尾就係將每段 block 嘅入時間(in-point)同出時間(out-point)校到同畫面/聲對得正。表面睇好似好簡單,但實際操作會撞到幾個位:

  • 字早過對白出 → 觀眾未聽到就見到字,會搶注意力
  • 字幕遲過對白出 → 觀眾聽完先見到字,會諗呢句係咪已經過咗」
  • 字幕停留得太短 → 觀眾睇唔切
  • 字幕停留得太耐 → 同下一句撞時間

呢啲都係時間軸對齊要解決嘅核心問題。

SRT 時間碼格式

正式 SRT 嘅時間碼格式係 HH:MM:SS,MMM(時:分:秒,毫秒),中間用 --> 連接,秒同毫秒之間係逗號而唔係句號。例如:

00:01:23,456 --> 00:01:26,789
  • 小時位可以係兩位數(00、01),但一般都係兩位
  • 分鐘同秒都係兩位數,唔可以寫 1:23
  • 毫秒係三位數,000 至 999

如果你嘅時間軸工具輸出 00:01:23.456(句號)或 1:23.4(單位唔啱),可能個檔案喺某啲播放器會讀唔到,要校返做逗號。

對齊嘅三個核心指標

做廣東話 SRT 對齊,可以記住三個 KPI:

指標點解重要常見錯誤
字數/鐘(語速)影響每段字幕應該有幾長全部段都用同一個時長
句間停頓(gap)兩句之間要唔要靜少少全部段都黐住,無呼吸位
入口延遲(lead-in)字幕早過對白幾多秒全部早 0.5 秒或全部跟住出

呢三個指標夾得好,時間軸就會睇落自然。

點解廣東話 SRT 特別難對

廣東話字幕比普通話或英文字幕難搞,原因有三:

1. 句長差異大

廣東話口語會用好多短句、加語氣詞(「嘅」、「咩」、「囉」、「啦」),同時間中夾長句。例:

「喂,我同你講呢樣嘢,唔係咁嘅,佢真係冇嚟過㗎。」

呢句如果切成 3 至 4 段字幕,每段就 7 至 10 個字左右,時間軸要逐段微調。英文同樣意思可能要 20 個字一段,時長反而好控制。

2. 中英夾雜好常見

香港人講嘢成日中英夾雜,例:

「今日個 meeting 改咗去 3 點,你 send 咗 email 未?」

一句入面有中文、英文 brand 名、數字,淨係每個 token 嘅顯示度就唔同,再加上英文係一個英文字算一個字符、中文係一個文字算兩個字符(依據 RFC 3986 嘅 UTF-8 計算),字符數同實際熒幕闊度唔係線性關係。要做好對齊,最好事先 做一次中英夾雜 TTS 嘅口語化測試,睇下你嘅工具點處理呢類混合文本。

3. 語速變化大

廣東話正常講嘢大概 200 至 280 字符/分鐘,但情緒激動或者演繹式旁白可以去到 320 甚至更高。換言之,用同一個語速估算所有段落,時間軸就一定會移位。

呢個位,港嘢估算約 240 字符/分鐘(2026-10-01 產品裁定)作為基準,但實際剪片時要按聲線現再調整。可以用 TTS 情緒控制指南 嗰度嘅演繹風格做參考,睇下你揀嘅 preset 係咪偏向慢定快。

SRT 時間軸對齊嘅三條工作流

時間軸對齊可以分三個流派,由人手到自動化各有優缺。

工作流 A:人手逐段校(傳統剪片師做法)

最傳統做法就係:

  1. 拎到一段對白錄音者影片
  2. 開 Su或title Edit、Aegisub、Premiere 字幕面板之類嘅工具
  3. 邊聽邊逐段 set timestamp
  4. 校完導出 SRT

好處係精準壞處係慢。一條 10 分鐘影片,人手做可能要 1 至 2 個鐘,而且越做越攰,後段嘅準成度會下降。廣東話對白如確仲有 語詞同停頓位,人手更易錯位。

工作流 B:用軟件自動對齊(forced alignment)

Forced alignment 係用聲學模型,將音頻同文字對齊,自動出時間軸。常見工具包括:

  • Aegisub + 插件(免費,但廣東話模型支援參差)
  • 字幕俠類網站(上傳音頻自動出 SRT,但廣東話辨識準成度未夠)
  • Mo確treal Forced Aligner(學術用,支援廣東話但要 setup)

呢條路慳人手時間,但要後續人手執:廣東話同音字多,「係」「市」「事」讀音一樣但意思唔同,自動對齊會撞呢啲位。

工作流 C:用 TTS 直接 SRT(最慳力)

最直接嘅做法:用支援 SRT 輸出嘅 TTS API,直接拎帶時間碼嘅字幕檔。

以港嘢嘅 API 為例,POST /v1/audio/jobs 帶 srt=true 會行 async 軌(短過 300 字符嘅 sync 捷徑唔支援 SRT,會回 400 srt_not_supported_sync),完成後個 job 會一齊俾返你 .srt 檔案或者 SRT 格式嘅字幕 payload時間軸已經對好,唔使你人手逐段 set。

呢條路有幾個位要留意:

  • 並行上限:每個 plan 都有 in-flight 任務上限(免費 3、入門 5、專業 10、工作室 20),撞到上限會回 429 in_flight_limit_reached
  • Rate limit:預設 60 個成功 billable 請求/分鐘/key,開 key 時可調
  • 音頻 URL 時效:直接由 generation worker 出嘅 audio URL 係 7 天有效;materialized(入咗 audio library)嘅就 1 小時,過期要 re-poll

如果你嘅工作流係「先生成、再後期、再剪」,記得 job 完成後即刻下載同備份音頻,唔好等到第 8 日先攞。

用 TTS 生成 SRT 嘅實戰步驟

以下係用 TTS 一次過做齊旁白同字幕嘅完整工作流。

步驟 1:準備劇本

將你嘅旁白稿整理成純文字,唔好加任何時間碼。文本上限 1 至 500 字符,超過會回 400 text_too_long。如果劇本長過 500 字,就要分批。

呢個位可以參考 廣東話 TTS 完全指南 嘅文本預處理章節,特別係 書面語同口語嘅切換,劇本口語化程度直接影響後出嚟嘅語速同字幕停頓位。

步驟 2:估算時間軸

用 240 字符/鐘 做基準估算,10 分鐘旁白大約 2,400 字符。實際操作:

旁白長度字符數(大約)估算時長
30 秒1200:00:30
1 分鐘2400:01:00
5 分鐘1,2000:05:00
10 分鐘2,4000:10:00
30 分鐘7,2000:30:00
60 分鐘14,4001:00:00

呢個表幫你做粗略 timeline pre-planning,實際 TTS 生成後再微調。

步驟 3:提交 SRT job

用 POST /v1/audio/jobs,body 入面設 srt: true,行 async 軌:

{
  "text": "你嘅劇本內容",
  "voice": "sum",
  "srt": true
}

留意:

  • 提交後會回 202 加 job_id
  • 然後用 GET /v1/audio/jobs/{id} poll 狀態
  • 讀取 endpoint(GET jobs/GET voices)唔限流,可以放心 poll
  • text 必須 1 至 500 字符;超過 300 字符就一定要行 async
  • 字體/顏色呢啲 styling 唔喺 SRT 範圍,係後期 player 嘅事

步驟 4:執時間軸

TTS 出嘅 SRT 時間軸大約 8 成啱用,剩低 2 成要人手微調。常見要執嘅位:

  • 句首提早/延遲 200 至 500 毫秒 — 視乎你想觀眾先聽到聲再見到字,定齊出
  • 句尾預留呼吸位 — 一句完結到下一句開頭,預 300 至 800 毫秒
  • 長句斬開 — 單句超過 7 秒停留,觀眾會睇到攰,要斬

呢步可以配合 TTS 批量生成工作流 一齊做,長劇本分批生成後逐段執時間軸。

步驟 5:匯入剪片軟件

將個 SRT 匯入 Premiere、Final Cut、DaVinci Resolve、CapCut 都得。大部分剪片軟件都支援 SRT 軟字幕(soft subtitle)直接 load:

  • Premiere:File → Import → Caption
  • Final Cut:File → Import → Captions
  • DaVinci:Subtitle Track → Import Subtitle
  • CapCut:直接拖入時間軸

如果要做硬字幕(burn-in,燒入畫面),仲要 export 一層,但呢個同 SRT 對齊無關,係另一個工序。

廣東話 SRT 對齊嘅常見踩坑位

以下係過往做廣東話字幕對齊時最容易撞嘅問題,逐個列返。

踩坑 1:時間碼用咗句號

用 Aegisub 或者 Subtitle Edit 預設輸出有時用句號(.)做毫秒分隔,但 VLC、PotPlayer、部分社交媒體播放器會讀唔到。要校返逗號版本。

可以用 Subtitle Edit 嘅「Settings → Output → Time format」轉返 HH:MM:SS,MSF。

踩坑 2:句間停頓太短

廣東話對白中間成日有「咁呢」、「即係」、「呢個」呢啲 filler 詞做停頓。如果 SRT 段與段之間 gap 設得太短(少過 200 毫秒),字幕會黐住一齊睇唔清。

建議句間 gap:

  • 一般對白:300 至 500 毫秒
  • 慢節奏旁白:500 至 800 毫秒
  • 快節奏對白:200 至 300 毫秒

踩坑 3:忽略咗多音字

廣東話好多多音字(「重」可以讀「zung6」或「cung4」、「行」可以讀「haang4」或「hang4」),TTS 如果讀錯音,會連帶影響 SRT 嘅顯示,建議事先 睇下廣東話多音字攻略,劇本階段就校好讀音。

踩坑 4:長句冇斬

一段字幕停留 7 至 10 秒對廣東話觀眾嚟講太長。建議:

  • 一般一句 4 至 8 個中文字
  • 停留 2 至 5 秒
  • 超過 5 秒就要斬

呢個規範參考緊 BBC 同 ViuTV 嘅字幕標準。

踩坑 5:忘記校時區/幀率

如果個 SRT 嘅時間軸對住 25fps 嘅 PAL 影片,但剪片時用咗 29.97fps 嘅 NTSC 時基,個 SRT 慢慢會 drift。匯入時記得校返時基一致。

高階:SRT 時間軸自動化嘅幾條路

如果你做大量廣東話字幕,如 YouTube 頻道、網課、podcast 字幕,可以考慮更高階嘅自動化。

路 1:FFmpeg + TTS 串接

用 FFmpeg 將 TTS 出嚟嘅音頻切成多段,配合 SRT 嘅 timestamp 做標記。FFmpeg 嘅 -ss 同 -t 參數可以精準 cut 音頻:

ffmpeg -i input.mp3 -ss 00:00:01.200 -t 00:00:03.300 output.mp3

配合 SRT 嘅時間軸,可以做到半自動剪片。

路 2:Python 腳本後處理

寫個 Python script 讀取 SRT,逐段做微調:

  • 統一將所有 timestamp 提早 200 毫秒(lead-in)
  • 將短過 1 秒嘅段延長到 1.2 秒
  • 將長過 6 秒嘅段斬開

呢類後處理可以一鍵 apply 喺成個 channel 嘅字幕。

路 3:MCP/Agent 接入

如果用 LLM agent 做內容生產,可以直接經 MCP 接入 港嘢 API,由 agent 自動:

  1. 拆劇本做多段(每段 ≤500 字符)
  2. 每段提交一個 TTS job
  3. job 完成後拎返 SRT
  4. merge 多個 SRT 做一個完整字幕檔

API 同 Playground 用量係 1:1 共用月配額(2026-09-12 裁定),所以記得計埋 agent 提交嘅量。批量(items)係專業同工作室專屬,免費入門 plan 帶 items 會零提交、零扣費(回 403 batch_requires_pro)。

點樣揀 SRT 對齊工具

揀工具主要睇三個維度。

維度 1:支援廣東話嘅程度

唔係所有字幕工具都對廣東話友善。要留意:

  • 編碼:必須支援 UTF-8(廣東話有繁體字同標點)
  • 顯示字體:字幕軟件預設字體未必包晒所有廣東話字(例如「嘅」、「嗰」、「啲」嘅變體)
  • 自動對齊:廣東話聲學模型支援嘅工具唔多,要事先試

維度 2:同 TTS 嘅整合度

如果個工具可以一次過出音頻 SRT,會慳好多工序。港嘢嘅 TTS API 支援 srt=true 參數一次過吐 SRT,比起分開做「先生成音頻、再對時間軸」快好多。

可以參考 TTS 配音導演指南 嗰度講嘅配音流程,配 SRT 對齊一齊做。

維度 3:協作能力

如果你同其他人一齊做字幕,要睇工具嘅協作功能:

  • 多人同步編輯
  • 版本控制(git 或者內建)
  • 審批流程

Subtitle Edit、Aegisub 係單機版;Subtitle Horse、Amara 係線上版支援協作。

對齊完成後嘅 QA 清單

校完 SRT 唔好即出街,做一次 QA:

  • 隨機抽 5 段,睇下時間軸同音頻對唔對得正
  • 全部段播放一次,確保無字幕黐住或者跳
  • 檢查每段停留時間,長過 6 秒嘅要斬
  • 檢查句間 gap,唔可以全部都 0 毫秒
  • 檢查特殊字符(「,」、「、」、「?」、「!」)嘅位置
  • 用唔同播放器試一次(VLC、PotPlayer、手機 App)

如果做大量字幕,可寫個 Python script 自動 scan 個 SRT 檔,搵出異常段(停留太短/太長、gap 太細、字符太多)。

廣東話 SRT 對齊嘅最佳實踐

總結返幾個重點:

  1. 文本預先口語化 — 寫劇本時用廣東話口語,唔好直接由書面語譯過嚟
  2. 字符數估算 — 240 字符/分鐘做基,再按演繹風格調整
  3. TTS 直接出 SRT — 慳人手對齊時間,但要記得事後微調
  4. 句間預留停頓 — 300 至 800 毫秒視乎節奏
  5. QA 唔好慳 — 字錯位會直接影響觀眾體驗

如果你想由零開始學廣東話 TTS,可以睇下 粵語 TTS API 快速上手 同 API 生成地道粵語語音指南,由 API 接入到 SRT 輸出都有覆蓋。

常見問題 FAQ

SRT 時間軸對齊要做到幾精準?

一般觀眾可以接受 ±0.3 秒嘅誤差,超過 ±0.5 秒就會覺得唔自然。所以目標係控制在 ±200 毫秒以內。專業字幕(例如聾人字幕)要求更嚴,會到 ±50 毫秒,但廣東話 YouTube 內一般 ±200 毫秒就夠用。

用 TTS 生成嘅 SRT 仲使唔使人手執?

大約 8 成可以直接用,剩低 2 成要執。執嘅位包括:句首提早/延遲、長句開頭、特殊停頓位。完全唔執就出街嘅話,觀眾會感覺到「差少少」,特別係長對白段。

SRT 同 VTT 有咩分別?時間軸對齊方法一樣嗎?

SRT 同 WebVTT 格式好相似,主要分別係 VTT 用句號做毫秒分隔(00:01:23.456),而 SRT 用逗號(00:01:23,456)。時間軸對齊方法一樣,但匯入時要留意格式轉換。大部分工具都支援兩者互轉。

如果劇本超過 500 字符點算?

TTS API 嘅 text 1 至 500 字符上限係硬限制,超過會回 400 text_too_long,唔會自動截斷。要分批提交,每批獨立生成 SRT 檔,再用 merge 工具(例如 Subtitle Edit)合併。合併時記得每段 timestamp 要銜接返,可以用最後段嘅 out-point 做下一段嘅 in-point 起點。

廣東話 SRT 嘅編碼要點設定

必須用 UTF-8(with BOM 或者 without 都得,但有 BOM 比較穩)。如果你用 Subtitle Edit,預設編碼係 UTF-8,但舊版 Windows 嘅 Notepad 開可能會變亂碼。建議用 Notepad++ 或者 VS Code 開 SRT 檔,確認編碼係 UTF-8。

SRT 對齊可以用 AI 自動做嗎?

可以,但有局限。Forced alignment 類 AI 工具(例如 Whisper + alignment)對廣東話支援越嚟越好,但同音字、專有名詞、中英夾雜嘅辨識仍然有誤差。如果你用 TTS 而唔係錄音,可以直接由 TTS 吐 SRT,呢條路最穩陣,因為 TTS 知道自己每段嘅 timestamp,唔需要靠聲學模型去猜。

SRT 對齊失誤會點?觀眾真係會介意嗎?

會。好似 Netflix、ViuTV 嘅字幕都係專業級,觀眾已經習慣高質字幕。如果你出嘅字幕成日錯位、停留太短、句間無停頓,觀眾會覺得「呢條片好 cheap」。YouTube 自動翻譯字幕嘅甩漏位就係反面教材。


[!CTA]

用 TTS 一次過做齊廣話旁白同 SRT 字幕

試下港嘢 Playground,由劇本直接生成帶時間碼嘅 SRT 檔,省掉逐段 set timestamp 嘅工序