Skip to content

capability

verified July 2026

Spex-TTS — the engine.

One model serves every request on this site — the console, the specimens, the benchmarks, and your calls. This sheet is the engine itself: where it came from, what it publishes, and how a request steers it.

The signature — one grain, cast live

in-house sand engine · one shot

Spex, from speck — a single grain of sand. The material this site is built from, at its smallest unit: one grain, one engine, every voice on the wire.

The meter bank — three published figures, each worked in full on the sheet that owns it

first audio, ms

107 / 108

01 s

p50 / p95 on a single stream — server time on the production API, drawn against the one-second beat a caller notices.

methodology — the latency benchmark

languages, one cloned reference

23

023

One reference carries one identity across all 23; the inner tick is the eight that carry published, dated specimens.

specimens — the languages page

concurrent callers, one GPU

16

0the edge

Zero failed requests at the measured edge; past it the API refuses fast with a retryable 503 rather than hanging a call.

the load benchmark

The datasheet on the product tour collects the full set; these three are the engine’s signature. Every number is measured on the production API, basis stated where it is worked.

Origin

Where it comes from

Spex-TTS was not built to demo synthesis. It grew up inside a production live-translation product speaking to thousands of people at once, where every turn had to land inside a conversation’s rhythm and a cloned identity had to survive crossing into languages its owner never spoke. The API exposes what that product forced into existence — nothing on these sheets started as a roadmap item.

Controls

Expression, per request

Delivery is not a deployment setting here — it is request fields. Six numeric controls (expressiveness, temperature, cfg_weight, speed, volume, seed) set intensity, melody, pacing, rate, gain, and repeatability; inline transcript controls — a spell-out tag, an emotion field, a pronunciation dictionary, timed breaks — steer the read itself. All of them ride every surface with no added latency. Ranges, defaults, and the expressive recipe are in the API reference at /docs/.

one request, the delivery dialed in — full reference at /docs
{
"transcript": "Your code is <spell>TKT4829XB</spell>.‣ a spell-out tag reads the code character by character
<break time=\"600ms\"/> Read it back to me.",‣ a timed break, exactly where the read needs air
"voice": {"mode": "id", "id": "gandr-dane"},
"emotion": "calm",‣ a tuned preset under the hood
"expressiveness": 0.6,‣ explicit fields always win
"cfg_weight": 0.4,‣ spacious pacing for the read-back
"seed": 42‣ the same take, every render
}

Your script, this API, thirty minutes — and the recording leaves with you.

Hear it on your own script