Prompt
How do I get word-level timestamps from speech-to-text?
Latest observation
Oct 11, 2026
OpenAI APIWeb search: off
To get word-level timestamps from speech-to-text, you need an ASR system that supports time alignment for each token/word, not just the full utterance.
Common ways
1) Use an API/model that natively returns word timestamps
Some speech-to-text services can return timestamps per word directly.
Examples:
- OpenAI Whisper API / Whisper-based tools: often provide segment timestamps; some implementations add word-level timing.
- Google Speech-to-Text
- AWS Transcribe
- Azure Speech
Usually you enable an option like:
word_timestamps=trueenableWordTimeOffsetsshow_word_time_offsets
2) Use forced alignment after transcription
If your STT model only gives the transcript, you can align the text to audio afterward using a forced aligner.
Popular tools:
- Montreal Forced Aligner
- Gentle
- WhisperX
- aeneas
This is useful when:
- your ASR doesn’t support word timestamps
- you need better accuracy
- you have a transcript already
3) Use Whisper with word-level alignment tools
Whisper itself gives segment timestamps, but tools like WhisperX can add word-level timestamps by:
- running Whisper for transcription
- aligning the transcript to audio with a separate alignment model
This is one of the most common workflows.
If you’re using WhisperX
Typical flow:
- Transcribe audio
- Align transcript to audio
- Read word start/end times
Output often looks like:
[
{"word": "Hello", "start": 0.52, "end": 0.84},
{"word": "world", "start": 0.85, "end": 1.12}
]
General advice
To get good word timestamps:
- use clean audio
- make sure the sample rate is standard (often 16 kHz)
- avoid heavy background noise
- if possible, use a model trained for alignment or a dedicated aligner
If you tell me which speech-to-text tool/API you’re using, I can give you the exact steps or code.