Research → Article
Why Transcript-Based Evals Miss the Real AI Voice Agent Failures

Why Transcript-Based Evals Miss the Real AI Voice Agent Failures

Here is the uncomfortable part of shipping conversational AI phone agents: most teams certify readiness with a method that is structurally blind to how their agent actually breaks.

The standard playbook is LLM-as-judge. You run test conversations, feed the transcripts to a strong model, and ask it to score correctness, tone, and goal completion. It feels rigorous. It produces a number. And it quietly grades the one layer that rarely fails while ignoring the layers that do.

The judge reads clean text. The caller hears broken audio.

When an LLM judge scores a transcript, it reads polished words on a page. But the field’s own production data says the top breakers never survive as clean text. Hamming AI’s look at millions of production calls points to subtle speech-to-text (ASR) errors that flip caller intent, silence timeouts, and barge-in collapse. Fabian at AI Acoustics keeps hammering the same point: real rooms with echo, poor mics, a TV in the background, and side speech are what destroy ASR and voice activity detection. GrowwStacks found the same in elderly-care calls, where background audio triggers false VAD and the agent talks over itself.

Now trace what the judge sees. An ASR error already collapsed “I do not want to renew” into “I want to renew” before the transcript existed. The judge reads the wrong sentence and cheerfully rates the response as correct and on-goal. A false VAD trigger cut the caller off mid-word, but the transcript reads as a clean turn. A three second pause that made a human hang up leaves no trace in text at all.

The eval inherits the exact failure it is supposed to catch. You are grading your agent on an exam that omits every question it fails.

Why I care about this before go-live, not after

I have watched too many voice agents demo beautifully and then stall the moment they meet real customer calls. The reason measuring readiness matters before launch is that voice failures are not traceable the way an IVR decision tree is. When a call goes wrong, was it the ASR, the intent classifier, the latency budget, or a slow backend? If your only pre-launch signal is a transcript score, you never even see the question, let alone the answer.

That is the pilot to production gap in one sentence. Fewer than one in eight enterprise voice-AI pilots reach production, and I do not think that is because the models cannot reason. It is because teams validated the reasoning layer and shipped the pipeline untested.

Evals absolutely help. LLM-as-judge is genuinely useful. But it has to judge the right artifact, and it has to be trusted only after it has been checked itself.

What an audio-native go-live gate actually looks like

Two changes fix most of this.

First, judge on degraded audio, not final transcripts. Take your own production call history, not synthetic studio suites, and deliberately degrade it: add echo, competing voices, low-bitrate phone codecs, packet loss, and a television in the next room. Run the full stack. Then evaluate what the caller would experience, including the audio the agent produced and whether it interrupted itself. Fabian’s “professional audio destroyer” idea belongs in your CI, not just your imagination.

Second, score latency and correctness jointly, because a correct answer delivered too late is still a failed call. Nobody evaluates these together, and that is a mistake. A response that is factually perfect at 2.5 seconds of dead air loses the customer just as surely as a wrong answer. Your judge should mark a turn as failed if time-to-first-audio blows the budget, full stop, regardless of content quality.

Here are two specific criteria I have not seen written down, that any judge can actually score:

Validate the judge, or you are trusting an unmeasured instrument

Everyone endorses evals. Almost nobody asks whether the evaluator is reliable for spoken interactions. LLM judges are prompt-sensitive, biased toward fluent-sounding output, and inconsistent across runs. For voice, that fluency bias is dangerous, because a smooth wrong answer reads better than an accurate but clipped one.

So audit the judge. Hand-label a few hundred real calls, including ugly ones. Measure how often the judge agrees with humans, and check that it stays consistent when you rephrase the rubric. If your judge cannot reliably agree with people on calls you already know are broken, its verdict on new calls is decoration.

The takeaway

Treat every prompt change as a deployment and re-validate it. Measure goal completion, not word accuracy. But do it on real degraded audio, score latency and correctness together, and prove your judge is trustworthy before you trust it. A go-live gate that only reads transcripts is certifying the layer that does not break.

Here is my question for the builders shipping voice AI agents in production: what is in your readiness gate today, and would it catch an ASR error that quietly flipped your caller’s intent?