ESLyric / feedback

Feedback for ESLyric
12 stars 0 forks source link

双语歌词显示问题 #4

Closed lychichem closed 1 year ago

lychichem commented 2 years ago

问题描述 简要清晰地描述问题 桌面歌词无法正确以双排显示双语歌词 重现步骤 重现该问题的步骤:

  1. 下载一个双语歌词文件
  2. 在打开桌面歌词时播放此音频

期望表现 简要清晰的表述你期望的表现 期望一行是外语歌词一行是中文翻译 截图 如可能,请添加截图帮助阐述问题 image

软件环境:

ESLyric commented 2 years ago

在桌面歌词窗口上右键勾选下显示参考行,面板和桌面歌词开关是独立的

lychichem commented 2 years ago

感谢前辈,现在可以显示了,只是旧版eslyric保存的逐字歌词在新版中的参考行显示有点问题,如图: image 应该是在

語れない 眠れない
无话可说  辗转难眠

之后空行,桌面歌词也应该显示是上日语下中文,这里的空行显示好像不太对。主要是播放进度这时也被加在了参考行上,这个还是感觉怪怪的

lychichem commented 2 years ago

内嵌歌词的音频文件链接:https://1drv.ms/u/s!Av7yB71GRfhCk4BRKXvSKjhuqnYZFw?e=oCtUd8

ESLyric commented 2 years ago

之前的版本对于这种两行相同时间戳的歌词都是同时显示的。新版本则将相同时间戳的首个作为主歌词,所以上面这种情况看起来只能编辑歌词了。 issue可以先放着,看后续是否有其他反馈。

相同时间戳的歌词行可以不相邻,只要保持先后顺序就可以,下面这种形式也是可以正常解析的。

[00:00.00]英文xxx [00:10.00]英文yyy [00:00.00]中文xxx [00:10.00]中文yyy

lychichem commented 2 years ago

之前的版本对于这种两行相同时间戳的歌词都是同时显示的。新版本则将相同时间戳的首个作为主歌词,所以上面这种情况看起来只能编辑歌词了。 issue可以先放着,看后续是否有其他反馈。

相同时间戳的歌词行可以不相邻,只要保持先后顺序就可以,下面这种形式也是可以正常解析的。

[00:00.00]英文xxx [00:10.00]英文yyy [00:00.00]中文xxx [00:10.00]中文yyy

明白了,目前我的解决方案是参考前辈这个原理解释,把中文行的起始时间戳改成外文行的起始时间戳就可以了

估计问题原因是这样的:旧版显示双语歌词的时候,中文行(现在的辅助行)的时间戳和下一行一样,现在要求和上一行一样,所以才出现问题了

ESLyric commented 1 year ago

估计问题原因是这样的:旧版显示双语歌词的时候,中文行(现在的辅助行)的时间戳和下一行一样,现在要求和上一行一样,所以才出现问题了

之前的版本没有考虑过双语歌词的显示,所以行为是不确定的,只是刚好这样的歌词形式可能可以勉强达到想要的显示效果。

qazmko1029 commented 1 year ago

关于网易云的双语歌词,可以参考下这个项目 https://github.com/jitwxs/163MusicLyrics 咱不写程序也不懂……所以只能提个参考。

MC-dusk commented 1 year ago

估计问题原因是这样的:旧版显示双语歌词的时候,中文行(现在的辅助行)的时间戳和下一行一样,现在要求和上一行一样,所以才出现问题了

如果两行或多行时间戳一样,我这里(v0.3.6旧eslyric插件)会显示最后一行的内容。所以此时其余相同时间的行相当于上一句歌词(双行桌面歌词会预显示)。

事实上为了更可控的输出效果,会把翻译行的时间戳设为下一行原文时间戳减去一个很短的时间(比如20ms),这样可以间接模拟实现双行显示时,一行原文,一行译文的效果。

旧版ESLyric-LyricsSource和我捣鼓的QRCD_M都是这么干的。感觉不是插件的预期设计,但确实实现了想要的效果。