> ## Documentation Index
> Fetch the complete documentation index at: https://developers.mihu.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Features

> What each Ses feature does, when to use it and how to turn it on

## At a glance

| Feature | What it does | Use it when | Field |
| - | - | - | - |
| [Streaming](#streaming) | Audio arrives while it is generated | Always; voice agents | on by default |
| [Languages](#languages) | Seven languages, or detected from the text | Multi-language services | `language` |
| [Voices](#voices) | Choose who speaks | Always | `voice` |
| [Custom voices](#custom-voices) | A voice from a short recording | Your own brand voice | `POST /v1/voices` |
| [Text normalization](#text-normalization) | Numbers, dates, amounts written out | Almost always (on by default) | `normalize` |
| [Generate and verify](#generate-and-verify) | A recogniser checks each sentence | Files, announcements | `verify` |
| [Speed](#speed) | Faster or slower speech | Tempo preference | `speed` |
| [Audio formats](#audio-formats) | Six formats | Depends on your player or line | `response_format` |
| [Server-Sent Events](#server-sent-events) | Audio as base64 events | Clients that prefer events | `stream_format` |
| [OpenAI compatibility](#openai-compatibility) | Use OpenAI SDKs | Existing OpenAI code | `model` |

## 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](https://developers.mihu.ai/tts/voices.md).

## 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](https://developers.mihu.ai/tts/custom-voices.md).

## 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

| `response_format` | Type | Note |
| - | - | - |
| `pcm` | `audio/pcm` | Raw 16-bit little-endian 24 kHz mono; lowest delay |
| `wav` | `audio/wav` | Streaming header |
| `mp3` | `audio/mpeg` | |
| `opus` | `audio/ogg` | Ogg Opus |
| `aac` | `audio/aac` | ADTS |
| `flac` | `audio/flac` | Lossless |

`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](https://developers.mihu.ai/tts/speech.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.