Word-level time-aligned lyric support (Enhanced LRC file)

These LRC files are generated by the LDDC project (https://github.com/chenmozhijin/LDDC).

Symfonium fails to properly render these Karaoke-style lyrics (with word-level timestamps), whereas most Chinese music players handle them without issue.

Furthermore, I am facing a format conflict regarding translations: ESLyric requires translation lines to have identical timestamps to the original lyrics, but Symfonium does not handle this ‘double timestamp’ format well (preferring translations without timestamps or merged lines). However, removing the timestamps breaks compatibility with ESLyric. This lack of a unified standard is very frustrating.

3 Likes

Could you clarify how you implemented this?
When there are both an .lrc file with line-level lyrics and an .elrc file with word-level lyrics, does the karaoke mode switch between displaying the contents of the .elrc file (karaoke on) and the .lrc file (karaoke off) or change the parsing to strip out the word times (always using and prioritizing the .elrc file)?

It just disable the karaoke effect.

Since this change has been implemented, is it possible to incorporate the supported .elrc formats/styles into the wiki?

Struggling to have Synfonium detect my .elrc file or display it properly. Would be helpful to have a resource page on how Synfonium handles these files & potentially help others too.

5 Likes

I stumbled upon a great little open source tool called “Nightingale” that can produce karaoke lyrics via a combination of local llms. Its really easy to use.

The lyrics output is saved in a folder as a .json file. Any chance that it gets supported in Symfonium? Otherwise I may try to create a converter tool/script.

The json output is structured like this (except of the missing spaces at the beginning og the lines):

{
“language”: “en”,
“segments”: [
{
“text”: “O2 Arena, I need you to make”,
“start”: 0.371,
“end”: 2.293,
“words”: [
{
“word”: “O2”,
“start”: 0.371,
“end”: 0.692,
“score”: 0.788
},
{
“word”: “Arena,”,
“start”: 0.772,
“end”: 1.172,
“score”: 0.79
},
{
“word”: “I”,
“start”: 1.252,
“end”: 1.332,
“score”: 0.909
},
{
“word”: “need”,
“start”: 1.412,
“end”: 1.632,
“score”: 0.818
},
{
“word”: “you”,
“start”: 1.652,
“end”: 1.812,
“score”: 0.708
},
{
“word”: “to”,
“start”: 1.852,
“end”: 1.973,
“score”: 0.84
},
{
“word”: “make”,
“start”: 2.033,
“end”: 2.293,
“score”: 0.774
}
]
},

How would I get these type of lrc files that are easy to do and basically automatically add them to my music and would have back ground vocals and transitions like Apple :grin: