By Sagar Shankaran, Founder of CallSphere
Detailed cold-start benchmarks for voice AI: WebSocket setup, model warmup, first-token latency. Compare CallSphere on K8s vs Vapi managed pipeline.
Key takeaways
Cold start in voice AI is the time from the first SIP RING to the first agent token spoken. It matters most when call volume is bursty (think clinic morning rush, real estate Saturday surge, after-hours storm). Vapi ships a managed warm pool, which gives you a smooth ~400-600ms cold start at the cost of opacity. CallSphere runs on K8s with hostPath hot-reload, an OpenAI Realtime WebSocket pre-warmed per pod, and Twilio media streams; cold start is ~700ms-1.1s for the first call into a freshly scaled pod, ~250-400ms thereafter.
If you can predict surge, CallSphere's HPA (Horizontal Pod Autoscaler) plus a pre-warm sidecar gets you the same numbers as Vapi with full transparency.
Three things have to happen before the agent can speak:
Each adds latency. In a steady-state call (#2 already pre-warmed), only #1 and #3 contribute. In a true cold start (#2 not pre-warmed), all three stack.
Vapi runs a managed warm pool of LLM connections. When a new call lands:
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
Trade-offs:
CallSphere runs on k3s with hostPath volumes for backend hot-reload. The voice path is:
Twilio Media Streams (WebSocket)
↓
Python FastAPI agent server (per-pod)
↓
OpenAI Realtime API (WebSocket, gpt-4o-realtime-preview-2025-06-03)
Each pod boots with a prewarmer sidecar: it opens an OpenAI Realtime WebSocket, sends a no-op session.update, and parks the connection. When the first call hits the pod, the agent server reuses that connection.
Real numbers from production traces:
| Phase | Cold Pod | Warm Pod |
|---|---|---|
| Pod scheduling (K8s) | 8-15s | 0 |
| Container start | 2-4s | 0 |
| Prewarmer connect to OpenAI | 350-500ms | 0 (already open) |
| Twilio media bridge | 80-120ms | 80-120ms |
| First-token from model | 280-400ms | 200-280ms |
| Total cold start | 700ms-1.1s | 250-400ms |
The big number is K8s pod scheduling, which is why the right answer is predictive HPA: scale up before the surge using a forecast, not after.
CallSphere uses a Redis-backed surge predictor that runs every 60s and looks at:
If predicted next-5-minute load > current capacity * 0.7, it asks K8s to scale +1 pod. The new pod takes ~10s to schedule and prewarmer connects in ~500ms, so by the time real traffic hits, it is warm.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
async def surge_predictor():
while True:
baseline = redis.get(f"baseline:{day}:{hour}")
recent = redis.zcount(f"calls:{vertical}", now - 300, now)
outbound_queue = await get_pending_outbound(vertical)
predicted = max(baseline, recent * 1.2) + outbound_queue * 0.1
capacity = current_pod_count() * PEAK_CALLS_PER_POD
if predicted > capacity * 0.7:
scale_up(vertical, +1)
await asyncio.sleep(60)
Inside one pod, multiple concurrent calls share the OpenAI Realtime WebSocket pool. A pool of 5 connections handles ~50 concurrent calls comfortably; the bottleneck is Twilio media stream concurrency per pod, not the LLM connection.
| Metric | Vapi | CallSphere (warm pod) | CallSphere (cold pod) |
|---|---|---|---|
| First-audio target | <500ms | ~250-400ms | ~700-1100ms |
| Pre-warm visibility | Hidden | Per-pod metric | Per-pod metric |
| Predictive scaling | None exposed | Redis-driven HPA | Same |
| Surge cap | Pool dependent | K8s cluster cap | Same |
| Geo-region pinning | Vendor-side | Per-cluster | Per-cluster |
| Cold spike behavior | Queue + spike | Brief spike, predictable | Brief spike |
sequenceDiagram
participant Caller
participant Twilio
participant K8s
participant Pod
participant OpenAI as OpenAI Realtime
Note over Caller,Twilio: First call after surge
Caller->>Twilio: SIP INVITE
Twilio->>K8s: WS connect (cold)
K8s->>Pod: Schedule + start (8-15s if cold)
Pod->>OpenAI: WebSocket session.update
OpenAI-->>Pod: session.created (350-500ms)
Pod->>Twilio: Audio bridge ready
Twilio->>Caller: Play hold tone (covers cold)
Pod->>OpenAI: Initial system audio frame
OpenAI-->>Pod: First-token audio (280-400ms)
Pod-->>Twilio: PCM16 24kHz greeting
Twilio-->>Caller: "Hi, this is..."
We do, but only at the floor. The HPA min-replicas is sized for baseline load. Above that, predictive scaling handles surge. Always-on for peak burns capacity 80% of the day.
The WebSocket itself is free; you pay per audio second processed. A parked connection with no audio costs nothing.
Yes, with edge regions and aggressive caching, but the user-perceptible threshold is ~300ms. Below that you stop noticing improvements unless the use case is extremely conversational (interview prep, language tutoring).
End-to-end from Twilio's first media frame to the first PCM16 frame returned. Excludes carrier-side SIP delay (~50-150ms variable).
K8s rebalances, prewarmer rebuilds connections in 1-2s per pod, and the surge predictor over-provisions for 5 minutes after a healing event.
Run the live demo — the first call you trigger after the page idles is a real cold-start; subsequent calls are warm-pod numbers. /features lists per-vertical latency targets.

Written by
Sagar Shankaran· Founder, CallSphere
LinkedInSagar Shankaran is the founder of CallSphere, where he builds production AI voice and chat agents deployed across healthcare, hospitality, real estate, and home services. He writes about agentic AI, LLM engineering, and shipping voice agents that handle real calls in production.
See how AI voice agents work for your industry. Live demo available -- no signup required.
Tbilisi professional-services firms serving relocating founders and IT companies use CallSphere AI voice and chat agents to answer enquiries 24/7 in English, Georgian and Russian and book consultations.
A how-to for Colombian education and tutoring SMBs to answer parents and students instantly, book trial classes 24/7 in Spanish and English, and grow enrollment with a CallSphere AI agent.
Ethiopian coffee exporters and cooperatives lose buyer enquiries across time zones. See how a CallSphere AI voice and chat agent answers international coffee buyers 24/7 in Amharic and English.
A practical how-to for Palau eco-resorts and dive operators on capturing every high-value, multilingual enquiry with a CallSphere AI voice and chat agent, while honouring Palau’s marine-conservation commitments.
How salons, spas and wellness SMBs across the UAE, Saudi Arabia and Qatar use CallSphere AI voice and chat agents to capture every booking 24/7 in Arabic, English and expat languages, and cut no-shows.
How estate agents and property managers in Luxembourg City and across the Grand Duchy use CallSphere to capture multilingual viewing and enquiry calls 24/7, GDPR compliant.
© 2026 CallSphere Inc. All rights reserved.
Made within San Francisco
Watch how CallSphere handles real customer calls, schedules appointments, and processes payments — live.
Try Live DemoBook a DemoCalculate Your ROI