Skip to content

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 ​

voiceOvoz
zeboZebo, ayol ovozi (standart)
dostonDoston, 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.

roleUslublar (style)
operator — call-markaz operatorineutral, warm, cheerful, calm, empathetic
assistant — ovozli yordamchineutral, 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:

MaydonNima u
textMatn, 4000 belgigacha. Lotin yoki kirill yozuvi; raqamlar, sanalar, telefonlar va sayt manzillari so‘z bilan o‘qiladi
voicezebo yoki doston, standart zebo
roleoperator (standart) yoki assistant
styleRol uslubi: neutral (standart), warm, cheerful, calm, empathetic
formatmp3, wav (standart) yoki ogg (Opus)
sample_rateFayl chastotasi, 8000–48000 Hz; standart ovozning o‘z chastotasi, 22050 Hz
dialectToshkentning 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
hesitationstrue — 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_waittrue — 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.

bash
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.mp3

200 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 ​

KodMa’nosi
403 tts_not_availableOvozlashtirish bu akkaunt uchun hali ochilmagan
400 tts_text_empty, 400 tts_text_too_longMatn bo‘sh yoki 4000 belgidan uzun
400 tts_voice_unknownBunday ovoz yo‘q; maslahatda ro‘yxat bor
400 tts_role_unknown, 400 tts_style_unknownOvozda bunday rol yoki uslub yo‘q; maslahatda ro‘yxat bor
400 tts_format_unsupported, 400 tts_sample_rate_unsupportedQo‘llab-quvvatlanmaydigan format yoki chastota
503 tts_voice_unavailable, 503 no_runner_for_ttsOvoz yoki barcha ovozlashtirish serverlari qayta ishga tushmoqda; bir necha daqiqadan keyin takrorlang
429 insufficient_balanceBalansda matn narxidan kam qolgan