Voice AI engineering
Voice agents fail on phone calls in ways a browser demo never shows: phone audio arrives at 8 kHz, the network adds delay your server logs cannot see, and the bot stops talking when a caller says "hmm". These guides come from running phone agents in production. Each starts with the symptom developers search for, explains the cause and shows the fix, with the numbers we measured where we have them.
Connecting the call comes first. Pipecat vs LiveKit for phone agents explains the deciding difference, which is whether calls reach your code as a carrier's WebSocket audio stream or over a SIP trunk. Putting an agent on a +91 number covers the Indian rule that call audio must stay on servers in India, and silence on Twilio Media Streams covers the only format Twilio will play: base64 μ-law at 8000 Hz on a bidirectional stream.
Then check the audio. 8 kHz phone audio in 16 kHz models fails without any error, because the model hears speech at double speed. Whisper hallucinating on silence turns line noise and hold music into words; in a 2025 study, 40.3% of non-speech clips came back as text. For Arabic agents, recognising yes and no is the turn that fails most.
For speed, latency on Indian phone calls breaks the reply down hop by hop: most of it goes on deciding the caller has finished and waiting for the model's first words. Time to first token explains what drives the model's share, chiefly prompt length. Filler audio covers the gap without making the agent faster, and backchannels such as haan and hmm explain why bots stop mid-sentence and how to ignore them without dropping short answers.
Two guides cover model behaviour on calls: empty replies from reasoning models, which usually mean hidden reasoning used up the output cap, and agents that ignore a tool result, usually because the result arrived under the wrong role or as escaped text the model skips.
Why your Arabic voice bot hears English, and how to fix "نعم"
Choosing an LLM for a phone agent: time to first token, prompt size and tool results
Give your Pipecat or LiveKit agent a real +91 number: Exotel, Airtel and Plivo SIP gotchas
Empty replies from reasoning models in voice agents: thinking tokens eat your max_tokens
Call connects, greeting plays, then silence: μ-law and WebSocket audio fixes
Filler audio: hiding LLM think-time without sounding fake
Your voice agent ignored the answer your tool returned: tool-result formats that work
Why voice agents feel slower on Indian phone calls, and where the time goes
Stop your voice bot from being interrupted by "haan", "achha" and "hmm"
Why Whisper invents sentences on silent phone lines, and how to gate it
Pipecat vs LiveKit for phone agents: how calls connect, what each handles, and how to test them
Building voice agents that follow the rules?
Sonex Labs voice agents speak 250+ languages, with calling windows, retry limits and recordings set per campaign.











