Feature guide

Speaker diarization and word timestamps

Attach who-spoke-when metadata to the sealed transcript. The decoration lanes receive the final text and audio, then map speaker labels and acoustic word boundaries without changing a single transcript word.

Request diarization

curl https://api.omi.health/v1/audio/transcriptions \
  -H "Authorization: Bearer $OMI_API_KEY" \
  -F [email protected] \
  -F model=omi-medical-1 \
  -F language=en \
  -F response_format=verbose_json \
  -F diarize=true

Use response_format=verbose_json and diarize=true. Async job JSON accepts the same Boolean plus max_speakers from 1 through 4. On the synchronous endpoint, the current preview uses the service default speaker maximum.

Response shape

{
  "text": "Where does it hurt? My chest, mostly.",
  "segments": [
    {"id":"seg_0001","speaker":"A","text":"Where does it hurt?","start":0.32,"end":1.44},
    {"id":"seg_0002","speaker":"B","text":"My chest, mostly.","start":1.76,"end":2.93}
  ],
  "words": [
    {"word":"Where","start":0.32,"end":0.58,"speaker":"A"},
    {"word":"My","start":1.76,"end":1.91,"speaker":"B"}
  ],
  "speakers": [{"speaker":"A"},{"speaker":"B"}]
}
FieldMeaning
segments[].speakerAnonymous session-local label on a text segment.
words[].speakerSpeaker mapped to an acoustic word boundary when available.
start / endSeconds from the start of the input audio.

Important semantics

  • Speaker labels such as A and B identify clusters within one recording; they are not names or inferred clinical roles.
  • Word timestamps are acoustic boundaries and may not exactly match subtitle-style display timing.
  • Very short interjections, overlapping speech, strong reverberation, and background speech can reduce attribution quality.
  • Consumers should tolerate an unattributed word or speaker transition near overlap.
  • Use the same speaker label only within the response that produced it; labels are not stable identities across jobs.

Zero text mutation is a product invariant

Diarization, word alignment, and speaker reconciliation are decoration lanes. They can fail explicitly, but they cannot rewrite the sealedtext field.