LRC 製作工具會將純歌詞文字轉成同步文字檔,使用方括號包住的百分秒時間戳、可選的歌曲標籤,以及一個可下載到本機、放在 MP3 旁的檔案。輸出是 UTF-8 編碼的 .lrc 檔,每個顯示事件都會剛好有一個 [mm:ss.xx] 時間戳,緊接在歌詞文字前面;標題、演出者和專輯等可選中繼資料,會以獨立的 [ti:]、[ar:] 和 [al:] 標頭標籤呈現。LRC 檔案產生器遵循廣泛使用的簡易 LRC 子集:分鐘貢獻六萬毫秒、秒數貢獻一千,兩個小數位代表百分秒,這表示被標記為 [01:23.45] 的那一行,在任何遵守此格式的播放器中,會剛好出現在一分鐘二十三秒又百分之四十五秒處。由於工具完全在瀏覽器分頁中執行,您輸入的歌詞文字永遠不會離開您的電腦,產生的檔案也與螢幕上顯示的預覽完全相同。下載使用的是同一段確定性的字串,因此只要編輯任何輸入,就會清除先前的預覽,並以新的檔案取代舊的 blob URL。

lrc maker
LRC 製作工具輸出:建立完整的同步歌詞檔

LRC 製作工具的輸出內容

一個完成的簡易 LRC 檔是純文字,內含三個可預期的區段:頂端可選的中繼資料、一行空白分隔行,以及一系列帶時間戳的歌詞行。中繼資料區段永遠只會包含三種標籤形式,讓格式在不同播放器之間保持保守且可預期。空白行純粹是為了美觀;播放器會從任何以方括號時間值開頭的行解析時間戳,因此它的存在有助於人眼瀏覽檔案,而不會改變解析器的行為。歌詞區段是每個顯示事件一個時間戳,方括號時間緊接著同一行的歌詞文字,帶時間戳的行之間不留空白。檔名來自標題(若有),不安全的標點會被連字號取代;若缺少標題,則會產生 synced-lyrics.lrc。檔案以不含位元組順序記號的 UTF-8 編碼寫入,確保預期讀取無前置位元組文字檔的播放器不會略過第一個標籤。

標籤用途範例形式
[ti:value]歌曲標題中繼資料[ti:Example Song]
[ar:value]演出者[ar:Band Name]
[al:value]專輯或發行名稱[al:Debut Album]

空白的中繼資料欄位會被完全省略,而不是輸出為空標籤;中繼資料值不可包含方括號或控制字元,因為這些字元可能會插入額外的標籤,或在會拒絕控制位元組的播放器中造成解析不一致。每個中繼資料值會去除前後空白、長度上限為 120 個字元,且只會產生精確的 [ti:]、[ar:] 和 [al:] 三種鍵。預覽窗格會顯示下載檔案將包含的每個位元組,包含行尾換行的行為,因此您檢查到的內容就是實際送出的內容。

逐步產生簡易 LRC 檔

產生器分三個受控階段執行:輸入準備、時間設定、預覽與下載。每個階段都有固定界線,確保相同的輸入永遠產生相同的確定性字串。

  1. 將歌詞行貼到輸入區,每行對應一個顯示事件,最多 500 個非空白的行,且整體輸入字元數上限為 50,000。空白行會自動移除,任何超過 500 個字元的單行會被拒絕,以維持產出檔案的可讀性。
  2. 以 MM:SS.xx 形式設定第一個時間戳,使用兩位或三位數的分鐘、從 00 到 59 的兩位數秒數、一個句點,以及兩位數的百分秒。有效的起始值包括 00:00.00、09:59.99、10:00.00 和 123:45.67。
  3. 選擇介於 0.01 到 600.00 秒之間的間隔,最多兩位小數,例如 2.50 或 4。產生器在輸出任何行之前,會先將此值轉為整數的百分秒數,因此重複相加不會因為二進位浮點數誤差而產生飄移。
  4. 若您希望檔案頂端有 [ti:]、[ar:] 和 [al:] 標頭標籤,請填入可選的標題、演出者和專輯欄位。將任一欄位留空即可完全省略其標籤。
  5. 產生檔案,檢查預覽中的第一個和最後一個時間戳,然後下載。下載的檔案與預覽逐位元組相同,之後任何輸入的編輯都會清除該預覽,直到下一次重新產生。

