Backed by Y Combinator

OpenRouter for Voice

Every speech model, benchmarked language by language, wired into one API.

Get API key

Router

Which model to call, per language and per objective, decided from published measurements instead of a vendor's English leaderboard.

Benchmark coverage by language

ModelENARFRDEHINBESTATE
Nova-3
stt-rt-v5
GPT-4o Transcribe
GPT-4o-mini Transcribe
Qwen3-ASR
Chirp 3
Ink-Whisper
Pulse Pro
Whisper-1
Nova-2
Gradium ASR
GPT Transcribe / batch endpoint
Grok STT
Ink-2
Pulse
Realtime STT-1bench
Scribe v2 / historical batch
Scribe v2 Realtime
Solaria-1
Universal-3.5 Pro
Velma 2
Flux
GPT Live Transcribe

Score against cost, per stage

Accuracy (WER)
$0.0010$0.01602.0%11.0%
Universal-3.5 Pro2.0% · $0.0075
Realtime STT-13.3% · $0.0025
GPT-4o-mini Transcribe2.7% · $0.0030
GPT-4o Transcribe2.3% · $0.0060
Velma 24.4% · $0.0010
Cost ($/min)
#Model
1
Universal-3.5 Proassemblyai:universal-3-5-pro
2.0%$0.0075
2
GPT-4o Transcribeopenai:gpt-4o-transcribe
2.3%$0.0060
3
GPT Transcribe / batch endpointopenai:gpt-transcribe
2.5%
4
GPT-4o-mini Transcribeopenai:gpt-4o-mini-transcribe
2.7%$0.0030
5
Qwen3-ASRalibaba:qwen3-asr-flash
2.8%$0.0054
6
Scribe v2 / historical batchelevenlabs:scribe_v2
2.9%
7
Realtime STT-1benchmark only — not routable
3.3%$0.0025
8
Chirp 3google:chirp_3
3.9%$0.0160
9
Velma 2modulate:velma-2-stt-streaming-english-v2
4.4%$0.0010
10
Grok STTxai:stt
4.8%$0.0033
11
Solaria-1gladia:solaria-1
5.0%$0.0125
12
Pulsesmallest:pulse
5.1%~$0.0050
13
stt-rt-v5soniox:stt-rt-v5
7.5%$0.0020
14
Gradium ASRgradium:default
8.4%$0.0104
15
Nova-3deepgram:nova-3
9.8%$0.0048
16
Ink-2cartesia:ink-2
11.0%$0.0090
Scribe v2 Realtimeelevenlabs:scribe_v2_realtime
$0.0065
Fluxdeepgram:flux-general-en
$0.0065
GPT Live Transcribeopenai:gpt-live-transcribe
$0.0170

Gateway

One base URL and one key in front of every provider, speaking the API your framework already calls.

Run and observe your voice workers

Speko speaks the OpenAI API, so the frameworks you already use need a hostname and a model string.

import { defineAgent, voice } from '@livekit/agents';
import * as openai from '@livekit/agents-plugin-openai';

const key = process.env.SPEKO_API_KEY!;
const baseURL = 'https://api.speko.ai/v1';

export default defineAgent({
  entry: async (ctx) => {
    const session = new voice.AgentSession({
      stt: new openai.STT({ apiKey: key, baseURL, model: 'auto' }),
      llm: new openai.LLM({ apiKey: key, baseURL, model: 'auto' }),
      tts: new openai.TTS({ apiKey: key, baseURL, model: 'auto' }),
    });
    await session.start({ agent: new voice.Agent({ ... }) });
  },
});

Point your agent at Speko

$claude mcp add --transport http speko https://mcp.speko.ai/mcp