> ## Speko page index
> The complete index of every page on this site is at: https://speko.ai/llms.txt
> Read it before exploring further. It lists the exact Markdown URL for every canonical HTML page.

# Voice agent latency measurement framework

<a id="main"></a>

The useful voice agent latency number is the time from the caller finishing a turn to the first audible agent response. Trace it across turn detection, streaming speech-to-text, LLM first token, streaming text-to-speech and media transport. This page defines the clocks and test controls; it does not combine measurements from different benchmark runs into a synthetic latency budget.

Measurement rule

Keep one end-to-end clock. Component clocks explain the result; they do not replace it.

Author

Speko engineering

Reviewed by

Speko engineering

Published

August 2, 2026

Last reviewed

August 2, 2026

<a id="clocks-heading"></a>

## Which clocks should a latency trace record?

| Stage | Clock | Production check | Evidence |
| --- | --- | --- | --- |
| Turn detection | Last caller audio to a committed end-of-turn decision | Test pauses and backchannels, not only clean read speech. | [Turn-taking board](https://benchmarks.speko.ai/turntaking/) [Smart Turn method](https://benchmarks.speko.ai/blog/how-speko-uses-smart-turn/) |
| Streaming STT | Committed turn to the final transcript used by the agent | Record partial and final timestamps. A fast partial is not a usable final. | [Streaming STT board](https://benchmarks.speko.ai/streaming-stt/) |
| LLM | Final transcript available to the first usable output token | Measure first token on the prompts, tools and guardrails used in calls. | [LLM board](https://benchmarks.speko.ai/llm/) [Model size test](https://benchmarks.speko.ai/blog/mini-is-not-a-latency-tier/) |
| Streaming TTS | First speakable text chunk to the first playable audio | Measure first audio and long-form stability separately. | [TTS board](https://benchmarks.speko.ai/tts/) [Speed and quality profile](https://benchmarks.speko.ai/blog/cartesia-fast-and-natural/) |
| Full response | Last caller audio to the first audible agent response | Trace the complete call in one region; do not add medians from separate runs. | [Speech-to-speech board](https://benchmarks.speko.ai/s2s/) [Conversation latency test](https://benchmarks.speko.ai/blog/gpt-realtime-2-1-mini-fastest/) |

<a id="measure-heading"></a>

## How should production latency be measured?

1. Timestamp the last caller audio, committed transcript, first LLM token, first TTS byte and first played audio.
2. Run the same prompts, tools, voices, regions and network path for every candidate.
3. Publish sample size, run date, median and tail latency. Keep errors and empty responses in the denominator.
4. Replay pauses, backchannels, noisy audio and tool calls from the calls the agent must actually handle.

## What usually moves the number?

- Endpointing can add delay before any model request begins.
- LLM tokens per second do not answer the first-token question.
- TTS must receive a speakable chunk before it can stream audio.
- Region placement and media playback add time outside the model APIs.
- A model or provider change should be evaluated on the full call, not a single component score.

<a id="architecture-heading"></a>

## Cascade or speech-to-speech?

A cascade exposes separate STT, LLM and TTS clocks and lets the application replace one component. A speech-to-speech model can shorten the path, but it changes the observability, cost and component-control tradeoff. Compare both on the same complete conversation before changing the architecture.

Further evidence

Read the measured [cascade and speech-to-speech comparison](https://benchmarks.speko.ai/blog/can-s2s-replace-the-cascade/), then inspect the [voice agent infrastructure map](https://speko.ai/voice-agent-infrastructure/).
