MiniMax Speech-2.6-hd Asynchronous Speech Synthesis
curl --request POST \
--url https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"text": "<string>",
"voice_setting": {
"speed": 123,
"vol": 123,
"pitch": 123,
"voice_id": "<string>",
"emotion": "<string>",
"text_normalization": true
},
"audio_setting": {
"sample_rate": 123,
"bitrate": 123,
"format": "<string>",
"channel": 123
},
"pronunciation_dict": {
"tone": [
{}
]
},
"language_boost": "<string>",
"voice_modify": {
"pitch": 123,
"intensity": 123,
"timbre": 123,
"sound_effects": "<string>"
}
}
'import requests
url = "https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd"
payload = {
"text": "<string>",
"voice_setting": {
"speed": 123,
"vol": 123,
"pitch": 123,
"voice_id": "<string>",
"emotion": "<string>",
"text_normalization": True
},
"audio_setting": {
"sample_rate": 123,
"bitrate": 123,
"format": "<string>",
"channel": 123
},
"pronunciation_dict": { "tone": [{}] },
"language_boost": "<string>",
"voice_modify": {
"pitch": 123,
"intensity": 123,
"timbre": 123,
"sound_effects": "<string>"
}
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
text: '<string>',
voice_setting: {
speed: 123,
vol: 123,
pitch: 123,
voice_id: '<string>',
emotion: '<string>',
text_normalization: true
},
audio_setting: {sample_rate: 123, bitrate: 123, format: '<string>', channel: 123},
pronunciation_dict: {tone: [{}]},
language_boost: '<string>',
voice_modify: {pitch: 123, intensity: 123, timbre: 123, sound_effects: '<string>'}
})
};
fetch('https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => '<string>',
'voice_setting' => [
'speed' => 123,
'vol' => 123,
'pitch' => 123,
'voice_id' => '<string>',
'emotion' => '<string>',
'text_normalization' => true
],
'audio_setting' => [
'sample_rate' => 123,
'bitrate' => 123,
'format' => '<string>',
'channel' => 123
],
'pronunciation_dict' => [
'tone' => [
[
]
]
],
'language_boost' => '<string>',
'voice_modify' => [
'pitch' => 123,
'intensity' => 123,
'timbre' => 123,
'sound_effects' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd"
payload := strings.NewReader("{\n \"text\": \"<string>\",\n \"voice_setting\": {\n \"speed\": 123,\n \"vol\": 123,\n \"pitch\": 123,\n \"voice_id\": \"<string>\",\n \"emotion\": \"<string>\",\n \"text_normalization\": true\n },\n \"audio_setting\": {\n \"sample_rate\": 123,\n \"bitrate\": 123,\n \"format\": \"<string>\",\n \"channel\": 123\n },\n \"pronunciation_dict\": {\n \"tone\": [\n {}\n ]\n },\n \"language_boost\": \"<string>\",\n \"voice_modify\": {\n \"pitch\": 123,\n \"intensity\": 123,\n \"timbre\": 123,\n \"sound_effects\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"text\": \"<string>\",\n \"voice_setting\": {\n \"speed\": 123,\n \"vol\": 123,\n \"pitch\": 123,\n \"voice_id\": \"<string>\",\n \"emotion\": \"<string>\",\n \"text_normalization\": true\n },\n \"audio_setting\": {\n \"sample_rate\": 123,\n \"bitrate\": 123,\n \"format\": \"<string>\",\n \"channel\": 123\n },\n \"pronunciation_dict\": {\n \"tone\": [\n {}\n ]\n },\n \"language_boost\": \"<string>\",\n \"voice_modify\": {\n \"pitch\": 123,\n \"intensity\": 123,\n \"timbre\": 123,\n \"sound_effects\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"text\": \"<string>\",\n \"voice_setting\": {\n \"speed\": 123,\n \"vol\": 123,\n \"pitch\": 123,\n \"voice_id\": \"<string>\",\n \"emotion\": \"<string>\",\n \"text_normalization\": true\n },\n \"audio_setting\": {\n \"sample_rate\": 123,\n \"bitrate\": 123,\n \"format\": \"<string>\",\n \"channel\": 123\n },\n \"pronunciation_dict\": {\n \"tone\": [\n {}\n ]\n },\n \"language_boost\": \"<string>\",\n \"voice_modify\": {\n \"pitch\": 123,\n \"intensity\": 123,\n \"timbre\": 123,\n \"sound_effects\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}Audio
MiniMax Speech-2.6-hd Asynchronous Speech Synthesis
POST
/
v3
/
async
/
minimax-speech-2.6-hd
MiniMax Speech-2.6-hd Asynchronous Speech Synthesis
curl --request POST \
--url https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"text": "<string>",
"voice_setting": {
"speed": 123,
"vol": 123,
"pitch": 123,
"voice_id": "<string>",
"emotion": "<string>",
"text_normalization": true
},
"audio_setting": {
"sample_rate": 123,
"bitrate": 123,
"format": "<string>",
"channel": 123
},
"pronunciation_dict": {
"tone": [
{}
]
},
"language_boost": "<string>",
"voice_modify": {
"pitch": 123,
"intensity": 123,
"timbre": 123,
"sound_effects": "<string>"
}
}
'import requests
url = "https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd"
payload = {
"text": "<string>",
"voice_setting": {
"speed": 123,
"vol": 123,
"pitch": 123,
"voice_id": "<string>",
"emotion": "<string>",
"text_normalization": True
},
"audio_setting": {
"sample_rate": 123,
"bitrate": 123,
"format": "<string>",
"channel": 123
},
"pronunciation_dict": { "tone": [{}] },
"language_boost": "<string>",
"voice_modify": {
"pitch": 123,
"intensity": 123,
"timbre": 123,
"sound_effects": "<string>"
}
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
text: '<string>',
voice_setting: {
speed: 123,
vol: 123,
pitch: 123,
voice_id: '<string>',
emotion: '<string>',
text_normalization: true
},
audio_setting: {sample_rate: 123, bitrate: 123, format: '<string>', channel: 123},
pronunciation_dict: {tone: [{}]},
language_boost: '<string>',
voice_modify: {pitch: 123, intensity: 123, timbre: 123, sound_effects: '<string>'}
})
};
fetch('https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => '<string>',
'voice_setting' => [
'speed' => 123,
'vol' => 123,
'pitch' => 123,
'voice_id' => '<string>',
'emotion' => '<string>',
'text_normalization' => true
],
'audio_setting' => [
'sample_rate' => 123,
'bitrate' => 123,
'format' => '<string>',
'channel' => 123
],
'pronunciation_dict' => [
'tone' => [
[
]
]
],
'language_boost' => '<string>',
'voice_modify' => [
'pitch' => 123,
'intensity' => 123,
'timbre' => 123,
'sound_effects' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd"
payload := strings.NewReader("{\n \"text\": \"<string>\",\n \"voice_setting\": {\n \"speed\": 123,\n \"vol\": 123,\n \"pitch\": 123,\n \"voice_id\": \"<string>\",\n \"emotion\": \"<string>\",\n \"text_normalization\": true\n },\n \"audio_setting\": {\n \"sample_rate\": 123,\n \"bitrate\": 123,\n \"format\": \"<string>\",\n \"channel\": 123\n },\n \"pronunciation_dict\": {\n \"tone\": [\n {}\n ]\n },\n \"language_boost\": \"<string>\",\n \"voice_modify\": {\n \"pitch\": 123,\n \"intensity\": 123,\n \"timbre\": 123,\n \"sound_effects\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"text\": \"<string>\",\n \"voice_setting\": {\n \"speed\": 123,\n \"vol\": 123,\n \"pitch\": 123,\n \"voice_id\": \"<string>\",\n \"emotion\": \"<string>\",\n \"text_normalization\": true\n },\n \"audio_setting\": {\n \"sample_rate\": 123,\n \"bitrate\": 123,\n \"format\": \"<string>\",\n \"channel\": 123\n },\n \"pronunciation_dict\": {\n \"tone\": [\n {}\n ]\n },\n \"language_boost\": \"<string>\",\n \"voice_modify\": {\n \"pitch\": 123,\n \"intensity\": 123,\n \"timbre\": 123,\n \"sound_effects\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.highwayapi.ai/v3/async/minimax-speech-2.6-hd")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"text\": \"<string>\",\n \"voice_setting\": {\n \"speed\": 123,\n \"vol\": 123,\n \"pitch\": 123,\n \"voice_id\": \"<string>\",\n \"emotion\": \"<string>\",\n \"text_normalization\": true\n },\n \"audio_setting\": {\n \"sample_rate\": 123,\n \"bitrate\": 123,\n \"format\": \"<string>\",\n \"channel\": 123\n },\n \"pronunciation_dict\": {\n \"tone\": [\n {}\n ]\n },\n \"language_boost\": \"<string>\",\n \"voice_modify\": {\n \"pitch\": 123,\n \"intensity\": 123,\n \"timbre\": 123,\n \"sound_effects\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}This API supports asynchronous text-to-speech generation. A single text generation request supports up to 1 million characters for transmission, and the complete generated audio result can be retrieved asynchronously. It supports 100+ system voices and custom cloned voices; it also supports custom adjustment of intonation, speed, volume, bitrate, sample rate, and output format.
After submitting a long-text speech synthesis request, note that the returned url is valid for 24 hours from the time the url is returned. Please download the information in time.
Suitable for generating speech from long texts such as entire books. Task queueing may take a relatively long time. For scenarios such as short sentence generation, voice chat, and online social networking, we recommend using synchronous speech synthesis.
Request Headers
string
required
Enum value:
application/jsonstring
required
Bearer authentication format: Bearer {{API key}}.
Request Body
string
required
The text to synthesize, with a maximum length of 50,000 characters.
object
required
Show properties
Show properties
number
Range [0.5,2], default value is 1.0The speed of the generated voice. Optional. The larger the value, the faster the speech.
number
Range (0,10], default value is 1.0The volume of the generated voice. Optional. The larger the value, the higher the volume.
number
default:0
Range [-12,12], default value is 0The intonation of the generated voice. Optional. (0 means output with the original voice; the value must be an integer.)
string
The requested voice ID.Supports two types: system voices (id) and cloned voices (id). The system voice IDs are as follows:
- Young Male Voice:
male-qn-qingse - Elite Young Male Voice:
male-qn-jingying - Dominant Young Male Voice:
male-qn-badao - Male College Student Voice:
male-qn-daxuesheng - Girl Voice:
female-shaonv - Mature Sister Voice:
female-yujie - Mature Female Voice:
female-chengshu - Sweet Female Voice:
female-tianmei - Male Host:
presenter_male - Female Host:
presenter_female - Male Audiobook 1:
audiobook_male_1 - Male Audiobook 2:
audiobook_male_2 - Female Audiobook 1:
audiobook_female_1 - Female Audiobook 2:
audiobook_female_2 - Young Male Voice-beta:
male-qn-qingse-jingpin - Elite Young Male Voice-beta:
male-qn-jingying-jingpin - Dominant Young Male Voice-beta:
male-qn-badao-jingpin - Male College Student Voice-beta:
male-qn-daxuesheng-jingpin - Girl Voice-beta:
female-shaonv-jingpin - Mature Sister Voice-beta:
female-yujie-jingpin - Mature Female Voice-beta:
female-chengshu-jingpin - Sweet Female Voice-beta:
female-tianmei-jingpin - Clever Boy:
clever_boy - Cute Boy:
cute_boy - Lovely Girl:
lovely_girl - Cartoon Pig Xiaoqi:
cartoon_pig - Yandere Younger Brother:
bingjiao_didi - Handsome Boyfriend:
junlang_nanyou - Innocent Junior Schoolmate:
chunzhen_xuedi - Aloof Upperclassman:
lengdan_xiongzhang - Dominant Young Master:
badao_shaoye - Sweetheart Xiaoling:
tianxin_xiaoling - Playful Cute Girl:
qiaopi_mengmei - Charming Mature Sister:
wumei_yujie - Cutesy Junior Schoolmate:
diadia_xuemei - Elegant Upperclasswoman:
danya_xuejie - Santa Claus:
Santa_Claus - Grinch:
Grinch - Rudolph:
Rudolph - Arnold:
Arnold - Charming Santa:
Charming_Santa - Charming Lady:
Charming_Lady - Sweet Girl:
Sweet_Girl - Cute Elf:
Cute_Elf - Attractive Girl:
Attractive_Girl - Serene Woman:
Serene_Woman
string
Controls the emotion of the synthesized speech;7 emotions are currently supported: happy, sad, angry, fearful, disgusted, surprised, and neutral;Parameter range:
["happy", "sad", "angry", "fearful", "disgusted", "surprised", "neutral"]bool
default:"false"
This parameter supports English text normalization, which can improve performance in number-reading scenarios but may slightly increase latency. If not provided, the default value is false.
object
Show properties
Show properties
number
default:32000
Range [8000, 16000, 22050, 24000, 32000, 44100]The sample rate of the generated voice. Optional. Defaults to 32000.
number
default:128000
Range [32000, 64000, 128000, 256000]The bitrate of the generated voice. Optional. Default value is 128000. This parameter only takes effect for audio in mp3 format.
string
default:"mp3"
The generated audio format. Default is mp3. Options:
mp3, pcm, flac, wav. wav is only supported for non-streaming output.number
default:1
The number of channels for the generated audio. Default is 1: mono. Options:1: mono2: stereo
object
Show properties
Show properties
list
Replace text, symbols, and corresponding phonetic annotations that require special labeling.Pronunciation replacement (adjust tones/replace pronunciations of other characters), in the following format:
["燕少飞/(yan4)(shao3)(fei1)","达菲/(da2)(fei1)","omg/oh my god"]Tones are represented by numbers: first tone (Yinping) is 1, second tone (Yangping) is 2, third tone (Shangsheng) is 3, fourth tone (Qusheng) is 4, and neutral tone is 5.string
default:"null"
Enhances recognition capability for specified minority languages and dialects. After setting this parameter, speech performance can be improved in the specified minority language/dialect scenarios. If the minority language type is unclear, you can select “auto”, and the model will determine the minority language type automatically. The following values are supported:
'Chinese', 'Chinese,Yue', 'English', 'Arabic', 'Russian', 'Spanish', 'French', 'Portuguese', 'German', 'Turkish', 'Dutch', 'Ukrainian', 'Vietnamese', 'Indonesian', 'Japanese', 'Italian', 'Korean', 'Thai', 'Polish', 'Romanian', 'Greek', 'Czech', 'Finnish', 'Hindi', 'Bulgarian', 'Danish', 'Hebrew', 'Malay', 'Persian', 'Slovak', 'Swedish', 'Croatian', 'Filipino', 'Hungarian', 'Norwegian', 'Slovenian', 'Catalan', 'Nynorsk', 'Tamil', 'Afrikaans', 'auto'object
Voice effects settings. Supported audio formats for this parameter: mp3, wav, flac
Show properties
Show properties
integer
Pitch adjustment (deep/bright), range [-100,100]. Values closer to -100 make the voice deeper; values closer to 100 make the voice brighter.
integer
Intensity adjustment (powerful/soft), range [-100,100]. Values closer to -100 make the voice stronger; values closer to 100 make the voice softer.
integer
Timbre adjustment (magnetic/crisp), range [-100,100]. Values closer to -100 make the voice richer; values closer to 100 make the voice crisper.
string
Sound effects setting. Only one can be selected per request. Optional values:
spacious_echo(spacious echo)auditorium_echo(auditorium broadcast)lofi_telephone(telephone distortion)robotic(electronic voice)
Response Parameters
string
required
The task_id of the asynchronous task. You should use this task_id to request the Get Task Result API to obtain the generated result.
MiniMax Speech-2.6-hd Synchronous Speech Synthesis
Previous
MiniMax Speech-2.6-turbo Synchronous Speech Synthesis
Next
⌘I