The Call Connects and Audio Starts Streaming

The moment a caller's phone finishes dialing, the call is handed to the voice agent over a live audio stream, not a recording that gets processed after the fact. From that first second, raw audio is flowing in small chunks, typically tens of milliseconds at a time, so the system can start working on what the caller is saying while they are still saying it. This is different from how older IVR systems worked, where the system waited for a caller to finish speaking, then processed a full recording, then responded. A modern voice agent treats the call as a continuous stream in both directions: audio coming in from the caller, audio going out from the bot, both moving constantly. Nothing downstream can happen until this connection is stable and low-latency, which is why the audio transport layer, quiet as it seems, is the foundation the rest of the call depends on.

Speech-to-Text: The Words Get Transcribed as They're Spoken

As soon as audio starts arriving, a speech-to-text model begins turning it into words, and it does this incrementally rather than waiting for the caller to stop talking. The transcription updates continuously, word by word, refining itself as more audio comes in, similar to how live captions on a video call fill in and correct themselves in real time. The system also has to detect when the caller has actually finished a thought, called end-of-turn or endpointing, which is trickier than it sounds. Someone saying "I want to book an appointment for, uh, next Tuesday" pauses mid-sentence, and a naive system might jump in too early and cut them off. A good speech-to-text layer distinguishes between a thinking pause and a completed turn, because guessing wrong in either direction breaks the conversation, either by interrupting the caller or by leaving dead air that makes the bot seem unresponsive.

The Language Model Interprets Intent and Decides What Happens Next

Once the caller's turn is complete, the transcribed text goes to the language model, which is doing more than generating a reply. It has to interpret what the caller actually wants, which may not match their exact words, hold onto the context of everything said earlier in the call, and decide on an action, whether that is answering a question, asking a clarifying question, looking up an order status, checking calendar availability, or flagging that this call needs a person. This is the reasoning step of the loop, and it is also the one most likely to introduce lag if it is not built for speed, since a model that takes two or three seconds to think breaks the rhythm of a phone conversation even if its answer is perfect. The output of this step is not just a sentence to say back; it is a decision about what the call does next.

Text-to-Speech: The Response Becomes a Voice

The model's response, still just text at this point, gets converted into audio by a text-to-speech engine, and this conversion also happens in a streaming fashion rather than all at once. The first words of the response start playing to the caller before the rest of the sentence has even finished generating, the same way a person starts speaking before they know exactly how their sentence will end. This streaming approach shaves real time off the response, because waiting to synthesize an entire reply before playing any of it would add a noticeable delay on every single turn. The voice itself also has to sound natural, with appropriate pacing and intonation, because a flat or robotic delivery undercuts the sense that the caller is in an actual conversation, even if the words themselves are correct.

Barge-In: What Happens When the Caller Interrupts

Real conversations are not strictly one person speaking after another finishes; people interrupt, correct themselves, and talk over each other, and a voice agent has to handle this or it will feel unmistakably like a machine. Barge-in handling means the system is listening for the caller's voice even while its own response is still playing, and the instant it detects the caller speaking, it stops its own audio mid-sentence, discards whatever it had queued up to say, and starts processing the new input. Done well, this happens fast enough that the bot seems to react naturally, the way a person stops talking when interrupted. Done poorly, the bot either talks over the caller obliviously or has a noticeable lag before it stops, both of which are strong signals to a caller that they are talking to something automated and not particularly good at it.

The Handoff: When the Bot Calls in a Human or Takes an Action

Not every call should end with the bot handling everything itself, and knowing when to hand off is part of the decision the language model makes each turn. Triggers for handoff typically include the caller explicitly asking for a person, the model detecting frustration or repeated confusion, a request that falls outside what the bot is configured to resolve, or a business rule that certain topics always route to a human. On the other side, plenty of turns end not with a handoff but with an action: booking an appointment, updating a record, sending a confirmation, or checking a system for real-time information, all of which the model can trigger directly as part of the response rather than just talking about doing them. Every step described here, from the audio connecting to the response playing back, has to complete in roughly a couple hundred milliseconds combined for the call to feel like a real conversation instead of a laggy back-and-forth with a machine; that latency budget is why Persistence built this pipeline end-to-end as a single system rather than stitching together separate transcription, model, and voice vendors.

Key takeaways

  • A single AI phone call is really four systems running in a tight loop: audio streaming, speech-to-text, a language model, and text-to-speech, repeated every turn.
  • Each leg of that loop has to finish in well under a second combined, because anything past a couple hundred milliseconds of silence reads to a caller as the bot freezing or not listening.
  • Barge-in handling, the ability to stop mid-sentence when the caller talks over the bot, is what makes the difference between a conversation and an IVR menu with a synthetic voice.
  • The model does not just generate text; it also decides when to end the turn, when to trigger a booking or lookup action, and when to route the call to a human.
  • Persistence built this entire pipeline as one system rather than wiring together separate transcription, model, and voice vendors, which is what keeps the loop fast enough to feel like talking to a person.