Spotify 不會為透過桌面版或行動版的本地檔案功能所新增的檔案顯示同步歌詞,因此若要在這些曲目旁檢視有時間碼的文字,唯一可靠的做法就是把另外產生的 .lrc 檔放在音訊旁,然後用支援該格式的播放器開啟。簡易 LRC 格式會把每一行歌詞與一個方括號時間戳配對,格式為 [mm:ss.xx],其中 mm 是兩位或三位數的分鐘數字,ss 從 00 到 59,xx 是兩位數的百分秒數字,因此 [01:23.45]Example line 代表 1 分鐘 23 秒又 45 個百分之一秒。固定間隔的時間表只能當作起點草稿,因為真實的人聲很少以完全等距的間隔開始,而且沒有任何瀏覽器內的產生器能「聽見」你的音訊、偵測語音,或自動對齊音素。LRC 檔案產生器負責處理確定性的部分:它接受最多 500 行非空白的歌詞、套用起始時間戳與以秒為單位的固定間隔,然後輸出一個帶有可選 [ti:]、[ar:] 與 [al:] 中繼資料標籤的 UTF-8 .lrc 檔。接著你就可以在任何用於本地曲目的編輯器或播放器中,針對實際錄音逐行重新對齊時間。

how to get lyrics on local files spotify
how to get lyrics on local files spotify

為何 Spotify 本地檔案會略過同步歌詞

你在 Spotify 串流時看到的同步歌詞,是由一個會比對歌曲中繼資料的第三方目錄所提供,因此有時間碼的歌詞會跟著串流音訊一起傳送。當你透過本地檔案功能新增曲目時,Spotify 會把它視為你「擁有」的檔案,而不是目錄中的一筆紀錄,而該檔案沒有對應的歌詞紀錄、沒有對齊時間的參考資料,也沒有螢幕上的字幕顯示。桌面版與行動版應用程式會播放音訊並顯示你提供的標題與演出者,但「正在播放」畫面只會顯示標準的進度條,而不是串流曲目才有的逐行文字。

這個落差正是人們搜尋「在 Spotify 本地檔案上取得歌詞」方式的原因。這個平台目前並未提供內建的閱讀器,可以掃描資料夾中的 .lrc 檔、把它們連結到對應的曲目,並疊加在播放畫面上。Spotify 對本地檔案所開放的合約刻意設計得很狹隘:它預期接收的是音訊加上可選的中繼資料,也預期任何同步功能應由另一個播放器,或一個與音訊並行執行的同步歌詞工具來提供。把帶時間碼的 .lrc 檔放在同一個資料夾是實際可行的變通方式,但你需要一個真的會讀取它的播放器,因為 Spotify 本身不會去抓取這個檔案。

簡易 LRC 格式如何運作

簡易 LRC 是一種事實上的文字格式,而非正式的標準,但其核心語法已被廣泛記錄與廣泛解析。每一行有時間碼的歌詞會以一個方括號時間戳開頭,格式為 [mm:ss.xx],其中 mm 是兩位或三位數的分鐘數字,ss 是剛好兩位、從 00 到 59 的秒數數字,接著是一個句點,xx 則是剛好兩位數的百分秒數字。該格式支援最高 999:59.99 的時間戳,可涵蓋三小時的混音、DJ set 以及長度超出一般歌曲的現場錄音。根據 QuickLRC 字幕格式參考,這是簡易子集的標準佈局,而獨立的 Subforge 解析器與格式化工具原始碼也證實了相同的轉換方式:分鐘貢獻六萬毫秒、秒貢獻一千毫秒,兩個小數位數代表百分秒。

LRC 檔案產生器所使用的簡易子集,並不包含小時欄位、以冒號分隔的格數、三位數毫秒、進階的逐字角括號時間戳,或卡拉 OK 對唱標記。有時間碼的一行在純文字中看起來像這樣:

[00:12.34]First line of the song

可選的中繼資料標籤會以獨立的方括號行形式,出現在有時間碼的歌詞之前。標題變成 [ti:value],演出者變成 [ar:value],專輯變成 [al:value]。每個中繼資料值都會經過去除空白、限制為 120 個字元,且不得包含方括號或控制字元,如此可避免某個欄位把第二個標籤或多餘的歌詞行注入檔案中。空白的中繼資料欄位會整個省略,並以一行空行分隔中繼資料區塊與有時間碼的歌詞,以利閱讀。

使用 LRC 檔案產生器產生同步歌詞

  1. 開啟 LRC 檔案產生器,把歌詞貼到輸入框,每行一個顯示行。該工具接受 1 到 500 行非空白的內容,總計最多 50,000 個字元,單一行最多 500 個字元。空白的輸入列會被移除,而不允許的控制字元會被拒絕,而不是悄悄插入輸出中。
  2. 以 MM:SS.xx 格式設定第一個時間戳,例如 00:12.34。分鐘欄位接受兩位或三位數,秒數欄位必須介於 00 到 59,百分秒欄位必須剛好兩位數。有效的範例包括 00:00.00、09:59.99、10:00.00,以及 123:45.67。
  3. 輸入逐行之間的間隔,以「moment」為單位。間隔接受 0.01 到 600.00,且小數位數不得超過兩位。LRC 檔案產生器在產生任何列之前,會先把這個值轉換為整數的百分秒數,因此在一首長歌中重複相加時,不會累積二進位浮點數的誤差。
  4. 可選擇填寫標題、演出者與專輯欄位。這些會在檔案開頭變成 [ti:title]、[ar:artist] 與 [al:album] 標籤。空白的欄位會從輸出中省略,且任何欄位都不能引入方括號或控制字元。
  5. 點擊「Generate」(產生)。預覽會顯示將下載的確切文字內容,包含可選的中繼資料區塊、空白的分隔行,以及完整的有時間碼歌詞列。請檢查第一個與最後一個時間戳,確認排程符合你本地曲目的長度。
  6. 點擊「Download」(下載)。檔案會以 UTF-8 純文字格式儲存,副檔名為 .lrc。檔名在可取得標題時會從標題衍生,不安全的標點會以連字號取代;若標題為空,則會產生 synced-lyrics.lrc。

