Source: https://ailoot.ai/models/en/deepgram-flux-tts/
Canonical: https://ailoot.ai/models/en/deepgram-flux-tts/
Language: en

# Deepgram: Flux TTS

[Markdown](https://ailoot.ai/models/en/deepgram-flux-tts/index.md) · [JSON](https://ailoot.ai/models/en/deepgram-flux-tts/facts.json)

## [Deepgram: Flux TTS](https://ailoot.ai/models/en/deepgram-flux-tts/)

Deepgram Flux TTS turns English text into conversational speech with tone carried across turns. Its streaming mode handles interruptions; batch synthesis produces reusable audio with the same voice catalogue.

- [**Ailoot Ultra · Text to speech** `POST /v1/audio/speech` `deepgram/flux-tts`](https://ailoot.ai/models/en/deepgram-flux-tts/#method-0)

About the model

This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.

Flux TTS is Deepgram’s text-to-speech family for live conversation and fixed spoken content. Its defining feature is conversational continuity: the streaming model carries prosody across turns, so delivery can retain a consistent tone as an interaction continues. It accepts written text and returns speech audio. Flux TTS and the separately named Flux speech-recognition model perform different parts of a voice conversation.

#### Select an English voice

The documented Flux catalogue speaks English, with American, British, Irish, Australian, Indian, Singaporean and Filipino accents. Voice descriptions help choose a speaker for customer service, telephone menus, narration or casual conversation. For example, the maker lists Haley as a calm American voice and Jack as a professional British voice. Select a voice around the audience and the kind of wording it will read, then keep it stable through the piece or conversation. Other-language speech belongs to a separately documented model choice.

#### Live turns and interruptions

In the manufacturer’s streaming workflow, text can arrive as the application composes a response and audio returns incrementally. A turn has its own start and completion events; ending the turn completes the remaining synthesis. Cross-turn context preserves prosody within that session. This is useful for a spoken assistant that first explains a choice and then answers a clarification without changing its vocal character.

An interruption cancels the active turn and returns the spoken portion and the text left over. That distinction helps the application continue from what the listener actually heard. For a practical interaction, prepare a short answer with the important instruction first, followed by the explanation. If the listener interrupts after that first instruction, the next response can address the new question instead of assuming the whole explanation was delivered.

#### Fixed audio and output formats

Batch synthesis takes a complete block of text and returns its audio in one response. It uses the same voice catalogue as streaming and suits recorded telephone prompts, notifications or narration prepared in advance. Batch requests are independent; streaming turn state and interruption events do not apply to a fixed clip.

The streaming output is raw audio without a file container: 16-bit PCM, mu-law or A-law. The maker documents PCM sample rates of 8, 16, 24, 32, 44.1 and 48 kHz; mu-law and A-law use 8 or 16 kHz. Batch output additionally supports MP3, Opus, FLAC and AAC. Select an encoding and container that the intended player or telephone path can interpret rather than treating a stream of raw samples as an ordinary audio file.

#### Delivery controls and boundaries

The manufacturer documents a speech-rate range from 0.5 to 1.5 in 0.05 increments. Streaming speed changes apply at a segment boundary. A separate beta expressivity control moves delivery from calm to animated. Ordinary SSML and recognised competitor tags are stripped rather than used as expressive instructions; native Flux controls have their own meaning.

Inline pauses belong to batch synthesis, with durations of 500–3,000 ms in 100-ms increments and at most eight markers per request. Text must separate adjacent pauses, and speed is capped at 1.15 when a pause is present. Pronunciation overrides use IPA and are in Early Access; the maker notes that a requested pronunciation can vary across generations. Pronunciation cannot be combined with a non-default speed or with pause controls. For a script with specialist names, listen to those terms in the selected voice and keep the spoken wording explicit.

Deepgram’s documented streaming session lasts up to one hour and closes after sixty seconds without an inbound message unless kept active by the supported connection mechanism. Those session limits concern the live synthesis workflow. A useful deliverable is an intentional voice, listener-friendly text and audio suited to its destination, with live applications tracking what was actually spoken when a turn is interrupted.

**Ailoot Ultra · Text to speech** `POST /v1/audio/speech` `deepgram/flux-tts`

[`deepgram/flux-tts`](https://ailoot.ai/models/en/#m=deepgram%2Fflux-tts&route=Ultra&caller=deepgram%2Fflux-tts&fmt=speech)

Deepgram /`deepgram/flux-tts`

### Overview

Deepgram Flux TTS turns English text into conversational speech with tone carried across turns. Its streaming mode handles interruptions; batch synthesis produces reusable audio with the same voice catalogue.

Accepted inputs

Text

Results

Audio

### Available in Ailoot · inputs & methods

**Ailoot Ultra · Text to speech** `POST /v1/audio/speech`

Input types

`text`

Output types

`audio`

Output format

mp3

| Field | Type | Requirement | Values & limits | Default |
| --- | --- | --- | --- | --- |
| Field`model` | Type`string` | RequirementRequired | Values & limits deepgram/flux-tts | Default— |
| Field`input` | Type`string` | RequirementRequired | Values & limits Minimum length: 1 Unit: Unicode characters | Default— |
| Field`voice` | Type`string` | RequirementRequired | Values & limits flux-alexis-en, flux-bree-en, flux-brittany-en, flux-brooke-en, flux-bruce-en, flux-cliff-en, flux-cole-en, flux-colin-en, flux-conor-en, flux-donovan-en, flux-drew-en, flux-elise-en, flux-gemma-en, flux-haley-en, flux-hannah-en, flux-heather-en, flux-jack-en, flux-kai-en, flux-kelsey-en, flux-kit-en, flux-maeve-en, flux-marcelo-en, flux-marcus-en, flux-meena-en, flux-meghan-en, flux-miles-en, flux-naveen-en, flux-paige-en, flux-priya-en, flux-rufus-en, flux-sean-en, flux-sharon-en, flux-sienna-en, flux-tanner-en, flux-wade-en, flux-wes-en | Default— |
| Field`response_format` | Type`string` | RequirementRequired | Values & limits mp3 | Default— |

Input material combinations

**text\_to\_speech** · Required: input

Method parameters and lifecycle

| Parameter | Contract |
| --- | --- |
| Parameter`content_type` | Contractapplication/json |
| Parameter`required` | Contractmodel, input, voice, response\_format |
| Parameter`voice_ids` | Contractflux-alexis-en, flux-bree-en, flux-brittany-en, flux-brooke-en, flux-bruce-en, flux-cliff-en, flux-cole-en, flux-colin-en, flux-conor-en, flux-donovan-en, flux-drew-en, flux-elise-en, flux-gemma-en, flux-haley-en, flux-hannah-en, flux-heather-en, flux-jack-en, flux-kai-en, flux-kelsey-en, flux-kit-en, flux-maeve-en, flux-marcelo-en, flux-marcus-en, flux-meena-en, flux-meghan-en, flux-miles-en, flux-naveen-en, flux-paige-en, flux-priya-en, flux-rufus-en, flux-sean-en, flux-sharon-en, flux-sienna-en, flux-tanner-en, flux-wade-en, flux-wes-en |
| Parameter`response_format` | Contractmp3 |
| Parameter`max_input_characters` | Contractnull |
| Parameter`other_options` | Contractfalse |
| Parameter`input` | Contractexact UTF-8 text; Unicode character count without normalization |
| Parameter`material_types` | Contracttext |

Lifecycle: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · actual returned task\_id or media library record

`GET /v1/media/assets/{asset_id}/content`

`GET /v1/media/assets`

`GET /v1/media/assets/{asset_id}`

Select exact voice from this model profile.

Input characters and audio seconds are different meters.

### Pricing

Tariff references do not add request options. Supported parameters are listed for the selected method.

Fast mode

Not specified When fast mode is selected

Flex mode

Not specified When flex mode is selected

Maximum reasoning effort

Not specified When maximum reasoning effort uses the default adjustment

#### Ailoot rates

#### Prices by configuration

Match each charge to the conditions shown. Use one rate for each set of alternative configurations.

| Configuration | Rate schedule | Billing unit | Charge |
| --- | --- | --- | --- |
| ConfigurationBase token rates | Rate scheduleBase rate | Billing unit— | Charge Input · Input tokens **—** / 1K tokens Output · Output tokens **—** / 1K tokens Input · Cache read **—** / 1K tokens Input · Cache write **—** / 1K tokens Input · Cache write, 1 hour **—** / 1K tokens |
| Configurationinput character | Rate schedule— | Billing unitper input character | Charge Input · input character **$0.00009** per input character |

#### Reference tariff details

Model-level reference schedules do not change method selection, quotes or charges. Active charges use the selected Ailoot method rates.

Deepgram: Flux TTS

#### Prices by configuration

| Configuration | Billing conditions | Charge |
| --- | --- | --- |
| ConfigurationDeepgram: Flux TTS · Default configuration | Billing conditionsDefault configuration | Charge Input · Input characters **$0.00009** per input character |

Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. [How reservation and settlement work →](https://ailoot.ai/docs/en/billing/reserve/)

### Example requests

#### Ailoot Ultra · Text to speech

curl

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "deepgram/flux-tts", "input": "Good afternoon! This is a short voice take."}')
voice=os.environ["AILOOT_VOICE_ID"]
allowed=json.loads('["flux-alexis-en", "flux-bree-en", "flux-brittany-en", "flux-brooke-en", "flux-bruce-en", "flux-cliff-en", "flux-cole-en", "flux-colin-en", "flux-conor-en", "flux-donovan-en", "flux-drew-en", "flux-elise-en", "flux-gemma-en", "flux-haley-en", "flux-hannah-en", "flux-heather-en", "flux-jack-en", "flux-kai-en", "flux-kelsey-en", "flux-kit-en", "flux-maeve-en", "flux-marcelo-en", "flux-marcus-en", "flux-meena-en", "flux-meghan-en", "flux-miles-en", "flux-naveen-en", "flux-paige-en", "flux-priya-en", "flux-rufus-en", "flux-sean-en", "flux-sharon-en", "flux-sienna-en", "flux-tanner-en", "flux-wade-en", "flux-wes-en"]')
if voice not in allowed: raise SystemExit("Choose an accepted voice ID from this exact model profile")
p["voice"]=voice
p["response_format"]="mp3"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o speech.mp3
```

### Receive and save results

#### Ailoot Ultra · Text to speech

mp3

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

Other content reads

Media libraryTask statusAsset details

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-assets.json
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_MEDIA_TASK_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_MEDIA_TASK_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/tasks/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-task.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-task.json").read_text())))
PY_RESULT
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_ASSET_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_ASSET_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/assets/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-asset.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-asset.json").read_text())))
PY_RESULT
```

##### Keep all completed results

Keep every complete returned response, file and content part.

Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.

##### If the original response needs checking

Retain original operation\_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route.

Response fields

| Field | Type |
| --- | --- |
| Field`binary audio` | Typebytes |
| Field`response headers` | Typeheaders |

Errors and next steps

| Response | Condition | Next step |
| --- | --- | --- |
| Response400 · `invalid_request_error` | ConditionInvalid required fields, material representation or parameter value | Next stepCorrect the indicated fields before a new creation request. |
| Response`server_error` | ConditionThe returned response says the operation or result requires a check | Next stepKeep the original returned operation/task ID, request headers and response; continue supported reads of that original operation. Do not resubmit the creation request. |

### Aliases

#### Model aliases

**Ailoot Ultra** [`deepgram/flux-tts`](https://ailoot.ai/models/en/#m=deepgram%2Fflux-tts&route=Ultra&caller=deepgram%2Fflux-tts&fmt=speech)

#### Method path aliases

Use the method paths shown above.

#### Related caller IDs

[`deepgram/flux-tts`](https://ailoot.ai/models/en/#m=deepgram%2Fflux-tts&route=Ultra&caller=deepgram%2Fflux-tts&fmt=speech)

FAQ · Deepgram: Flux TTS

What inputs and results are available?

`POST /v1/audio/speech` · `deepgram/flux-tts`: `text` → `audio`

Which fields does the request use?

`POST /v1/audio/speech` · `deepgram/flux-tts`: `model`, `input`, `voice`, `response_format`

Connect Ailoot to Claude Code, OpenCode, Hermes or your own app.

## The company and its project portfolio

The company and its project portfolio: millions of customers; monthly sales in the billions.

## Buy tokens at a discount.

Subscription discounts for regular use. Promo codes offer up to 50% off token purchases.

Subscription

Choose a discounted plan for your regular requests.

Promo code: up to 50% off

Enter your code at checkout. The price updates to reflect the current promotion.

Spending in your history

The model, tokens and amount are recorded for each request.

[Choose a subscription](https://ailoot.ai/docs/en/billing/subscriptions/) · [View model prices](https://ailoot.ai/models/en/)

## Connect the API to a product you sell.

Use Ailoot in SaaS, apps and bots under its official service offer and licence agreement. Request a reseller licence for resale.

Commercial application

Add text, image, video and audio generation to paid features in your service.

Reseller licence

Send a description of your project and how you provide access. Request written terms for use and resale.

Documents on the website

The service offer, licence agreement and data processing policy are available before you connect.

[Request a reseller licence](mailto:support@ailoot.ai) · [Service offer and licence agreement](https://ailoot.ai/legal/offer?lang=en)

## Ailoot · The company and its project portfolio





Ailoot combines established operating experience, a large client base, stable service and ongoing KPI control.





The company and its project portfolio: millions of customers; monthly sales in the billions.





Ailoot brings that operating experience to API access for AI features in customer products, agents, applications and automations.
