LRC 檔案是一個純粹的 UTF-8 文字檔,其中每一行歌詞前面都會加上方括號包住的時間戳,格式為 [mm:ss.xx],其中 mm 代表分鐘(兩位或三位數字),ss 代表秒數(從 00 到 59),而 xx 代表百分秒(從 00 到 99)。如果您想從已有的文字製作 LRC 檔案,只要把歌詞行貼進簡單的 LRC 產生器、設定起始時間戳和固定間隔,工具就會用大多數播放器都能解析的實際標準格式,為每一行自動加上時間戳。您下載的檔案副檔名為 .lrc,在每個保留的歌詞列前面都會有對齊到百分秒的時間戳,並最多可包含三個可選的詮釋資料標籤——[ti:] 代表標題、[ar:] 代表演出者、[al:] 代表專輯。由於格式只是文字加上方括弧,任何 UTF-8 編輯器都能開啟它,但大多數音樂播放器只會在那些時間戳確實對上正確節拍時才會捲動歌詞,這就是為什麼固定間隔的起始檔案,設計上需要在之後用專門的編輯器逐行重新調整時間。

LRC 檔案在純文字中的樣貌
一個簡單的 LRC 檔案由三個基本元素組成:頂端可選的詮釋資料標籤、一行空白分隔行,以及下方一連串帶時間的歌詞列。每一個帶時間的列會把一個 [mm:ss.xx] 時間戳,與播放器到達該時間點時應該顯示的歌詞文字配對在一起。分鐘欄位使用兩位或三位數字,秒數欄位永遠是兩位數字(從 00 到 59),中間用一個字面的句點隔開,而句點之後剛好兩位數字代表百分秒。這種實際標準的格式被廣泛描述,包括在 QuickLRC 字幕格式 LRC 參考資料 上,而獨立的 Subforge LRC 時間模組也確認了同樣的計算方式——分鐘貢獻 60,000 毫秒,秒數貢獻 1,000,後面兩位數字代表百分秒。
一個有效的檔頭區段看起來可能像這樣:
[ti:歌曲標題][ar:演出者名稱][al:專輯名稱]
接著帶時間的歌詞區塊會像這樣繼續排列:
[00:12.34]歌曲第一行[00:15.84]歌曲第二行[00:19.34]歌曲第三行
這樣的結構就是整個格式的完整規範。任何更複雜的內容——尖括號中的逐字強化時間戳、卡拉 OK 對唱標記、三位數毫秒、或小時欄位——都屬於延伸 LRC 變體,並非每個播放器都支援,而一個保守的簡單 LRC 產生器會刻意省略這些內容,讓您產生的檔案能在最廣泛的播放器上以相同方式解析。
逐步將純文字轉成 LRC 檔案
依照下列步驟,使用 LRC 檔案產生器 把您的純歌詞文字轉成可用的 .lrc 檔案。
- 在瀏覽器中開啟產生器。整個工作流程都在本機執行;不需要註冊、帳號或上傳,所有內容都不會離開目前的分頁。
- 把歌詞文字貼進歌詞方塊中,每一列剛好放一個顯示事件。這個工具接受 1–500 行非空白的列,會自動移除空白列,並會拒絕控制字元,而不是讓它們溜進播放器可能不一致地解析的檔案中。
- 以 MM:SS.xx 格式輸入第一個時間戳。有效的範例包括 00:00.00、09:59.99、10:00.00,以及 123:45.67——頁面會在產生作業執行前,強制執行「秒數兩位數字從 00 到 59」的規則和「百分秒兩位數字」的規則。
- 設定連續行之間的間隔。接受 0.01 到 600.00 秒之間的任何數值,最多兩位小數。在產生任何列之前,小數值會先轉換為整數的百分秒數,因此累加不會像二進位浮點數運算那樣產生飄移。
- 選擇性地填寫標題、演出者和專輯方塊。這些欄位會變成檔案頂端的 [ti:值]、[ar:值] 和 [al:值] 標籤,每個都會修剪到 120 個字元,並移除方括弧和控制字元,讓單一欄位無法插入額外的 LRC 標籤。
- 點擊 Generate 並檢查預覽。預覽就是完整、未截斷的檔案——第一個和最後一個時間戳都會顯示在裡面,而您對輸入的任何編輯都會清除先前的預覽,所以絕不會讀到陳舊的結果。
- 點擊 Download 以 UTF-8 格式儲存副檔名為 .lrc 的檔案,且不包含位元組順序記號。檔名會在您有提供標題時從標題衍生;不安全的標點符號會變成連字號,而空白標題則會產生 synced-lyrics.lrc。
下載完成後,這個檔案就可以由您自行重新命名、重新調整時間,或載入專用的編輯器中。
百分秒運算的內部原理:間隔如何累加
這個產生器不會聆聽您的音訊,也不會把文字對齊人聲——它只是逐行把您選擇的間隔(以百分秒為單位)加到起始時間戳上。理解這個運算,有助於您在下載前預測預覽中精確的時間戳。
以起始時間戳 00:12.34 和間隔 2.50 秒為例。間隔會先轉換為整數的百分秒數(2.50 × 100 = 250),然後那個整數會在不再次取整的情況下直接相加:
- 第 1 行:00:12.34
- 第 2 行:00:12.34 + 2.50 = 00:14.84
- 第 3 行:00:14.84 + 2.50 = 00:17.34
- 第 4 行:00:17.34 + 2.50 = 00:19.84
由於整個累加過程都使用整數百分秒,重複相加並不會累積二進位浮點數運算通常會產生的小飄移。如果最終計算出來的時間戳會超過 999:59.99——這是格式所允許的最大值——產生作業會失敗,而不會默默截斷,所以您可以從原始輸入繼續作業,而不是從一個半寫成的檔案開始。無論您產生十行還是達到 500 行的上限,都適用相同的運算;只有起始時間和間隔會改變。
產生器強制執行的限制與驗證規則
由於簡單的 LRC 格式在設計上就很保守,產生器在產生任何輸出之前會套用一組嚴格的限制。事先了解這些限制,能幫助您調整歌詞貼上內容,讓檔案在第一次點擊時就能就緒。
| 輸入 | 限制 | 為什麼重要 |
|---|---|---|
| 歌詞行數 | 1–500 行非空白的列,總字元數最多 50,000,每行 ≤500 個字元 | 空白列會被移除;過大的輸入會在預覽前被拒絕。 |
| 第一個時間戳 | MM:SS.xx,分鐘 2–3 位數字,秒數 00–59,百分秒剛好兩位數字 | 範例:00:00.00、09:59.99、10:00.00、123:45.67。 |
| 最大時間戳 | 999:59.99 | 如果最終計算出來的時間會超過這個值,產生作業就會中止。 |
| 間隔 | 0.01–600.00 秒,最多 2 位小數 | 轉換為整數百分秒以避免浮點飄移。 |
| 標題 / 演出者 / 專輯 | 每個 ≤120 個字元,不能有方括弧或控制字元 | 空白的欄位會被完全省略。 |
| 行尾字元 | CRLF、CR 和 LF 全部接受 | Windows、經典 Mac 和 Unix 輸入在產生前都會統一標準化。 |
任何超出這些範圍的內容都會停止產生作業,而不是產生出格式錯誤的檔案。這個工具絕不會捏造歌詞、不會從第三方服務抓取時間戳,也不會在您關閉分頁後儲存您的文字。
從草稿到定稿:對齊您錄音的重新計時
您下載的檔案是起始草稿,而不是完成品。真實的人聲很少以完全相等的間隔開始——副歌會拉長、主歌會壓縮、器樂間奏會留空,而口白前奏會提早出現。一個固定間隔的檔案能讓您從「沒有檔案」進展到「每行都有時間戳的檔案」,這是最困難的部分;更精細的對齊則需要交給專用的歌詞編輯器,它能播放您的音訊並讓您用耳朵微調每個時間戳。
一個合理的重新計時流程看起來像這樣:
- 把 .lrc 檔案和對應的音訊並排載入您的編輯器中。
- 從頭播放,並針對每一行,搜尋到歌手開始該句的確切時間點。
- 更新方括弧中的時間戳,讓它比歌詞列提前一個您播放器使用的小幅位移(通常是幾百毫秒,視播放器而定)。
- 重新檢查副歌、橋段和任何重複的段落,因為相同的旋律在不同段落間往往會拉長或縮短。
- 把重新計時過的檔案以相同的基礎檔名儲存在音訊旁邊,讓播放器自動配對。
在整個過程中,歌詞文字、大小寫、標點符號和任何嵌入的版權聲明都會保持您原本輸入的樣子——產生器不會重寫語言,只會放置時間戳。
為什麼播放器相容性仍然重要
不同的音樂播放器對 LRC 的實作方式不同。有些播放器會毫無異議地接受保守的 [mm:ss.xx] 簡單子集;其他播放器則會尋找小時欄位、三位數毫秒、強化的逐字時間戳,或產生器刻意不輸出的專屬標籤。編碼方式也各有差異——您下載的檔案是 UTF-8 且不含位元組順序記號,這適合絕大多數的桌面型和行動裝置播放器,但少數較舊的工具,如果您在會將其重新存成不同編輯的編輯器中載入這個檔案,可能會誤讀非 ASCII 字元。
因此,最後一步永遠都一樣:在您實際要使用的播放器中開啟這個檔案,從頭播放歌曲,並觀察每一行是否準時捲動。如果列出現了但都一致地延遲或提前,就在您的編輯器中對每個時間戳加或減一個小幅位移。如果某個播放器完全忽略 [ar:] 或 [al:],簡單的詮釋資料子集仍然是最安全的基準——這是幾乎每個播放器都一致同意的格式部分。
如果您的工作流程也需要為影片或卡拉 OK 曲目準備字幕式時間軸,實用的下一步是採用 SRT 格式的對應方案;歌詞 SRT 製作指南 詳細介紹了該轉換過程。