Realtime vs Cascade

Two architectures for live interpretation — a direct voice-to-voice model, and a composable STT → translation → TTS pipeline — measured on the same real medical audio. 8 language directions, 24 clips each, 8 configurations, 61 runs.

The trade-off

Speed
Realtime
1.4s vs 1.8s for the best cascade
Cost
Cascade
~20× cheaper
Quality
Tie
0.686 vs 0.683, neutral metric

At a glance

Accuracy, latency, and cost by configuration

Realtime against three representative cascades. Quality and latency are medians across the 8 directions; cost is the metered total for all of that configuration's runs.

End-to-end (OpenAI Realtime) Cascade (STT / translation / TTS)
Accuracy COMETKiwi, higher is better
Latency typical, seconds
Cost all 8 directions, USD
OpenAI Realtime
0.686
1.4s
$13.14
Best cascade openai / azure / openai
0.682
1.8s
$0.64
Cheapest cascade azure-speech / openai / azure-speech
0.682
2.4s
$0.55
Assumed default deepgram / openai / elevenlabs
0.602
7.7s
$2.96
Translation quality by direction

COMETKiwi (reference-free, higher is better), the all-OpenAI cascade vs Realtime, grouped by language pair. The two architectures track each other everywhere except Vietnamese→English — the cascade's one collapse. Realtime was faster in all 8 directions.

Cascade Realtime
0.7 0.35 0 en→fr cascade — 0.685 en→fr Realtime — 0.695 (wins) fr→en cascade — 0.640 (wins) fr→en Realtime — 0.615 en→fr fr→en English ↔ French en→de cascade — 0.687 (wins) en→de Realtime — 0.679 de→en cascade — 0.682 de→en Realtime — 0.712 (wins) en→de de→en English ↔ German en→zh cascade — 0.715 (wins) en→zh Realtime — 0.683 zh→en cascade — 0.719 zh→en Realtime — 0.712 en→zh zh→en English ↔ Chinese en→vi cascade — 0.679 en→vi Realtime — 0.689 (wins) vi→en cascade — 0.600, the cascade's worst direction vi→en Realtime — 0.648 (wins) en→vi vi→en English ↔ Vietnamese 0.600
All 8 configurations
Configuration Quality (neutral) Typical Worst case Cost
End-to-end speech
OpenAI Realtime0.68614201727$13.14
Cascades (STT / translation / TTS)
openai / openai / openai0.68322543576$0.65
azure-speech / openai / azure-speech0.68224213403$0.55
openai / azure / openai0.68217862683$0.64
openai / gemini / openai0.68043789346$0.62
openai / claude / openai0.64425833852$0.77
deepgram / openai / openai0.641350824081$0.55
deepgram / openai / elevenlabs0.602767012768$2.96

Median across the 8 directions; latency in milliseconds; cost is the metered total for all of that configuration's runs, priced at each provider's own list rate. Quality is COMETKiwi, which scores translations without comparing them to a reference — see below for why that matters. OpenAI Realtime is a single voice-to-voice model, not a pipeline, which is why it sits apart from the cascades.

All 8 directions (Realtime vs the all-OpenAI cascade)
Pair Direction Neutral (COMETKiwi) Overlap (chrF) Judge (GEMBA) Typical Worst case
en ↔ fren→fr0.685 → 0.6950.738 → 0.67774.3 → 78.12512 → 13743858 → 1780
fr→en0.640 → 0.6150.651 → 0.55071.6 → 67.62256 → 13677114 → 1730
en ↔ deen→de0.687 → 0.6790.694 → 0.63976.9 → 78.72270 → 13473301 → 1496
de→en0.682 → 0.7120.709 → 0.65774.6 → 82.71885 → 15342976 → 2150
en ↔ zhen→zh0.715 → 0.6830.411 → 0.34076.9 → 75.12229 → 13453706 → 1551
zh→en0.719 → 0.7120.611 → 0.54573.8 → 75.42252 → 14813446 → 1669
en ↔ vien→vi0.679 → 0.6890.710 → 0.65771.4 → 73.32626 → 14664825 → 1724
vi→en0.600 → 0.6480.438 → 0.44839.9 → 60.01970 → 14872596 → 1947

Rows are grouped by language pair, each with both directions. Each cell reads cascade → Realtime; latency in milliseconds. COMETKiwi never sees the reference translations, so it is the metric to trust when the three disagree. Judge scores re-ran ±1–2 points on identical input, so gaps under ~2 are not real. Overlap scores are not comparable across writing systems — the low Chinese numbers reflect character density, not worse translation. Worst-case latency is the second-slowest of 24 clips, so one slow utterance moves it by seconds; treat individual rows as indicative and the ranges as the finding.

What we learned

Which providers you pick matters more than which architecture

The five best setups — Realtime and four different cascades — land within 0.006 of each other on the neutral quality metric. But swapping providers inside the cascade moves quality by 0.081, more than ten times that. The architecture question is close to a tie; the provider question is not. "Cascades are worse" is really a claim about one particular stack.

Realtime is faster — and much more consistent

It wins on speed in all 8 directions, but consistency is the real story. Realtime's worst case stayed inside 1.5–2.2s everywhere; the cascade's ranged from 2.6s to 7.1s. Re-running the same setup moves any single worst-case figure by up to 2s, so don't read one row closely — the pattern is that Realtime's tail is tight and the cascade's is erratic. For live interpretation, predictability may matter more than the average.

On quality they are a tie — and getting there took three metrics

Word-overlap scoring picks the cascade in 7 of 8 directions. The LLM judge picks Realtime. Both are biased: our reference translations were machine-made then human-corrected, so they reward the cascade's literal phrasing, while an LLM judge tends to favour natural-sounding output. A third metric scores translations without looking at the references at all — and it puts the two 0.003 apart, 4 directions each. Quality is a wash. Never rank architectures on a single metric.

Realtime pulls ahead where transcription is hardest

Vietnamese→English is the one direction all three metrics agree on: the cascade's worst result and Realtime's best relative showing — 40 → 60 on the judge, and Realtime wins the neutral metric too. In a cascade, a transcription error is faithfully translated and spoken. End-to-end speech has no such handoff to corrupt. (French→English is the mirror image, favouring the cascade on all three.)

Cost is the cascade's moat — by more than expected

The same eight directions cost $13.14 through Realtime and $0.55–0.77 through most cascades — about 20×. Both figures are metered from actual usage, not estimated. At platform volume that is the difference between a premium feature and a default tier. The exception is ElevenLabs speech at $2.96, roughly 5× the other cascades.

The cheapest voice was also the one humans preferred

Azure Speech is the cheapest text-to-speech we tested — about $0.015 per 1,000 characters, the bottom of the price range and roughly 7× below ElevenLabs (~$0.11) — and its cascade tied for the cheapest configuration we metered at $0.55, against a Deepgram stack that scored 0.041 lower. Price didn't cost quality: in human listening review, Azure's voice output sounded the best of the TTS options, and its neutral-metric score (0.682) is statistically tied with the leaders. One boundary: keep it inside its supported language list — pointed at German, which it doesn't list, it produced unusable audio.

The stack we assumed was the default measured worst

Deepgram + ElevenLabs — the pipeline this project originally described as the cascade — came last on quality and cost the most of any cascade. Two independent swaps explain it: using Deepgram instead of OpenAI for speech recognition costs real quality on continuous speech, and ElevenLabs' voice output scored lower than OpenAI's when transcribed back. Both are one-line configuration changes.