# 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.

Source: https://nodaro.ai/docs/nodes/audio/forced-alignment

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.

- Found in: Audio › Transcribe
- Output: data
- API type: `forced-alignment`

## 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](https://nodaro.ai/docs/nodes/audio/text-to-speech) output against the pacing you expect.

When you do not have a transcript, use [Transcribe](https://nodaro.ai/docs/nodes/audio/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.

Workflow: The same script is spoken by Text to Speech and then aligned against the speech, word by word.

- Text → Text to Speech (prompt)
- Text to Speech → Forced Alignment (audio)
- Text → Forced Alignment (transcript)

## 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](https://nodaro.ai/docs/concepts/prompt-pre-post-text). |

## Read the result

The **Data** output looks like this:

```json
[
{ "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](https://nodaro.ai/docs/models/audio/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](https://nodaro.ai/docs/nodes/audio/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](https://nodaro.ai/docs/mcp/tools).

## Frequently asked questions

### What is the difference between Forced Alignment and Transcribe?

Transcribe works out what was said and when. Forced Alignment already knows what was said, from your transcript, and finds exactly when each word is spoken. Use it when you have the exact script.

### Does the transcript need to match the audio exactly?

As closely as possible. Words that are not spoken, or spoken words that are missing from the transcript, make the timings unreliable. Remove notes, labels and filler words that are not in the audio.

### In which units are the timestamps?

In seconds. Each word has a start and an end, for example a word from 0.38 to 0.72 seconds.

### Does Forced Alignment return audio?

No. Its output is data, a list of words with their times. It connects to nodes that take text or data, not to audio inputs.
