Skip to main content
minimax avatar

MiniMax Speech-02 HD API

minimax/speech-02-hd

Turn text into natural, high-fidelity speech in 30+ languages with 300+ voices plus emotion, speed, pitch, and volume control.

0.0015 per second of output video

Model Input

Input

The text to synthesize into speech. Up to 5000 characters.

The voice to speak with. 300+ voices supported; pass the voice id as a string. Examples: Wise_Woman, Friendly_Person, Deep_Voice_Man, Calm_Woman, Casual_Guy, Lively_Girl, Patient_Man.

Min: 0.5 - Max: 2

Speaking speed. 1 is normal; lower is slower, higher is faster.

Min: 0.01 - Max: 10

Output volume multiplier.

Min: -12 - Max: 12

Pitch shift in semitones. 0 is the voice's natural pitch.

Emotional tone of the delivery. Leave unset for a neutral read.

If true, normalize English text (e.g. numbers and units) before synthesis for more natural pronunciation.

Voice selection and delivery controls.

Additional Settings

Customize your input with more control.

Hint the primary language/dialect to improve recognition for non-default or mixed-language text. Use a language name or 'auto'. Leave unset to let the model detect it.

You need to be logged in to run this model and view results.
Log in

Model Output

Output

Loading
Generated in 33.18 seconds
Logs (1 lines)

Model Example Requests

Examples

MiniMax Speech-02 HD API

MiniMax Speech-02 HD is a sound AI model by minimax. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.0015 per second of audio.

POST https://queue.modelrunner.run/minimax/speech-02-hd

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/minimax/speech-02-hd \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Welcome to ModelRunner. This is a live verification of the MiniMax Speech-02 HD text to speech model.",
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/minimax/speech-02-hd/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/minimax/speech-02-hd/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("minimax/speech-02-hd", {
  input: {
    "text": "Welcome to ModelRunner. This is a live verification of the MiniMax Speech-02 HD text to speech model."
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/minimax/speech-02-hd",
    headers=headers,
    json={
      "text": "Welcome to ModelRunner. This is a live verification of the MiniMax Speech-02 HD text to speech model."
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

NameTypeRequiredDescription
textstringyesThe text to synthesize into speech. Up to 5000 characters.
voice_settingobjectnoVoice selection and delivery controls.
language_boostenumnoHint the primary language/dialect to improve recognition for non-default or mixed-language text. Use a language name or 'auto'. Leave unset to let the model detect it.

Machine-readable: OpenAPI schema · llms.txt

Use MiniMax Speech-02 HD from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and MiniMax Speech-02 HD becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint minimax/speech-02-hd.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run minimax/speech-02-hd on ModelRunner to generate sound”. MCP setup guide.

Model Details

Model Details

MiniMax Speech-02 HD converts written text into natural, studio-quality spoken audio and returns a hosted MP3. Pass the text you want spoken and pick a voice; the model handles intonation, pacing, and pronunciation, and exposes fine control over emotion, speed, pitch, and volume. It supports 30+ languages and 300+ pre-built voices, making it a strong default for narration, voiceover, IVR/phone prompts, audiobooks, and character dialogue. The HD profile prioritizes clarity and fidelity, so it's well suited to content people will actually listen to end-to-end.

## Best for - Narration and voiceover for videos, explainers, and ads - Audiobooks and long-form reading where consistent, clear delivery matters - IVR, phone trees, and automated announcements - Character dialogue and dramatized reads using emotion control - Multilingual content — the same pipeline across 30+ languages

## Choose another model when - You need a music track with melody and instrumentation — use a music-generation model - You want generic sound effects or ambience rather than spoken words — use a text-to-audio sound-effects model - You need real-time, ultra-low-latency streaming TTS in a live call — this returns a finished file, not a token stream

## Tips - Set `voice_setting.voice_id` to choose the speaker. The default is `Wise_Woman`; other examples include `Friendly_Person`, `Deep_Voice_Man`, `Calm_Woman`, `Casual_Guy`, `Lively_Girl`, and `Patient_Man` (300+ voices supported — pass the voice id as a string). - Use `voice_setting.emotion` (`happy`, `sad`, `angry`, `fearful`, `disgusted`, `surprised`, `neutral`) to color the delivery; leave it unset for a neutral read. - Tune pacing and tone with `voice_setting.speed` (0.5–2.0), `voice_setting.pitch` (-12 to 12), and `voice_setting.vol` (0.01–10). - Punctuate the input text the way you want it read — commas and periods drive pauses and intonation.

## Advanced Configuration - `voice_setting.english_normalization` (default `false`): when `true`, normalizes English text (e.g. numbers and units) before synthesis for more natural pronunciation, at a small latency cost. Configured via the API. - `language_boost` (default unset): hint the primary language/dialect to improve recognition for non-default or mixed-language text. Accepts a language name (e.g. `English`, `Spanish`, `Japanese`, `Arabic`) or `auto`.

To run via the ModelRunner JavaScript client: ```js import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("minimax/speech-02-hd", { input: { text: "Welcome to ModelRunner. This is high-definition text to speech.", voice_setting: { voice_id: "Wise_Woman", speed: 1, emotion: "happy" }, }, }); ```