歌詞文字中 Windows、舊版 Mac 和 Unix 的行尾會在計算行數之前先進行標準化,因此您看到的行數會與產生器實際處理的行數一致。歌詞文字中不允許出現的控制字元會被拒絕,而不是悄悄插入,避免使用過濾控制位元組的播放器在沒有警告的情況下直接略過該行。

固定間隔如何轉為時間戳

由於間隔會在產生任何一行之前先轉為整數的百分秒數,因此每一個接續的時間戳都是前一個時間加上那個精確的整數值,再寫回 MM:SS.xx 形式。過程中沒有累積乘法,也沒有浮點數累加,因此 2.50 秒的間隔即使跨越數百行,仍會持續產生乾淨的百分秒。試想起始時間為 00:12.34,也就是 1234 個百分秒,間隔為 2.50 秒,也就是 250 個百分秒。第 1 行得到 00:12.34。第 2 行得到 1234 加 250 等於 1484 個百分秒,寫為 00:14.84。第 3 行得到 1484 加 250 等於 1734 個百分秒,寫為 00:17.34。無論後續有多少行,算術都保持精確。

上限同樣重要:若最後計算出的時間戳超過 999:59.99,產生會失敗且不會悄悄截斷,這能保護您避免播放器只解析它能讀取的行、而靜默地略過其餘內容。產生器也會拒絕小時欄位、以冒號分隔的格數、三位數的毫秒、逐字層級的尖括號時間戳、卡拉 OK 對唱標記,以及播放器專屬的擴充標記,因此產出的檔案是嚴格的簡易 LRC 子集,而非混合格式的混合體。獨立的 Subforge LRC 解析器與格式化工具原始碼證實分鐘貢獻六萬毫秒、秒數貢獻一千,兩個小數位代表百分秒;QuickLRC 也記載了相同的約定形式,這也是這個保守子集能在不同播放器之間順利流通的原因。

影響輸出的輸入限制

第一個時間戳與間隔的格式限制,是產生失敗最常見的兩個原因,因此了解確切的規則有助於您在按下下載按鈕前修正輸入。歌詞文字本身會原樣保留:拼字、標點、大小寫、語言,以及普通行內的版權聲明都會原封不動通過,因此檔案會原樣繼承您的用詞,而不會被修改。以下限制說明了產生器對每個輸入欄位所強制執行的界線契約。

欄位接受的形式會被拒絕的範例
第一個時間戳00:00.00、09:59.99、10:00.00、123:45.671:23.45、01:23、01:23.456、01:60.00
間隔0.01 到 600.00 秒,最多兩位小數第三位小數、值為 0 或 601
中繼資料值純文字,去除前後空白,最多 120 個字元含方括號的文字、控制位元組、121 個以上字元
歌詞行數1 到 500 個非空白行,總計 50,000 個字元,每行 500 個字元空白輸入、單行超過 500 字元、第 501 行

若想進一步了解驗證技巧與從產生失敗中復原的方法,LRC 產生器訣竅與常見錯誤修正指南會逐步說明具體的失敗範例,以及讓它們通過的修正輸入。

在您的目標音樂播放器中測試檔案

固定間隔的 LRC 只是一份起始草稿,而非完成版的時間軸,因為真實的人聲很少以完全等距的間隔開始。請在專用的時間戳編輯器中,將下載的 .lrc 與完全相同的錄音並排開啟,微調個別的 [mm:ss.xx] 值,直到高亮的那一行對齊到實際唱出的音節。不同播放器對中繼資料標籤、時間戳精度、編碼、長分鐘值,以及強化版 LRC 擴充的支援各不相同,因此唯一可靠的檢查方式,就是把檔案載入您聽眾實際使用的同一個播放器。若播放器忽略 ti 或 al,歌詞捲動仍然可以運作,但您可能需要手動重新命名或調整中繼資料的順序。

暫存下載的物件 URL 在直接使用後以及元件卸載時會被撤銷,因此舊的檔案無法繼續被當成新文字的結果呈現。由於所有內容與運算都停留在當前的瀏覽器分頁中,不會有任何歌詞文字被上傳到伺服器、儲存到帳號,或送到人工智慧服務,這表示您可以自由地草擬與重新產生。同樣的契約也代表這個工具只格式化使用者提供的文字:它不會提供受版權保護的歌詞、搜尋目錄、識別歌曲、確認所有權,或授予同步授權,因此請確保您擁有重製與散佈所貼內容的權利。簡易 LRC 子集以外的相容性,仍由您之後選擇的播放器與編輯器負責。