Closed MC-dusk closed 1 year ago
这个应该不是 BUG,这一行最后这个 [00:xx.xx]
表示的是这一行的结束,没有实际含义吧
省流:一行的结束不一定是下一行的开始,不然最后一个字可能会拖的很长。
举个例子,下面是另一首歌的qrc内容:
[159553,3750]Oh (159553,1217)星(160770,337)屑(161107,612)も(161719,865)な(162584,237)い(162821,482)
这种qrc格式,时间戳前半是起始时间(毫秒),后半是持续时间,不仅开头有一行的时间戳,可以看到每个字的时间戳也有起点和长度,这样在显示时,能够自由确定任何一个字何时开始和结束。
但这种格式不通用,且信息冗余。
转换后:
[02:39.55]Oh [02:40.77]星[02:41.10]屑[02:41.71]も[02:42.58]な[02:42.82]い[02:43.30]
这种逐字lrc格式,用文本换行确定一行的显示,但每行没有这一行的时间戳,只有每个字的时间戳。所以每个字是平等的。默认一行的每个字时间前后相连,但最后需要加一个时间戳来断后。有点像植树问题(
从歌词来说,每句话不一定是前后相连的。比如一句话结束后,有一段间奏,这句话的结束就不是连在下一句开始,而传统lrc只能前后相连,所以必要时会用空行做隔断。
另外还有一种逐字歌词格式:
[mm:ss.xx] <mm:ss.xx> line 1 word 1 <mm:ss.xx> line 1 word 2 <mm:ss.xx> ... line 1 last word <mm:ss.xx>
[mm:ss.xx] <mm:ss.xx> line 2 word 1 <mm:ss.xx> line 2 word 2 <mm:ss.xx> ... line 2 last word <mm:ss.xx>
这种在最前面单独有个行时间戳,以兼容普通lrc歌词。
学习了,下个版本加上
写了一个把下载的逐字歌词转换为兼容性更好的增强 LRC 格式的脚本。
示例
转换前:
[01:35.69]こ[01:36.07]の[01:36.48]両[01:37.31]手[01:37.70]か[01:38.24]ら[01:39.10]零[01:39.98]れ[01:40.73]そ[01:40.94]う[01:41.24]な[01:41.46]ほ[01:41.88]ど[01:42.29]
[01:42.27]几乎要自两手中洒出的
[01:42.64]君[01:42.94]に[01:43.21]貰[01:44.01]っ[01:44.21]た[01:44.82]愛[01:45.69]は[01:46.55]ど[01:47.10]こ[01:47.54]に[01:47.88]捨[01:48.30]て[01:48.75]よ[01:48.97]う[01:49.41]?[01:49.59]
[01:49.57]你所给的爱要扔到哪好?
转换后:
[01:35.69]<01:35.69>こ<01:36.07>の<01:36.48>両<01:37.31>手<01:37.70>か<01:38.24>ら<01:39.10>零<01:39.98>れ<01:40.73>そ<01:40.94>う<01:41.24>な<01:41.46>ほ<01:41.88>ど<01:42.29>
[01:42.27]几乎要自两手中洒出的
[01:42.64]<01:42.64>君<01:42.94>に<01:43.21>貰<01:44.01>っ<01:44.21>た<01:44.82>愛<01:45.69>は<01:46.55>ど<01:47.10>こ<01:47.54>に<01:47.88>捨<01:48.30>て<01:48.75>よ<01:48.97>う<01:49.41>?<01:49.59>
[01:49.57]你所给的爱要扔到哪好?
我发现qq音乐返回的末尾字是有时间的,只是代码处理的时候漏掉了
BUG 描述 Describe the bug
QQ音乐逐字歌词每行都缺失末尾时间戳
https://y.qq.com/n/ryqq/songDetail/002PaXLM1wSj31
当前获取的歌词:
正确形式的歌词:
版本 Version
5.8