一個 LRC 檔案,是一種使用 .lrc 副檔名的純文字檔案,把每一行歌詞,與一個 [mm:ss.xx] 格式的時間戳記配對在一起,讓相容的音樂播放器,能在歌曲播放時,反白顯示正確的字句。要為一首歌取得 LRC 檔案,你可以嘗試下載別人在網路上分享的檔案、從某個歌詞服務中擷取一份,或是用一個本機生成工具,從你已經擁有的歌詞文字,自己建立一份。就好幾個理由來說,本機生成這條路,是最可靠的:它能讓你的歌詞內容保持私密、適用於任何你有權使用的歌曲,並讓你能直接控制起始時間、每行之間的間隔,以及支援的播放器會顯示的可選標題、演出者,與專輯中繼資料。
這種簡易 LRC 格式,是一種約定俗成的家族格式,而不是單一一份正式規格,因此不同的播放器,能容忍的子集也略有不同。一個只輸出保守版 [mm:ss.xx] 子集,外加可選 [ti:]、[ar:],與 [al:] 標籤的生成工具,產生出來的檔案,能在大多數現代播放器中順利載入,不會有意外狀況。這種約定俗成的格式本身,記載在 QuickLRC 的格式參考文件中,該文件把括號式的 [mm:ss.xx] 行時間戳記,描述為一份簡易 LRC 檔案的核心元素。像 Subforge 的 LRC time module 這類獨立剖析器也證實,分鐘貢獻的是六萬毫秒,秒貢獻的是一千毫秒,而兩位小數位數,代表的是百分之一秒(centisecond)。

