Асинхронный синтез речи MiniMax Speech-2.6-hd
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>"
}Аудио
Асинхронный синтез речи MiniMax Speech-2.6-hd
POST
/
v3
/
async
/
minimax-speech-2.6-hd
Асинхронный синтез речи MiniMax Speech-2.6-hd
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>"
}Этот API поддерживает асинхронную генерацию на основе преобразования текста в речь. Максимальный объем текста для одной передачи генерации — 1 миллион символов; готовый аудиорезультат можно получить асинхронным способом. Поддерживается самостоятельный выбор из 100+ системных голосов и клонированных голосов; также поддерживается самостоятельная настройка интонации, скорости речи, громкости, битрейта, частоты дискретизации и выходного формата.
После отправки запроса на синтез речи из длинного текста обратите внимание: срок действия возвращенного url составляет 24 часа с момента его возврата. Учитывайте время при скачивании данных.
Подходит для генерации речи из длинных текстов, например целых книг; ожидание задачи в очереди может занять продолжительное время. Для сценариев генерации коротких фраз, голосового чата, онлайн-социального взаимодействия и т. п. рекомендуется использовать синхронный вызов синтеза речи.
Заголовки запроса
string
обязательно
Перечислимое значение:
application/jsonstring
обязательно
Формат Bearer-аутентификации: Bearer {{API 秘钥}}.
Тело запроса
string
обязательно
Текст для синтеза, максимальная длина — 50 000 символов.
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 - Озорная милая девушка:
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