Асинхронный синтез речи 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>"
}Аудио
Асинхронный синтез речи MiniMax Speech-2.6-turbo
POST
/
v3
/
async
/
minimax-speech-2.6-turbo
Асинхронный синтез речи 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>"
}Этот API поддерживает асинхронную генерацию на основе преобразования текста в речь. За одну передачу текстовой генерации поддерживается до 1 миллиона символов, а полный сгенерированный аудиорезультат можно получить асинхронным способом. Поддерживается самостоятельный выбор более 100 системных голосов и клонированных голосов; также поддерживается самостоятельная настройка интонации, скорости речи, громкости, битрейта, частоты дискретизации и выходного формата.
После отправки запроса на синтез речи из длинного текста обратите внимание, что срок действия возвращаемого url составляет 24 часа с момента его возврата. Учитывайте время загрузки информации.
Подходит для генерации речи из длинных текстов, например целых книг; ожидание задачи в очереди может занять продолжительное время. Для сценариев генерации коротких фраз, голосового чата, онлайн-социального взаимодействия и т. п. рекомендуется использовать синхронный вызов синтеза речи.
Заголовки запроса
string
обязательно
Перечисляемое значение:
application/jsonstring
обязательно
Формат аутентификации Bearer: Bearer {{API 秘钥}}.
Тело запроса
string
обязательно
Текст для синтеза, максимальная длина — 50 тысяч символов.
object
обязательно
Показать properties
Показать properties
number
Диапазон [0.5,2], значение по умолчанию — 1.0Скорость генерируемого голоса. Необязательно. Чем больше значение, тем выше скорость речи.
number
Диапазон (0,10], значение по умолчанию — 1.0Громкость генерируемого голоса. Необязательно. Чем больше значение, тем выше громкость.
number
по умолчанию:0
Диапазон [-12,12], значение по умолчанию — 0Интонация генерируемого голоса. Необязательно (0 — вывод исходного тембра, значение должно быть целым числом).
string
Идентификатор запрашиваемого голоса.Поддерживаются два типа: системные голоса (id) и клонированные голоса (id). Системные голоса (ID) перечислены ниже:
- Голос неопытного молодого мужчины:
male-qn-qingse - Голос элитного молодого мужчины:
male-qn-jingying - Голос властного молодого мужчины:
male-qn-badao - Голос молодого студента университета:
male-qn-daxuesheng - Голос девушки:
female-shaonv - Голос зрелой старшей женщины:
female-yujie - Голос зрелой женщины:
female-chengshu - Голос милой женщины:
female-tianmei - Мужчина-ведущий:
presenter_male - Женщина-ведущая:
presenter_female - Мужская аудиокнига 1:
audiobook_male_1 - Мужская аудиокнига 2:
audiobook_male_2 - Женская аудиокнига 1:
audiobook_female_1 - Женская аудиокнига 2:
audiobook_female_2 - Голос неопытного молодого мужчины-beta:
male-qn-qingse-jingpin - Голос элитного молодого мужчины-beta:
male-qn-jingying-jingpin - Голос властного молодого мужчины-beta:
male-qn-badao-jingpin - Голос молодого студента университета-beta:
male-qn-daxuesheng-jingpin - Голос девушки-beta:
female-shaonv-jingpin - Голос зрелой старшей женщины-beta:
female-yujie-jingpin - Голос зрелой женщины-beta:
female-chengshu-jingpin - Голос милой женщины-beta:
female-tianmei-jingpin - Умный мальчик:
clever_boy - Милый мальчик:
cute_boy - Очаровательная девочка:
lovely_girl - Мультяшная свинка Сяоци:
cartoon_pig - Болезненно одержимый младший брат:
bingjiao_didi - Красивый парень:
junlang_nanyou - Невинный младший ученик:
chunzhen_xuedi - Холодный старший ученик:
lengdan_xiongzhang - Властный молодой господин:
badao_shaoye - Милашка Сяолин:
tianxin_xiaoling - Игривaя милая девушка:
qiaopi_mengmei - Обольстительная зрелая старшая женщина:
wumei_yujie - Нежно-капризная младшая ученица:
diadia_xuemei - Элегантная старшая ученица:
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
Управляет эмоцией синтезированной речи;В настоящее время поддерживаются 7 эмоций: радость, грусть, гнев, страх, отвращение, удивление, нейтральная;Диапазон параметра:
["happy", "sad", "angry", "fearful", "disgusted", "surprised", "neutral"]bool
по умолчанию:"false"
Этот параметр поддерживает нормализацию английского текста и может повысить производительность в сценариях чтения чисел, но немного увеличивает задержку. Если параметр не предоставлен, значение по умолчанию — false.
object
Показать properties
Показать properties
number
по умолчанию:32000
Диапазон 【8000,16000,22050,24000,32000,44100】Частота дискретизации генерируемого звука. Необязательно, по умолчанию — 32000.
number
по умолчанию:128000
Диапазон 【32000,64000,128000,256000】Битрейт генерируемого звука. Необязательно, значение по умолчанию — 128000. Этот параметр действует только для аудио в формате mp3.
string
по умолчанию:"mp3"
Формат генерируемого аудио. По умолчанию mp3. Доступные варианты:
mp3, pcm, flac, wav. wav поддерживается только при нестриминговом выводе.number
по умолчанию:1
Количество каналов генерируемого аудио. По умолчанию 1: моно, варианты:1: моно2: стерео
object
Показать properties
Показать properties
list
Замена текста, символов и соответствующего произношения, требующих специальной разметки.Замена произношения (корректировка тона/замена произношения других символов), формат следующий:
["燕少飞/(yan4)(shao3)(fei1)","达菲/(da2)(fei1)","omg/oh my god"]Тоны заменяются цифрами: первый тон (ровный) — 1, второй тон (восходящий) — 2, третий тон (нисходяще-восходящий) — 3, четвертый тон (нисходящий) — 4, нейтральный тон — 5.string
по умолчанию:"null"
Усиливает распознавание указанных малораспространенных языков и диалектов. После настройки может улучшить речевое качество в сценариях с указанным малораспространенным языком/диалектом. Если тип малораспространенного языка не очевиден, можно выбрать “auto”, и модель самостоятельно определит тип языка. Поддерживаются следующие значения:
'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
Настройки голосового эффектора. Поддерживаемые этим параметром аудиоформаты: mp3, wav, flac
Показать properties
Показать properties
integer
Регулировка высоты тона (низкий/яркий), диапазон [-100,100]. Чем ближе значение к -100, тем ниже звук; чем ближе к 100, тем ярче звук
integer
Регулировка интенсивности (сила/мягкость), диапазон [-100,100]. Чем ближе значение к -100, тем более жесткий и сильный звук; чем ближе к 100, тем более мягкий звук
integer
Регулировка тембра (бархатистый/звонкий), диапазон [-100,100]. Чем ближе значение к -100, тем более насыщенный звук; чем ближе значение к 100, тем более звонкий звук
string
Настройка звукового эффекта. За один раз можно выбрать только один вариант. Доступные значения:
spacious_echo(просторное эхо)auditorium_echo(эхо аудитории)lofi_telephone(телефонное искажение)robotic(электронный голос)
Параметры ответа
string
обязательно
task_id асинхронной задачи. Используйте этот task_id для запроса API получения результата задачи, чтобы получить результат генерации
⌘I