Realtime Voice Agents with Frontier Intelligence — Bohan Li, EliseAI

Bohan Li· EliseAI13:13

Read the talk

Realtime Voice Agents with Frontier Intelligence

Bohan Li explains how the presented voice-agent harness overlaps transcription, language-model generation, background tool work, and speech synthesis so a capable but slower model can participate in a natural phone conversation.

From a talk by Bohan Li

At a glance

Ideas worth remembering

  • A cascaded voice architecture creates separate opportunities to reduce perceived latency in transcription, response planning, and speech synthesis.

  • Speculation only works with revision: newer audio cancels stale transcription work, and useful background tool results can cancel and restart an early response.

  • Preparing a response and speaking it are different decisions. The harness generates while the caller talks but waits for turn completion before emitting audio.

  • A prefix cache can play a reusable opening while fresh synthesis handles personalized content. Sending the full sentence to the provider preserves prosody, after which duplicate opening audio is suppressed.

  • The clinic exchange is a prerecorded demonstration showing a pause, changed scheduling preference, alternatives, and booking confirmation; it does not establish live backend persistence or numerical performance.

A cascaded voice stack creates three places to hide latency

The presented harness’s starting constraint is awkward but common: the voice agent needs the judgment of a capable language model, yet a phone caller notices every pause. Bohan Li approaches the problem through an analogy to his previous self-driving work. Instead of treating voice as one opaque model call, the system separates perception, planning, and control so each stage can be accelerated on its own terms.

The mapping is direct:

  • Perception — transcription: Audio signals become text the reasoning system can process, much as cameras and lidar turn the road into usable observations.
  • Planning — the language model: The model consumes that transcription and decides what the agent should say or do.
  • Control — speech synthesis: Generated text becomes audio, analogous to turning a planned trajectory into physical controls.

This decomposition exposes three different waits: recognizing the caller, preparing a useful response, and producing audible speech. The harness can overlap work across those waits instead of demanding that one faster model solve the entire latency problem.

0:120:42
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:12 · section reference included

Fast transcription can be corrected without blocking every turn

The perception layer uses what Li calls a streaming speculative transcriber. A fast streaming engine emits text immediately, while a slower batch engine processes more audio and conversational context to produce a more accurate interpretation. Downstream work can begin from the fast result instead of waiting for the slower pass every time.

What happens when an accurate result arrives after the conversation has already moved on? The correction path is freshness-aware. If both engines produce the same text, there is nothing to revise. If new streaming audio arrives while an older corrective pass is running, that correction is canceled because it no longer represents all available audio. A carefully computed stale answer loses to a newer observation.

The concrete example begins after the agent asks for a name and date of birth. Early fragments such as “Sure” arrive quickly but do not contain the requested fields. Once the slower engine has enough audio and the context of the question, it can distinguish the name-like portion from the date-of-birth portion. Punctuation-only changes are ignored, and the resulting text is released to the agent.

The diagram answers a timing question: how can the slower path improve accuracy without making every turn wait for it? Both paths begin from the same audio, but only a still-relevant correction replaces the streaming hypothesis. Newer audio can invalidate work already in flight.

Speculative transcription with cancelable correction

Incoming caller audioAudio arrives incrementally during the caller’s utterance.
Fast streaming transcriptionfast-path — Produces immediate partial detections.
Slower contextual transcriptioncorrective-path — Uses more audio and question context to improve interpretation.
Freshness checkDiscards an old correction if newer audio has arrived.
Text released to the agentThe current interpretation becomes planning input.
Fast text starts downstream work; the slower result is applied only if it remains relevant when it returns.
Read the diagram as text
  • Incoming caller audio. Audio arrives incrementally during the caller’s utterance.
  • Fast streaming transcription. fast-path — Produces immediate partial detections.
  • Slower contextual transcription. corrective-path — Uses more audio and question context to improve interpretation.
  • Freshness check. Discards an old correction if newer audio has arrived.
  • Text released to the agent. The current interpretation becomes planning input.
  • Incoming caller audio → Fast streaming transcription: emit immediately.
  • Incoming caller audio → Slower contextual transcription: process with more context.
  • Slower contextual transcription → Freshness check: return candidate correction.
  • Fast streaming transcription → Text released to the agent: supply current hypothesis.
  • Freshness check → Text released to the agent: replace only if current.
