DOCS > 歌词文档
Lycia Player 最后编辑:2026-05-14 16:03

歌词说明

1 歌词来源

Lycia Player 按以下优先级读取歌词:

  1. 音频文件内嵌歌词 — 读取音频文件标签中的歌词字段(ID3v2 USLT / MP4 ©lyr / VorbisComment LYRICS / APEv2 等)。
  2. 同名外部 .lrc 文件 — 读取歌曲文件同目录下同名 .lrc 文件,文件名大小写不敏感。例如 Song.flac 对应 Song.lrcsong.lrc

软件通过分析歌词文本内容自动识别格式(而非依赖文件扩展名),因此任何来源的文本歌词均可被正确解析。

2 支持的歌词格式

Lycia Player 支持 7 种歌词格式,自动检测文本内容来确定格式(不依赖文件扩展名)。软件会并行尝试所有解析器,按得分选出最佳解析结果。下文用示例逐一说明每种格式的写法。

2.1 普通 LRC

最基本的歌词格式。每行以 [分:秒.毫秒] 开头标记该行的开始时间,毫秒支持 1~3 位。软件根据播放进度定位当前行,但因为没有字词级时间,逐字高亮不可用,整行同步显示。

支持同一行写多个时间戳,表示同一段歌词在多个时间点重复出现:

[00:10.150][00:30.500]如果当时 - 许嵩
[00:13.380]词:许嵩
[00:16.770]曲:许嵩

每行的结束时间由下一行的开始时间自动推断,最后一行持续到歌曲结束。

歌名、歌手、专辑等元数据行(如 [ti:] [ar:] [al:] [by:])会被自动忽略。

2.2 ESLRC / 方括号逐字 LRC

ESLRC = ESLyric 插件格式,后缀仍为 .lrc。一行内使用多个 [分:秒.毫秒] 标记每个词块的结束时间。软件将相邻时间戳之间的文本解析为一个词块,每个词块拥有独立的起止时间,支持逐字高亮

[00:10.000]你[00:10.300]好[00:10.600]
[00:12.000]世[00:12.260]界[00:12.560]

解析结果:"你" 从 10.000s 到 10.300s,"好" 从 10.300s 到 10.600s。

行首无时间戳时,第一个词块从上一行的结束时间(或 0 秒)开始。相邻的时间戳之间会自动插入分隔标记以保留时间间隔。

2.3 尖括号增强 LRC

增强 LRC 是推荐的逐字歌词格式。行首用 [分:秒.毫秒] 标记整行开始时间,正文内用 <分:秒.毫秒> 标记每个词块的开始时间。支持完整的逐字高亮

与其他格式不同,增强 LRC 会叠加到已有的解析结果上——如果一份歌词同时包含普通 LRC 行和增强 LRC 行,软件会以增强 LRC 的逐字时间替换对应行的普通时间。

[00:00.000]<00:00.000>如<00:00.375>果<00:00.750>当<00:01.125>时
[00:02.000]<00:02.000>仍<00:02.300>然<00:02.600>记<00:02.900>得

同一时间点的翻译行和罗马音行也会被合并到一组,软件会自动识别各自角色(详见第 3 节)。

2.4 YRC

YRC = 网易云音乐逐字歌词格式。行头 [开始毫秒,持续毫秒] 定义整行时间范围,正文内 (开始毫秒,持续毫秒,0) 定义单个词块的时间,第三个字段固定为 0。支持逐字高亮

[10000,600](10000,300,0)你(10300,300,0)好
[12000,560](12000,260,0)世(12260,300,0)界

注意:所有时间值均为绝对毫秒(非分:秒格式)。歌词文本中若包含英文括号 (),会被自动转换为全角括号 () 以避免歧义。

2.5 QRC

QRC = QQ 音乐逐字歌词格式。行头 [开始毫秒,持续毫秒],词块时间使用 (开始毫秒,持续毫秒)(无第三个字段)。支持逐字高亮

[10000,600]你(10000,300)好(10300,300)
[12000,560]世(12000,260)界(12260,300)

软件同时支持明文 QRC 和加密 QRC(十六进制密文)。加密 QRC 会被自动检测——当文本去除空白后全为十六进制字符、长度为偶数且超过 64 字符时,软件会自动解密后解析。用户无需手动处理加密格式。

2.6 LYS

LYS = Lyricify Syllable 格式,用于存储音节级歌词信息。行头 [N] 编码轨道属性,正文 (开始毫秒,持续毫秒) 标记前一个词块的时间。支持逐字高亮

