Voice AI

What Is a VUI?

A conversational interface that takes spoken input and returns spoken output, made of mic capture, ASR, dialog logic, and TTS playback.

What Is a VUI?

A VUI (voice user interface) is the conversational surface a user speaks to and listens to. It is built from mic capture, voice activity detection, ASR, intent and dialog logic, and TTS playback. A VUI can be standalone (smart speaker, IVR replacement, in-car assistant) or paired with a screen on a phone, kiosk, or AR device. In FutureAGI’s view, a VUI is measurable: simulate calls with LiveKitEngine, instrument production with traceAI:livekit, and score per-call with ASRAccuracy, TTSAccuracy, AudioQualityEvaluator, and turn-timing signals.

Why VUIs Matter in Production LLM and Agent Systems

Users do not feel the LLM. They feel the VUI. A 200 ms increase in time-to-first-audio feels like a slow assistant. A barge-in that ignores the user feels rude. A TTS that mispronounces a name feels careless. Even when the agent is correct, a poor VUI ruins adoption and retention.

Failure modes are specific. The mic captures background TV; ASR transcribes a phantom intent; the agent triggers a wrong tool. The VUI plays TTS while the user is talking; turn timing breaks. The on-screen state shows “listening” while the agent is generating; trust drops. Engineers see this as inconsistent UX bug reports; SREs see latency variance; product teams see voice-first session drop-off; compliance teams see partial transcripts that miss spoken disclosures.

In 2026, VUIs also fuse with text and visual controls in mobile apps, kiosks, and AR headsets. The same agent might serve a phone IVR, a mobile app overlay, and an in-car assistant within one product surface, and each VUI shape demands different latency, audio, and turn rules. A useful evaluation looks at acoustic input, latency, turn timing, audio output, and outcome together. Unlike a session-replay-only score, FutureAGI’s approach is that the VUI is a measurable surface, not vibes, and every release should produce numbered evidence per stage.

How FutureAGI Handles VUIs

FutureAGI’s approach is to expose VUI-relevant signals as named evaluators and span fields, never as a single black-box “interface score”. LiveKitEngine provides controlled voice simulation. traceAI:livekit and traceAI:pipecat instrument live calls and capture per-stage spans. The Dataset API stores call records and attaches evaluators with Dataset.add_evaluation.

A real example: a banking app rolls out a new VUI. Pre-launch, LiveKitEngine runs 1,000 calls across personas (calm, frustrated, soft, accented, mobile-on-loud-speaker). The bundle attaches ASRAccuracy (capture quality), TTSAccuracy (output quality), AudioQualityEvaluator (acoustic conditions), CustomerAgentInterruptionHandling (turn timing), and DataPrivacyCompliance (PII checks for spoken account numbers). The evaluation store flags high cut-off rates on soft speakers; the team retunes VAD and reruns. In production, traceAI:livekit instruments live calls; the Agent Command Center routes 5% of traffic through the new VUI using a routing policy.

Unlike a session-replay-only UX score, FutureAGI ties VUI pain to specific stages. Engineers can fix the actual cause instead of guessing at “the interface.”

How to Measure or Detect It

VUI quality reduces to a small bundle of measurable signals:

  • Time-to-first-audio p50, p95, p99 as the user-perceived latency.
  • ASRAccuracy for capture-side fidelity.
  • TTSAccuracy for output fidelity and pronunciation.
  • AudioQualityEvaluator for clipping, noise, and silence in capture or playback.
  • CustomerAgentInterruptionHandling for barge-in and overlap behavior.
  • Cut-off rate, dead-air seconds, missed-utterance rate from trace timestamps.
  • Drop-off and re-prompt rate from product analytics.

Minimal eval shape:

from fi.evals import TTSAccuracy

tts = TTSAccuracy()
result = tts.evaluate(
    input="Confirming your transfer to Singh and Co.",
    output_audio_path="/tmp/tts_response.wav",
)
print(result.score)

That snippet checks output fidelity. Pair it with ASR and audio quality evaluators to cover the full VUI loop, then bind the run to a Dataset so regressions across releases are comparable. Unlike voice-first UX scoring tools that grade only the recorded call, this approach attaches the score to the same trace that produced it, which lets engineers route failures to the owning component instead of debating subjective interface quality.

Common Mistakes

Avoid these traps in VUI design and rollout:

  • Skipping device-side variability. Same agent on a Bluetooth headset, a speakerphone, and a car kit produces three different ASR profiles; test every primary device.
  • Single-language testing. Real users have accents, code-switch mid-sentence, and pronounce names in unexpected ways; stretch personas to match.
  • Mean latency reporting. Tail latency drives drop-off, so track p95 and p99 time-to-first-audio per device and locale.
  • No barge-in or backchannel tests. Real callers interrupt and acknowledge; scenarios should include both, with expected agent recovery.
  • No audio capture for live traces. Without audio joined to spans, regressions cannot be reproduced, and root-cause analysis stays anecdotal.
  • Treating the VUI as one number. Roll up ASRAccuracy, TTSAccuracy, latency, and turn handling separately so failures route to the owning team.

Frequently Asked Questions

What is a voice user interface (VUI)?

A VUI is the conversational surface a user speaks to and listens to. It is built from mic capture, ASR, intent and dialog logic, and TTS playback, and can stand alone or pair with a screen.

How is VUI different from a voice agent?

A voice agent is the reasoning system that decides what to do. A VUI is the user-facing surface that captures speech, plays audio, and renders state. The same agent can power many VUIs (phone, app, kiosk, AR).

How do you evaluate a VUI in FutureAGI?

Run `LiveKitEngine` simulations across realistic personas, score with `ASRAccuracy`, `TTSAccuracy`, `AudioQualityEvaluator`, and `CustomerAgentInterruptionHandling`, and instrument live calls with `traceAI:livekit` to track time-to-first-audio.