Case study ยท NerdWare Tech

Talk over it.
It stops.

A streaming voice agent built to answer inside 500 ms and go silent the instant you cut in.

See the budget
Channel scope simulated signal
CALLER AGENT
TTS buffer

State: LISTENING

VAD armed. Waiting for an agent turn.

Target budget, illustrative. Not measured on a running system.

Where the 500 ms goes.

Each stage starts streaming before the last one finishes. The legacy cascade waits for whole files at every hop.

Target budget / illustrative. Cascade figures are a representative range for a record, upload, batch-transcribe, complete, synthesize bot (about 1.5 to 2.5 s), not a benchmark of any product.

One stream, no files, no polling.

Audio frames move through memory from the caller's mic to the caller's speaker. Nothing is written to disk and nothing waits on a poll.

  1. CallerBrowser or phone mic, Opus framesin
  2. LiveKit SFUWebRTC transport<100 ms
  3. Agent workerLiveKit Agents SDK. Local Silero VAD runs here.<5 ms VAD
  4. Deepgram Nova-3Streaming STT, interim then final<150 ms
  5. Llama 3.3 70BOn Groq or Cerebras, streamed tokens, memory retrieved in parallelTTFT first
  6. Cartesia Sonic-3Streaming TTS, first byte out<90 ms

The cancel path

When the VAD hears the caller during agent speech, the worker does four things in one tick, in this order.

  1. Mark the turn as interrupted.
  2. Abort the in-flight LLM stream.
  3. Close the TTS stream and flush every pending audio buffer, so no stale words play after the cut.
  4. Keep the partial reply in memory with an interrupted flag, then hand the floor to STT.

Stateful memory sits beside the LLM: the last turns plus retrieved facts for this caller, fetched while STT is still finalizing.

Every turn reports its own latency.

The agent emits four timings per turn, so a slow stage is visible the same hour it regresses. The rows below are simulated by the scope above.

Illustrative values around the target budget
Simulated per-turn telemetry in milliseconds
TurnTransportSTTLLM TTFTTTS TTFBRound tripBarge-in

Built for people who are already stressed.

Emergency dispatch triage

A caller in distress will talk over a slow bot. The agent has to yield instantly, keep the address and the symptom in memory, and never replay a half-sentence the caller already corrected.

Insurance claims intake

Long, interrupted narratives. Barge-in lets the caller fix a date mid-sentence without restarting the form.

Technical interviews

Natural turn-taking matters more than polish. A reply that starts under half a second feels like a person, not a queue.

The stack, by job.

Transport
LiveKit Agents SDK over a WebRTC SFU
Hearing
Deepgram Nova-3 streaming STT, local Silero VAD
Thinking
Llama 3.3 70B on Groq or Cerebras, with stateful memory retrieval
Speaking
Cartesia Sonic-3 streaming TTS
Observing
Per-turn telemetry: STT, TTFT, TTFB, round trip

NerdWare Tech

Want an agent that answers the phone?

Tell us the calls you want handled. The waveform above is a simulation and the latency figures are target budgets.

Book a free call