Patchboard
Voices

Find a voice

Measured voice models, with the published naturalness evidence behind them.

Snapshot

The catalog endpoint did not answer, so this is the bundled snapshot — which carries the voice models but not their per-voice rosters. No per-voice roster is in this snapshot; the models are listed below.

Browse the roster

What each one scored

Naturalness is measured per language, not inferred from English — the model that wins one study routinely loses another. Every figure is the board's own. Latency and price are the English board's, by model — a model measured only in this study carries neither.

#ModelNaturalness · eloSynth p50Cost / M chars
1
gemini-3.1-flash-tts-preview
google-tts:gemini-3.1-flash-tts-preview
1591978ms~$33.3
2
eleven_v3
elevenlabs:eleven_v3
1590481ms$100.0
3
aura-2
deepgram:aura-2
1584125ms$30.0
4
sonic-3.5
cartesia:sonic-3.5
1574121ms$50.0
5
simba-3.2
speechify:simba-3.2
1573345ms$10.0
6
tts-rt-v1
soniox:tts-rt-v1
1569362ms~$13.0
7
s2.1-pro
fishaudio:s2.1-pro
~1566185ms$15.0
8
inworld-tts-2
inworld:inworld-tts-2
1561116ms$25.0
9
lightning_v3.1
smallest:lightning_v3.1
1544173ms$25.0
10
palabra-tts-v1
palabra:palabra-tts-v1
~152072ms$30.0
11
grok-tts
xai:tts
1495272ms$15.0
12
default
gradium:default
1448244ms$57.8
13
speech-2.8-hd
minimax:speech-2.8-hd
1431294ms$100.0
14
arcanav3
rime:arcanav3
1429238ms$40.0
15
gpt-4o-mini-tts
openai:gpt-4o-mini-tts
1424691ms~$20.0
16
octave-2
hume:octave-2
1377448ms$100.0
17
qwen3-tts-flash
alibaba:qwen3-tts-flash
1310472ms$10.0
Language coverage

Which voice belongs to which model

And the languages Router can select it for. A model with no languages declared still routes — it simply carries no declared coverage in this snapshot.

ModelLanguages
sonic-3.5
cartesia:sonic-3.5
ENARDEESFILFRHINBTATE
gpt-4o-mini-tts
openai:gpt-4o-mini-tts
ENDEESFILFRNB
inworld-tts-2
inworld:inworld-tts-2
ENARDEESFILFR
lightning_v3.1
smallest:lightning_v3.1
ENDEESFR
octave-2
hume:octave-2
ENDEESFR
tts-rt-v1
soniox:tts-rt-v1
ENDEESFR
s2.1-pro
fish:s2.1-pro
EN
tts-rt-v2
soniox:tts-rt-v2
EN
chirp-3-hd
google:chirp-3-hd
no languages declared
coda
rime:coda
no languages declared
eleven_flash_v2
elevenlabs:eleven_flash_v2
no languages declared
eleven_flash_v2_5
elevenlabs:eleven_flash_v2_5
no languages declared
eleven_multilingual_v2
elevenlabs:eleven_multilingual_v2
no languages declared
eleven_turbo_v2
elevenlabs:eleven_turbo_v2
no languages declared
eleven_turbo_v2_5
elevenlabs:eleven_turbo_v2_5
no languages declared
flux-haley-en
deepgram:flux-haley-en
no languages declared
grok-tts
xai:grok-tts
no languages declared
lightning_v3.1_pro
smallest:lightning_v3.1_pro
no languages declared
mistv3
rime:mistv3
no languages declared
octave-1
hume:octave-1
no languages declared
qwen3-tts-flash-realtime
alibaba:qwen3-tts-flash-realtime
no languages declared
qwen3-tts-instruct-flash-realtime
alibaba:qwen3-tts-instruct-flash-realtime
no languages declared
sonic-3
cartesia:sonic-3
no languages declared
speech-2.6-hd
minimax:speech-2.6-hd
no languages declared
speech-2.6-turbo
minimax:speech-2.6-turbo
no languages declared
speech-2.8-turbo
minimax:speech-2.8-turbo
no languages declared
Take one to the API

Pin a voice route

Pin a voice route with the provider and model in an explicit routing object, then send the provider's voice id in voice. Router returns raw audio in the encoding declared by the request. Use routing.mode: “auto” to let Router select the voice model by language and objective instead of pinning a route.

curl
curl https://router.patchboard.online/v1/tts/speech \
  -H "Authorization: Bearer $PATCHBOARD_API_KEY" \
  -H "Idempotency-Key: tts-$(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "routing": {"mode":"auto","objective":"balanced"},
    "voice": "",
    "input": "Hello from Patchboard.",
    "audio": {"encoding": "pcm_s16le", "sample_rate_hz": 24000, "channels": 1}
  }'