Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

Bumps [numpy]( from 1.18.1 to 1.22.0.
- [Release notes](
- [Changelog](
- [Commits](numpy/numpy@v1.18.1...v1.22.0)

- dependency-name: numpy
  dependency-type: direct:production

Signed-off-by: dependabot[bot] <>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]>

Git stats


Failed to load latest commit information.


Build Status codecov

Check out my blog on my progress and process throughout GSoC 2019!


Given an audio file of some recognizable song, autosynch will try to align its lyrics to their temporal location in the song. The song lyrics must be available on Genius.

This project is still in its early stages and is inaccurate in many cases. Optimization is a work in progress, but feel free to try it out, modify it, or contribute!

Developed during Google Summer of Code 2019 with CCExtractor.


To install, do the following:

git clone
cd autosynch
pip install -r requirements.txt

Note: autosynch is supported only on Python 3.6+.


Using autosynch requires a trained model for vocal isolation as well as PortAudio. For mp3 support, SoX is required. On MacOS/Linux, get everything by executing:

chmod a+x

download model

If you would like to download the weights manually or get a different version, check here:

  • DOI for weights trained on MedleyDB V1
  • DOI for weights trained on MedleyDB V2

Weights must be placed into autosynch/mad_twinnet/outputs/states.

install portaudio

On Mac:

brew install portaudio

On Linux:

sudo apt-get update
sudo apt-get install portaudio19-dev

install sox

Note: Installing SoX is optional and only required for processing mp3 files.

On Mac:

brew install ffmpeg

On Linux:

sudo apt install ffmpeg


To play a song with its lyrics displayed at its calculated position:

python autosynch/ [audio_file.wav] [artist] [song_title]

It will take a few minutes to perform the alignment process. To save the alignment data to eliminate processing time in future plays of the same audio, add the flag -s SAVE_DIR, where SAVE_DIR is the directory you want to save the alignment data.

If you have already generated and saved an alignment data file:

python autosynch/ [audio_file.wav] -f [align_file.yml]

If you would like to process an mp3 file, see this section. Running with an mp3 will automatically generate a wav file in the same directory.

Note: If you did not use, first make sure you set your Python environment correctly with export PYTHONPATH=$PYTHONPATH:./ from the outer autosynch directory.


Bruno Mars - Finesse

Finesse demo


The last chorus lags behind a bit, but for the most part sections and lines are nicely aligned.

Fun. - We Are Young

We Are Young demo


The instrumental at the beginning throws off the first verse, but everything catches up in by line 4.



Automated lyrics-to-audio alignment using syllabic nuclei detection. Developed during Google Summer of Code 2019.








No releases published


No packages published