若起始時間戳為 00:12.34,間隔為 2.50 秒,前三行會輸出為 [00:12.34]、[00:14.84] 與 [00:17.34]。這個計算是精確的,因為間隔在建構任何列之前會先被轉換為 250 個百分秒:1234 + 250 = 1484 個百分秒,而 1484 + 250 = 1734 個百分秒。如果最終計算出的時間戳會超過 999:59.99,則會產生失敗,而不會悄悄截斷。

讓 LRC 檔與你的歌曲及播放器對應

儲存檔案只是工作流程的前半段。下一步是把 .lrc 檔放在音訊曲目旁,讓你的播放器能配對它們。許多桌面版播放器,包括 foobar2000、AIMP、MusicBee 與 VLC,會在同一個資料夾中尋找與音訊曲目同檔名但副檔名為 .lrc 的檔案。如果你的曲目是 track01.mp3,播放器會預期同目錄下有 track01.lrc。Spotify 本身並不做這種配對,因此歌詞只會在用支援簡易 LRC 的播放器開啟同一個音訊檔時出現,而不是透過 Spotify 的本地檔案播放功能播放時出現。

真實的人聲很少以完全等距的間隔開始,因此固定間隔的時間表只是一份草稿。請在專門的編輯器中開啟 LRC 檔,或在播放器中與實際錄音比對,逐行調整 [mm:ss.xx] 的數值,直到每一行對齊到歌詞被唱出的那一刻。不同的音樂播放器支援不同的中繼資料標籤、時間戳精度、編碼、長分鐘數值,以及進階 LRC 擴充功能,因此在依賴該檔案之前,務必在目標播放器中測試。LRC 檔案產生器並不保證每個播放器對同一個檔案的解讀都完全相同,因為顯示出來的行為是檔案與讀取它的播放器兩者的共同特性。

LRC 與其他本地音訊歌詞格式的比較

格式時間戳樣式Spotify 本地檔案常見播放器中繼資料標籤
簡易 LRC每行 [mm:ss.xx]Spotify 不會讀取;請使用獨立的播放器foobar2000、AIMP、MusicBee、VLC、mpv可選的 [ti:]、[ar:]、[al:]
進階 LRC[mm:ss.xx] 加上 <mm:ss.xx> 逐字標籤Spotify 不會讀取;大多數播放器會忽略部分支援卡拉 OK 的行動播放器與簡易 LRC 相同,加上內嵌逐字時間
SRT 字幕00:00:01,000 行範圍Spotify 不會讀取;以影片為主VLC、mpv、大多數影片播放器無標準
純 TXTSpotify 不會讀取;需手動閱讀任何文字編輯器或閱讀器

對於在桌面版音樂播放器中開啟的本地音訊,簡易 LRC 是支援最廣泛的有時間碼格式。SRT 是為影片設計的,使用以逗號為小數點的時間戳,因此大多數音樂播放器在讀取前需要經過轉換。進階 LRC 加入了簡易 LRC 所沒有的逐字時間,這對卡拉 OK 很有用,但會用簡易 LRC 子集不會輸出的細節讓檔案變大。純 TXT 雖然保存了文字,但不提供任何時間資訊,因此只能作為手動編輯 .lrc 檔時的參考。

需要留意的限制、隱私與著作權

LRC 檔案產生器的所有操作都停留在目前的瀏覽器分頁內。不會把任何歌詞文字上傳到 Lizely、不會儲存在任何帳號中,也不會送到任何人工智慧服務,而暫存的下載物件 URL 在直接使用後以及元件卸載時都會被撤銷,因此舊的檔案不會繼續被顯示為較新文字的結果。這個可靠的合約刻意設計得很小:驗證事實上的百分秒時間戳子集、把有限範圍的小數間隔轉換為精確的百分秒、保留有限範圍的歌詞文字、只輸出可選的 ti、ar、al 標籤、顯示完整未截斷的檔案,並下載與預覽完全一致的內容。超出該子集的相容性,仍屬於之後所選擇的播放器與工作流程的責任。

你必須擁有重製與散佈你所輸入歌詞文字的權限。LRC 檔案產生器不會提供受著作權保護的歌詞、不會搜尋目錄、不會識別歌曲、不會確認所有權,也不會授予同步授權。它只是把使用者提供的文字進行格式化。需要事先規劃的確切輸入限制為:1 到 500 行非空白的歌詞、總計 50,000 個輸入字元、每行 500 個字元、間隔介於 0.01 到 600.00 秒,以及一個符合 999:59.99 範圍的起始時間戳。如果你的本地檔案是長篇 DJ 混音或現場演唱會錄音,像 123:45.67 這樣的三位數分鐘是有效的,產生器會接受它們。編輯任何輸入都會清除先前的預覽,因此每次變更後都必須重新按一次 Generate,下載的內容才會反映新的文字。

如需另一篇聚焦於同類本地工作流程中 MP3 曲目的相關逐步教學,請參見 如何為你的 MP3 取得 LRC 檔:本地工作流程。簡易 LRC 子集的格式參考記錄於 QuickLRC,而驗證該檔案的解析器所使用的百分秒轉換,則實作於 Subforge LRC 時間原始碼

如需更深入的說明,請參見 如何使用起始時間與間隔製作 LRC 檔