Built-in voices
Three voices are available to every organization and are a reasonable default for most applications:Listing everything available to you
List Voices returns the built-ins, anything you have cloned, and anything added from the public library:/v2/tts and /v2/tts/ws surfaces
require a UUID. Two voices can share a display name, so resolving one would mean guessing
which you meant. The OpenAI-compatible endpoint also accepts its
documented OpenAI voice aliases.
Prefer a BTTS_V3 voice
BTTS_V3 is the current generation: highest fidelity, and the expressiveness and
stability controls are calibrated for it. It renders natively at 48 kHz, so requesting
48 kHz avoids a resample.
BTTS_V2 voices still synthesize. The controls are not tuned for them and will have less
predictable effects. The x-model response header tells you which model a voice resolved to.
Cloning a voice
A clone needs one clean sample of about ten seconds. Quality of the sample sets the ceiling on quality of the voice, so it is worth trimming properly:- One speaker, clearly enunciated
- No background noise, music, or reverb
- At least 100 ms of silence at each end, so nothing is clipped mid-word
- Emotional variety in the delivery, which yields a more expressive clone
BTTS_V3 is the default
and what you want unless you have a specific reason to pin the previous generation.
Clone from the dashboard at
Voices → Studio, or programmatically with
Clone Voice. A cloned voice is private to your organization and usable
immediately.
Per-voice defaults
Each voice carries its own default delivery settings, editable in Studio or through Update Voice Config. Anything you send in a request’scontrols object overrides them for that request only.
Set the defaults on the voice when every use should sound the same. Override per request when
one flow needs a different read, such as a warm greeting and a flat account-balance readout from the
same voice, for example. See Writing for speech for what the
controls do.
The voice is fixed for a WebSocket session
OnWSS /v2/tts/ws, the voice is set by init and holds for the life
of the connection. That is what lets one warm synthesis session serve every turn. To change
voices, open another connection.
Public library voices
Shared voices are published by other creators. Add one to your library with Add Library Voice before using it. Some carry a per-character creator fee on top of the standard rate. The exact charge for a request comes back in thex-cost header.
Docs for agents: llms.txt