Timestamps
Speech Revolutions returns a start and end time for every word, in seconds from the beginning of the audio. Word timestamps are on by default (word_timestamps=true). Use them for subtitle cues, speaker turns, clip extraction, and karaoke-style highlighting.
Read timestamps from .words
With the default output_type="json", the SDK parses the response into a transcript object. Each entry in result.words has the word text, its start and end (floats, in seconds), and a speaker when speaker labels are on.
result = client.transcribe("meeting.mp3") # word_timestamps=True by default
for w in result.words[:5]:
print(f"{w.start:6.2f}–{w.end:6.2f} {w.word}")
# 0.48– 0.71 Hello
# 0.71– 1.02 everyonePer-word fields
| Field | Type | Meaning |
|---|---|---|
word | string | The token. .text is an AssemblyAI-compatible alias. |
start | float | Seconds from the start of the audio to the word onset. |
end | float | Seconds from the start of the audio to the word offset. |
speaker | string | null | Set when speaker_labels is on; otherwise absent. |
confidence | float | null | Per-word confidence when the model reports it. |
language | string | null | The detected language of this word. See language detection for the transcript-level result.languages segments. |
The JSON shape
The json output is a document with a words array. The SDK parses it into result.words and derives result.text and result.utterances from it. The raw document is available as result.raw.
{
"words": [
{ "word": "Hello", "start": 0.48, "end": 0.71, "speaker": "SPEAKER_1" },
{ "word": "everyone", "start": 0.71, "end": 1.02, "speaker": "SPEAKER_1" }
]
}Use result.to_dict() for a normalized, provider-neutral dict, or result.to_deepgram() for a Deepgram-shaped response. Both keep the per-word start/end.
normalized = result.to_dict() # {"id", "text", "words": [...], "utterances": [...]}
first = normalized["words"][0]
print(first["start"], first["end"], first["word"])srt and vtt return timestamps already formatted as subtitle cues; docx and pdf return formatted documents. To work with timings in code, use the default json output and read .words. See output formats & subtitles.
Turning timestamps into cues
To get timed subtitles, request output_type="srt" or "vtt". Use .words when you need custom windows, such as fixed-length caption lines or a clip between two timestamps.
Accuracy
Timestamp accuracy is measured in the public benchmark suite, alongside word error rate and diarization. See the benchmarks page for current numbers and methodology.
Speaker diarization adds a speaker to each word and groups them into turns. The cookbook has copy-paste subtitle recipes.