跳至主要內容
SubtitleMatrix

LRC 轉 SRT

格式轉換歌詞(LRC)
或者貼上字幕文字

選項

當來源檔案沒有結束時間時使用(純文字、LRC)。輸出裡的時間軸是在這裡產生的,不是轉換來的,所以填多少就是多少。

這次轉換會改變什麼

有 1 項會被捨棄或需要你決定

  • 時間

    字幕的結束時間——來源檔案不記錄這些時間,因此輸出中的結束時間是產生出來的,而非轉換而來

這份清單來自這兩種格式的能力矩陣,而不是你載入的這份具體檔案。如果具體檔案用到了格式允許、但矩陣沒有建模的特性,可能會遺失更多。

LRC 是歌詞格式:方括號裡一個 `[mm:ss.xx]` 時間戳,後面接一行文字。它只說一行什麼時候開始,從不說什麼時候結束,因為歌詞播放器就是讓這一行留在畫面上直到下一行出現。這一頁把下一行的開始當成這一行的終點,把歌詞變成字幕段落。

格式本身有兩個細節被照實處理。好幾行可以共用同一個時間戳——原文加譯文就是典型——它們屬於同一組,所以合成一條多行字幕,而不是兩條搶同一個時刻。最後一行沒有後繼可借終點,於是用頁面上設定的時長補足,並在報告裡說明這個結束時間是生成的。

檔案標頭的資訊會被讀出來:標題與藝人只要目標格式放得下就保留,`[offset:]` 則是原樣保留、不替你套用,因此產物與檔案字面一致。整個轉換在你的瀏覽器裡完成,檔案不會離開這台機器。

範例

一份典型的 LRC 檔轉成 SRT

輸入

[ti:Sample Song]
[ar:Some Artist]
[length:00:41.00]
[offset:+250]
[00:12.00]First line of the song.
[00:15.30]Second line.
[00:15.30]Second line, translated.
[00:18.00]
[00:21.50]Final line.

輸出

1
00:00:12,000 --> 00:00:15,300
First line of the song.

2
00:00:15,300 --> 00:00:18,000
Second line.
Second line, translated.

3
00:00:18,000 --> 00:00:21,500


4
00:00:21,500 --> 00:00:23,500
Final line.

這個方向丟掉的是結束時間;開始時間與文字逐行一致,空歌詞行也保留。

同一轉換遇到一份格式凌亂的檔案

輸入

[ar:Some Artist]
[0:05.5]Leading zero omitted, one decimal.
[00:07]Second with no centiseconds.
[00:03.00]Out of order.
[00:07.00][00:09.00]Repeated chorus line.
[00:12.00]

輸出

1
00:00:03,000 --> 00:00:05,500
Out of order.

2
00:00:05,500 --> 00:00:07,000
Leading zero omitted, one decimal.

3
00:00:07,000 --> 00:00:09,000
Second with no centiseconds.
Repeated chorus line.

4
00:00:09,000 --> 00:00:12,000
Repeated chorus line.

5
00:00:12,000 --> 00:00:14,000

真實檔案常見的狀況就是這樣:混合換行、多餘空白、留空的欄位。與上面那份整齊的例子對照,可以看出解析器容許哪些瑕疵。

常見問題

LRC 轉 SRT 時,一行歌詞的結束時間怎麼算?

取下一行的開始。歌詞播放器推進高亮用的就是同一條規則,所以除了最後一行,每個終點都是檔案裡真的有的時刻,而不是憑空發明的。

LRC 轉 SRT 時,最後一行為什麼也有結束時間?

它沒有下一行可借,只能用檔案框下方那個欄位設定的時長,預設兩秒。報告會說明這個終點是生成的,因為檔案裡沒有任何值寫過它。

LRC 裡兩個時間戳相同,為什麼在 SRT 只變成一條字幕?

因為那幾行共用同一個開始時刻。LRC 用這種寫法把譯文或第二個聲部放在同一句歌詞下面,合成一條多行字幕才顯示得合理;兩條同時開始的字幕沒有播放器能好好呈現。

LRC 的 `[offset:]` 標籤在 SRT 產物裡被套用了嗎?

沒有被套用,只被讀取保留,所以產物裡的時間就是檔案寫的時間。如果你的播放器先前因為這個偏移顯示得偏早或偏晚,在這裡套用同樣的平移,結果就會與你看到的對上。

LRC 標頭裡的標題與藝人,轉成 SRT 之後去了哪裡?

它們被當成中繼資料讀取。字幕格式若有標題欄位就保留,放不下就列進有損說明;藝人是歌詞格式的概念,字幕檔案裡沒有對應的位置。

相關工具