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  everyone

Per-word fields

FieldTypeMeaning
wordstringThe token. .text is an AssemblyAI-compatible alias.
startfloatSeconds from the start of the audio to the word onset.
endfloatSeconds from the start of the audio to the word offset.
speakerstring | nullSet when speaker_labels is on; otherwise absent.
confidencefloat | nullPer-word confidence when the model reports it.
languagestring | nullThe 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.

json output (abridged)
{
  "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.

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

Related

Speaker diarization adds a speaker to each word and groups them into turns. The cookbook has copy-paste subtitle recipes.