Realtime STT Router for voice agents

Every realtime STT model, one key, one WebSocket

Stream live audio to the best STT models for voice agents. Switch models with one string; keep the same key, socket, events, and balance.

Live caller audio
PCM frames · continuously
One WebSocket
VoiceRun STT Router
API keyverified
Active routerealtime
voicerun-asr-realtime-v1
Billing
one balance
Failover
standby
Voice agent
Normalized realtime events
Automatic model fallback
The call stays on the same WebSocket
session.model_changed
Primaryprovider
voicerun-asr-realtime-v1
Audio buffer
up to 8s replay
Next modellive
nova-3
replay current turn
01
Detect the failure
The active provider disconnects or rejects its managed connection.
02
Preserve the turn
The Router retains recent input audio while it starts the next model.
03
Resume automatically
Buffered audio is replayed and transcripts continue on the same WebSocket.
Route or fail over by model
VoiceRun
Deepgram
OpenAI
ElevenLabs
Google
Qwen

Choosing an STT vendor shouldn't be a one-way door

Stream audio once and receive one event schema. VoiceRun handles provider integrations, routing, failover, usage, and billing behind the socket.

Configure a primary model and an ordered fallback_models list when the session starts. The Router moves to the next model when it cannot establish the provider connection, the provider rejects its managed credential, or the provider returns a terminal session error. Invalid configuration, an invalid VoiceRun key, insufficient balance, and a client closing the socket are not treated as provider failures.

During a switch, VoiceRun preserves up to eight seconds of recent input audio and replays it into the fallback model so the current turn can continue. Your agent stays on the same WebSocket, receives session.model_changed with a provider-neutral failure reason, then continues receiving the same transcript events.

Need a key? Sign in to the VoiceRun profile, click Add PAT under Personal Access Tokens, and use the generated token as VOICERUN_API_KEY. Keep it server-side and out of source control.

wss://api.voicerun.com/v1/stt · Authorization: Bearer $VOICERUN_API_KEY
# Pick a primary model and an ordered fallback chain.
{"type": "session.update",
 "model": "voicerun-asr-realtime-v1",
 "fallback_models": ["nova-3", "gpt-4o-transcribe"]}

  {"type": "input_audio_buffer.append", "audio": "<base64 PCM16>"}
  {"type": "session.model_changed",
    "from_model": "voicerun-asr-realtime-v1",
    "to_model": "nova-3",
    "reason": "provider_unavailable",
    "replayed_audio_ms": 2400}
  {"type": "transcription.delta", "text": "I'd like a table for four"}
  {"type": "turn.ended", "text": "I'd like a table for four.", "reason": "provider"}

Realtime, not file upload

OpenRouter's STT endpoint accepts finished files over POST. VoiceRun streams live audio over WebSocket and returns partials immediately.

Events built for voice agents

Speech, transcript, and turn events arrive in one shape across every provider.

Automatic model failover

Configure an ordered model chain. If the active provider fails, VoiceRun switches the live session and replays buffered audio so the current turn can continue.

One key, one balance

One VoiceRun API key and credit balance across every enabled model.

Bake-off on your own audio

Compare accuracy and latency on the production audio that actually matters.

Including our own model

VoiceRun STT Model is selectable through the same protocol, with audio kept inside VoiceRun.

Built for the realtime audio path

The Router adds one network hop: your voice agent connects to VoiceRun, and VoiceRun connects to the selected STT model. We've engineered the Rust data path specifically for realtime audio, minimizing processing and forwarding latency on every frame.

Production-path latency, measured
Simultaneous direct and routed audio over warmed WebSockets
Same GCP region
6–40 ms

Positive paired p50 impact across the tested realtime signals. Final-result impact was 7.5 ms for Cartesia and 6.6 ms for Inworld; Deepgram first-partial impact was 40 ms.

US East → US Central
5–75 ms

Paired p50 impact from end of speech to final transcript: 5 ms for Cartesia, 75 ms for Deepgram, and 62 ms for Inworld.

Authentication, billing, and other control-plane operations stay outside the per-frame audio path.

September 2026 benchmark: 100 simultaneous pairs per provider from separate GCP compute, using persistent warmed connections and the same 3.8-second fixture. Routed traffic crossed the production global load balancer before reaching the VoiceRun STT Router. Paired p50 is the median of each routed-minus-direct pair. Results include network, load-balancer, provider-backend, and event normalization variance. Tail latency can exceed these medians; these measurements are directional, not a latency guarantee.

Realtime STT models, one integration

Every provider below is available through the same STT Router protocol. Audio input and partial, final, error, and fallback events use one schema. Model-specific settings are applied when supported, so switching models does not require a new provider integration.

ProviderModels
VoiceRun
voicerun-asr-realtime-v1
First-party, self-hosted — per-turn context and semantic turn-taking
Deepgram
flux-general-en · flux-general-multi · nova-3
Low-latency workhorse for English and multilingual
OpenAI
gpt-4o-transcribe · gpt-4o-mini-transcribe
Strong general accuracy; prompt biasing supported
ElevenLabs
scribe_v2_realtime
Realtime scribe with broad language coverage
Cartesia
ink-whisper
Fast streaming transcription
Soniox
stt-rt-v4
Realtime multilingual recognition
Google
chirp_3
Chirp 3 speech recognition
Qwen
qwen3-asr-flash · qwen3-asr-flash-realtime
Low-latency multilingual recognition with contextual biasing
xAI
grok-stt
Grok speech-to-text
Inworld
inworld/inworld-stt-1
Conversational speech recognition
Gradium
gradium-default-stt
Gradium speech recognition
Tencent
tencent-16k
16 kHz recognition for China-region workloads

Model availability evolves as vendors ship and retire snapshots; the API reference carries the current list and per-model capabilities.

Access VoiceRun STT Model through the Router

STT Router is the shared access layer. Select VoiceRun STT Model for our first-party model—with per-turn context, semantic turn-taking, hallucination and language-drift guards, and audio that stays inside VoiceRun—or select an external model with the same VoiceRun key. The socket, audio format, event schema, and credit balance stay the same.

Integrate once, compare models on your own calls, and move between them by changing the model string.