1:562:26
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

1:56 · section reference included

Generate early, but do not speak early

The planning layer attacks sequential model round trips. Tool calls are expensive here because a slow but intelligent language model may need to generate a request, wait for execution, ingest the result, and generate again. The presented harness moves suitable tool work into background agents, then inserts the result into the main model’s context as though that model had made the call itself. The talk describes the context insertion but does not specify its message format.

Every new transcription detection can also start an eager generation. Crucially, generation and emission are separate decisions: the model may prepare a candidate response while the caller is still speaking, but the harness does not play it until the end of the utterance is confirmed. This spends some computation speculatively in exchange for a chance to have the right response ready sooner.

The name-and-date example shows the revision process. “Sure” triggers an early generation, but the background extractor has no requested fields yet. More partial text arrives, still without a recognizable name. From that incomplete evidence, the main model starts preparing to ask the caller to spell the name because it suspects a transcription problem. Nothing has been spoken, so this wrong turn remains cheap to discard.

The observable change occurs when the corrected transcription arrives. The background agent can now identify the name and date of birth, including phonetic matching for a possible name mistranscription. The harness cancels the draft created without those results and starts a new generation with the extracted fields in context. Only after turn completion does the selected response leave the system.

Speculation does not remove inference; it deliberately creates work that may be thrown away. Its value depends on how often useful generation overlaps the caller’s remaining speech and how expensive canceled generations are. The talk provides no latency, cost, or cancellation-rate measurements.

3:263:56
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:26 · section reference included

A cached prefix lets the agent start speaking sooner

The control layer receives the response as a token stream. Waiting for the complete sentence before requesting speech would expose the remaining generation time to the caller, so the goal is to begin playback while the language model is still writing the continuation.

Captures the key cache miss at the personalized name, which releases the reusable opening while the remainder is still being generated.Open full source frame
Captures the key cache miss at the personalized name, which releases the reusable opening while the remainder is still being generated.

A prefix cache watches the stream for word sequences whose audio has already been generated, either during an earlier response or elsewhere in the same call. It does not immediately accept a one-word match; in the walkthrough it waits until three words before registering the first hit. At the same time, the growing text is sent to Cartesia over a WebSocket for fresh synthesis.

The developing sentence begins with the reusable phrase “You said your name is.” Such scripted openings recur, so their audio is a plausible cache target. The next token introduces the caller’s particular name and causes a miss. That miss becomes the release point: the harness immediately plays the cached generic opening while the personalized continuation is still being generated.

From the caller’s perspective, speech has started. Internally, the language model and speech provider are still finishing the sentence. The talk demonstrates why common openings are reusable, but it does not report a cache-hit rate, so the frequency of this latency win remains unspecified.

5:566:26
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

5:56 · section reference included

Preserve full-sentence prosody, then suppress the duplicate

Playing cached words creates a second problem: text-to-speech sounds more natural when the provider sees the whole sentence, but the opening has already been heard. The presented harness still sends Cartesia the complete text, including that opening. The provider therefore synthesizes the sentence with its normal context and prosody, unaware that a cache exists.

Illustrates the duplicate-suppression step: the provider’s already-played prefix is removed and only the fresh continuation is emitted.Open full source frame
Illustrates the duplicate-suppression step: the provider’s already-played prefix is removed and only the fresh continuation is emitted.

When the fresh audio returns, the harness suppresses the portion corresponding to the prefix and plays only the remaining audio after the cached clip. This preserves sentence-level context for synthesis while avoiding duplicate playback. Li allows that there may be a small hiccup; the talk does not explain how the two audio versions are aligned at the cut or measure whether listeners can detect the join.

The diagram answers the key control-layer question: how can cached speech start immediately without forcing the provider to synthesize an isolated, context-poor suffix? The same full sentence travels through both branches. One branch supplies early playback; the other supplies a natural continuation, with its duplicate prefix removed before output.

