Building a Production-Ready AI Phone Call Assistant with Multi-Modal Processing

realchar · Tech · 2023 · source Agentic: yes · promotional bias: low · source-backed · extracted with prompt 0.5.4 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Real-time consumer phone-call AI assistant

RealChar wanted Revia to complete customer-service phone calls for users, which required an AI agent that could handle real-time audio, button presses, text messages, latency spikes, unreliable generative models, and human takeover without breaking the phone conversation.

Constraints:

Architecture

RealChar applied self-driving-car and robotics patterns to a phone-call AI assistant. Audio, text, DTMF/button signals, and other streams enter a low-level streaming layer, are published to an event bus, and are processed in parallel on clock cycles by perception models, traditional ML/NLP signal generators, and generative AI models. A routing/fallback layer chooses whether to wait, respond, press buttons, or fall back to faster systems. A virtual-world simulator and millisecond-level observability support validation, debugging, synthetic data generation, and human takeover.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  user[User] --> revia-assistant[Revia Assistant]
  revia-assistant --> phone-call-interface[Phone Call Interface]
  phone-call-interface --> audio-streaming-layer[Audio Streaming Layer]
  audio-streaming-layer --> perception-models[Perception Models]
  perception-models --> event-bus[Event Bus]
  event-bus --> traditional-ml-signals[Traditional ML Signals]
  traditional-ml-signals --> generative-ai-models[Generative AI Models]
  event-bus --> generative-ai-models
  generative-ai-models --> fallback-router[Fallback Router]
  fallback-router --> revia-assistant
  virtual-world-simulator[Virtual World Simulator] --> real-time-observability[Real Time Observability]
  real-time-observability --> event-bus
  human-supervisor[Human Supervisor] --> revia-assistant
  real-time-observability --> human-supervisor
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
User Consumer who delegates boring or blocking customer-service calls to Revia. Revia Assistant, Human Supervisor
Revia Assistant AI phone-call assistant that conducts calls, gathers context, decides actions, and communicates results. Phone Call Interface, Event Bus, Fallback Router, Human Supervisor
Phone Call Interface Real-time call layer handling audio streams, button presses, and incoming text-message context. Audio Streaming Layer, Revia Assistant
Audio Streaming Layer Low-level WebSocket/WebRTC-style streaming infrastructure for incoming and outgoing audio bytes. Phone Call Interface, Perception Models
Perception Models Multimodal models that interpret audio, text, and other inputs on the fly. Audio Streaming Layer, Event Bus, Traditional ML Signals
Event Bus Unified communication channel where components publish events and subscribe to relevant responses. Revia Assistant, Perception Models, Traditional ML Signals, Generative AI Models, Fallback Router, Real Time Observability
Traditional ML Signals Faster deterministic intent, trigger, and signal generators used before or alongside generative models. Event Bus, Generative AI Models
Generative AI Models LLM/generative models used for understanding and response generation once enough context has been assembled. Event Bus, Fallback Router
Fallback Router Latency- and intent-aware routing layer that falls back to faster systems or alternate actions. Revia Assistant, Generative AI Models, Event Bus
Virtual World Simulator Controlled simulation environment for validating calls, generating synthetic data, and debugging failures before real-world exposure. Real Time Observability, Revia Assistant
Real Time Observability Millisecond-level inspection of model and system behavior, enabling debugging and takeover. Event Bus, Virtual World Simulator, Human Supervisor
Human Supervisor Human takeover layer for supervising the call and taking control when the AI makes wrong decisions. User, Revia Assistant, Real Time Observability

Data flow

Phone-call streams arrive over WebSocket/WebRTC-like channels. The system processes recent audio or multimodal frames at regular intervals, emits signals onto an event bus, lets downstream components subscribe and publish responses, expands task context from real-time signals, calls generative models only when there is enough context, and uses fallback mechanisms when latency or model behavior crosses thresholds.

4 supporting quotes
“similar methodology so the system taking any type of uh streams it can be audio streams can be text stream can be any type of data it will be able to understand it on the Fly um yeah we we have a we call it's also called perception models it understand like any type of data format and try to”transcript, stated
“the system runs on a clock cycle right so once like 100 milliseconds is starting to process all the frames for the last 100 milliseconds”transcript, stated
“everything happening in midc is going to publish into a event bus so any Downstream systems if you think you can handle the tasks”transcript, stated
“the request so if it's going uh like uh Beyond thir stret we have a fallback mechanism right think about like so that's why I also use like seven card is like if the seven carard want the am models starting to break does the system going to like stop on the road this does”transcript, stated

Why this architecture

