TTS API
Endpoints для Text-to-Speech. Для server-to-server интеграции отправляйте X-Api-Key в каждом запросе.
Overview #
- 1 Для генерации аудио отправьте
transcriptнаPOST /api/v1/tts/post/. - 2 Если передать
webhook_notification_url, запрос будет обработан async и вернет202 Accepted. - 3 Проверяйте результат через
GET /api/v1/tts/status/{id}/или history.
Удобнее CLI? npm-пакет aisha-ai оборачивает эти endpoints: npx aisha-ai tts / npx aisha-ai stt. aisha-ai на npm
API Key #
API Key
X-Api-Key: <api_key>Рекомендуется для server-to-server интеграций.
Создать аудио #
https://back.aisha.group/api/v1/tts/post/ Преобразует текст в аудио. Для language=uz используется built-in модель Gulnoza. Для en и ru параметры model, mood, speed не отправляются.
Аутентификация: Отправьте X-Api-Key. Public-запросы могут требовать reCAPTCHA.
- Лимит: 1000 символов с API key, 500 символов для public-запроса.
-
speed:0или значение в диапазоне0.5-2.0. -
moodработает только для built-inGulnoza. Приvoice_idпараметрmoodне используется.
Поля запроса #
transcript обязательно string
Текст для озвучивания.
Пример: Assalomu alaykum
language string
Поддерживается: uz, en, ru. Default: uz.
Пример: uz
model string
Только для built-in потока uz. Сейчас доступна только одна модель: Gulnoza.
Пример: Gulnoza
mood string
Только для built-in Gulnoza. Доступно 4 mood: Neutral, Cheerful, Happy, Sad. Для voice_id, en, ru не отправляется.
Пример: Neutral
speed float
Только для потока uz. 0 означает default speed. Custom: 0.5-2.0.
Пример: 1.0
voice_id integer
READY custom voice ID, принадлежащий user'у. Если используется voice_id, mood не отправляется.
Пример: 12
webhook_notification_url string
Если задан, TTS запускается async.
Пример: https://example.com/webhooks/tts
Примеры #
Sync request
curl --request POST \
--url https://back.aisha.group/api/v1/tts/post/ \
--header 'X-Api-Key: your_api_key' \
--header 'Accept-Language: uz' \
--form 'transcript=Assalomu alaykum, bu AIsha TTS sinovi.' \
--form 'language=uz' \
--form 'model=Gulnoza' \
--form 'mood=Neutral' \
--form 'speed=1.0' Async request
curl --request POST \
--url https://back.aisha.group/api/v1/tts/post/ \
--header 'X-Api-Key: your_api_key' \
--form 'transcript=Webhook orqali qaytadigan sinov matni.' \
--form 'language=uz' \
--form 'webhook_notification_url=https://example.com/webhooks/tts' CLI (aisha-ai)
export AISHA_API_KEY=your_api_key
npx aisha-ai tts "Salom dunyo" --model Gulnoza --out salom.wav Ответы #
Sync success
{
"audio_path": "/media/tts_audios/request-id.wav"
} Async queued
{
"id": 184,
"task_id": "7d5f8779-9cb0-4230-9318-2f8c3c3f0e31",
"status": "PENDING"
} Статус-коды #
201 Аудио готово, вернулся `audio_path`.
202 Async task поставлен в очередь.
400 Ошибка transcript, language, model или speed.
401 Для custom voice нужна авторизация.
402 Недостаточно баланса.
503 TTS сервис временно недоступен.
Проверить статус #
https://back.aisha.group/api/v1/tts/status/{id}/ Возвращает состояние async TTS task.
Аутентификация: Отправьте X-Api-Key.
- Возможные статусы:
PENDING,SUCCESS,FAILED.
Примеры #
Status request
curl --request GET \
--url https://back.aisha.group/api/v1/tts/status/184/ \
--header 'X-Api-Key: your_api_key' Ответы #
Pending
{
"id": 184,
"status": "PENDING",
"task_id": "7d5f8779-9cb0-4230-9318-2f8c3c3f0e31"
} Completed
{
"id": 184,
"status": "SUCCESS",
"task_id": "7d5f8779-9cb0-4230-9318-2f8c3c3f0e31",
"audio_path": "/media/tts_audios/request-id.wav",
"characters": 42
} Статус-коды #
200 Статус получен.
403 Нет доступа к record другого user'а.
404 TTS record не найден.
История #
https://back.aisha.group/api/v1/tts/get/?page=1&limit=10 Возвращает paginated историю TTS audio текущего user'а.
Аутентификация: Требуется X-Api-Key.
- Response приходит в формате
count,next,previous,results.
Примеры #
History request
curl --request GET \
--url 'https://back.aisha.group/api/v1/tts/get/?page=1&limit=10' \
--header 'X-Api-Key: your_api_key' Ответы #
Paginated success
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 184,
"transcript": "Assalomu alaykum, bu AIsha TTS sinovi.",
"audio_url": "/media/tts_audios/request-id.wav",
"model": "Gulnoza",
"mood": "Neutral",
"created_at": "2026-05-04T10:15:30Z"
}
]
} Статус-коды #
200 History получена.
403 API key неверный или не отправлен.