Source: https://ailoot.ai/models/en/speech-2-8-hd/
Canonical: https://ailoot.ai/models/en/speech-2-8-hd/
Language: en

# speech-2.8-hd

[Markdown](https://ailoot.ai/models/en/speech-2-8-hd/index.md) · [JSON](https://ailoot.ai/models/en/speech-2-8-hd/facts.json)

## [speech-2.8-hd](https://ailoot.ai/models/en/speech-2-8-hd/)

Speech 2.8 HD synthesizes expressive speech with control over emotion and audio details such as breathing and laughter.

- [**Ailoot · Text to speech** `POST /v1/audio/speech` `speech-2.8-hd`](https://ailoot.ai/models/en/speech-2-8-hd/#method-0)
- [**Ailoot · Text to speech** `POST /v1/audio/speech` `minimax-speech`](https://ailoot.ai/models/en/speech-2-8-hd/#method-1)
- [**Ailoot · Text to speech** `POST /v1/audio/speech` `minimax-speech-latest`](https://ailoot.ai/models/en/speech-2-8-hd/#method-2)

About the model

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

#### Lifelike speech with small audio details

Speech 2.8 HD targets natural, clean sound. The generation's main feature is audio markers that allow conversational details to be included in speech: laughter, chuckling, breathing, inhaling, exhaling, sighing, coughing, throat clearing and other short sounds. They help convey the rhythm and pauses of a natural line without turning every phrase into uniform announcer-style reading.

Markers are inserted into the text in the form specified for the model: for example, `(chuckle)`, `(breath)` and `(sighs)` indicate the corresponding vocal actions. Audio-marker capability belongs specifically to Speech 2.8. These are vocal details within speech synthesis, not generation of a separate musical or sound composition.

#### Timbre and clarity

The manufacturer highlights reproduction of distinctive voice characteristics: texture, breathing and pronunciation style. Family capabilities include synthesis with an already prepared cloned voice; creating that voice is a separate process. Speech 2.8 also has reworked processing to reduce background noise and digital distortions.

#### Languages and expressiveness

Speech 2.8 supports **40 languages**, including Russian. The manufacturer separately describes work on cross-language pronunciation in a Chinese-Japanese combination. This scenario concerns preserving natural sound when using different languages, not automatic text translation.

MiniMax provides voice selection and control over pace, volume and pitch. Speed ranges from **0.5–2**, volume is above 0 and up to **10**, and pitch adjustment ranges from **−12 to 12**. Emotion can be left to the model according to the text's meaning or specified manually: joy, sadness, anger, fear, disgust, surprise or calm.

Pronunciation can be refined using a replacement dictionary and phonetic notation; these provide the International Phonetic Alphabet, Chinese pinyin and Japanese reading variants. Pauses are inserted between spoken passages in the range **0.01–99.99 seconds**. Pause duration is specified to two decimal places; markers are placed between spoken passages and not consecutively. These settings help align names, abbreviations and ambiguous words with the intended narration.

#### Audio result

Synthesis accepts text of fewer than **10,000 characters**. For long text exceeding 3000 characters, the manufacturer recommends streaming output; receiving completed audio in full is also provided. General synthesis settings include MP3, PCM, FLAC, WAV, Opus and G.711 μ-law variants, in mono or stereo; the available formats for a specific request are determined by Ailoot's controls.

This card turns text into speech audio. Voice settings describe the MiniMax model; creation of a voice clone, separate subtitles and specialized connection methods are not automatically included in a text-to-speech request.

Additional audio settings include sample rates of **8, 16, 22.05, 24, 32 and 44.1 kHz**. MP3 provides bitrates of **32, 64, 128 or 256 kbps**. Voice coloration can also be changed and one effect applied: spacious echo, hall echo, telephone sound or a robotic voice. Voice-modification effects are supported for MP3, WAV and FLAC when receiving the audio in full, and only for MP3 when streaming. G.711 μ-law formats use an 8 kHz sample rate. These capabilities belong to MiniMax's synthesis settings.

The manufacturer provides speech-text synchronization: sentence timestamps, word timestamps or word timestamps during incremental output. This result helps align speech with displayed text. This additional capability requires support for the corresponding response format.

**Ailoot · Text to speech** `POST /v1/audio/speech` `speech-2.8-hd`

[`speech-2.8-hd`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=speech-2.8-hd&fmt=speech)

MiniMax /`speech-2.8-hd`

Model ID

- `speech-2.8-hd`
- `minimax-speech`
- `minimax-speech-latest`

### Overview

Speech 2.8 HD synthesizes expressive speech with control over emotion and audio details such as breathing and laughter.

Accepted inputs

Text

Results

speech

### Available in Ailoot · inputs & methods

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

Input types

`text`

Output types

`speech`

Output format

mp3

| Field | Type | Requirement | Values & limits | Default |
| --- | --- | --- | --- | --- |
| Field`model` | Type`string` | RequirementRequired | Values & limits speech-2.8-hd | Default— |
| Field`input` | Type`string` | RequirementRequired | Values & limits Minimum length: 1 Maximum length (exclusive): 10,000 Unit: Unicode characters | Default— |
| Field`voice` | Type`string` | RequirementRequired | Values & limits Pattern: ^\[A-Za-z0-9\_-\]{1,128}$ | Default— |
| Field`response_format` | Type`string` | RequirementOptional | Values & limits mp3 | Default— |

Input material combinations

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

Method parameters and lifecycle

| Parameter | Contract |
| --- | --- |
| Parameter`material_types` | Contracttext |
| Parameter`required` | Contractnull |
| Parameter`optional_controls` | Contractnull |

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}`

Method shapes and IDs are exact; supplier capability is separate from admission.

### Pricing

#### Ailoot method rates

Input

$100.00 *per 1 million characters*

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 · Text to speech

Speech example

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}"
export AILOOT_TEXT_FILE
: "${AILOOT_VOICE_ID:?Set the actual accepted voice ID for this model}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "speech-2.8-hd", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]=text
import re
voice=os.environ["AILOOT_VOICE_ID"]
if not re.fullmatch(r"[A-Za-z0-9_-]{1,128}",voice):raise SystemExit("Set an actual accepted voice ID")
p["voice"]=voice
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 · 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}`

##### 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** [`speech-2.8-hd`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=speech-2.8-hd&fmt=speech), [`minimax-speech`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech&fmt=speech), [`minimax-speech-latest`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech-latest&fmt=speech)

#### Method path aliases

Use the method paths shown above.

#### Related caller IDs

[`speech-2.8-hd`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=speech-2.8-hd&fmt=speech), [`minimax-speech`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech&fmt=speech), [`minimax-speech-latest`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech-latest&fmt=speech)

**Ailoot · Text to speech** `POST /v1/audio/speech` `minimax-speech`

[`minimax-speech`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech&fmt=speech)

MiniMax /`minimax-speech`

Model ID

- `speech-2.8-hd`
- `minimax-speech`
- `minimax-speech-latest`

### Overview

Speech 2.8 HD synthesizes expressive speech with control over emotion and audio details such as breathing and laughter.

Accepted inputs

Text

Results

speech

### Available in Ailoot · inputs & methods

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

Input types

`text`

Output types

`speech`

Output format

mp3

| Field | Type | Requirement | Values & limits | Default |
| --- | --- | --- | --- | --- |
| Field`model` | Type`string` | RequirementRequired | Values & limits minimax-speech | Default— |
| Field`input` | Type`string` | RequirementRequired | Values & limits Minimum length: 1 Maximum length (exclusive): 10,000 Unit: Unicode characters | Default— |
| Field`voice` | Type`string` | RequirementRequired | Values & limits Pattern: ^\[A-Za-z0-9\_-\]{1,128}$ | Default— |
| Field`response_format` | Type`string` | RequirementOptional | Values & limits mp3 | Default— |

Input material combinations

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

Method parameters and lifecycle

| Parameter | Contract |
| --- | --- |
| Parameter`material_types` | Contracttext |
| Parameter`required` | Contractnull |
| Parameter`optional_controls` | Contractnull |

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}`

Method shapes and IDs are exact; supplier capability is separate from admission.

### Pricing

#### Ailoot method rates

Input

$100.00 *per 1 million characters*

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 · Text to speech

Speech example

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}"
export AILOOT_TEXT_FILE
: "${AILOOT_VOICE_ID:?Set the actual accepted voice ID for this model}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "minimax-speech", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]=text
import re
voice=os.environ["AILOOT_VOICE_ID"]
if not re.fullmatch(r"[A-Za-z0-9_-]{1,128}",voice):raise SystemExit("Set an actual accepted voice ID")
p["voice"]=voice
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 · 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}`

##### 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** [`speech-2.8-hd`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=speech-2.8-hd&fmt=speech), [`minimax-speech`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech&fmt=speech), [`minimax-speech-latest`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech-latest&fmt=speech)

#### Method path aliases

Use the method paths shown above.

#### Related caller IDs

[`speech-2.8-hd`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=speech-2.8-hd&fmt=speech), [`minimax-speech`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech&fmt=speech), [`minimax-speech-latest`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech-latest&fmt=speech)

**Ailoot · Text to speech** `POST /v1/audio/speech` `minimax-speech-latest`

[`minimax-speech-latest`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech-latest&fmt=speech)

MiniMax /`minimax-speech-latest`

Model ID

- `speech-2.8-hd`
- `minimax-speech`
- `minimax-speech-latest`

### Overview

Speech 2.8 HD synthesizes expressive speech with control over emotion and audio details such as breathing and laughter.

Accepted inputs

Text

Results

speech

### Available in Ailoot · inputs & methods

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

Input types

`text`

Output types

`speech`

Output format

mp3

| Field | Type | Requirement | Values & limits | Default |
| --- | --- | --- | --- | --- |
| Field`model` | Type`string` | RequirementRequired | Values & limits minimax-speech-latest | Default— |
| Field`input` | Type`string` | RequirementRequired | Values & limits Minimum length: 1 Maximum length (exclusive): 10,000 Unit: Unicode characters | Default— |
| Field`voice` | Type`string` | RequirementRequired | Values & limits Pattern: ^\[A-Za-z0-9\_-\]{1,128}$ | Default— |
| Field`response_format` | Type`string` | RequirementOptional | Values & limits mp3 | Default— |

Input material combinations

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

Method parameters and lifecycle

| Parameter | Contract |
| --- | --- |
| Parameter`material_types` | Contracttext |
| Parameter`required` | Contractnull |
| Parameter`optional_controls` | Contractnull |

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}`

Method shapes and IDs are exact; supplier capability is separate from admission.

### Pricing

#### Ailoot method rates

Input

$100.00 *per 1 million characters*

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 · Text to speech

Speech example

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}"
export AILOOT_TEXT_FILE
: "${AILOOT_VOICE_ID:?Set the actual accepted voice ID for this model}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "minimax-speech-latest", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]=text
import re
voice=os.environ["AILOOT_VOICE_ID"]
if not re.fullmatch(r"[A-Za-z0-9_-]{1,128}",voice):raise SystemExit("Set an actual accepted voice ID")
p["voice"]=voice
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 · 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}`

##### 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** [`speech-2.8-hd`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=speech-2.8-hd&fmt=speech), [`minimax-speech`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech&fmt=speech), [`minimax-speech-latest`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech-latest&fmt=speech)

#### Method path aliases

Use the method paths shown above.

#### Related caller IDs

[`speech-2.8-hd`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=speech-2.8-hd&fmt=speech), [`minimax-speech`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech&fmt=speech), [`minimax-speech-latest`](https://ailoot.ai/models/en/#m=speech-2.8-hd&route=Core&caller=minimax-speech-latest&fmt=speech)

FAQ · speech-2.8-hd

What inputs and results are available?

`POST /v1/audio/speech` · `speech-2.8-hd`: `text` → `speech` `POST /v1/audio/speech` · `minimax-speech`: `text` → `speech` `POST /v1/audio/speech` · `minimax-speech-latest`: `text` → `speech`

Which fields does the request use?

`POST /v1/audio/speech` · `speech-2.8-hd`: `model`, `input`, `voice`, `response_format` `POST /v1/audio/speech` · `minimax-speech`: `model`, `input`, `voice`, `response_format` `POST /v1/audio/speech` · `minimax-speech-latest`: `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.
