Research

Word Timestamps for Qwen3-ASR without the Slowdown

TL;DR

Nari Qwen3-ASR now includes word-level timestamps without delaying your final transcript, at no additional cost. We run the full Qwen3-ForcedAligner-0.6B alongside our streaming model while keeping STT untouched.

Adding a second model would normally make every final transcript slower. But through clever scheduling, we keep performance virtually identical to STT running alone.

How do we compare to other endpoints?

Several realtime STT APIs still do not expose word-level timing:

Realtime API Per-word timing in public schema Documented realtime output
OpenAI gpt-live-transcribe No Explicitly unsupported
Baseten Qwen3-ASR Streaming No Segment-level segments[]
Mistral Voxtral Realtime No Text and segment events
Together Realtime transcription No Text and optional token confidence
Gradium Realtime STT No Segment-level start_s / stop_s

Checked against public realtime API references and, where available, current official SDK types on September 23, 2026. “No” means the documented realtime schema does not expose per-word start and end times. Batch endpoints and undocumented or private features are out of scope.

Using word-level timestamps

This is an additive change, so no existing fields are removed or modified. To receive word-level timestamps, set word_timestamps to true in your session configuration:

{
  "type": "session.configure",
  "session": {
    "model": "qwen3-asr-fast",
    "word_timestamps": true
  }
}

Once enabled, the final transcript is delivered first and the word-level timestamps follow in a separate event. Both events share the same item_id, allowing clients to match them even when several utterances are in flight. Each word includes its start and end times in seconds, measured from the beginning of the utterance.

{
  "type": "transcript.words",
  "event_id": "event_4",
  "item_id": "utterance_1",
  "words": [
    { "word": "Hello", "start": 0.0, "end": 0.32 },
    { "word": "welcome", "start": 0.35, "end": 0.78 }
  ]
}

For the complete protocol, see the realtime Transcription guide and the Nari API Reference.

Running Qwen3-ForcedAligner-0.6B Alongside STT

Qwen3-ASR produces the transcript, but generating word boundaries requires a second model pass over the completed text and audio. A naive implementation places the aligner in a separate process.

This becomes more costly when the aligner launches a long operation just before STT needs to finalize a transcript. Lowering the aligner process priority helps in some cases, but can cause very long wait times for the timestamp return.

We instead expose ASR and alignment as independently schedulable tasks under one runtime. Our endpoint protects the final-transcript path, batches compatible alignment jobs, and advances the aligner without holding up urgent STT work.

Separate process vs. our endpoint

Final transcript latency

Separate process Baseline
Our endpoint 12% lower
Relative final transcript latency while Qwen3-ForcedAligner-0.6B is running. Lower is better.

If you are bringing Qwen3-ASR into production and need more than the hosted API, talk to our engineers. We can help design a custom deployment around your application, from realtime integration to inference performance.