RealChar treated phone-call agents like robotics systems because voice conversations are real-time, multimodal, and safety-sensitive. Parallel event processing keeps audio critical paths from blocking on slower model calls. Traditional ML provides fast signals, generative models handle open-ended language, and simulation plus observability turns hidden production failures into debuggable millisecond events.

4 supporting quotes
“for most of self driving cars or most like if not just self driv cars all robotics it's like processing the data in a uh in a frequency”transcript, stated
“when you processing those audios it has to be really mindful making sure you know you don't generate like uh lags into the systems”transcript, stated
“right so you starting have those like intent or triggers or signals you can use for your down streams so for those you start starting to engage with like the uh like first traditional L piece then there's like the newer gener AIS because you do have to understand like”transcript, stated
“how do you repeat the process make it reliable that's much hard much much harder I would think like you spend actually 90% of time effort to make it real able so that's why we have this like virtual world we can you know if something breaks we we will able to uh”transcript, stated

Models used: GPT-4 Turbo · GPT-4o · traditional NLP models · generative AI models · speech-to-text models · text-to-speech models

Scale

Alternatives considered (roads not taken)

Rely on generative models alone

Rejected because: Real-time phone calls need faster intent signals, validation, and context gathering before invoking slower generative models.

“data phase right you do need a lot on data like to train that model so you will have what I call is more like a um you like you just described you you have those informations then that's when you engage in like traditional like nrps right so you starting have those like”transcript, implied
“then that's when you engage in like traditional like nrps right so you starting have those like intent or triggers or signals”transcript, stated

Use a simple model gateway

Rejected because: The router must consider task type, prompt, identified intent, request state, and whether to wait or press buttons.

“list oh it's slightly more complex than that right so there's a priority for a certain request so we also have like I said like everything is running in parallel so we have um similar to your gateway we have also a Gateway for this tributing tasks for different like uh”transcript, stated
“different requests different prompt different identified intent so they all playing a role for the downstream system”transcript, stated

Validate primarily against live human calls

Rejected because: The team wanted a safe virtual world where failures could be repeated, inspected, and used for training/validation.

“we put them into a virtual world meaning like we are not using like the actual humans to sometimes to do engage those phone calls”transcript, stated
“think of that like uh we also use that to generate synthetic data you know so we can later on use that to Trend this trend model the second is like the validation part right um You you ask me like oh the the M agents you know uh once they hit the human world is starting to break right yeah and then”transcript, stated

Let slow model calls block the audio path

Rejected because: Users notice audio lag immediately, so the critical path needs parallel processing and fallbacks.

“Transformer is slow but with the audio B slow you will immediately realize it you know even by probably half second you star to realize oh there's like really odd uh audio is starting to cut off or it's starting to slow you realize immediately so so that's why like it's”transcript, stated
“uh there's like the the critical path is cannot be slowed down because of oh you have Starly have more events but then there's things like oh if the system breaks you have't fall back all of those like play into make the system run faster right um yeah so those are the”transcript, stated

Patterns

async-message-orchestration (runtime-architecture)

RealChar uses an event bus so parallel systems can subscribe to relevant events and publish responses without blocking each other.

“everything happening in midc is going to publish into a event bus”transcript, stated
“that way you have a unified like Communication channel right”transcript, stated

latency-optimization (voice-agent-runtime)

The architecture processes streams on clock cycles, keeps audio on a critical path, and uses fast fallbacks for latency spikes.

“it has to be really mindful making sure you know you don't generate like uh lags into the systems”transcript, stated
“there's always easy to fall back to a faster systems so like the the different tiers of systems”transcript, stated

model-routing (model-operations)

Requests are routed by priority, prompt, intent, and latency state rather than through a single fixed model path.

“there's a priority for a certain request”transcript, stated
“different requests different prompt different identified intent so they all playing a role for the downstream system”transcript, stated

fallback-degradation (reliability)

Slow or failing generative model calls trigger faster fallback systems so the call does not stall.

“does the system going to like stop on the road this does not right so it has a way”transcript, implied
“we are using the same mechanism to recover from like if there's any uh like General models running slow”transcript, stated

eval-driven-development (simulation)

RealChar uses a virtual world to validate agent behavior, inspect failures, and generate synthetic training data before live exposure.

“validating your capabilities through this virtual”transcript, stated
“we also use that to generate synthetic data you know so we can later on use that to Trend this trend model”transcript, stated

human-in-the-loop-gate (safety)

Humans can supervise and take over when the AI makes wrong decisions during a call.

“if you find something odd like you can always grab the driveing well saying okay I'm in control right”transcript, implied
“we have Open Source Products right um and uh we the my team is really specialized in the audio processor processing”transcript, implied

Tradeoffs

