MiniMax TTS offers direct HTTP synthesis with optional streaming, a WebSocket path for receiving streamed audio, and an asynchronous option for longer jobs. The API documentation lists speech-2.8-hd and speech-2.8-turbo among its models: MiniMax describes HD in terms of fidelity and sound tags, and Turbo as emphasizing speed and natural flow. For a quick integration test, send a text prompt to the HTTP endpoint and save the returned audio. For budgeting, distinguish MiniMax’s direct account pricing from a model’s price on a third-party platform: OpenRouter lists $60 per million characters for Turbo and $100 per million for HD, but those figures are OpenRouter’s displayed rates, not a verified MiniMax direct-account tariff. (platform.minimax.io)
MiniMax TTS capabilities to evaluate
The official MiniMax model overview lists speech-2.8-hd and speech-2.8-turbo; it describes HD as focused on realistic quality and sound tags, and Turbo as balancing speed and natural flow. The API documentation also lists support for 40 languages across its speech models. Those descriptions help narrow a first evaluation, but they are not a guarantee that a particular voice or language will meet your quality or latency requirements. Test representative text, voices, and languages from your intended workload before selecting a model. (platform.minimax.io)
MiniMax Audio’s consumer-facing pages advertise more than 300 voices across 50+ languages. Treat that as a product-page claim, not a promise that every voice is selectable through every API model or account. The API request uses a voice_id; confirm the IDs available to your API account and chosen model before building a production voice catalog. (minimax.io)
The direct HTTP example supports voice settings such as speed, volume, and pitch, along with audio output settings including sample rate, bitrate, format, and channel. Its example requests MP3 audio as hex-encoded data. For streaming playback, the API also has a WebSocket route; for long-form synthesis, MiniMax documents an asynchronous TTS workflow. The synchronous guide states a limit of up to 10,000 characters per request, so use the documented async path when your jobs exceed the synchronous limit. (platform.minimax.io)
Direct MiniMax TTS API integration in Python
This is a direct MiniMax HTTP API example, not a LiveKit integration or third-party aggregator workflow.
Prerequisites: a MiniMax API key from Account Management → API Keys, Python, and the requests package. Keep the key in an environment variable rather than hard-coding it in source code. The API reference specifies bearer-token authentication and the endpoint POST https://api.minimax.io/v1/t2a_v2. (platform.minimax.io)
-
Install the HTTP client:
python -m pip install requests -
Set the API key in your shell. Replace the placeholder with your key:
export MINIMAX_API_KEY="your_api_key" -
Save and run this example. It requests MP3 output, checks the API response, decodes the returned hex audio, and writes
minimax.mp3:import os import requests api_key = os.environ["MINIMAX_API_KEY"] response = requests.post( "https://api.minimax.io/v1/t2a_v2", headers={ "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", }, json={ "model": "speech-2.8-turbo", "text": "Your MiniMax text-to-speech test is ready.", "stream": False, "voice_setting": { "voice_id": "English_expressive_narrator", "speed": 1, "vol": 1, "pitch": 0, }, "audio_setting": { "sample_rate": 32000, "bitrate": 128000, "format": "mp3", "channel": 1, }, "output_format": "hex", }, timeout=120, ) response.raise_for_status() result = response.json() if result.get("base_resp", {}).get("status_code") != 0: raise RuntimeError(result.get("base_resp", {}).get("status_msg", "TTS request failed")) audio_hex = result["data"]["audio"] with open("minimax.mp3", "wb") as audio_file: audio_file.write(bytes.fromhex(audio_hex))On a successful response, the API returns audio under
data.audio; the documented example identifies it as hex-encoded MP3 whenoutput_formatishex. This code is based on the documented request and response shape; it is not a report of an independently run test. Change the model, voice, or output settings only to values supported for your account and chosen model. (platform.minimax.io)
If your app uses LiveKit
LiveKit documents a separate Python plugin route. Install its MiniMax extra with pip install "livekit-agents[minimax]~=1.8", set MINIMAX_API_KEY in .env, then pass minimax.TTS() to a LiveKit AgentSession. The guide’s snippet is partial and omits other session components; it is not a direct HTTP API example. LiveKit documents speech-02-turbo and socialmedia_female_2_v1 as plugin defaults, plus controls such as speed and emotion. It says text normalization can improve how numbers and dates are spoken, with some added latency; the guide does not quantify that latency. (platform.minimax.io)
MiniMax TTS pricing and a sample estimate
MiniMax’s API pricing documentation says audio has its own billing and package options, but the official pricing information available here does not establish an exact direct-account rate for speech-2.8-hd or speech-2.8-turbo. Do not treat a consumer Audio trial, an audio-point subscription, or another platform’s price as the direct pay-as-you-go API rate. Confirm the rate and billing terms shown for your own MiniMax account before setting a production budget. (platform.minimax.io)
For a separate, concrete reference point, OpenRouter lists $60 per million characters for speech-2.8-turbo and $100 per million characters for speech-2.8-hd. These are displayed OpenRouter rates for those models, not a confirmed direct MiniMax price; your applicable billing and route may differ. (openrouter.ai)
Using those listed rates, the arithmetic for 100,000 billable characters is:
- Turbo: 100,000 ÷ 1,000,000 × $60 = $6.
- HD: 100,000 ÷ 1,000,000 × $100 = $10.
This is a hypothetical usage estimate, not a quote. For a fair comparison, use the billable-character count reported by the API or provider and include any applicable package, account, or routing charges. MiniMax’s async API documentation notes that its billing-character count treats each Chinese character as two characters and other characters as one; check the applicable endpoint’s metering rules for your workload. (platform.minimax.io)
Which integration path should you choose?
- Choose direct HTTP when your app submits complete text and can process audio returned in the response. Start with a short test, verify the audio file and voice, then evaluate longer representative scripts.
- Evaluate the WebSocket route when your application needs sentence-by-sentence streamed audio for live playback. The official guide describes this as a real-time synthesis path. (
platform.minimax.io) - Use the async workflow for longer synthesis jobs rather than exceeding the synchronous request limit. MiniMax documents task creation, status queries, and retrieval of the generated audio file. (
platform.minimax.io) - Use the LiveKit plugin when the integration target is a LiveKit voice agent and you want MiniMax configured as that framework’s TTS provider. It is a framework-specific path, not evidence that it is better than direct API access. (
platform.minimax.io)
Before adopting a model, test your own target language, chosen voice, number and date pronunciation, output format, request-size needs, and measured end-to-end behavior. Compare applicable direct-account pricing with any third-party route you are considering; the prices above alone do not establish which path is cheaper for your usage.
For broader context on MiniMax model access, costs, and deployment fit, see the MiniMax API buyer’s guide.
Sources
Synchronous Text to Speech — MiniMax API Docs
Synchronous Text-to-Speech Guide — MiniMax API Docs
Async Long TTS Guide — MiniMax API Docs
Pricing Overview — MiniMax API Docs
Speech 2.8 Turbo — Text-to-Speech API Pricing
Speech 2.8 HD — Text-to-Speech API Pricing
MiniMax TTS plugin guide — LiveKit Documentation
MiniMax API: A Buyer’s Guide to Access, Cost, and Deployment Fit
