WhoBuilt

How Voice Agents Handle Latency, Turn-Taking, and Safety

Jun 29, 2026· 11 min· 87 views·Watch on YouTube

Speaker

Kræn Hansen, a React Native developer at ElevenLabs, discusses voice agent design, latency, safety, SDK architecture, and upcoming work with Callstack.

How voice agents work

Hansen describes a voice agent as a conversation with a machine using speech. Speech-to-text converts the user's words to text, an LLM processes them and generates a response, and text-to-speech turns that response back into audio. He says ElevenLabs can also convey expression such as laughter or whispering.

Latency, turn-taking, and safety

Hansen says the LLM may account for 40 to 70 percent of pipeline latency, and that faster settings can reduce expressiveness or correctness. Audio cues, such as keyboard sounds while an agent looks something up, can signal that work is happening. Turn-taking systems can distinguish acknowledgments from interruptions, while safety checks can run in streaming mode or verify output before it is spoken, with different latency tradeoffs.

Routing work across agents

A simple task such as routing a caller can use a faster model, then hand off to a more capable sub-agent for a complex task like loan advice. Teams can choose whether the voice changes during the transfer or stays the same. Hansen says the choice can help match the agent's tone to the interaction.

A layered SDK architecture

Hansen describes a universal JavaScript library, a React package with hooks and providers, and a React Native package that adds platform-specific audio input. The layered design builds framework and platform features on a shared core. Developers can bring their own UI, use provided components, or embed a chat bubble.

Making SDKs more consistent

Hansen says ElevenLabs offers both an integrated Agents platform and services that let developers bring their own LLM, including Speech Engine for adding voice to an existing chat experience. He wants to generate specifications from existing SDK implementations, compare them across languages and platforms, and bring their experiences closer together.

Takeaways

  • Use audio cues to make waiting feel intentional and reassure callers the connection is active.
  • Tune model speed, expressiveness, and accuracy to the task rather than applying one setting everywhere.
  • Treat turn-taking as an intent problem: distinguish brief acknowledgments from requests to interrupt.
  • Choose streaming or pre-verified safety checks based on the acceptable balance between latency and output control.
  • Build SDKs around a shared core, then layer framework and platform features on top.

Mentioned in this talk

Search inside this talk

What was claimed 13

Show all 13 facts

Related talks