Audial tool

Lyrics with word timestamps: transcribe a song's lyrics

Every line of the song, every word timed, read from the vocal.

Analyse a song on Audial and press Get lyrics: you get its lyrics as timed lines with a start and end time for every word, highlighted as the song plays on the website and returned as JSON by the API, the Python SDK (audial.lyrics) and the get_lyrics MCP tool.

$10 a month or $100 a year. Unlimited runs, cancel any time. 2 free runs to try it first.

Audial transcribes a song's lyrics from the mix you already have. Analyse the track, which finds its sections, tempo and bars in about half a minute, then press Get lyrics. In the background the analysis has already prepared the vocal part, and the words are read from that, so the beat and the synths do not get in the way. The result is the whole lyric as timed lines, each word with its own start and end time in seconds on the track's own timeline.

On the website the current word lights up as the song plays, and clicking a line jumps to it. Over the API the same data comes back as JSON: the lines and their words, the lyrics of each section of the analysis, and where the vocals start. That is enough to drive a karaoke-style highlight, write subtitles or an LRC file, find the bar where the hook first lands, or line a vocal chop up with its word.

The language is detected automatically and the words come back in the language they are sung in; nothing is translated. Lyrics are an add-on on an analysis, so they are included in its run.

What you get

  • Timed lines with a start and end time for every word
  • Read from the vocal part the analysis prepares, not from the full mix
  • The lyrics of each section, and the time the vocals start
  • Word highlight on the website as the song plays; click a line to jump to it
  • Instrumentals are recognised: no lines, and the page says so
  • Included in the analysis's run; on the website, by REST, in Python and through MCP

Hear it

Full mix
Its vocal part, which the lyrics are read from

The demo mix, and the vocal part an analysis prepares from it in the background. Get lyrics transcribes that vocal and times every word on the mix's own timeline.

Audial vs doing it by hand

Getting the wordsAudial: Transcribed from the separated vocalBy hand: Listen and type, rewinding every unclear line
Timing every wordAudial: A start and end time for each word, on the track's timelineBy hand: Scrub to each word and note the time; slow enough that most people only time lines
Lyrics per sectionAudial: Matched to the analysis's sections, with the time the vocals startBy hand: Work out where each section starts, then split the lyric to fit
Getting it rightAudial: Can mishear mumbled, processed or stacked vocalsBy hand: You know what was sung, especially if it is your own song
Published lyricsAudial: Transcribes what is sung; it does not look lyrics upBy hand: You can copy published lyrics, but they come without any timing

Use it from code

# 1. Analyse the mix. Keep the exeId from the answer.
curl -X POST "https://api.audialmusic.ai/api/functions/run/segmentation" \
  -H "X-API-Key: your_api_key" -H "X-User-ID: your_user_id" \
  -F "userId=your_user_id" \
  -F "original=@/path/to/song.mp3"

# 2. Lyrics on that analysis. 409 STEMS_NOT_READY means the vocal is still
#    being prepared: send the same request again a minute later.
curl -X POST "https://api.audialmusic.ai/api/functions/run/lyrics" \
  -H "X-API-Key: your_api_key" -H "X-User-ID: your_user_id" \
  -F "userId=your_user_id" \
  -F "analysisExeId=exe_12345abcde"

# 3. Once addons.lyrics.state on GET /api/db/{userId}/execution/{exeId} is "completed",
#    song_analysis.lyrics_lines holds the lines; each word is [word, start, end] in seconds.
curl "https://api.audialmusic.ai/api/db/your_user_id/execution/exe_12345abcde/analysis" \
  -H "X-API-Key: your_api_key" -H "X-User-ID: your_user_id"

Frequently asked questions

Upload the song on the Audio Analysis tab and press Get lyrics. Every line appears with its timing, and the current word lights up as the song plays. From code, analyse the track with /functions/run/segmentation, then call /functions/run/lyrics with the analysis's exeId, or call audial.lyrics in Python.

Related