Patchboard
Provider-neutral, benchmarked per language

The router
for voice AI

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

Router

A hosted, provider-neutral data plane

A hosted, provider-neutral STT, LLM and TTS data plane at router.patchboard.online, with typed contracts and managed routing.

0 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.

0 different models win across 9 languages

No single model is best everywhere, so the right pick changes with the language your users speak.

Benchmark coverage by languageChirp 3 · German · rank 5 · 5.0% WER
Arabic
16
Chinese (Mandarin)
14
Filipino
19
French
29
German
28
Hindi
18
Korean
16
Norwegian
21
Spanish
27
Tamil
14
Telugu
12

Studies per language across the speech-to-text and text-to-speech boards. Full per-language rankings live on the models page.

Score against cost, per stage

Every model, ranked against what it actually costs

Speech-to-text, LLM, text-to-speech and speech-to-speech — accuracy plotted against dollars per minute, so the trade-off is visible instead of assumed.

#ModelProviderWER · batchWER · streamFinalize p50Cost / min
1PulseSmallest AI5.1%8.0%178ms~$0.0050
2Nova-3Deepgram9.8%12.9%106ms$0.0048
3FluxDeepgramnot measured6.6%406ms$0.0065
4Ink-2Cartesia11.0%9.9%102ms$0.0090
5Qwen3-ASRAlibaba2.8%4.0%424ms$0.0054
6Chirp 3Google3.9%7.4%581ms$0.0160
Gateway

The open customer-side runtime

The open customer-side runtime for LiveKit and Pipecat: provider-direct streaming, local BYOK credentials and optional Patchboard-managed routes.

Local BYOK credentials

Provider keys stay in your process, never Patchboard's.

Provider-direct streaming

Call providers directly, or route through Patchboard.

Use the native Gateway integrations in your framework, or call the hosted Router through its public OpenAPI and AsyncAPI contracts.
LiveKit
from livekit.agents import AgentSession
from patchboard_gateway.livekit import LLM, STT, TTS

session = AgentSession(
    stt=STT(credential_source="auto"),
    llm=LLM(model="auto", objective="balanced"),
    tts=TTS(credential_source="auto"),
)
Get started

Point your agent at Patchboard

Run and observe your voice workers with the hosted Router's public OpenAPI and AsyncAPI contracts, or via MCP.

MCP · curl
$ claude mcp add --transport http patchboard https://mcp.patchboard.online/mcp