Nodaro Docs
DocumentationNode ReferenceModelsAI Agents (MCP)DevelopersSelf-hostingResearch
Audio

Forced Alignment

Time every word of a known transcript against its audio and get each word's start and end as data, for karaoke highlights, timed graphics and captions.

The Forced Alignment node times every word of a known transcript against its audio. You give it the recording and the exact text that is spoken in it, and it returns the start and end time of each word. The result is data, not audio: use it for karaoke-style highlights, graphics that react to words, or to check the pacing of generated speech.

When to use it

  • Get precise word timings for captions or subtitles from a script you already have.
  • Build karaoke-style word highlighting that follows the audio.
  • Time animations or motion graphics to specific words.
  • Sync visual elements to speech in a video composition.
  • Check the timing of Text to Speech output against the pacing you expect.

When you do not have a transcript, use Transcribe instead. Its Transcript output already carries word timings on ElevenLabs STT and Incredibly Fast Whisper.

Quick start

Add the node

Press Tab on the canvas and choose Audio › Transcribe › Forced Alignment.

Wire the audio

Wire an audio node into the Audio input.

Give it the transcript

Open the settings panel and paste the exact spoken text into Transcript, or wire a text node into the Transcript input.

Run it

Click Run on the node. The word timings appear on the Data output.

promptaudiotranscriptTextThe scriptText to SpeechForced Alignment
The same script is spoken by Text to Speech and then aligned against the speech, word by word.

Inputs and output

InputAcceptsWhat it does
AudioAudio nodes, such as Upload Audio, Reference Audio and Text to SpeechThe recording to align.
TranscriptText nodes, such as TextThe spoken text, instead of the Transcript field.

The output, Data, is a list of words with their start and end times. It is data, not audio, so it connects to nodes that take text or data.

Settings

SettingWhat it does
TranscriptThe full text spoken in the audio, as plain words. It must match the speech closely.
Pre & post textText that is always added before and after the transcript. It is hidden from people who use your workflow as an app. See Prompt pre and post text.

Read the result

The Data output looks like this:

[
  { "word": "Hello", "start": 0.0, "end": 0.35 },
  { "word": "world", "start": 0.38, "end": 0.72 }
]
FieldWhat it means
wordThe aligned word.
startWhen the word starts, in seconds.
endWhen the word ends, in seconds.

Models

ModelMakerModesCreditsDetails
ElevenLabs Forced AlignmentElevenLabsForced alignment30Align an existing transcript to audio with word-level timestamps.

Tips

  • Match the transcript to the speech. Differences between the text and the audio make the timings unreliable.
  • Clean up the transcript. Remove filler words, false starts and notes such as [music], unless they are really spoken.
  • Use plain text. Leave out timestamps, speaker labels and formatting. Write only the words as they are spoken.
  • Cover the whole recording. A partial transcript only aligns the part it covers.
  • Clean noisy audio first. Wire the recording through Voice Extractor for more accurate timings.
  • Expect lower accuracy on hard speech. Very fast speech, heavy accents and overlapping speakers can reduce accuracy.

From the API

The MCP tool is forced_alignment. See the MCP tools.

Frequently asked questions

Last updated on

On this page