MiniMax: Speech 2.8 Turbo
Speech 2.8 Turbo provides fast synthesis of natural speech with audio markers and expressive control.
About the model
This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.
Fast synthesis of conversational lines
Speech 2.8 Turbo combines fast audio production with natural variation in the voice. The manufacturer positions Turbo for fluent conversational sound: short lines, text narration and voice interaction. This card accepts text and returns speech audio.
Laughter, breathing and interjections
Like the HD version of this generation, Turbo supports Speech 2.8 audio markers. Text can include markers for laughter, chuckling, coughing, throat clearing, inhaling, exhaling, sighing and other short sounds. This controlled variation makes a line resemble conversation, introducing breaths and pauses connected to the content.
An audio marker applies to a specific place in the text. The model's defined parenthesized markers are used for this, such as (laughs) or (breath). An arbitrary effect description is not an equivalent substitute for a supported marker.
Voice and language
The Speech 2.8 family supports 40 languages, including Russian, and work with prepared voices. The manufacturer highlights recognizable vocal texture, breathing characteristics and reduced digital distortion. Cloning capability concerns separate voice preparation, after which the voice can be used in synthesis.
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.
Incremental output and audio format
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.
Turbo's speed is a characteristic of the model variant, not a promise of fixed latency for a completed line. No numerical request latency is specified here. The listed extended manufacturer settings require support in the selected access method through Ailoot.
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 Ultra · Text to speech POST /v1/audio/speech minimax/speech-2.8-turbo
minimax/speech-2.8-turboOverview
Speech 2.8 Turbo provides fast synthesis of natural speech with audio markers and expressive control.
- 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 |
|---|---|---|---|---|
Fieldmodel | Typestring | RequirementRequired | Values & limits minimax/speech-2.8-turbo | Default— |
Fieldinput | Typestring | RequirementRequired | Values & limits Minimum length: 1 Unit: Unicode characters | Default— |
Fieldvoice | Typestring | RequirementRequired | Values & limits English_expressive_narrator, English_radiant_girl, English_magnetic_voiced_man, English_compelling_lady1, English_Aussie_Bloke, English_captivating_female1, English_Upbeat_Woman, English_Trustworth_Man, English_CalmWoman, English_UpsetGirl, English_Gentle-voiced_man, English_Whispering_girl, English_Diligent_Man, English_Graceful_Lady, English_ReservedYoungMan, English_PlayfulGirl, English_ManWithDeepVoice, English_MaturePartner, English_FriendlyPerson, English_MatureBoss, English_Debator, English_LovelyGirl, English_Steadymentor, English_Deep-VoicedGentleman, English_Wiselady, English_CaptivatingStoryteller, English_DecentYoungMan, English_SentimentalLady, English_ImposingManner, English_SadTeen, English_PassionateWarrior, English_WiseScholar, English_Soft-spokenGirl, English_SereneWoman, English_ConfidentWoman, English_PatientMan, English_Comedian, English_BossyLeader, English_Strong-WilledBoy, English_StressedLady, English_AssertiveQueen, English_AnimeCharacter, English_Jovialman, English_WhimsicalGirl, English_Kind-heartedGirl | Default— |
Fieldresponse_format | Typestring | RequirementRequired | Values & limits mp3 | Default— |
Input material combinations
text_to_speech · Required: input
Method parameters and lifecycle
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, input, voice, response_format |
Parametervoice_ids | ContractEnglish_expressive_narrator, English_radiant_girl, English_magnetic_voiced_man, English_compelling_lady1, English_Aussie_Bloke, English_captivating_female1, English_Upbeat_Woman, English_Trustworth_Man, English_CalmWoman, English_UpsetGirl, English_Gentle-voiced_man, English_Whispering_girl, English_Diligent_Man, English_Graceful_Lady, English_ReservedYoungMan, English_PlayfulGirl, English_ManWithDeepVoice, English_MaturePartner, English_FriendlyPerson, English_MatureBoss, English_Debator, English_LovelyGirl, English_Steadymentor, English_Deep-VoicedGentleman, English_Wiselady, English_CaptivatingStoryteller, English_DecentYoungMan, English_SentimentalLady, English_ImposingManner, English_SadTeen, English_PassionateWarrior, English_WiseScholar, English_Soft-spokenGirl, English_SereneWoman, English_ConfidentWoman, English_PatientMan, English_Comedian, English_BossyLeader, English_Strong-WilledBoy, English_StressedLady, English_AssertiveQueen, English_AnimeCharacter, English_Jovialman, English_WhimsicalGirl, English_Kind-heartedGirl |
Parameterresponse_format | Contractmp3 |
Parametermax_input_characters | Contractnull |
Parameterother_options | Contractfalse |
Parameterinput | Contractexact UTF-8 text; Unicode character count without normalization |
Parametermaterial_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 | Billable quantity | Billing unit | Charge |
|---|---|---|---|---|
| ConfigurationBase token rates | Rate scheduleBase rate | Billable quantity— | 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 |
| ConfigurationUltra | Rate schedule— | Billable quantityEach Unicode code point counts as one character, including Han characters. | Billing unitper 1000 input character | Charge Input · input character $0.12 per 1000 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.
MiniMax: Speech 2.8 Turbo
Prices by configuration
| Configuration | Billing conditions | Charge |
|---|---|---|
| ConfigurationMiniMax: Speech 2.8 Turbo · Default configuration | Billing conditionsDefault configuration | Charge Input · Input characters $0.00012 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 →
Example requests
Ailoot Ultra · Text to speech
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": "minimax/speech-2.8-turbo", "input": "Good afternoon! This is a short voice take."}')
voice=os.environ["AILOOT_VOICE_ID"]
allowed=json.loads('["English_expressive_narrator", "English_radiant_girl", "English_magnetic_voiced_man", "English_compelling_lady1", "English_Aussie_Bloke", "English_captivating_female1", "English_Upbeat_Woman", "English_Trustworth_Man", "English_CalmWoman", "English_UpsetGirl", "English_Gentle-voiced_man", "English_Whispering_girl", "English_Diligent_Man", "English_Graceful_Lady", "English_ReservedYoungMan", "English_PlayfulGirl", "English_ManWithDeepVoice", "English_MaturePartner", "English_FriendlyPerson", "English_MatureBoss", "English_Debator", "English_LovelyGirl", "English_Steadymentor", "English_Deep-VoicedGentleman", "English_Wiselady", "English_CaptivatingStoryteller", "English_DecentYoungMan", "English_SentimentalLady", "English_ImposingManner", "English_SadTeen", "English_PassionateWarrior", "English_WiseScholar", "English_Soft-spokenGirl", "English_SereneWoman", "English_ConfidentWoman", "English_PatientMan", "English_Comedian", "English_BossyLeader", "English_Strong-WilledBoy", "English_StressedLady", "English_AssertiveQueen", "English_AnimeCharacter", "English_Jovialman", "English_WhimsicalGirl", "English_Kind-heartedGirl"]')
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}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Other content reads
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
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
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 |
|---|---|
Fieldbinary audio | Typebytes |
Fieldresponse 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. |
Responseserver_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 minimax/speech-2.8-turbo
Method path aliases
Use the method paths shown above.
Related caller IDs
FAQ · MiniMax: Speech 2.8 Turbo
- What inputs and results are available?
POST /v1/audio/speech·minimax/speech-2.8-turbo:text→audio- Which fields does the request use?
POST /v1/audio/speech·minimax/speech-2.8-turbo:model,input,voice,response_format