Озвучивает текст готовыми голосами на 10 иностранных языках и даёт настроить подачу речи. Цена - 10 ₽ за 1000 символов.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
ByteDance Seed Speech TTS 2.0 превращает текст в речь на одном из 10 иностранных языков: английском, китайском, японском, корейском, испанском, португальском, французском, немецком, итальянском и индонезийском. Её берут для англоязычной озвучки роликов и презентаций, дикторского текста для зарубежной аудитории, голосов персонажей и учебных материалов на иностранном языке.
Русский язык модель не поддерживает: для русского текста она не вернёт результат.
Вы выбираете язык, один из готовых голосов и при желании описываете словами, как произнести текст. Каждый вызов создаёт асинхронную операцию: вы получаете id, а готовый MP3 забираете отдельным запросом статуса.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус queued.Режим у модели один - озвучка текста. Отличаются только язык, голос и необязательные настройки подачи.
{
"tool": "seed-speech-tts-2-0",
"input": {
"...": "..."
}
}
tool - slug нейросети, здесь всегда "seed-speech-tts-2-0".input - параметры конкретного запуска.input, без дополнительного вложенного объекта input.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Текст для озвучки, от 1 до 5000 символов. Пишите на том языке, который указали в language. |
language | enum | Нет | Язык озвучки: en (английский), zh (китайский), ja (японский), ko (корейский), es-mx (испанский), pt-br (португальский), fr (французский), de (немецкий), it (итальянский), id (индонезийский). Если не передать, используется en. |
voice | enum | Нет | Готовый голос. Он должен говорить на выбранном языке - таблица голосов ниже. Если не передать, используется stokie_en. |
voice_instruction | string | Нет | Подсказка словами, как произнести текст: тон, эмоция, темп, громкость. До 500 символов. Сама подсказка не озвучивается. Например: warm and calm, a bit slower, with a smile. |
use_advanced | boolean | Нет | Включает ручные настройки speed, volume и pitch. Без true эти три поля не применяются. |
speed | number | Нет | Скорость речи от 0.5 до 2. 1 - обычная скорость. Работает только вместе с use_advanced: true. |
volume | number | Нет | Громкость от 0.5 до 2. 1 - обычная громкость. Работает только вместе с use_advanced: true. |
pitch | integer | Нет | Высота голоса в полутонах от -12 до 12. 0 - без изменений. Работает только вместе с use_advanced: true. |
voice | Имя на сайте | Языки |
|---|---|---|
vivi_mixed_en_zh_ja_es_id | Виви | en, zh, ja, es-mx, id |
mindy_en_es_id_pt_zh | Минди | en, es-mx, id, pt-br, zh |
jess_ja_es_id_pt_en_zh | Джесс | en, zh, ja, es-mx, pt-br, id |
pinky_es_ko_mixed_en_zh | Пинки | en, zh, ko, es-mx |
sandy_es_mixed_en_zh | Сэнди | en, zh, es-mx |
stokie_en | Стоки | en |
dacey_en | Дейси | en |
tim_en | Тим | en |
kian_en_zh | Киан | en, zh |
cedric_en_zh | Седрик | en, zh |
sophie_en_zh | Софи | en, zh |
jean_en_zh | Джин | en, zh |
magnus_en_zh | Магнус | en, zh |
mabel_en_zh | Мейбл | en, zh |
nadia_en_zh | Надия | en, zh |
opal_en_zh | Опал | en, zh |
pearl_en_zh | Перл | en, zh |
quentin_en_zh | Квентин | en, zh |
vienna_mixed_en_zh | Вьенна | en, zh |
alina_mixed_en_zh | Алина | en, zh |
corinne_mixed_en_zh | Коринн | en, zh |
esther_mixed_en_zh | Эстер | en, zh |
freya_mixed_en_zh | Фрейя | en, zh |
gigi_mixed_en_zh | Джиджи | en, zh |
holly_mixed_en_zh | Холли | en, zh |
lyla_mixed_en_zh | Лайла | en, zh |
daisy_mixed_en_zh | Дейзи | en, zh |
tracy_es_zh | Трейси | es-mx, zh |
sweety_ja_es | Свити | ja, es-mx |
felix_zh | Феликс | zh |
celeste_zh | Селеста | zh |
monkey_king_zh | Король обезьян | zh |
minimi_ja | Миними | ja |
shane_ko | Шейн | ko |
felipe_es | Фелипе | es-mx |
martins_pt | Мартинс | pt-br |
usseau_fr | Юссо | fr |
sven_de | Свен | de |
enzo_it | Энцо | it |
han_id | Хан | id |
Послушать каждый голос можно на странице нейросети в форме сайта: у кнопки голоса есть пример звучания.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seed-speech-tts-2-0",
"input": {
"text": "Welcome to our store! Today we have a special offer on all winter jackets.",
"language": "en",
"voice": "stokie_en"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seed-speech-tts-2-0',
input: {
text: 'Welcome to our store! Today we have a special offer on all winter jackets.',
language: 'en',
voice: 'stokie_en',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'seed-speech-tts-2-0',
'input': {
'text': 'Welcome to our store! Today we have a special offer on all winter jackets.',
'language': 'en',
'voice': 'stokie_en',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
Здесь испанский текст читает голос felipe_es. Подсказка voice_instruction задаёт настроение, а use_advanced включает ручную скорость и высоту.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seed-speech-tts-2-0",
"input": {
"text": "¡Hola a todos! Hoy vamos a preparar una receta rápida y deliciosa para la cena.",
"language": "es-mx",
"voice": "felipe_es",
"voice_instruction": "cheerful and friendly, like a cooking show host",
"use_advanced": true,
"speed": 1.1,
"volume": 1,
"pitch": -2
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'seed-speech-tts-2-0',
input: {
text: '¡Hola a todos! Hoy vamos a preparar una receta rápida y deliciosa para la cena.',
language: 'es-mx',
voice: 'felipe_es',
voice_instruction: 'cheerful and friendly, like a cooking show host',
use_advanced: true,
speed: 1.1,
volume: 1,
pitch: -2,
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'seed-speech-tts-2-0',
'input': {
'text': '¡Hola a todos! Hoy vamos a preparar una receta rápida y deliciosa para la cena.',
'language': 'es-mx',
'voice': 'felipe_es',
'voice_instruction': 'cheerful and friendly, like a cooking show host',
'use_advanced': True,
'speed': 1.1,
'volume': 1,
'pitch': -2,
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "seed-speech-tts-2-0",
"cost": 10,
"balance_after": 490,
"created_at": "2026-09-24T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "seed-speech-tts-2-0",
"cost": 10,
"created_at": "2026-09-24T12:00:00Z",
"completed_at": "2026-09-24T12:00:12Z",
"result": {
"type": "audio",
"urls": [
"https://storage.yandexcloud.net/bratuha.ru.files/user_files/1790248807118-speech.mp3"
],
"files": [
{
"url": "https://storage.yandexcloud.net/bratuha.ru.files/user_files/1790248807118-speech.mp3",
"name": "result"
}
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "seed-speech-tts-2-0",
"cost": 10,
"created_at": "2026-09-24T12:00:00Z",
"completed_at": "2026-09-24T12:00:13Z",
"result": null,
"error_message": "По вашему запросу не удалось получить результат. Пожалуйста, измените запрос или входные данные и попробуйте снова."
}
Такой ответ чаще всего приходит, когда текст написан на языке, который модель не поддерживает, например на русском.
После создания операции сохраните id и проверяйте её статус запросом:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
const response = await fetch(
'https://bratuha.ru/api/v1/operations/op_uuid-123',
{
headers: {
Authorization: 'Bearer brth_ваш_ключ',
},
}
)
const data = await response.json()
Пока озвучка создаётся, status будет queued или processing. Опрашивайте статус раз в 5-10 секунд.
После успешного завершения result содержит один аудиофайл MP3:
type всегда равен "audio";urls содержит одну ссылку на MP3;files дублирует ту же ссылку с именем файла.Длительность файла зависит от длины текста и скорости речи: 150 символов английского текста звучат примерно 8 секунд.
text, включая пробелы и знаки препинания.voice_instruction, скорость, громкость и высота на цену не влияют.cost. Если операция завершилась с ошибкой, деньги возвращаются на баланс автоматически.POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию и списывает деньги.queued проверяйте статус по id.felipe_es работает только с es-mx, а stokie_en - только с en. Несовместимая пара вернёт validation_error ещё до создания операции.language и voice, а также текст длиннее 5000 символов тоже вернут validation_error.speed, volume и pitch без use_advanced: true не применяются: модель читает с обычными настройками.voice_instruction пишите коротко и по делу: тон, эмоция, темп. Например, calm and slow или energetic, like a sports commentator.