Speko
Speko routes voice AI per language and objective, not English leaderboards.
NewName Editorial
Editorial Team

The English leaderboard is lying to your voice agent. Not maliciously, but structurally. Most speech model comparisons are run on English benchmarks, and the model that tops that table is treated as the default for every language your users speak. Speko, a Y Combinator-backed startup that calls itself "OpenRouter for Voice," starts from a different premise: the right speech model depends on the language, the objective, and the price. Its pitch is that every speech model should be benchmarked language by language and wired into one API — and that the routing decision should be made from those measurements, not from a vendor's glossy chart.
The company's website makes the problem concrete with a simple observation: "11 of 23 are only measured in English. Their rank in any other language is unknown — including the model that sits at the top of the English table." And then the kicker: "4 different models win across 9 languages. No single model is best everywhere." That's the entire argument for Speko's existence in two lines. If you're building a voice agent for Arabic speakers, the English champion might be a poor choice, but you'd never know from the marketing.
What 'auto' actually decides: per-language, per-objective routing
Speko's core interface is deceptively simple: you call its API with model="auto", and the router picks the best model for your request. But "auto" is not a black box. It's a decision engine that weighs three inputs: the language of the audio (via the X-Speko-Language header or detected from the file), the objective you set (latency, quality, cost, or balanced), and the benchmark data Speko has collected for that language.
The docs show a typical transcription call: you send audio, set model="auto", and Speko responds with a header like x-route: Deepgram/nova-3. For a Russian request, the docs suggest pinning openai:gpt-4o-transcribe and adding language="ru" — because that model is measured for Russian, while the router might otherwise default to something else. The X-Route-Reason header tells you exactly why a route was chosen: objective:score=..;lang=xx(measured|english-proxy|none). That last part is telling: if a language isn't measured, Speko falls back to an "english-proxy" — a polite way of saying "we're guessing based on English performance."
The benchmark page (benchmarks.speko.ai) shows the data behind these decisions. For speech-to-text, models are ranked by WER (word error rate) and cost per minute. Universal-3.5 Pro from AssemblyAI tops the English table at 2.0% WER and $0.0075/min, but Nova-3 from Deepgram — a popular choice — comes in at 9.8% WER and $0.0048/min. That's a massive accuracy gap that most teams never see because they default to a familiar name. Speko's job is to make that tradeoff visible and automated.
Router vs. gateway: where the 5% goes and what you get
Speko offers two ways to consume its service. The Router plan charges a 5% markup on the provider's published rate. You pay the provider's price plus 5%, and Speko handles the selection and failover. The Speko Infra plan charges a flat $0.09 per minute for all three legs — speech-to-text, LLM, and text-to-speech — and includes the routing logic. Enterprise pricing is custom.
The 5% markup is a classic middleman fee, but it's transparent: Speko lists the lowest and highest prices for each stage on its pricing page. For STT, the range is $0.0010/min (Velma 2) to $0.0170/min (GPT Live Transcribe). For LLMs, it's $0.20 to $12.00 per million output tokens. For TTS, $10 to $100 per million characters. The 5% is on top of whatever the provider charges, and Speko notes that some providers don't publish exact rates — it uses a tilde to mark those estimates.
What does the 5% buy you? Pre-response failover, for one. If the chosen model fails, Speko tries the next candidate before returning an error. The X-Speko-Failover-Count header tells you how many candidates were tried. It also buys you a single API key and base URL, which is the gateway part. You point your existing OpenAI-compatible code at https://api.speko.ai/v1, and it works with LiveKit, Pipecat, or any framework that speaks the OpenAI API.
The gateway is deliberately boring: "One base URL and one key in front of every provider, speaking the API your framework already calls." The docs show a LiveKit agent that swaps the OpenAI plugin's base URL for Speko's, and the agent code is unchanged. That's the integration story — no SDK rewrite, just a hostname change.
The headers that turn routing into a policy
Speko's real power is in the request headers. They let you express routing policy without changing code. X-Speko-Objective sets the priority: latency, quality, cost, or balanced. X-Speko-Language tells the router which benchmark to use. X-Speko-Allow and X-Speko-Deny let you whitelist or blacklist providers or models — useful for compliance or vendor preferences. X-Speko-Max-Price caps the cost per minute or per token, excluding any model without a published price.
These headers turn routing from a static choice into a dynamic policy. You can say "use the cheapest model under $0.005/min for Spanish transcription" without hardcoding a model name. Or "never use provider X" for data residency reasons. The response headers (X-Route, X-Route-Reason) give you full observability into what was chosen and why, which is essential for debugging and trust.
This is a different philosophy from OpenRouter, which mostly routes based on a static model list. Speko's routing is measurement-driven and language-aware, which is the core differentiation.
Why 'OpenRouter for Voice' is the right name — and the wrong one
The name "Speko" is short, punchy, and vaguely speech-related (it echoes "speak"). The tagline "OpenRouter for Voice" is a brilliant positioning move — it instantly tells developers what to expect: a unified API for many models, with routing logic on top. It borrows the trust and mental model of OpenRouter, which has become the default way to access multiple LLMs.
But the analogy has limits. OpenRouter routes text models that are largely interchangeable; Speko routes speech models that vary dramatically by language and latency. A voice agent has real-time constraints — a 500ms delay is noticeable — and the tradeoff between WER and latency is different from the cost/quality tradeoff for text. So "OpenRouter for Voice" undersells the complexity. It's more like a "language-aware routing layer for real-time speech," which is a mouthful. The name is memorable, but the tagline may set expectations that the product exceeds.
There's also a risk: OpenRouter is a well-known brand, and borrowing it could invite comparison. If Speko's routing is smarter (which it appears to be for multilingual use cases), the comparison helps; if it stumbles on reliability, the comparison hurts. The domain speko.ai is clean and the brand is distinct enough to stand on its own.
What Speko doesn't tell you yet
Speko is in public preview. The pricing page says "SLA: None during preview," which is honest but a concern for production voice agents that need uptime guarantees. The company lists SOC 2 Type II, HIPAA, and GDPR badges on its site, which suggests it's serious about compliance, but the preview status means those certifications may not cover the current service level.
The benchmark data is a strength, but it's also a moving target. Models are updated frequently, and Speko's measurements are snapshots. The site says "benchmark only — not routable" for some models (like GPT Transcribe and Scribe v2), which means the data is there but you can't use them yet. That's a transparency win, but it also highlights the limitations.
Finally, the "auto" model string is a double-edged sword. It's easy to start with, but it hides the decision-making. Developers who want deterministic behavior can pin a route, but the docs note that pinning requires knowing the model ID from the models list. The X-Speko-Allow and X-Speko-Deny headers give some control, but the default is trusting Speko's judgment. For teams with strict compliance or cost controls, that trust needs to be earned with more granular policy options.
Speko is a promising answer to a real problem: the English-centric, one-size-fits-all approach to speech AI. If it can deliver on its measured routing promise, it could become the default gateway for multilingual voice agents. But the preview stage and the lack of SLA mean it's not ready for mission-critical deployments yet. For developers building voice agents for global audiences, Speko is worth a close look — and a careful test with your own languages and latency requirements.