Skip to main content

MiniMax Speech 2.8 HD vs Turbo: Adult Audio, Prices and Controls

Turbo costs $0.072 per 1,000 characters and HD $0.12. See how they differ, how adult scripts and sound tags perform, and a copyable character input.

Author
Lydia
Published
Read
6 min read
Updated
Two adults inspect a cobalt pitcher on a table in a bright ceramic workshop

MiniMax Speech 2.8 Turbo is the better first choice for adult narration and character dialogue: $0.072 per 1,000 characters, against $0.12 for HD. Both share the same 472 system voices and the same delivery controls. Based on our September 2026 tests, both read explicit adult scripts word for word and perform sound tags such as (breath) and (gasps) instead of speaking them.

The quality gap is small. In Artificial Analysis's blind listening arena, HD scores about 1173 Elo and Turbo about 1153, and their confidence margins overlap. HD costs two-thirds more for that edge, so start on Turbo and move a line to HD only when you hear a specific problem, such as stiff phrasing or an awkward emotional turn.

Price and capability comparison

Billing is per character, including spaces, punctuation, line breaks and inline sound tags, with no rounding up to 1,000: a 115-character line costs $0.0083 on Turbo and $0.0138 on HD.

DetailSpeech 2.8 TurboSpeech 2.8 HD
Per 1,000 characters$0.072$0.12
Maximum request: 5,000 characters, about 6 to 7 minutes of speech$0.36$0.60
Ten-minute narration, about 7,750 characters in 2 requests$0.56$0.93
System voices472472
Emotion, speed, pitch, volume, pronunciation dictionaryAvailableAvailable
Default audioMono MP3, 32 kHzMono MP3, 32 kHz
Other formatsWAV, FLAC, raw PCMWAV, FLAC, raw PCM

The Turbo task and HD task are asynchronous single-voice generators, so neither suits a live voice agent. Voice cloning, which MiniMax's own API offers, is not available on these routes, and neither is a multi-speaker array: two characters need two requests and an audio edit. Generated audio is kept for 14 days, so download what you plan to use.

Adult scripts and sound tags

Both versions read explicit adult vocabulary as written, in direct passages and audiobook-style narration, with nothing skipped or truncated. Cue-heavy passages with (breath), (pant), (groans) and (gasps) came back with those sounds performed, not read out as words.

MiniMax's documentation lists 19 tags for Speech 2.8: (laughs), (chuckle), (coughs), (clear-throat), (groans), (breath), (pant), (inhale), (exhale), (gasps), (sniffs), (sighs), (snorts), (burps), (lip-smacking), (humming), (hissing), (emm) and (sneezes). Write the tag inside text where the sound should happen. The script for the Turbo teasing-rival sample starts with (laughs); the HD late-night voice note script includes (sighs). Play the samples to check the delivery of those cues.

A useful first character input

For a fictional adult sending a playful voice message, paste this as the input of a Turbo task (the model page's Playground takes the same fields):

json
{
  "text": "(laughs) You took your time. I saved you a seat, but you'll have to tell me what kept you. Stay for one more drink?",
  "voice_id": "Calm_Woman",
  "language": "en",
  "emotion": "neutral",
  "speed": 1,
  "pitch": 0,
  "volume": 1,
  "output_format": "mp3"
}

This costs $0.0083 on Turbo and $0.0138 on HD. MiniMax has no free-form instructions field, and the API rejects it; direction comes from the voice, the emotion value and the numeric controls. Calm_Woman is the default voice, and Deep_Voice_Man is another system ID for a lower male voice. Choose a different preset when you need a different timbre; pushing pitch down an octave does not replace casting a suitable voice.

To compare HD, keep this exact input and switch only the model. If you also change the script or voice, you can no longer tell what the model change did.

The controls that change a performance

ControlRange or optionsUseful starting decision
emotionneutral, happy, sad, angry, fearful, disgusted, surprisedStart neutral; happy can make a playful line more animated
speed0.5 to 2; normal is 1Try 0.9 if the line is rushed
pitch-12 to +12 semitones; normal is 0Keep 0 until you have chosen the voice
volume0.1 to 10; normal is 1Keep 1; set final mix levels in your editor
languageauto by default; 40 languages, including en, es, ja, koSet it for short or mixed-language scripts; it does not translate the text
english_normalizationBoolean; defaults to falseTurn it on for numbers and dates in English prose

emotion applies to the whole request. If a character shifts from playful to fearful, generate those passages separately with the same voice_id and different emotion values, then join them.

For a name the voice keeps misreading, add a pronunciation dictionary entry instead of changing the character:

json
{
  "text": "Good evening, Celine. I was hoping you'd call.",
  "voice_id": "Calm_Woman",
  "language": "en",
  "pronunciation_dict": [
    {"alias": "Celine", "pronunciation": "seh LEEN"}
  ]
}

The dictionary takes up to 100 entries. alias is the spelling in your script and cannot contain a slash. pronunciation can be plain respelled words or IPA in parentheses, such as (rɪˈzjuːm). It does not change the price.

Choose the right audio format

Use MP3 for a web preview and WAV or FLAC for further editing. MP3 bitrate is 32,000, 64,000, 128,000 (the default) or 256,000 bits per second and applies only to MP3. Sample rate is 8,000, 16,000, 22,050, 24,000, 32,000 (the default) or 44,100 Hz; choose 44,100 only if your editing project needs it, because a higher rate does not fix a mispronounced line.

Raw PCM is headerless 16-bit little-endian audio that browsers cannot play. Choose WAV unless your software already knows the sample rate and channel count. audio_channels accepts mono or stereo; stereo does not put different characters on separate tracks.

Fix the problem you can actually hear

ProblemFirst repair
A production note is spokenRemove it from text; only the tags listed above belong inline
A character name sounds wrongAdd a pronunciation dictionary entry
A playful line sounds angrySet emotion to neutral or happy; keep the words and voice unchanged
Two characters share one voiceGenerate each turn with its own voice_id; speaker labels in one text field do not switch voices
A clip is too rushedTry speed 0.9, or shorten a sentence that carries too much
A breath is badly placedMove or remove that tag instead of changing the model
Audio is distorted after a large volume boostReturn volume to 1 and adjust the accepted file in your editor

For a ten-scene project with 2,000 characters per scene, one Turbo pass costs $1.44 and one HD pass $2.40. Regenerating a single 200-character line costs $0.0144 on Turbo or $0.024 on HD, so fixing one line is far cheaper than buying a second full pass.

Start with Turbo, solve delivery problems with the controls above, and send only the lines that still sound wrong to HD. If you need a voice reference or a different price model, see the comparison of uncensored text-to-speech APIs.

Also in 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano · Polski

Try it yourself

Pay only for what you run — no plan, no subscription.

Made with MiniMax H3 · ByteDance Seedance 2.0 Fast