Síntese de voz assíncrona MiniMax Speech-2.6-turbo
curl --request POST \
--url https://api.highwayapi.ai/v3/async/minimax-speech-2.6-turbo \
--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-turbo"
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-turbo', 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-turbo",
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-turbo"
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-turbo")
.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-turbo")
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>"
}Áudio
Síntese de voz assíncrona MiniMax Speech-2.6-turbo
POST
/
v3
/
async
/
minimax-speech-2.6-turbo
Síntese de voz assíncrona MiniMax Speech-2.6-turbo
curl --request POST \
--url https://api.highwayapi.ai/v3/async/minimax-speech-2.6-turbo \
--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-turbo"
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-turbo', 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-turbo",
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-turbo"
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-turbo")
.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-turbo")
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>"
}Esta API oferece suporte à geração assíncrona de texto para voz. Uma única transmissão de geração de texto oferece suporte a até 1 milhão de caracteres, e o resultado completo de áudio gerado pode ser recuperado de forma assíncrona. Oferece suporte a mais de 100 vozes do sistema e à seleção independente de vozes clonadas; também permite ajustar de forma independente entonação, velocidade, volume, bitrate, taxa de amostragem e formato de saída.
Após enviar uma solicitação de síntese de voz para texto longo, observe que a URL retornada é válida por 24 horas a partir do momento em que a URL é retornada. Preste atenção ao horário para baixar as informações.
Adequada para geração de voz de textos longos, como livros inteiros; o tempo de fila da tarefa pode ser relativamente longo. Para frases curtas, chat por voz, redes sociais online e cenários semelhantes, recomenda-se usar a síntese de voz por chamada síncrona.
Cabeçalhos da solicitação
string
obrigatório
Valores enumerados:
application/jsonstring
obrigatório
Formato de autenticação Bearer: Bearer {{API Key}}.
Corpo da solicitação
string
obrigatório
Texto a ser sintetizado, com limite máximo de 50 mil caracteres.
object
obrigatório
Mostrar properties
Mostrar properties
number
Intervalo [0.5,2], valor padrão 1.0Velocidade da fala gerada. Opcional; quanto maior o valor, mais rápida a fala.
number
Intervalo (0,10], valor padrão 1.0Volume da voz gerada. Opcional; quanto maior o valor, maior o volume.
number
padrão:0
Intervalo [-12,12], valor padrão 0Entonação da voz gerada. Opcional; 0 indica saída da voz original, e o valor deve ser um número inteiro.
string
ID da voz solicitada.Oferece suporte a dois tipos: vozes do sistema (id) e vozes clonadas (id). As vozes do sistema (ID) são:
- Voz masculina jovem e inexperiente:
male-qn-qingse - Voz masculina jovem de elite:
male-qn-jingying - Voz masculina jovem dominante:
male-qn-badao - Voz masculina de universitário jovem:
male-qn-daxuesheng - Voz de garota:
female-shaonv - Voz feminina madura e imponente:
female-yujie - Voz feminina madura:
female-chengshu - Voz feminina doce:
female-tianmei - Apresentador masculino:
presenter_male - Apresentadora feminina:
presenter_female - Audiolivro masculino 1:
audiobook_male_1 - Audiolivro masculino 2:
audiobook_male_2 - Audiolivro feminino 1:
audiobook_female_1 - Audiolivro feminino 2:
audiobook_female_2 - Voz masculina jovem e inexperiente-beta:
male-qn-qingse-jingpin - Voz masculina jovem de elite-beta:
male-qn-jingying-jingpin - Voz masculina jovem dominante-beta:
male-qn-badao-jingpin - Voz masculina de universitário jovem-beta:
male-qn-daxuesheng-jingpin - Voz de garota-beta:
female-shaonv-jingpin - Voz feminina madura e imponente-beta:
female-yujie-jingpin - Voz feminina madura-beta:
female-chengshu-jingpin - Voz feminina doce-beta:
female-tianmei-jingpin - Menino esperto:
clever_boy - Menino fofo:
cute_boy - Menina adorável:
lovely_girl - Porquinha de desenho Xiaoqi:
cartoon_pig - Irmão mais novo yandere:
bingjiao_didi - Namorado bonito:
junlang_nanyou - Calouro inocente:
chunzhen_xuedi - Veterano indiferente:
lengdan_xiongzhang - Jovem mestre dominante:
badao_shaoye - Queridinha Xiaoling:
tianxin_xiaoling - Menina fofa e brincalhona:
qiaopi_mengmei - Mulher madura sedutora:
wumei_yujie - Colega mais nova dengosa:
diadia_xuemei - Colega mais velha elegante:
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
Controla a emoção da voz sintetizada;Atualmente oferece suporte a 7 emoções: feliz, triste, irritada, com medo, enojada, surpresa, neutra;Intervalo de parâmetros:
["happy", "sad", "angry", "fearful", "disgusted", "surprised", "neutral"]bool
padrão:"false"
Este parâmetro oferece suporte à normalização de texto em inglês, o que pode melhorar o desempenho em cenários de leitura de números, mas aumentará ligeiramente a latência. Se não for fornecido, o valor padrão será false.
object
Mostrar properties
Mostrar properties
number
padrão:32000
Intervalo 【8000,16000,22050,24000,32000,44100】Taxa de amostragem da voz gerada. Opcional, padrão 32000.
number
padrão:128000
Intervalo 【32000,64000,128000,256000】Bitrate da voz gerada. Opcional, valor padrão 128000. Este parâmetro é efetivo apenas para áudio no formato mp3.
string
padrão:"mp3"
Formato do áudio gerado. Padrão mp3. Opções:
mp3, pcm, flac, wav. wav é compatível apenas em saída não streaming.number
padrão:1
Número de canais do áudio gerado. Padrão 1: mono. Opções:1: mono2: estéreo
object
Mostrar properties
Mostrar properties
list
Substitui textos, símbolos e respectivas pronúncias que exigem marcação especial.Substituição de pronúncia (ajuste de tom/substituição da pronúncia de outros caracteres), no seguinte formato:
["燕少飞/(yan4)(shao3)(fei1)","达菲/(da2)(fei1)","omg/oh my god"]Os tons são representados por números: primeiro tom (yinping) é 1, segundo tom (yangping) é 2, terceiro tom (shangsheng) é 3, quarto tom (qusheng) é 4, e tom neutro é 5.string
padrão:"null"
Melhora a capacidade de reconhecimento de idiomas menos comuns e dialetos especificados. Após a configuração, pode melhorar o desempenho da fala em cenários do idioma/dialeto especificado. Se o tipo de idioma menos comum não estiver claro, você pode selecionar “auto”, e o modelo determinará autonomamente o tipo do idioma. Oferece suporte aos seguintes valores:
'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
Configurações de efeitos de voz. Formatos de áudio compatíveis com este parâmetro: mp3, wav, flac
Mostrar properties
Mostrar properties
integer
Ajuste de altura tonal (grave/brilhante), intervalo [-100,100]. Quanto mais próximo de -100, mais grave é a voz; quanto mais próximo de 100, mais brilhante é a voz
integer
Ajuste de intensidade (força/suavidade), intervalo [-100,100]. Quanto mais próximo de -100, mais firme é a voz; quanto mais próximo de 100, mais suave é a voz
integer
Ajuste de timbre (magnético/nítido), intervalo [-100,100]. Quanto mais próximo de -100, mais encorpada é a voz; quanto mais próximo de 100, mais nítida é a voz
string
Configuração de efeito sonoro. Apenas uma opção pode ser selecionada por vez. Valores disponíveis:
spacious_echo(eco amplo)auditorium_echo(transmissão em auditório)lofi_telephone(distorção de telefone)robotic(voz eletrônica)
Parâmetros de informações da resposta
string
obrigatório
O task_id da tarefa assíncrona. Você deve usar este task_id para solicitar a API de consulta de resultado da tarefa a fim de obter o resultado gerado
Síntese de voz síncrona MiniMax Speech-2.6-turbo
Anterior
MiniMax Speech 2.8 Turbo Síntese de fala assíncrona
Próximo
⌘I