Matnni ovozlashtirish
O‘zbekcha matn audiofaylga aylanadi: matnni yuborasiz, yozuvni olasiz. Ovozlashtirish hozir beta-versiyada va barcha akkauntlar uchun ochiq.
Tez kunda
- Oqimli model. Audio butun matnni kutmasdan, bo‘lak-bo‘lak keladi: ovozli agentlar va jonli qo‘ng‘iroqlar uchun.
- Ko‘plab yangi jonli ovozlar.
Ovozlar
voice | Ovoz |
|---|---|
zebo | Zebo, ayol ovozi (standart) |
doston | Doston, erkak ovozi |
GET /v1/tts/voices shu ro‘yxatni available maydoni bilan qaytaradi: ovozga hozir kamida bitta server xizmat qilsa, u mavjud.
Rol va uslub
Ikkala ovoz ham o‘z rollaridan birida va shu rolning uslublaridan birida gapiradi. Standart: rol operator, uslub neutral.
role | Uslublar (style) |
|---|---|
operator — call-markaz operatori | neutral, warm, cheerful, calm, empathetic |
assistant — ovozli yordamchi | neutral, warm, cheerful, calm, empathetic |
Har bir ovozning rol va uslublari GET /v1/tts/voices javobidagi roles maydonida keladi: rolning birinchi uslubi uning standart uslubi. Narx uslubga bog‘liq emas.
POST /v1/tts: matnni ovozlashtirish
Tanib olishdagi loyiha tokenining o‘zi. So‘rov tanasi JSON:
| Maydon | Nima u |
|---|---|
text | Matn, 4000 belgigacha. Lotin yoki kirill yozuvi; raqamlar, sanalar, telefonlar va sayt manzillari so‘z bilan o‘qiladi |
voice | zebo yoki doston, standart zebo |
role | operator (standart) yoki assistant |
style | Rol uslubi: neutral (standart), warm, cheerful, calm, empathetic |
format | mp3, wav (standart) yoki ogg (Opus) |
sample_rate | Fayl chastotasi, 8000–48000 Hz; standart ovozning o‘z chastotasi, 22050 Hz |
dialect | Toshkentning jonli nutqidagidek so‘zlashuv talaffuzi: «hozir» «hozi», «bo‘lib» «bo‘p» bo‘lib eshitiladi. false bo‘lmasa yoqilgan; rasmiy matn va yangiliklar uchun o‘chiring |
hesitations | true — jonli odam qiladigan joylarda pauza va «Aa…», «Eee…» kabi tovushlar: qo‘ng‘iroq sun’iy eshitilmaydi. true bo‘lmasa o‘chiq. Kabinetdagi «So‘zlashuv nutqi» buni dialect bilan birga yoqadi |
no_wait | true — audioni kutmasdan darhol vazifa raqami bilan javob berish |
Matndagi [pause] qisqa pauza beradi, [laugh] — kulgi. Boshqa teg va belgilash yo‘q. dialect talaffuzi o‘zbekcha so‘zlarni saqlaydi: «dostavka» yoki «skidka» kabi ruscha o‘zlashmalarni qo‘ymaydi.
curl -X POST https://console.gapi.uz/v1/tts \
-H "Authorization: Bearer $GAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text": "Assalomu alaykum! Buyurtmangiz ertaga soat 10 da yetkaziladi.", "voice": "zebo", "format": "mp3"}' \
-o salom.mp3200 javobi — audiofaylning o‘zi (audio/mpeg, audio/wav yoki audio/ogg), X-Job-Id, X-Voice, X-Audio-Seconds va X-Cost-G sarlavhalari bilan. Accept: application/json sarlavhasi bilan javob JSON bo‘ladi: id, voice, role, style, said (ovoz o‘qigan ko‘rinishdagi matn), format, sample_rate, audio_seconds va audio_b64 (base64’dagi fayl).
So‘rov audioni ikki daqiqagacha kutadi. Matn ulgurmasa, javob 202, id va result_url bilan: faylni shu manzildan oling.
GET /v1/tts/{id}: natija
Tayyor vazifaning audiosi, POST /v1/tts javobi ko‘rinishida; vazifa ishlayotganda — state (queued, running) bilan JSON. Audio 24 soat saqlanadi, keyin javob 410 result_expired.
GET /v1/tts: so‘nggi so‘rovlar
Loyiha so‘rovlari, yangilari birinchi: ?limit= 100 gacha (standart 20) va ?offset=. Har birida id, state, voice, role, style, format, chars, cost_g, audio_seconds, created_at, finished_at, text, said, expires_at, result_url. text — yuborilgan matn, u tarixda qoladi; said (ovoz o‘qigan matn) audio saqlanguncha ko‘rinadi.
Narx
Yuborilgan matnning 1000 belgisi uchun 3,2 g, bo‘shliqlar hisoblanadi. Narx ovozlashtirishdan oldin ma’lum: u X-Cost-G da (no_wait bilan cost_g da ham) keladi, so‘rovda band qilinadi va audio tayyor bo‘lganda yechiladi. Muvaffaqiyatsiz so‘rov hech narsa turmaydi.
Xatolar
| Kod | Ma’nosi |
|---|---|
403 tts_not_available | Ovozlashtirish bu akkaunt uchun hali ochilmagan |
400 tts_text_empty, 400 tts_text_too_long | Matn bo‘sh yoki 4000 belgidan uzun |
400 tts_voice_unknown | Bunday ovoz yo‘q; maslahatda ro‘yxat bor |
400 tts_role_unknown, 400 tts_style_unknown | Ovozda bunday rol yoki uslub yo‘q; maslahatda ro‘yxat bor |
400 tts_format_unsupported, 400 tts_sample_rate_unsupported | Qo‘llab-quvvatlanmaydigan format yoki chastota |
503 tts_voice_unavailable, 503 no_runner_for_tts | Ovoz yoki barcha ovozlashtirish serverlari qayta ishga tushmoqda; bir necha daqiqadan keyin takrorlang |
429 insufficient_balance | Balansda matn narxidan kam qolgan |