歌词说明
1 歌词来源
Lycia Player 按以下优先级读取歌词:
- 音频文件内嵌歌词 — 读取音频文件标签中的歌词字段(ID3v2
USLT/ MP4©lyr/ VorbisCommentLYRICS/ APEv2 等)。 - 同名外部
.lrc文件 — 读取歌曲文件同目录下同名.lrc文件,文件名大小写不敏感。例如Song.flac对应Song.lrc或song.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> 表示字或词片段的逐字时间。软件读取 begin 和 end 属性后构建完整时间轴。支持逐字高亮。
<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 实体 — 自动解码
<>&等字符引用。
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文件。
7 推荐写法
| 场景 | 推荐格式 | 说明 |
|---|---|---|
| 单语歌曲,仅需行级同步 | 普通 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] 可用于区分背景和声。其余格式中,同时出现于相同时间点的多行文本会被合并到同一组,按主歌词/翻译/罗马音分类后显示。