Use robotics-style parallel architecture

Chose event bus and clock-cycle processing over sequential conversational pipeline.

Rationale: Parallel processing keeps multimodal inputs and audio-critical paths moving while slower models work asynchronously.

“everything in their system runs in parallel, similar to how robotics systems operate on clock cycles.”summary, stated
“the critical path is cannot be slowed down because of oh you have Starly have more events”transcript, stated

Combine generative AI with traditional ML

Chose fast traditional NLP signals plus generative responses over end-to-end generative-only action selection today.

Rationale: The team expects eventual end-to-end models, but current production needs signals, validation, and context expansion.

“I think eventually it will be end to end models right”transcript, stated
“right now since we are still in the like you know uh processing and collecting data phase”transcript, stated

Use simulation before real-world exposure

Chose virtual-world calls with recorded or synthetic counterparts over random live calls against real humans.

Rationale: Simulation lets the team generate failures safely, inspect exact failure moments, and collect data for future models.

“but in a virtual world you can do that million times right with no human har”transcript, stated
“we are not using like the actual humans to sometimes to do engage those phone calls”transcript, stated

Fallback from preferred models

Chose priority lists and faster fallback tiers over waiting indefinitely for the top model.

Rationale: A real-time phone call needs both accuracy and speed, and model availability/latency fluctuates.

“we are always going to try and go for this model whatever that model that Top Model is”transcript, implied
“there's always easy to fall back to a faster systems so like the the different tiers of systems”transcript, stated

Gotchas (what bit them)

Voice agents expose latency much more harshly than text agents.

Root cause: A half-second audio delay is immediately noticeable, while text delays of one or two seconds feel acceptable.

Resolution: RealChar uses parallel processing, fast speech systems, latency benchmarks, and fallback tiers.

“if it's laed for a second or two seconds you don't feel the text lagging”transcript, stated
“with the audio B slow you will immediately realize it you know even by probably half second”transcript, stated

Open-ended phone calls break narrow intent systems.

Root cause: The Google Duplex-era approach required many labeled intents and still failed on conversational edge cases.

Resolution: Revia combines generative AI, traditional ML signals, multimodal context, and fallback mechanisms.

“it requires a tons of training and uh um and it's spending a like a large team actually just making that two use cases”transcript, stated
“soon they realized the AI wasn't able to handle all the like cases like that humans”transcript, stated

Model-latency averages hide damaging spikes.

Root cause: GPT-4 Turbo often had acceptable first-token latency but could spike to 3-4 seconds around 20% of the time.

Resolution: The system tracks real-time latency and falls back beyond thresholds.

“they can go up to like 3 second to 4 second and we encounter this probably at 20% of time”transcript, stated
“if it's going uh like uh Beyond thir stret we have a fallback mechanism”transcript, stated

Demo reliability does not imply production reliability.

Root cause: Agents can produce appealing recordings while working only a small fraction of the time.

Resolution: RealChar spends most effort on repeatable simulation, validation, and observability.

“it's very so easy to create a a really appealing demos with your AI agent you know work only 1% of time”transcript, stated
“I would think like you spend actually 90% of time effort to make it real able”transcript, stated

Multimodal call state is broader than audio transcription.

Root cause: Real calls include DTMF/button navigation and text-message verification codes alongside speech.

Resolution: The perception system handles any input stream on the fly and gathers enough context before generation.

“there's key uh a button presses right so like when you're dealing with all the custom support”transcript, stated
“you us have to also deal with like incoming text messages”transcript, stated

Evaluation

RealChar evaluates the system through latency benchmarks, simulation/virtual-world tests, millisecond-level observability, synthetic data generation, and human-supervised debugging of model or traditional-ML decision failures.

Metrics: first-token latency · latency spike frequency · clock-cycle processing interval · failure moment timestamp · model vs traditional ML failure attribution · call task completion · human takeover events

3 supporting quotes
“we have the internal dat we have internal like benchmarks for all the different larger models how fast they run and how stable they run”transcript, stated
“we will able to uh detect by millisecond what happen on that particular moment”transcript, stated
“real time tracings on on each of the request”transcript, stated

Outcomes

The system was in small beta and optimized around real-time constraints such as 100 ms processing intervals, 800 ms to 1 second GPT-4 Turbo first-token latency, 3-4 second spikes about 20% of the time, and 300-500 ms GPT-4o launch first-token latency.

3 supporting quotes
“what we build is called Rivia reev a”transcript, stated
“we build a lot of web socket in a very low level web socket to handle all the incoming traffics”transcript, stated
“be able to you were able to pretty much like observe what what's going on and take over the control if you think the AI is making wrong”transcript, stated