Генерация аудио · xai

Grok TTS

xai-tts-runware

Grok TTS — генерация аудио от xai, доступная через единый Ranvik API. Поддерживаемые возможности: text_to_audio.

от 5.6 ₽ / 1k симв

Технические характеристики

МодальностьГенерация аудио
Провайдерxai
СтатусАктивна
ID для запросовxai-tts-runware

Возможности

  • Text-to-Audio

Цены

ЕдиницаЦена
за 1М символов5.6 ₽

Цены указаны в рублях. Списываются с баланса проекта при каждом успешном запросе.

Поддерживаемые параметры

Параметры передаются вендору как есть (pure proxy) — мы не валидируем их у себя на стороне. Если вендор не примет — вернётся его ошибка.

ПараметрТипДиапазон / valuesDefaultОписание
speech.textrequiredstring Текст для синтеза речи. Цена $0.0042 за 1000 символов.
примеры значений
Примеры
Привет! Это пример синтезированной речи через xAI.
speech.voiceenumuna, leo, eve, ara, sal, rexauto Голос диктора. 6 предустановленных + auto.
speech.languageenumen, ar-EG, ar-SA, ar-AE, bn, zh, fr, de, hi, id, it, ja, ko, pt-BR, pt-PT, ru, es-MX, es-ES, tr, vi Код языка / локали. 20 значений включая региональные варианты (ar-EG/SA/AE, pt-BR/PT, es-MX/ES).
audioSettings.bitrateintegermin: 8 Битрейт kbps. Применимо только для lossy форматов (MP3, OGG).
audioSettings.sampleRateinteger Частота дискретизации в Hz.
audioSettings.channelsenum1, 22 Каналы: 1 — mono, 2 — stereo.
numberResultsintegermin: 1 · max: 41 Сколько вариаций сгенерировать.
outputTypeenumURL, base64Data, dataURIURL Формат доставки.
outputFormatenumMP3, WAV, FLAC, OGGMP3 Формат аудиофайла. WAV/FLAC — без компрессии (audioSettings.bitrate игнорируется).
asyncbooleanfalse true → task_id для async-polling. false (default) → sync (binary audio в ответе).
webhookURLstring URL для POST-уведомления async.
примеры значений
Примеры
https://yourapp.com/webhooks/runware
uploadEndpointstring Presigned URL для автозагрузки.
примеры значений
Примеры
https://bucket.s3.amazonaws.com/result.mp3?X-Amz-Signature=...

Параметры ответа

Что возвращает API. У медиа-моделей формат зависит от режима: sync — сразу результат, async — task_id для опроса через GET /v1/tasks/{id}.

Sync (HTTP 200)

Для TTS короткого input: HTTP 200, **binary audio** (Content-Type: audio/mpeg / audio/wav / ...). Это НЕ JSON — это байты файла.

Binary response. Content-Type: audio/mpeg, audio/wav, audio/opus, audio/ogg

Async (HTTP 202)

Если is_async_only=1 (music gen) или async:true в запросе. HTTP 202 + JSON.

ПолеТипЗначенияОписание
idstring task_id для GET /v1/tasks/{id}.
objectstringaudio.task
statusenumqueued, processing, completed, failed
modelstring
createdinteger

Опрос статуса (GET /v1/tasks/{id})

GET /v1/tasks/{id}.

ПолеТипЗначенияОписание
idstring
statusenumqueued, processing, completed, failed, canceled
modalitystringaudio
modelstring
dataarray
Каждый элемент:
  • url— string · CDN URL .mp3 / .wav. Для Suno music — 1-2 файла (варианты трека).
errorstring

Пример запроса

from openai import OpenAI

client = OpenAI(api_key="rk_live_...", base_url="https://api.ranvik.ru/v1")
resp = client.audio.speech.create(
    model= "xai-tts-runware",
    "speech.text": "Пример промпта",
    "speech.voice": "auto",
    "speech.language": "en",
    "audioSettings.bitrate": 8,
    "audioSettings.sampleRate": 1,
    "audioSettings.channels": 2,
    numberResults= 1,
    outputType= "URL",
    outputFormat= "MP3",
    async= False,
    webhookURL= "https://example.com/...",
    uploadEndpoint= "value",
)
print(resp)

Замените rk_live_... на ваш ключ из кабинета.