Вся магия — в одной ручке:
POST https://tryaxolotl.ru/v1/speech

Тело запроса

text
string
required
Текст для озвучки. Понимает русский и английский. Цифры, знаки препинания и символы — пожалуйста.
voice
string
default:"axolotl"
Идентификатор голоса. См. Голоса.
model
string
default:"flash"
Идентификатор модели:
  • flash — быстрая, с низкой задержкой (по умолчанию);
  • expressive — тот же голос, но живее: с эмоциями и богатой интонацией (см. Эмоции и интонации).
format
string
default:"mp3"
Формат аудио: mp3, mp3_high, mp3_low или pcm.
stream
boolean
default:"false"
Отдавать звук потоком, по мере генерации. См. Стриминг.
previous_text
string
Текст, который идёт перед text. Помогает сделать интонацию плавной на стыках. Не тарифицируется. Работает только с моделью flash (см. предупреждение ниже). Подробнее — Длинные тексты.
next_text
string
Текст, который идёт после text. Тоже для плавной интонации. Не тарифицируется. Только для модели flash.
previous_text и next_text поддерживает только модель flash. Для expressive они не работают — плавная сшивка длинных текстов появится позже, через WebSocket-режим (скоро). Пока для expressive озвучивайте каждый фрагмент отдельно.

Ответ

При успехе прилетают «сырые» байты аудио с Content-Type: audio/mpeg (или audio/wav для pcm) и вот такие заголовки:
X-Request-Id
string
Уникальный id запроса (его же видно в истории).
X-Characters-Billed
integer
Сколько символов списали за этот запрос.
X-Cost-Rub
string
Стоимость запроса в рублях.
X-Balance-Rub
string
Остаток на балансе после списания.

Пример

curl -X POST https://tryaxolotl.ru/v1/speech \
  -H "Authorization: Bearer $AXOLOTL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Сегодня отличная погода.",
    "voice": "axolotl",
    "format": "mp3_high"
  }' \
  --output speech.mp3
Тарифицируется только поле text. previous_text и next_text — бесплатные подсказки для интонации. Лимит на запрос — 10 000 символов.