English

Building Enterprise Realtime Voice Agents from Scratch: A Technical Tutorial

Sound 2026-03-18 v2

Abstract

We present a technical tutorial for building enterprise-grade realtime voice agents from first principles. While end-to-end speech-to-speech models may ultimately provide the best latency for voice agents, fully self-hosted end-to-end solutions are not yet available. We evaluate the closest candidate, Qwen3-Omni, across three configurations: its cloud-only DashScope Realtime API achieves \sim702ms audio-to-audio latency with streaming, but is not self-hostable; its local vLLM deployment supports only the Thinker (text generation from audio, 516ms), not the Talker (audio synthesis); and its local Transformers deployment runs the full pipeline but at \sim146s -- far too slow for realtime. The cascaded streaming pipeline (STT \rightarrow LLM \rightarrow TTS) therefore remains the practical architecture for self-hosted realtime voice agents, and the focus of this tutorial. We build a complete voice agent using Deepgram (streaming STT), vLLM-served LLMs with function calling (streaming text generation), and ElevenLabs (streaming TTS), achieving a measured time-to-first-audio of 755ms (best case 729ms) with full function calling support. We release the full codebase as a 9-chapter progressive tutorial with working, tested code for every component.

Keywords

Cite

@article{arxiv.2603.05413,
  title  = {Building Enterprise Realtime Voice Agents from Scratch: A Technical Tutorial},
  author = {Jielin Qiu and Zixiang Chen and Liangwei Yang and Ming Zhu and Zhiwei Liu and Juntao Tan and Wenting Zhao and Rithesh Murthy and Roshan Ram and Akshara Prabhakar and Shelby Heinecke and Caiming Xiong and Silvio Savarese and Huan Wang},
  journal= {arXiv preprint arXiv:2603.05413},
  year   = {2026}
}
R2 v1 2026-07-01T11:05:18.331Z