API hujjatlariga qaytish

Developer docs

TTS API

Text-to-Speech endpointlari. Server integratsiya uchun har bir so'rovda X-Api-Key header yuboring.

API v1 TTS Sync / Async https://back.aisha.group

Qisqa qo‘llanma

TTS API

1

Audio yaratish uchun POST /api/v1/tts/post/ endpointiga transcript yuboring.

2

webhook_notification_url yuborilsa, so'rov async ishlaydi va 202 Accepted qaytadi.

3

Natijani GET /api/v1/tts/status/{id}/ yoki history orqali tekshiring.

Autentifikatsiya

API Key

X-Api-Key: <api_key>

Server-to-server integratsiya uchun tavsiya qilinadi.

POST

Audio yaratish

Endpoint /api/v1/tts/post/

Matnni audio faylga aylantiradi. language=uz uchun built-in Gulnoza modeli ishlaydi. en va ru oqimlarida model, mood, speed yuborilmaydi.

Autentifikatsiya

X-Api-Key yuboring. Public so‘rovlar reCAPTCHA talab qilishi mumkin.

Limit: API key bilan 1000 belgi, public so‘rovda 500 belgi.
speed qiymati 0 yoki 0.5-2.0 oralig‘ida bo‘ladi.
mood faqat built-in Gulnoza uchun. voice_id bilan yuborilganda mood ishlatilmaydi.

So‘rov maydonlari

transcript majburiy
Misol: Assalomu alaykum
string

Audio ga aylantiriladigan matn.

language ixtiyoriy
Misol: uz
string

Qo'llab-quvvatlanadi: uz, en, ru. Default: uz.

model ixtiyoriy
Misol: Gulnoza
string

Faqat uz built-in oqimi uchun. Hozir bitta model bor: Gulnoza.

mood ixtiyoriy
Misol: Neutral
string

Faqat built-in Gulnoza uchun 4 ta mood bor: Neutral, Cheerful, Happy, Sad. voice_id, en, ru oqimlarida yuborilmaydi.

speed ixtiyoriy
Misol: 1.0
float

Faqat uz oqimi uchun. 0 default tezlik. Custom qiymat: 0.5-2.0.

voice_id ixtiyoriy
Misol: 12
integer

Userga tegishli READY custom voice ID. voice_id ishlatilsa mood yuborilmaydi.

webhook_notification_url ixtiyoriy
Misol: https://example.com/webhooks/tts
string

Berilsa TTS async queue ga tushadi.

Misollar

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'

Javoblar

201 Created

Sync success

{
  "audio_path": "/media/tts_audios/request-id.wav"
}
202 Accepted

Async queued

{
  "id": 184,
  "task_id": "7d5f8779-9cb0-4230-9318-2f8c3c3f0e31",
  "status": "PENDING"
}

Status kodlari

201

Audio tayyor va `audio_path` qaytdi.

202

Async task queue ga qo'yildi.

400

Transcript, language, model yoki speed xato.

401

Custom voice uchun auth kerak.

402

Balans yetarli emas.

503

TTS servisi vaqtincha unavailable.

GET

Status tekshirish

Endpoint /api/v1/tts/status/{id}/

Async TTS task holatini qaytaradi.

Autentifikatsiya

X-Api-Key yuboring.

Status qiymatlari: PENDING, SUCCESS, FAILED.

Misollar

Status request

curl --request GET \
  --url https://back.aisha.group/api/v1/tts/status/184/ \
  --header 'X-Api-Key: your_api_key'

Javoblar

200 OK

Pending

{
  "id": 184,
  "status": "PENDING",
  "task_id": "7d5f8779-9cb0-4230-9318-2f8c3c3f0e31"
}
200 OK

Completed

{
  "id": 184,
  "status": "SUCCESS",
  "task_id": "7d5f8779-9cb0-4230-9318-2f8c3c3f0e31",
  "audio_path": "/media/tts_audios/request-id.wav",
  "characters": 42
}

Status kodlari

200

Status qaytdi.

403

Boshqa user recordiga access yo'q.

404

TTS record topilmadi.

GET

History ro'yxati

Endpoint /api/v1/tts/get/?page=1&limit=10

Userga tegishli TTS audio tarixini paginatsiya bilan qaytaradi.

Autentifikatsiya

X-Api-Key talab qilinadi.

Response count, next, previous, results formatida qaytadi.

Misollar

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'

Javoblar

200 OK

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"
    }
  ]
}

Status kodlari

200

History qaytdi.

403

API key noto'g'ri yoki yuborilmagan.