The MiniMax speech models are available through Upmore via the standard audio API (/v1/audio/speech). Send text, get audio bytes back — billing is per input character.
Available models
Model Notes speech-2.8-hdLatest generation, high fidelity speech-2.8-turboLatest generation, low latency speech-2.6-hd / speech-2.6-turboPrevious generation speech-02-hd / speech-02-turboLegacy speech-01-hd / speech-01-turboLegacy
hd variants prioritize audio fidelity; turbo variants prioritize latency and cost less. All models share the same request format.
Quick example
curl https://api.upmore.net/v1/audio/speech \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "speech-2.8-hd",
"input": "你好,欢迎使用语音合成服务。",
"voice": "male-qn-qingse",
"response_format": "mp3"
}' --output speech.mp3
from openai import OpenAI
client = OpenAI(
api_key = "YOUR_API_KEY" ,
base_url = "https://api.upmore.net/v1"
)
response = client.audio.speech.create(
model = "speech-2.8-hd" ,
voice = "male-qn-qingse" ,
input = "你好,欢迎使用语音合成服务。" ,
response_format = "mp3" ,
)
response.write_to_file( "speech.mp3" )
import fs from 'node:fs'
import OpenAI from 'openai'
const client = new OpenAI ({
apiKey: process . env . UPMORE_API_KEY ,
baseURL: 'https://api.upmore.net/v1' ,
})
const speech = await client . audio . speech . create ({
model: 'speech-2.8-hd' ,
voice: 'male-qn-qingse' ,
input: '你好,欢迎使用语音合成服务。' ,
response_format: 'mp3' ,
})
fs . writeFileSync ( 'speech.mp3' , Buffer . from ( await speech . arrayBuffer ()))
Parameters
Parameter Type Required Description modelstring Yes One of the model IDs from the table above inputstring Yes Text to synthesize, billed per character voicestring Yes MiniMax voice ID (e.g. male-qn-qingse, female-shaonv) — not OpenAI voice names response_formatstring No mp3 (default), wav, flac, aac, or pcmspeednumber No Playback speed, 0.5 – 2. Default: 1 metadataobject No Provider-specific fields merged into the upstream request
Advanced: provider passthrough
Anything MiniMax’s native T2A API supports can be passed through metadata — the object is merged into the upstream request body:
"metadata" : {
"voice_setting" : { "emotion" : "happy" , "pitch" : 0 },
"audio_setting" : { "sample_rate" : 32000 , "bitrate" : 128000 },
"language_boost" : "Chinese"
}
By default the platform returns the audio bytes directly. Set "metadata": {"output_format": "url"} to receive a 302 redirect to a temporary audio URL instead (use curl -L).
API Reference View the interactive API playground.