Cached-prefix playback joined to full-sentence synthesis

Streaming model textThe response arrives word by word.
Prefix cacheearly-path — Matches reusable audio for the generic opening.
Cached opening playsearly-path — “You said your name is” reaches the caller while generation continues.
Full-sentence synthesisfresh-path — Cartesia receives the complete text and generates natural prosody.
Suppress duplicate prefixfresh-path — The provider’s already-played opening is removed.
Fresh continuation playsPersonalized audio follows the cached opening.
The cache starts speech early while the provider retains full sentence context; duplicate provider audio is suppressed before the continuation plays.
Read the diagram as text
  • Streaming model text. The response arrives word by word.
  • Prefix cache. early-path — Matches reusable audio for the generic opening.
  • Cached opening plays. early-path — “You said your name is” reaches the caller while generation continues.
  • Full-sentence synthesis. fresh-path — Cartesia receives the complete text and generates natural prosody.
  • Suppress duplicate prefix. fresh-path — The provider’s already-played opening is removed.
  • Fresh continuation plays. Personalized audio follows the cached opening.
  • Streaming model text → Prefix cache: check prefixes.
  • Prefix cache → Cached opening plays: emit on first miss.
  • Streaming model text → Full-sentence synthesis: send complete growing sentence.
  • Full-sentence synthesis → Suppress duplicate prefix: return full audio.
  • Suppress duplicate prefix → Fresh continuation plays: play only unheard portion.
  • Cached opening plays → Fresh continuation plays: join at prefix boundary.
8:329:01
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

8:32 · section reference included

A prerecorded clinic-booking demonstration makes the hidden work disappear

The final demonstration is a prerecorded clinic-booking call. The supplied recording does not establish the caller’s identity or whether the patient details are real or synthetic. The caller asks to schedule an ultrasound. Elise requests a name and date of birth, confirms that the caller is a new patient, and asks permission to text an insurance-upload link. The captioned digits accompanying the birth-date request are not interpreted or expanded here.

The agent responds to the changed constraint by offering two appointment times for the following week.Open full source frame
The agent responds to the changed constraint by offering two appointment times for the following week.

The more revealing moment is a change of plan. The agent begins offering the earliest appointment, but the caller interrupts to check a calendar. Elise stops and says, “Sure. Take your time.” When he asks for the following week, it offers two times on Tuesday, July 7. He selects 2:00 p.m., and the agent confirms the booking.

That sequence matters because it is not merely a fixed questionnaire. The conversation pauses, abandons an in-progress offer, accepts a new scheduling constraint, presents alternatives, and reaches a selection. The caller hears short, conventional turns while transcription revisions, tentative generations, field extraction, tool work, and streaming speech can occur behind them.

The demonstration illustrates the intended conversational experience, not a full systems evaluation. It does not expose the underlying tool traces, establish that the demonstration used a live clinical scheduling system, or provide comparative latency and recognition measurements. What it does show is the product goal: substantial background coordination should collapse into an uneventful phone call.

9:319:55
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

9:31 · section reference included

The harness serves work in housing and healthcare

Li closes by placing the engineering work inside EliseAI’s focus on housing and healthcare—areas he describes as critical in people’s lives. The company is headquartered in New York and was working to expand its Bay Area presence. He ends with an invitation to follow the company and join the team.

Closing context for EliseAI’s focus on healthcare and housing, where natural realtime conversation supports consequential workflows.Open full source frame
Closing context for EliseAI’s focus on healthcare and housing, where natural realtime conversation supports consequential workflows.

That framing explains why the harness matters. Natural conversation is not merely a cosmetic layer when a caller is trying to schedule care or handle an important housing workflow. A frontier model alone does not create a realtime voice agent: the surrounding system decides when provisional work may begin, when stale work must be canceled, when tool results should revise a draft, and when cached and fresh audio can safely reach the caller.

11:5912:30
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

11:59 · section reference included

Resources

From the talk

Transcript & slides

Loading transcript and slides…

Transcript download