Озвучивает текст, может повторить голос по вашему образцу и подбирает звучание по изображению. Цена - 50 рублей за генерацию.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
ByteDance Seed Audio 1.0 озвучивает текст, в том числе на русском языке. Голос можно не выбирать - модель подберёт его сама. Можно дать ей запись нужного голоса, и она прочитает текст этим голосом. А можно передать картинку, и модель подберёт голос под изображённого персонажа.
Типичные задачи: закадровый голос для ролика, озвучка поздравления голосом конкретного человека (с его согласия), реплики персонажа по его портрету, быстрые черновики дикторского текста.
Каждый вызов создаёт асинхронную операцию: вы получаете id, а готовый MP3 забираете отдельным запросом статуса.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус queued.Сценарии, которые поддерживает модель:
generation_type: "text" - озвучка текста, голос модель выбирает сама.generation_type: "audio" - озвучка голосом из ваших записей (audios).generation_type: "image" - озвучка голосом, который модель подберёт по изображению (image).{
"tool": "seed-audio-1-0",
"input": {
"...": "..."
}
}
tool - slug нейросети, здесь всегда "seed-audio-1-0".input - параметры конкретного запуска.input, без дополнительного вложенного объекта input.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
generation_type | enum | Нет | Сценарий: text (по умолчанию), audio или image. |
text | string | Да | Текст для озвучки, от 1 до 2000 символов. Модель читает его целиком, поэтому пишите только то, что должно прозвучать. |
audios | string[] | В сценарии audio | От 1 до 3 ссылок на записи голоса: MP3, WAV или M4A, до 10 МБ каждая. Все записи должны быть одного и того же человека. В других сценариях поле не передавайте. |
image | string | В сценарии image | Ссылка на изображение: JPG, JPEG, PNG или WebP, до 10 МБ. В других сценариях поле не передавайте. |
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. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seed-audio-1-0",
"input": {
"generation_type": "text",
"text": "Добрый вечер! Сегодня расскажу, как за десять минут приготовить домашнюю пасту."
}
}'
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-audio-1-0',
input: {
generation_type: 'text',
text: 'Добрый вечер! Сегодня расскажу, как за десять минут приготовить домашнюю пасту.',
},
}),
})
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-audio-1-0',
'input': {
'generation_type': 'text',
'text': 'Добрый вечер! Сегодня расскажу, как за десять минут приготовить домашнюю пасту.',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
Передайте одну-три записи одного человека. Ссылаться на них в тексте не нужно: модель сама возьмёт голос из audios.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seed-audio-1-0",
"input": {
"generation_type": "audio",
"audios": [
"https://cdn.example.com/source-audio-1.mp3",
"https://cdn.example.com/source-audio-2.mp3"
],
"text": "Дорогая мама, поздравляю тебя с днём рождения! Спасибо за твою заботу и тепло."
}
}'
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-audio-1-0',
input: {
generation_type: 'audio',
audios: [
'https://cdn.example.com/source-audio-1.mp3',
'https://cdn.example.com/source-audio-2.mp3',
],
text: 'Дорогая мама, поздравляю тебя с днём рождения! Спасибо за твою заботу и тепло.',
},
}),
})
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-audio-1-0',
'input': {
'generation_type': 'audio',
'audios': [
'https://cdn.example.com/source-audio-1.mp3',
'https://cdn.example.com/source-audio-2.mp3',
],
'text': 'Дорогая мама, поздравляю тебя с днём рождения! Спасибо за твою заботу и тепло.',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
Модель смотрит на картинку и подбирает голос под персонажа. Здесь дополнительно включены ручные настройки: речь чуть медленнее обычной.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "seed-audio-1-0",
"input": {
"generation_type": "image",
"image": "https://cdn.example.com/source-image-1.jpg",
"text": "С Новым годом, ребята! Дедушка Мороз уже собрал подарки и скоро приедет к вам.",
"use_advanced": true,
"speed": 0.9,
"volume": 1,
"pitch": 0
}
}'
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-audio-1-0',
input: {
generation_type: 'image',
image: 'https://cdn.example.com/source-image-1.jpg',
text: 'С Новым годом, ребята! Дедушка Мороз уже собрал подарки и скоро приедет к вам.',
use_advanced: true,
speed: 0.9,
volume: 1,
pitch: 0,
},
}),
})
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-audio-1-0',
'input': {
'generation_type': 'image',
'image': 'https://cdn.example.com/source-image-1.jpg',
'text': 'С Новым годом, ребята! Дедушка Мороз уже собрал подарки и скоро приедет к вам.',
'use_advanced': True,
'speed': 0.9,
'volume': 1,
'pitch': 0,
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "seed-audio-1-0",
"cost": 50,
"balance_after": 450,
"created_at": "2026-09-24T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "seed-audio-1-0",
"cost": 50,
"created_at": "2026-09-24T12:00:00Z",
"completed_at": "2026-09-24T12:00:40Z",
"result": {
"type": "audio",
"urls": [
"https://storage.yandexcloud.net/bratuha.ru.files/user_files/1790249726632-voice.mp3"
],
"files": [
{
"url": "https://storage.yandexcloud.net/bratuha.ru.files/user_files/1790249726632-voice.mp3",
"name": "result"
}
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "seed-audio-1-0",
"cost": 50,
"created_at": "2026-09-24T12:00:00Z",
"completed_at": "2026-09-24T12:00:30Z",
"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. Опрашивайте статус раз в 10 секунд.
После успешного завершения result содержит один аудиофайл MP3:
type всегда равен "audio";urls содержит одну ссылку на MP3;files дублирует ту же ссылку с именем файла.Длительность зависит от длины текста: 150 символов русского текста звучат примерно 11-13 секунд.
cost. Если операция завершилась с ошибкой, деньги возвращаются на баланс автоматически.POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию и списывает деньги.queued проверяйте статус по id.audios и image должны быть публичными http/https URL, которые открываются без авторизации.audios и image в одном запросе не сочетаются: передавайте только поле своего сценария.text, будет прочитано вслух.speed, volume и pitch без use_advanced: true не применяются.validation_error. Длинный материал разбивайте на части и склеивайте готовые файлы.