Skip to main content

At a glance

Streaming

Audio is sent as soon as it is generated, so a caller hears the answer quickly even for long texts. If the client closes the connection, for example when the caller interrupts, synthesis stops.

Languages

Turkish, English, German, French, Spanish, Italian and Russian. language sets it; auto detects it from the text. For one-word inputs pass language, since a single word may not show the language.

Voices

Eighteen ready voices, by id or name. See Voices.

Custom voices

Make a voice from 10-30 s of one person’s clean speech, with their consent. The result is a similar-sounding voice, not an exact copy. See Custom voices.

Text normalization

On by default. Numbers, amounts, dates, times and abbreviations are written out before synthesis (“14.30” becomes “on dört otuz”), so send text the way it is written. normalize=false reads the text as it is.

Generate and verify

verify=true (Turkish): a speech recogniser listens to each sentence chunk; a chunk it does not hear as written is said once more and the better take is sent. Fewer misread or skipped words, but the first audio comes about 2 s later. Use it for files and prepared announcements, not for live calls.

Speed

speed from 0.25 to 4.0 changes the tempo; the pitch stays the same.

Audio formats

mp3, opus, aac, flac and speed other than 1 add about 0.07 s to the first audio.

Server-Sent Events

stream_format=sse sends speech.audio.delta events with base64 audio, then speech.audio.done.

OpenAI compatibility

Any OpenAI TTS client works with only base_url and api_key changed; OpenAI voice names work too. See Text to speech.