Text to Speech

LIVE

OpenAI-compatible TTS endpoint. 12 multilingual AI-голосов (узбекский, русский, английский) через Gemini native audio. Возвращает WAV (24 kHz mono) или сырой PCM.

POST https://zowy.ai/api/v1/audio/speech
Auth: Authorization: Bearer YOUR_API_KEY · scope voice_ai · См. Authentication
Beta — биллинг

Endpoint доступен держателям API-ключа с активным Voice AI или AI Chat пакетом. Per-character списание не введено на этой итерации. При high volume use — пожалуйста, напишите на info@zowy.ai.

Параметры запроса (JSON body)

ПолеТипОписание
modelstringRequired. Только "tts-1" на текущий момент
voicestringRequired. display_name из /api/v1/voices (например "Laylo", "Sulafat", "Aoede")
inputstringRequired. Текст для синтеза. UTF-8, max 4096 символов
instructionsstringOptional. Естественный язык-стиль/тон-инструкция для голоса (Gemini-style prompt prefix). Max 500 символов. Примеры: "Скажи весело", "Read in a calm, slow tone", "Объяви драматично". Игнорируется некоторыми голосами.
response_formatstring"wav" (default) или "pcm" (raw PCM 16-bit signed LE, 24 kHz mono)

Минимальный пример — все языки

curl -X POST "https://zowy.ai/api/v1/audio/speech" \
  -H "Authorization: Bearer $ZOWY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "voice": "Laylo",
    "input": "Salom! Bu Zowy AI dan ovozli xabar.",
    "instructions": "Скажи тепло и дружелюбно",
    "response_format": "wav"
  }' \
  --output greeting.wav

Аудио форматы

response_formatContent-TypeПараметры
wavaudio/wavPCM 16-bit signed LE, 24 kHz mono, с WAV-заголовком
pcmaudio/pcmСырые PCM-сэмплы 16-bit signed LE, 24 kHz mono. Без заголовка

Голоса

Полный актуальный список — GET /api/v1/voices. Default: Laylo. Все голоса multilingual.

На 2026-04-29 в проде: Laylo, Sulafat, Aoede и ещё 9 голосов (всего 12). Имена case-sensitive.

Ошибки

HTTPКогда
400Невалидный JSON, пустой input, >4096 символов, неизвестный voice, неподдерживаемый model или response_format
401Нет/невалидный API-ключ
402Нет активного Voice AI или AI Chat пакета
403Ключ не имеет scope voice_ai
422Gemini вернул пустой ответ (safety filter / нет candidates / пустой content). Попробуйте упростить input или сменить голос.
429Превышен rate limit (60/мин default)
502Upstream TTS-движок (Gemini) недоступен / network error

Migration с OpenAI TTS

Drop-in для OpenAI Python / JS SDK — поменяйте только base_url и имя голоса (наши имена другие — см. /docs/voices):

client = OpenAI(
    api_key="zowy_...",                       # вместо sk-...
    base_url="https://zowy.ai/api/v1",        # <- добавить
)
response = client.audio.speech.create(
    model="tts-1",
    voice="Laylo",                            # вместо "alloy"/"echo"/etc
    input="Salom dunyo!",
)