[0]你(10000,300)好(10300,300)
[2]世(12000,260)界(12260,300)

行头数字 N 的含义(位标志):

  • [0] — 普通主唱歌词
  • [2] — 对唱 / 二重唱
  • [6] — 背景 / 和声
  • [8] — 背景和声 + 对唱

2.7 TTML

TTML = W3C 时序文本标记语言(XML 字幕格式),常用于 Apple Music 歌词。<p> 表示一行,<span> 表示字或词片段的逐字时间。软件读取 beginend 属性后构建完整时间轴。支持逐字高亮

<tt xmlns="http://www.w3.org/ns/ttml">
  <body dur="10.600">
    <div>
      <p begin="10.000" end="10.600">
        <span begin="10.000" end="10.300">你</span>
        <span begin="10.300" end="10.600">好</span>
      </p>
    </div>
  </body>
</tt>

软件同时支持以下 TTML 扩展特性:

  • ttm:role — 标记行的角色:x-translation(翻译)、x-roman(罗马音)、x-bg(背景和声)。
  • iTunesMetadata — Apple Music 风格的多语言歌词元数据。
  • XML 实体 — 自动解码 &lt; &gt; &amp; 等字符引用。

2.8 格式自动检测

软件基于文本内容自动识别格式,而非依赖文件后缀名。检测逻辑:

  • 文本中含 <tt → 尝试 TTML 解析
  • 文本去除空白后为全十六进制、长度 > 64 且为偶数 → 作为加密 QRC 解密后解析
  • 对所有格式并行尝试解析(YRC → QRC → LYS → ESLRC → LRC),收集候选结果
  • 对各行单独检查是否含 <分:秒> 标记 → 作为增强 LRC 叠加到最优候选结果上
  • 解析质量评分选出最佳结果:每行有逐字词块 +2 分,有翻译 +1 分,有罗马音 +1 分;得分相同时比较行数和格式优先级

这意味着用户可以将 .yrc.qrc 文件直接改名为 .lrc,或直接粘贴任意格式的歌词文本到内嵌标签中,软件均能正确识别。

3 主歌词、翻译和罗马音

3.1 同时间歌词合并

主歌词 = 歌曲实际演唱的文本;翻译 = 中文或目标语言释义;罗马音 = 日语、韩语等非拉丁文字的拉丁转写。

软件将相同或接近时间点的多行歌词合并为一组,合并容差 50 毫秒,每组最多容纳 3 行。合并后自动分类每行的角色。

[00:43.792]mo u hi to tsu fu ya shi ma sho u
[00:43.792]もう一つ増やしましょう
[00:43.792]但让我们再多加一个吧

这组会被合并显示为:主歌词 もう一つ増やしましょう / 罗马音 mo u hi to tsu... / 翻译 但让我们再多加一个吧

3.2 自动角色分类

当歌词行没有显式标记(见第 4 节)时,软件通过分析文本的文字系统(Script)自动判断每行的角色。

日文歌曲(检测到假名)

  • 含假名的行 → 主歌词
  • 纯拉丁字母行 → 罗马音
  • 含汉字的行(无假名)→ 翻译
  • 全中文单行 → 主歌词

韩文歌曲(检测到韩文)

  • 含韩文的行 → 主歌词
  • 纯拉丁字母行 → 罗马音
  • 含汉字的行 → 翻译

英文与中文混合

  • 拉丁字母为主的行 → 主歌词
  • 汉字为主的行 → 翻译

英文歌词与罗马音的区分

软件内置了罗马音检测器,用于区分英文歌词和日文/韩文罗马字转写。检测依据包括:日文罗马字特征模式(shi/chi/tsu/kyo 等)、英文特有单词、缩写、双字母组合和辅音丛。含有明显罗马字特征的拉丁文本不会被误判为英文歌词。

3.3 罗马音逐词对齐

当主歌词为日文/韩文且拥有完整的逐词罗马音时,软件会启用罗马音逐词对齐功能:将每个罗马音词块精确对齐到对应的主词下方进行显示,而非作为独立的副行渲染。这使得日文学习者能够更容易地将每个假名对应到其罗马音读法。

触发条件:所有实词(过滤零时长词和纯空白词)都有对应的罗马音,且罗马音词数与主词数一致。

4 显式标记

如果你希望明确控制每行歌词的角色(而非依赖自动分类),可以在行首添加以下标记。显式标记的优先级高于自动分类。

翻译行标记

