Озвучивает текст живыми голосами с паузами, шёпотом, смехом и другими интонационными вставками. Цена - 0,003 ₽ за символ.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
xAI TTS v1 превращает текст в живую речь. Модель хорошо говорит по-русски и ещё на 19 языках, а подачей можно управлять прямо в тексте: вставить паузу, смех, вздох или прочитать фразу шёпотом. Её используют для закадрового голоса в роликах, рекламы, аудиокниг, голосовых помощников и озвучки персонажей.
Вы выбираете один из 28 готовых голосов и язык, а в текст при желании добавляете теги подачи. Каждый вызов создаёт асинхронную операцию: вы получаете id, а готовый MP3 забираете отдельным запросом статуса.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус queued.Режим у модели один - озвучка текста. Отличаются голос, язык и теги внутри текста.
{
"tool": "xai-tts-v1",
"input": {
"...": "..."
}
}
tool - slug нейросети, здесь всегда "xai-tts-v1".input - параметры конкретного запуска.input, без дополнительного вложенного объекта input.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
text | string | Да | Текст для озвучки, от 1 до 15 000 символов. Можно добавлять теги подачи, например [pause] или <whisper>...</whisper> - подробнее ниже. |
voice | enum | Нет | Готовый голос из таблицы ниже, в нижнем регистре. Если не передать, используется eve. |
language | enum | Нет | Язык текста, от него зависит произношение. Если не передать, используется ru. Для текста на нескольких языках подойдёт auto - модель определит язык сама. |
Все значения language: ru - русский, auto - определить автоматически, en - английский, ar-EG - арабский (Египет), ar-SA - арабский (Саудовская Аравия), ar-AE - арабский (ОАЭ), bn - бенгальский, vi - вьетнамский, id - индонезийский, es-ES - испанский (Испания), es-MX - испанский (Мексика), it - итальянский, zh - китайский, ko - корейский, de - немецкий, pt-BR - португальский (Бразилия), pt-PT - португальский (Португалия), tr - турецкий, fr - французский, hi - хинди, ja - японский.
Каждый голос говорит на всех языках из списка выше.
voice | Голос | Характер |
|---|---|---|
altair | мужской | элегантный, утончённый, премиальный |
ara | женский | тёплый и дружелюбный |
atlas | мужской | уверенный, властный, успокаивающий |
aurora | женский | спокойный, ровный, светлый |
carina | женский | мягкий, сочувствующий, успокаивающий |
castor | мужской | харизматичный, простой, лёгкий |
celeste | женский | сопереживающий, уверенный, ободряющий |
cosmo | мужской | яркий, любознательный, понятный |
eve | женский | энергичный и бодрый |
helios | мужской | бодрый, энергичный, универсальный |
helix | женский | смелый, динамичный, драйвовый |
iris | женский | дружелюбный, позитивный, обаятельный |
kepler | мужской | изобретательный, современный, харизматичный |
leo | мужской | авторитетный и сильный |
liora | женский | спокойный, собранный, светлый |
lumen | мужской | тёплый, чёткий, вовлекающий |
luna | женский | мягкий, терпеливый, заботливый |
lux | мужской | основательный, спокойный, мудрый |
naksh | мужской | тёплый, вдумчивый, мудрый |
orion | мужской | глубокий, кинематографичный, звучный |
perseus | мужской | сильный, уверенный, вызывающий доверие |
Послушать каждый голос можно на странице нейросети в форме сайта: у кнопки голоса есть пример звучания на русском.
Теги пишутся по-английски прямо в text. Модель их не озвучивает, а играет.
Теги в квадратных скобках ставятся в то место, где должен прозвучать звук:
[pause], [long-pause];[laugh], [chuckle], [giggle], [cry];[breath], [inhale], [exhale], [sigh];[tsk], [tongue-click], [lip-smack], [hum-tune].Теги в угловых скобках оборачивают фрагмент и меняют манеру, в которой он прочитан. Нужны открывающий и закрывающий тег, например <whisper>это секрет</whisper>:
<soft>, <whisper>, <loud>, <build-intensity>, <decrease-intensity>;<higher-pitch>, <lower-pitch>, <slow>, <fast>;<emphasis>, <sing-song>, <singing>.Самый простой вызов: текст и голос. Язык по умолчанию - русский.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "xai-tts-v1",
"input": {
"text": "Добрый день! Мы открылись после ремонта и ждём вас в новом зале. Всю неделю действует скидка двадцать процентов на всё меню.",
"voice": "eve"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'xai-tts-v1',
input: {
text: 'Добрый день! Мы открылись после ремонта и ждём вас в новом зале. Всю неделю действует скидка двадцать процентов на всё меню.',
voice: 'eve',
},
}),
})
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': 'xai-tts-v1',
'input': {
'text': 'Добрый день! Мы открылись после ремонта и ждём вас в новом зале. Всю неделю действует скидка двадцать процентов на всё меню.',
'voice': 'eve',
},
},
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": "xai-tts-v1",
"input": {
"text": "Знаешь, что я нашла вчера на чердаке? [pause] Старую коробку с письмами. [laugh] Ты не поверишь, от кого они! <whisper>Только никому не рассказывай.</whisper>",
"voice": "ara",
"language": "ru"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'xai-tts-v1',
input: {
text: 'Знаешь, что я нашла вчера на чердаке? [pause] Старую коробку с письмами. [laugh] Ты не поверишь, от кого они! <whisper>Только никому не рассказывай.</whisper>',
voice: 'ara',
language: 'ru',
},
}),
})
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': 'xai-tts-v1',
'input': {
'text': 'Знаешь, что я нашла вчера на чердаке? [pause] Старую коробку с письмами. [laugh] Ты не поверишь, от кого они! <whisper>Только никому не рассказывай.</whisper>',
'voice': 'ara',
'language': 'ru',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
С language: "auto" модель сама определяет язык текста. Для текста на одном языке надёжнее указать его код явно, например en.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "xai-tts-v1",
"input": {
"text": "Hello! Our store opens on October 1 at 9:30 AM. [pause] <slow>Do not miss it.</slow>",
"voice": "leo",
"language": "auto"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'xai-tts-v1',
input: {
text: 'Hello! Our store opens on October 1 at 9:30 AM. [pause] <slow>Do not miss it.</slow>',
voice: 'leo',
language: 'auto',
},
}),
})
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': 'xai-tts-v1',
'input': {
'text': 'Hello! Our store opens on October 1 at 9:30 AM. [pause] <slow>Do not miss it.</slow>',
'voice': 'leo',
'language': 'auto',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "xai-tts-v1",
"cost": 0.38,
"balance_after": 499.62,
"created_at": "2026-09-24T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "xai-tts-v1",
"cost": 0.38,
"created_at": "2026-09-24T12:00:00Z",
"completed_at": "2026-09-24T12:00:11Z",
"result": {
"type": "audio",
"urls": [
"https://storage.yandexcloud.net/bratuha.ru.files/user_files/1790256426908-5kjfjy47.mp3"
],
"files": [
{
"url": "https://storage.yandexcloud.net/bratuha.ru.files/user_files/1790256426908-5kjfjy47.mp3",
"name": "result"
}
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "xai-tts-v1",
"cost": 0.38,
"created_at": "2026-09-24T12:00:00Z",
"completed_at": "2026-09-24T12:00:14Z",
"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 (24 кГц, 128 кбит/с):
type всегда равен "audio";urls содержит одну ссылку на MP3;files дублирует ту же ссылку с именем файла.Длительность файла зависит от длины текста и тегов: 115 символов русского текста звучат примерно 8 секунд.
text стоит 0,003 ₽, итог округляется вверх до копейки. Считаются все символы, включая пробелы, знаки препинания и теги.cost. Если операция завершилась с ошибкой, деньги возвращаются на баланс автоматически.POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию и списывает деньги.queued проверяйте статус по id.voice и language, а также текст длиннее 15 000 символов вернут validation_error ещё до создания операции.voice_gender - фильтр голосов в форме сайта, в API его передавать не нужно. Если передадите male или female, голос должен быть того же пола, иначе вернётся validation_error.auto.rex | мужской | уверенный и чёткий |
rigel | мужской | точный, профессиональный, спокойно-уверенный |
sal | мужской | плавный и сбалансированный |
sirius | мужской | остроумный, находчивый, игривый |
ursa | женский | дружелюбный, тёплый, надёжный |
zagan | мужской | мощный, драматичный, запоминающийся |
zenith | мужской | чёткий, собранный, целеустремлённый |