GithubHelp home page GithubHelp logo

ksasso1028 / jamendolyrics Goto Github PK

View Code? Open in Web Editor NEW

This project forked from f90/jamendolyrics

0.0 0.0 0.0 390.31 MB

Jamendo music dataset with time-aligned lyrics for lyrics alignment evaluation

License: Other

Python 100.00%

jamendolyrics's Introduction

JamendoLyrics MultiLang dataset for lyrics research

A dataset containing 80 songs with different genres and languages along with lyrics that are time-aligned on a word-by-word level (with start and end times) to the music.

To cite this dataset and for more information, please refer to the following paper, where this dataset was first used:

Similarity-based Audio-Lyrics Alignment of Multiple Languages
ICASSP 2023
Simon Durand, Daniel Stoller, Sebastian Ewert

Installation

The dataset can be used without installation by cloning it from this Github repository.

For running any of the included scripts, we require Python 3.10 with packages installed as listed in requirements.txt.

Metadata CSV

All songs are listed in JamendoLyrics.csv together with their metadata. To load annotations you are interested in, you can iterate over this CSV and use the Filepath column to build file paths to files containing the data for each song (audio file, lyrics annotations). Among the metadata, "LyricOverlap" refers to whether or not the lyrics in the song overlap, “Polyphonic” refers to whether or not there are multiple singers singing the same lyrics, but with different melodies, and "NonLexical" refers to whether or not there is non-lexical singing (eg: scatting).

Lyrics files

In the lyrics subfolder, we provide the lyrics to each song as SONG_NAME.txt (normalized, e. g. special characters and characters not supported in vocab/international.characters are removed)

Furthermore, SONG_NAME.words.txt contains all the words, separated by lines, ignoring the paragraph structure of the original lyrics. This is used for the word-level timestamp annotations.

Time-aligned lyrics annotations

We have aligned the lyrics on a word-by-word and line-by-line basis to the music.

Word-by-word start and end timestamps are stored in the "annotations/words" subfolder, and they also indicate whether the word represents the end of a line as well (it will have the word end timestamp set instead of NaN).

A line-by-line version of the lyrics is stored in the subfolder "annotations/lines" as CSV files, denoting the start and end time of each lyrical line in the audio. These contain one row per line in the form of (start_time, end_time, lyrics_line) and can be used to train or evaluate models only on a line-by-line level.

Modifying word-by-word timestamps

In case the word timestamps are modified, one needs to run generate_lines.py to update the line-level timestamp files in "annotations/lines" accordingly.

This is because the line-level annotation in "annotations/lines" is auto-generated based on the manual word-by-word annotations: The start timestamp for each line is set to be the start timestamp of the word after an end-of-line word.

In case you find errors in the timestamp annotations, we encourage you to submit a pull request to this repository so we can correct the errors.

Acknowledgements

We want to acknowledge our 2022 Research intern, Emir Demirel, and Torr Yatco for their help in assembling this dataset.

Original dataset

This dataset is an extended version of the original JamendoLyrics dataset presented in the paper

End-to-end Lyrics Alignment for Polyphonic Music Using an Audio-to-Character Recognition Model

It originally contained only 20 English songs and is now deprecated as annotations are slightly improved, so we discourage its use in the future. You can find it archived here.

jamendolyrics's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.