一份簡易 LRC 檔案裡有什麼
一份簡易 LRC 檔案,分成兩個區域:頂端一小塊中繼資料區塊,以及下方帶時間戳記的歌詞主體。中繼資料區塊,帶有零個、一個、兩個,或三個可選標籤,各自獨立成一行,寫成 [xx:數值] 的形式,其中 xx 是一個兩字母代碼。歌詞主體,接著會逐行列出每一次顯示事件對應的時間戳記行。為了方便閱讀,中繼資料與第一個帶時間戳記的行之間,通常會插入一個空白行,但這些帶時間戳記的行本身,仍然只是一般的純文字。
| 標籤 | 用途 | 範例 |
|---|---|---|
| [ti:...] | 部分播放器會顯示的歌曲標題 | [ti:Midnight Drive] |
| [ar:...] | 演出者或表演者 | [ar:J. Rivera] |
| [al:...] | 專輯名稱 | [al:Northbound] |
| [mm:ss.xx] | 下一句歌詞的顯示時間戳記 | [01:23.45]Example line |
分鐘欄位,接受兩位或三位數字,秒數欄位,必須是 00 到 59,一個句點,把秒與百分之一秒分隔開來,句點後面,緊接著必須是恰好兩位百分之一秒數字。這個工具,不會輸出小時欄位、以冒號分隔的畫格數、三位數的毫秒、增強版的逐字角括號時間戳記、卡拉 OK 對唱標記,或特定播放器的擴充格式,這能讓輸出結果保持可攜性。
為什麼分享出來的 LRC 檔案,常常令人失望
在公開網路上搜尋一份 LRC 檔案,看起來很方便,但很少能找到你真正需要的檔案。社群上傳的檔案,通常來自早已不存在的論壇串、貼文網站,或留言串,而留存下來的副本,也常常是用舊版 Windows 內碼頁編碼的,而不是 UTF-8,這會在另一個播放器打開時,把帶重音的字母,與非拉丁文字,搞得一團亂。許多分享出來的檔案,掛著錯誤的演出者或專輯名稱,因為上傳者,從來沒有仔細核對過 [ar:] 與 [al:] 欄位。
有些分享出來的檔案,是從另一種語言機器翻譯過來的,另一些檔案,則帶有上傳者從未確認過的版權狀態。即使某份檔案在技術上是正確的,它的間隔時間,也很少會符合你手上這個特定的錄音版本:一次現場演出、一個重製版本,以及一個加長混音版,對同一組歌詞,都會需要不同的時間戳記,而一份下載下來的檔案,很少會針對你手上確切的母帶重新調校時間。用LRC File Generator 自己建立一份 LRC 檔案,能繞開上述所有問題,因為它格式化的,是你自己提供的文字,歌詞行會被逐字保留,而中繼資料欄位,也受到保護,防止被悄悄注入額外的標籤。
用你自己的歌詞,在本機建立一份 LRC 檔案
LRC File Generator,會從歌詞文字、一個起始時間戳記,以及一個固定間隔,產生出一份簡易 LRC 檔案。整個流程,都在你的瀏覽器中執行,會在你下載之前,先讓你看到確切的檔案內容,並用一個合理的 .lrc 檔名把它存下來。所有內容與運算,都留在目前的瀏覽器分頁中;不會有任何歌詞文字被上傳、儲存在某個帳號中,或送到任何 AI 服務。
- 把你的歌詞文字,貼進輸入區域,每一行一句顯示文字。這個工具,最多接受 500 行非空白內容,以及最多 50,000 個輸入字元,單行最多 500 個字元。空白行,會被自動移除,而 Windows、舊版 Mac,以及 Unix 的換行符號,都會被正規化,因此不論文字是從哪裡複製過來的,預覽畫面顯示的內容都會一致。
- 以 MM:SS.xx 的形式,輸入第一個時間戳記,例如 00:12.34。分鐘欄位,允許兩位或三位數字,秒數,必須是 00 到 59,句點後面,必須緊接著恰好兩位百分之一秒數字。
- 以秒為單位,設定每一行之間的間隔,最多兩位小數,範圍從 0.01 到 600.00。這個數值,會先被轉換成一個以百分之一秒為單位的整數,才會用來產生任何行,因此在歌曲後段,反覆相加不會累積出二進位浮點數的誤差。
- 選填標題、演出者,與專輯欄位。每一項,都會變成一個 [ti:]、[ar:],或 [al:] 標籤,會被修剪、限制在 120 個字元以內,並且不能包含方括號或控制字元,這能防止某個欄位,在輸出結果中,注入額外的 LRC 標籤。空白的中繼資料欄位,會被完全省略。
- 檢查預覽畫面,確認第一個與最後一個時間戳記看起來正確。這個預覽畫面,就是即將被儲存的確切文字,因此編輯任何輸入內容,都會清除先前的預覽,並強制重新渲染。
- 點選 Download,儲存這個檔案。下載的檔案,使用不含位元組順序記號的 UTF-8 文字,而檔名,則是從標題衍生出來的(不安全的標點符號,會被替換成連字號),如果沒有設定標題,就會改用 synced-lyrics.lrc 作為預設檔名。
解讀 [mm:ss.xx] 時間戳記格式
這個數字格式,乍看之下有點嚇人,但其實只是一個拆成三個欄位的固定寬度時間表示法。分鐘欄位,在兩位或三位數字之內不設上限,秒數欄位,永遠是 00 到 59 之間的兩位數字,而百分之一秒欄位,永遠是 00 到 99 之間的兩位數字。以下,是剖析器唯一會接受作為起始時間戳記的幾種形式:
| 輸入 | 意義 |
|---|---|
| 00:00.00 | 一首曲目的最開頭 |
| 09:59.99 | 一首 10 分鐘歌曲的最後一秒 |
| 10:00.00 | 超過 10 分鐘標記後的第一秒 |
| 123:45.67 | 一首長篇曲目,位於 2 小時 3 分 45 秒處 |
要了解間隔運算是如何運作的,考慮一個起始時間 00:12.34,以及一個 2.50 秒的間隔。把 00:12.34 換算成百分之一秒,得到 (12 × 100) + 34 = 1234 個百分之一秒。把 2.50 秒換算成百分之一秒,得到 2.50 × 100 = 250 個百分之一秒。把 250 加到 1234 上,得到第二行的 1484 個百分之一秒,再加上另一個 250,得到第三行的 1734 個百分之一秒。把這些百分之一秒總數,換算回看得見的格式:
- 第 1 行:1234 cs → 12 秒又 34 個百分之一秒 → 00:12.34
- 第 2 行:1484 cs → 14 秒又 84 個百分之一秒 → 00:14.84
- 第 3 行:1734 cs → 17 秒又 34 個百分之一秒 → 00:17.34
如果計算出來的最終時間戳記,會超過 999:59.99,產生動作就會直接失敗,不會有任何內容被悄悄截斷。這個間隔本身,之所以能以小數形式輸入,是因為打 2.5 比打 2.50 更容易,但這個生成工具,會把它儲存成一個整數,這樣一首 200 行的歌曲,才能盡可能貼近原本設定的節奏,在百分之一秒格式所能容許的範圍內。
在一個專門的編輯器中微調輸出結果
一個固定間隔,只是一份起始草稿。真實的人聲,很少會以完全相等的間隔開始,而這個生成工具,並不會聆聽音訊、偵測語音、轉錄歌詞、對齊音素、辨識節拍,或以任何方式估計演出的時間點。一旦這份 LRC 檔案下載完成,請把它跟你打算搭配播放的那個確切錄音版本一起打開,並在一個專門的 LRC 或字幕編輯器中,微調個別行的時間。大多數編輯器,都能讓你載入檔案、按下播放、在每一句的邊界按一個按鍵,然後用擷取到的播放位置,覆寫時間戳記。這個檔案本身,全程都維持是一份純文字文件,因此任何文字編輯器,也都能用來進行手動微調。
不同的播放器,對同一份檔案的解讀方式,也各不相同。有些會忽略 [ti:] 標籤,有些會拒絕超過 99 的分鐘數值,還有一些,則完全不接受百分之一秒的精確度。在假設草稿已經定稿之前,請務必先在你的目標播放器中,測試產生出來的檔案,並且記得,這個工具,不會提供受版權保護的歌詞、不會搜尋任何曲庫、不會辨識歌曲、不會確認著作權歸屬,也不會授予任何同步授權;你必須自行擁有重製與散布你輸入的任何歌詞文字的權利。如果你的目標,是一套影片剪輯,或卡拉 OK 工作流程,而不是一個音樂播放器,SRT format with exact timestamps 可能會更適合,這部分內容,涵蓋在另一篇獨立的操作說明中。