支持以下任一格式(大小写不敏感):

  • [tr] [trans] [translation]
  • 【翻译】 【译文】
  • 翻译: 译文:

罗马音行标记

支持以下任一格式(大小写不敏感):

  • [roma] [romaji] [roman]
  • 【罗马音】 【罗马字】 【音译】
  • 罗马音: 罗马字: 音译:
[00:20.000]君が僕に見せてくれた
[00:20.000][romaji]ki mi ga bo ku ni mi se te ku re ta
[00:20.000][tr]是你让我看到了

5 逐字效果与显示规则

5.1 逐字高亮

逐字高亮 = 每个字或词拥有独立的开始/结束时间,播放时按当前进度精确高亮到字。以下格式均支持逐字高亮:增强 LRC、ESLRC、YRC、QRC、LYS、TTML。

仅含整行时间的普通 LRC 不支持逐字高亮,整行统一高亮。

5.2 显示顺序

播放页和桌面歌词的显示顺序固定为:主歌词 → 罗马音 → 翻译。罗马音和翻译的显示可在软件设置中分别开关。

当启用罗马音逐词对齐时(见 3.3 节),罗马音会堆叠在每个主词下方,而非另起一行。

5.3 无歌词状态

  • 有歌词文本但无时间轴 — 显示"无同步歌词",文本可滚动浏览。
  • 完全无歌词 — 显示"纯音乐 / 无歌词"占位。

6 编辑与保存逻辑

歌词编辑器的读取顺序与播放读取顺序一致:先读取内嵌歌词,无内嵌时读取同名 .lrc 文件。

保存行为:

  • 保存到内嵌歌词 — 写回音频文件标签(ID3v2 / MP4 / VorbisComment)。
  • 保存到外置文件 — 写入歌曲同目录下的同名 .lrc 文件。
场景推荐格式说明
单语歌曲,仅需行级同步 普通 LRC 最简单,编辑方便,播放时可定位当前行。
需要逐字高亮 增强 LRC 支持完整的逐词时间,是推荐的逐字格式。
双语歌词(中文翻译) 增强 LRC + 同时间戳翻译行 将翻译放在同一时间点,或添加 [tr] 标记。
日文歌曲 + 罗马音 增强 LRC + 同时间戳罗马音行 为罗马音添加 [romaji] 标记以确保正确分类。
从网易云 / QQ 音乐获取 YRC / QRC(无需转换) 直接将 .yrc 或 .qrc 文件拖入,软件自动识别。

8 歌词来源建议

推荐使用以下工具获取歌词:

  • MusicTag — 支持从网易云、QQ 音乐等平台匹配和下载歌词、内嵌写入音频标签。
  • LDDC — 歌词匹配下载工具,支持批量匹配多种歌词格式(LRC / YRC / QRC / TTML 等)。

遇到歌词显示异常时,请前往 GitHub Issues 提交反馈,并附上:歌曲文件格式、歌词文本片段(前几行即可)、软件版本号和问题截图。

9 常见问题

Q: 歌词文件放好了但软件不显示?

请检查:① .lrc 文件与歌曲文件同名且在同一目录;② 文件编码为 UTF-8(不是 ANSI/GBK);③ 歌曲文件本身没有内嵌歌词(内嵌歌词优先级高于外部文件,可能在音频标签里存了空歌词)。

Q: 罗马音显示为翻译了,或翻译显示为主歌词了?

自动分类偶有误判。最快的解决方式是给对应行添加显式标记(见第 4 节),例如在罗马音行开头加 [romaji],翻译行加 [tr]

Q: 为什么我的歌词没有逐字高亮?

逐字高亮需要歌词包含字词级的时间信息。普通 LRC 只有整行时间,不具备逐字高亮。请使用增强 LRC、ESLRC、YRC、QRC、LYS 或 TTML 格式。

Q: 加密的 QRC 文件需要手动解密吗?

不需要。软件会自动检测并解密十六进制加密的 QRC 歌词,直接拖入或粘贴原始内容即可。

Q: 可以把 .yrc / .qrc 文件改名为 .lrc 使用吗?

可以。软件基于内容自动识别格式,不依赖文件名后缀。改名为 .lrc 后兼容性更好(部分其他播放器也能按普通 LRC 回退显示)。

Q: 多段歌词(对唱、和声)如何显示?

TTML 的 ttm:role="x-bg" 和 LYS 的轨道编号 [6] 可用于区分背景和声。其余格式中,同时出现于相同时间点的多行文本会被合并到同一组,按主歌词/翻译/罗马音分类后显示。