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.
Inputs and output
| Input | Accepts | What it does |
|---|---|---|
| Audio | Audio nodes, such as Upload Audio, Reference Audio and Text to Speech | The recording to align. |
| Transcript | Text nodes, such as Text | The 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
| Setting | What it does |
|---|---|
| Transcript | The full text spoken in the audio, as plain words. It must match the speech closely. |
| Pre & post text | Text 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 }
]| Field | What it means |
|---|---|
word | The aligned word. |
start | When the word starts, in seconds. |
end | When the word ends, in seconds. |
Models
| Model | Maker | Modes | Credits | Details |
|---|---|---|---|---|
| ElevenLabs Forced Alignment | ElevenLabs | Forced alignment | 30 | Align 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
Related
Transcribe
Text to Speech
Voice Extractor
Add Captions
ElevenLabs Forced Alignment
Last updated on
Transcribe
Turn the speech in audio or video into text with ElevenLabs STT or Whisper. Get word timings for captions, speaker labels, and tags for music and laughter.
Generation settings nodes
The Generation Settings nodes each hold one value, such as a model or a tone. Only Tone reaches a run, through the Look input of image and video nodes.