{
  "aboutHtml": "<p>S1 — Fish Audio’ning ifodali hikoya o‘qish va bitta so‘zlovchi ovozini yaratish uchun oldingi avlod matndan nutqqa modeli. U berilgan ssenariyni o‘qib, tanlangan yoki namuna bilan shartlangan ovozda audio qaytaradi. To‘liq S1 kichikroq distillangan S1-mini modelidan alohida; ishlab chiqaruvchi ularni mos ravishda 4 milliard va 0.5 milliard parametrli variantlar sifatida tanishtiradi. Bu profil aynan S1 modelini qamrab oladi.</p><p>Hikoya o‘qish uchun amalda aytilishi kerak bo‘lgan so‘zlarni tayyorlang va ijro o‘zgarishi kerak bo‘lgan joylarni belgilang. Foydali tushuntirish ssenariyi asosiy fikrni avval aytadi, bir vaqtning o‘zida bitta g‘oyani rivojlantiradi va tabiiy pauza kerak bo‘lgan iboralarni tinish belgilari bilan ajratadi. Qisqa ko‘rsatmada so‘zlar ekransiz eshitilganda ham aniq bo‘lsin. Ismlar, qisqartmalar va birliklarning ko‘zlangan o‘qilishini saqlang; ko‘z bilan o‘qiladigan satr faqat bitta talaffuzga ega deb taxmin qilmay, raqamlarni audio natijada tekshiring.</p><p>S1 (angry), (sad), (in a hurry) yoki (chuckling) kabi qavs ichidagi hissiyot va aytish uslubi ko‘rsatmalaridan foydalanadi. Ko‘rsatmani ta’sir qilishi kerak bo‘lgan gap yoki iboradan oldin qo‘ying, undan keyin esa haqiqiy nutq bo‘lsin. Ijro ko‘rsatmadan keyingi matnga tegishli, shuning uchun kayfiyat o‘zgarishi ijro o‘zgarishi kerak bo‘lgan joyda paydo bo‘lsin. Bu S2 ning kvadrat qavsli ko‘rsatmalaridan boshqa sintaksis; ikki belgilash shaklini o‘zaro almashtirish mumkin deb hisoblamay, ssenariyni tanlangan avlod uchun yozing.</p><p>Ovozni saqlangan ovoz identifikatori orqali tanlash yoki namuna yozuvi va uning transkripti bilan shartlash mumkin. Tezkor namuna jarayoni uchun umumiy nutq qo‘llanmasi toza 10–30 soniyalik namunani tavsiya qiladi. Gapirish uslubi va yozuv sifati ko‘zlangan natijaga mos namunani tanlang, transkriptni esa undagi so‘zlarga moslang. Takrorlanuvchi hikoyachi uchun bir xil ovoz namunasini parchalar bo‘ylab qayta ishlating, shunda mavzu almashishi beixtiyor qahramon almashishiga aylanmaydi.</p><p>S1 relizi qo‘llab-quvvatlanadigan tillar orasida ingliz, xitoy, yapon, nemis, fransuz, ispan, koreys, arab, rus, niderland, italyan, polyak va portugal tillarini nomlaydi hamda ssenariy ichida tillarni aralashtirishni ta’riflaydi. Nutq sintezini tarjima bosqichi deb ko‘rmay, maqsad tilidagi so‘zlarni bering. O‘zlashma ism yoki til almashishi bor parchada yozilish va atrofdagi gap kontekstini aniq saqlang, tanlangan ovoz shu o‘tishni qanday bajarayotganini tekshiring.</p><p>S1 ning ishlab chiqaruvchi interfeysi har bir sintez so‘rovida bitta so‘zlovchini qo‘llab-quvvatlaydi. Dialogni o‘z ovoz namunalariga ega alohida segmentlar sifatida tayyorlab, keyin ilovada yig‘ish mumkin; S2 oilasining ichki ko‘p so‘zlovchili sintezi alohida imkoniyatdir. Qahramon gaplarini tayyorlashda har bir segmentning roli, ovozi va matnini birga saqlang. Sintez natijasi ssenariyning audio ijrosi bo‘ladi; suhbat vaqtini moslash yoki uni musiqa va video bilan birlashtirish keyingi tahrirlash bosqichidir.</p><p>Chiqish variantlariga MP3, WAV, xom PCM va Opus kiradi; MP3 standart tanlovdir. Hujjatlashtirilgan chiqish mono; WAV va PCM 16-bit namunalar ishlatadi, formatga xos diskretlash chastotasi tanlovlari esa farq qiladi. MP3 64, 128 va 192 kbps ni qo‘llab-quvvatlaydi, Opus esa 48 kHz dan foydalanadi. Tezlikni 0.5 dan 2.0 gacha, ovoz balandligini ham boshqarish mumkin. Kadr orti audio fayli uchun kodlangan faylni yoki ijro uchun mos oqimni tanlang va tanlangan ovoz hamda ssenariyni natija bilan saqlang.</p><p>Ishlab chiqaruvchi uzun matnni bo‘laklarda qayta ishlaydi; hujjatlashtirilgan bo‘lak uzunligi oralig‘i 100–300, audio token budjeti esa umumiy yozuv davomiyligi kafolati o‘rniga har bir bo‘lak uchun belgilanadi. Matnni me’yorlashtirish ingliz va xitoy tillaridagi raqamlarni tabiiy o‘qishga yoyishi mumkin, S1 takrorlash jarimasi esa takroriy audio naqshlarini kamaytirishi mumkin. Chiqish ovoz balandligini me’yorlashtirish boshqa sozlama bo‘lib, S1 ga ta’sir qilmaydi. Tayyor parchani yig‘ishdan oldin talaffuz, ibora chegaralari, takrorlangan tovushlar va ko‘zlangan hissiy o‘zgarishni tekshiring, so‘ng e’tibor kerak bo‘lgan aniq gap yoki namunani tuzating.</p>",
  "aboutText": "S1 — Fish Audio’ning ifodali hikoya o‘qish va bitta so‘zlovchi ovozini yaratish uchun oldingi avlod matndan nutqqa modeli. U berilgan ssenariyni o‘qib, tanlangan yoki namuna bilan shartlangan ovozda audio qaytaradi. To‘liq S1 kichikroq distillangan S1-mini modelidan alohida; ishlab chiqaruvchi ularni mos ravishda 4 milliard va 0.5 milliard parametrli variantlar sifatida tanishtiradi. Bu profil aynan S1 modelini qamrab oladi.\n\nHikoya o‘qish uchun amalda aytilishi kerak bo‘lgan so‘zlarni tayyorlang va ijro o‘zgarishi kerak bo‘lgan joylarni belgilang. Foydali tushuntirish ssenariyi asosiy fikrni avval aytadi, bir vaqtning o‘zida bitta g‘oyani rivojlantiradi va tabiiy pauza kerak bo‘lgan iboralarni tinish belgilari bilan ajratadi. Qisqa ko‘rsatmada so‘zlar ekransiz eshitilganda ham aniq bo‘lsin. Ismlar, qisqartmalar va birliklarning ko‘zlangan o‘qilishini saqlang; ko‘z bilan o‘qiladigan satr faqat bitta talaffuzga ega deb taxmin qilmay, raqamlarni audio natijada tekshiring.\n\nS1 (angry), (sad), (in a hurry) yoki (chuckling) kabi qavs ichidagi hissiyot va aytish uslubi ko‘rsatmalaridan foydalanadi. Ko‘rsatmani ta’sir qilishi kerak bo‘lgan gap yoki iboradan oldin qo‘ying, undan keyin esa haqiqiy nutq bo‘lsin. Ijro ko‘rsatmadan keyingi matnga tegishli, shuning uchun kayfiyat o‘zgarishi ijro o‘zgarishi kerak bo‘lgan joyda paydo bo‘lsin. Bu S2 ning kvadrat qavsli ko‘rsatmalaridan boshqa sintaksis; ikki belgilash shaklini o‘zaro almashtirish mumkin deb hisoblamay, ssenariyni tanlangan avlod uchun yozing.\n\nOvozni saqlangan ovoz identifikatori orqali tanlash yoki namuna yozuvi va uning transkripti bilan shartlash mumkin. Tezkor namuna jarayoni uchun umumiy nutq qo‘llanmasi toza 10–30 soniyalik namunani tavsiya qiladi. Gapirish uslubi va yozuv sifati ko‘zlangan natijaga mos namunani tanlang, transkriptni esa undagi so‘zlarga moslang. Takrorlanuvchi hikoyachi uchun bir xil ovoz namunasini parchalar bo‘ylab qayta ishlating, shunda mavzu almashishi beixtiyor qahramon almashishiga aylanmaydi.\n\nS1 relizi qo‘llab-quvvatlanadigan tillar orasida ingliz, xitoy, yapon, nemis, fransuz, ispan, koreys, arab, rus, niderland, italyan, polyak va portugal tillarini nomlaydi hamda ssenariy ichida tillarni aralashtirishni ta’riflaydi. Nutq sintezini tarjima bosqichi deb ko‘rmay, maqsad tilidagi so‘zlarni bering. O‘zlashma ism yoki til almashishi bor parchada yozilish va atrofdagi gap kontekstini aniq saqlang, tanlangan ovoz shu o‘tishni qanday bajarayotganini tekshiring.\n\nS1 ning ishlab chiqaruvchi interfeysi har bir sintez so‘rovida bitta so‘zlovchini qo‘llab-quvvatlaydi. Dialogni o‘z ovoz namunalariga ega alohida segmentlar sifatida tayyorlab, keyin ilovada yig‘ish mumkin; S2 oilasining ichki ko‘p so‘zlovchili sintezi alohida imkoniyatdir. Qahramon gaplarini tayyorlashda har bir segmentning roli, ovozi va matnini birga saqlang. Sintez natijasi ssenariyning audio ijrosi bo‘ladi; suhbat vaqtini moslash yoki uni musiqa va video bilan birlashtirish keyingi tahrirlash bosqichidir.\n\nChiqish variantlariga MP3, WAV, xom PCM va Opus kiradi; MP3 standart tanlovdir. Hujjatlashtirilgan chiqish mono; WAV va PCM 16-bit namunalar ishlatadi, formatga xos diskretlash chastotasi tanlovlari esa farq qiladi. MP3 64, 128 va 192 kbps ni qo‘llab-quvvatlaydi, Opus esa 48 kHz dan foydalanadi. Tezlikni 0.5 dan 2.0 gacha, ovoz balandligini ham boshqarish mumkin. Kadr orti audio fayli uchun kodlangan faylni yoki ijro uchun mos oqimni tanlang va tanlangan ovoz hamda ssenariyni natija bilan saqlang.\n\nIshlab chiqaruvchi uzun matnni bo‘laklarda qayta ishlaydi; hujjatlashtirilgan bo‘lak uzunligi oralig‘i 100–300, audio token budjeti esa umumiy yozuv davomiyligi kafolati o‘rniga har bir bo‘lak uchun belgilanadi. Matnni me’yorlashtirish ingliz va xitoy tillaridagi raqamlarni tabiiy o‘qishga yoyishi mumkin, S1 takrorlash jarimasi esa takroriy audio naqshlarini kamaytirishi mumkin. Chiqish ovoz balandligini me’yorlashtirish boshqa sozlama bo‘lib, S1 ga ta’sir qilmaydi. Tayyor parchani yig‘ishdan oldin talaffuz, ibora chegaralari, takrorlangan tovushlar va ko‘zlangan hissiy o‘zgarishni tekshiring, so‘ng e’tibor kerak bo‘lgan aniq gap yoki namunani tuzating.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "3896cf142aec10c87a7600a37d5aef2632bde969d042b684f18de4e9e100ada5",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "uz",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Fish Audio: S1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Yopish\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/s1</code><button type=\"button\" id=\"copy-id\">ID ni nusxalash</button></div><nav class=\"card-jump-nav\" aria-label=\"Model kartochkasi bo‘limlari\"><button type=\"button\" data-card-jump=\"overview\">Boshlash</button><button type=\"button\" data-card-jump=\"methods\">Kirish ma’lumotlari va usullar</button><button type=\"button\" data-card-jump=\"pricing\">Tariflar</button><button type=\"button\" data-card-jump=\"examples\">Namunalar</button><button type=\"button\" data-card-jump=\"results\">Natijalar</button><button type=\"button\" data-card-jump=\"aliases\">Taxalluslar</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API usullari\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|fish-audio%2Fs1\">Ovozlashtirish</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Boshlash</h3><p class=\"mdesc-full\">Fish Audio S1 ovoz namunalari va qavs ichidagi hissiyot ko‘rsatmalari yordamida ko‘p tilli ssenariylarni ifodali, bir so‘zlovchili audioga aylantiradi. Uni hikoya o‘qish, qisqa ovozli ko‘rsatmalar yoki qahramon gaplari uchun, tayyor audio formati va prosodiyasini boshqarish bilan ishlating.</p><dl class=\"card-io\" data-card-io><div><dt>Qabul qilinadigan kirish ma’lumotlari</dt><dd>Matn</dd></div><div><dt>Natijalar</dt><dd>Audio</dd></div></dl><details class=\"card-about\"><summary>Model haqida</summary><p class=\"note-s\" data-model-method-boundary>Bu tavsif model imkoniyatlarini yoritadi. Ailoot da tanlangan usul uchun mavjud kirish, chiqish va parametrlar quyida keltirilgan.</p><div class=\"mabout\" id=\"m-about\"><p>S1 — Fish Audio’ning ifodali hikoya o‘qish va bitta so‘zlovchi ovozini yaratish uchun oldingi avlod matndan nutqqa modeli. U berilgan ssenariyni o‘qib, tanlangan yoki namuna bilan shartlangan ovozda audio qaytaradi. To‘liq S1 kichikroq distillangan S1-mini modelidan alohida; ishlab chiqaruvchi ularni mos ravishda 4 milliard va 0.5 milliard parametrli variantlar sifatida tanishtiradi. Bu profil aynan S1 modelini qamrab oladi.</p><p>Hikoya o‘qish uchun amalda aytilishi kerak bo‘lgan so‘zlarni tayyorlang va ijro o‘zgarishi kerak bo‘lgan joylarni belgilang. Foydali tushuntirish ssenariyi asosiy fikrni avval aytadi, bir vaqtning o‘zida bitta g‘oyani rivojlantiradi va tabiiy pauza kerak bo‘lgan iboralarni tinish belgilari bilan ajratadi. Qisqa ko‘rsatmada so‘zlar ekransiz eshitilganda ham aniq bo‘lsin. Ismlar, qisqartmalar va birliklarning ko‘zlangan o‘qilishini saqlang; ko‘z bilan o‘qiladigan satr faqat bitta talaffuzga ega deb taxmin qilmay, raqamlarni audio natijada tekshiring.</p><p>S1 (angry), (sad), (in a hurry) yoki (chuckling) kabi qavs ichidagi hissiyot va aytish uslubi ko‘rsatmalaridan foydalanadi. Ko‘rsatmani ta’sir qilishi kerak bo‘lgan gap yoki iboradan oldin qo‘ying, undan keyin esa haqiqiy nutq bo‘lsin. Ijro ko‘rsatmadan keyingi matnga tegishli, shuning uchun kayfiyat o‘zgarishi ijro o‘zgarishi kerak bo‘lgan joyda paydo bo‘lsin. Bu S2 ning kvadrat qavsli ko‘rsatmalaridan boshqa sintaksis; ikki belgilash shaklini o‘zaro almashtirish mumkin deb hisoblamay, ssenariyni tanlangan avlod uchun yozing.</p><p>Ovozni saqlangan ovoz identifikatori orqali tanlash yoki namuna yozuvi va uning transkripti bilan shartlash mumkin. Tezkor namuna jarayoni uchun umumiy nutq qo‘llanmasi toza 10–30 soniyalik namunani tavsiya qiladi. Gapirish uslubi va yozuv sifati ko‘zlangan natijaga mos namunani tanlang, transkriptni esa undagi so‘zlarga moslang. Takrorlanuvchi hikoyachi uchun bir xil ovoz namunasini parchalar bo‘ylab qayta ishlating, shunda mavzu almashishi beixtiyor qahramon almashishiga aylanmaydi.</p><p>S1 relizi qo‘llab-quvvatlanadigan tillar orasida ingliz, xitoy, yapon, nemis, fransuz, ispan, koreys, arab, rus, niderland, italyan, polyak va portugal tillarini nomlaydi hamda ssenariy ichida tillarni aralashtirishni ta’riflaydi. Nutq sintezini tarjima bosqichi deb ko‘rmay, maqsad tilidagi so‘zlarni bering. O‘zlashma ism yoki til almashishi bor parchada yozilish va atrofdagi gap kontekstini aniq saqlang, tanlangan ovoz shu o‘tishni qanday bajarayotganini tekshiring.</p><p>S1 ning ishlab chiqaruvchi interfeysi har bir sintez so‘rovida bitta so‘zlovchini qo‘llab-quvvatlaydi. Dialogni o‘z ovoz namunalariga ega alohida segmentlar sifatida tayyorlab, keyin ilovada yig‘ish mumkin; S2 oilasining ichki ko‘p so‘zlovchili sintezi alohida imkoniyatdir. Qahramon gaplarini tayyorlashda har bir segmentning roli, ovozi va matnini birga saqlang. Sintez natijasi ssenariyning audio ijrosi bo‘ladi; suhbat vaqtini moslash yoki uni musiqa va video bilan birlashtirish keyingi tahrirlash bosqichidir.</p><p>Chiqish variantlariga MP3, WAV, xom PCM va Opus kiradi; MP3 standart tanlovdir. Hujjatlashtirilgan chiqish mono; WAV va PCM 16-bit namunalar ishlatadi, formatga xos diskretlash chastotasi tanlovlari esa farq qiladi. MP3 64, 128 va 192 kbps ni qo‘llab-quvvatlaydi, Opus esa 48 kHz dan foydalanadi. Tezlikni 0.5 dan 2.0 gacha, ovoz balandligini ham boshqarish mumkin. Kadr orti audio fayli uchun kodlangan faylni yoki ijro uchun mos oqimni tanlang va tanlangan ovoz hamda ssenariyni natija bilan saqlang.</p><p>Ishlab chiqaruvchi uzun matnni bo‘laklarda qayta ishlaydi; hujjatlashtirilgan bo‘lak uzunligi oralig‘i 100–300, audio token budjeti esa umumiy yozuv davomiyligi kafolati o‘rniga har bir bo‘lak uchun belgilanadi. Matnni me’yorlashtirish ingliz va xitoy tillaridagi raqamlarni tabiiy o‘qishga yoyishi mumkin, S1 takrorlash jarimasi esa takroriy audio naqshlarini kamaytirishi mumkin. Chiqish ovoz balandligini me’yorlashtirish boshqa sozlama bo‘lib, S1 ga ta’sir qilmaydi. Tayyor parchani yig‘ishdan oldin talaffuz, ibora chegaralari, takrorlangan tovushlar va ko‘zlangan hissiy o‘zgarishni tekshiring, so‘ng e’tibor kerak bo‘lgan aniq gap yoki namunani tuzating.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailoot da mavjud · kirish ma’lumotlari va usullar</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Ovozlashtirish</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Kirish</dt><dd><code>text</code></dd></div><div><dt>Chiqish</dt><dd><code>audio</code></dd></div><div><dt>Chiqish formati</dt><dd>haqiqatda e’lon qilingan ikkilik audio</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Maydon</th><th>Tur</th><th>Talab</th><th>Qiymatlar va cheklovlar</th><th>Standart</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span><code>string</code></td><td data-cell-label=\"Talab\"><span class=\"card-cell-label\">Talab</span>Majburiy</td><td data-cell-label=\"Qiymatlar va cheklovlar\"><span class=\"card-cell-label\">Qiymatlar va cheklovlar</span><div>fish-audio/s1</div></td><td data-cell-label=\"Standart\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standart</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span><code>string</code></td><td data-cell-label=\"Talab\"><span class=\"card-cell-label\">Talab</span>Majburiy</td><td data-cell-label=\"Qiymatlar va cheklovlar\"><span class=\"card-cell-label\">Qiymatlar va cheklovlar</span><div>Eng kam uzunlik: 1</div></td><td data-cell-label=\"Standart\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standart</span>—</td></tr><tr data-parameter-availability=\"saved_exact_supplier_example\"><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span><code>string</code></td><td data-cell-label=\"Talab\"><span class=\"card-cell-label\">Talab</span>Majburiy</td><td data-cell-label=\"Qiymatlar va cheklovlar\"><span class=\"card-cell-label\">Qiymatlar va cheklovlar</span><div>Namunalar: b347db033a6549378b48d00acb0d06cd</div></td><td data-cell-label=\"Standart\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standart</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span><code>string</code></td><td data-cell-label=\"Talab\"><span class=\"card-cell-label\">Talab</span>Ixtiyoriy</td><td data-cell-label=\"Qiymatlar va cheklovlar\"><span class=\"card-cell-label\">Qiymatlar va cheklovlar</span><div>mp3, pcm</div></td><td data-cell-label=\"Standart\" data-default=\"known\"><span class=\"card-cell-label\">Standart</span>pcm</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kirish materiallari birikmalari</summary><p class=\"note-s\"><b>text_to_speech</b> · Majburiy: actual UTF-8 script, exact supported voice</p></details><details class=\"note-s\" data-method-contract><summary>Usul parametrlari va hayot sikli</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametr</th><th>Parametr talablari</th></tr></thead><tbody><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>content_type</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>application/json</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>required</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>model, input, voice</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>material_types</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>text</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>voice_ids</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>b347db033a6549378b48d00acb0d06cd</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>voice_list_exhaustive</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>false</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>response_format</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>mp3, pcm</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>default_response_format</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>pcm</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>quantity</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>Yagona dekodlangan kirish satrining UTF-8 baytlari; boshidagi va oxiridagi bo‘shliq belgilarini olib tashlamasdan va normallashtirmasdan</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>native_byte_quote_controls</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>Qo‘shimcha hisoblanadigan matn e’lon qilinmaguncha, bo‘sh bo‘lmagan instructions va bir nechta so‘zlovchi navbatlaridan iborat kirish aynan shu bayt asosidagi narx hisoblash yo‘lida rad etiladi.</td></tr></tbody></table></div><p>Hayot sikli: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Amalda qaytarilgan task_id yoki media kutubxonasidagi yozuv</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">Aniq model va hujjatdagi kirish maydonlaridan foydalaning.</p><p class=\"note-s\">To‘liq javobni, har bir haqiqiy chiqish natijasini va dastlab qaytarilgan ID larni saqlang.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tariflar</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.</p><dl data-price-conditions><dt>Tezkor rejim</dt><dd>Ko‘rsatilmagan <span class=\"note-s\">Tezkor rejim tanlanganda</span></dd><dt>Flex rejimi</dt><dd>Ko‘rsatilmagan <span class=\"note-s\">flex rejimi tanlanganda</span></dd><dt>Maksimal fikrlash darajasi</dt><dd>Ko‘rsatilmagan <span class=\"note-s\">Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot tariflari</h4><h4>Sozlamalar bo‘yicha narxlar</h4><p class=\"note-s\">Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Sozlama</th><th>Tariflar jadvali</th><th>Hisob birligi</th><th>To‘lov</th></tr></thead><tbody><tr><th data-cell-label=\"Sozlama\" scope=\"row\"><span class=\"card-cell-label\">Sozlama</span>Tokenlar uchun bazaviy tariflar</th><td data-cell-label=\"Tariflar jadvali\"><span class=\"card-cell-label\">Tariflar jadvali</span>Asosiy tarif</td><td data-cell-label=\"Hisob birligi\"><span class=\"card-cell-label\">Hisob birligi</span>—</td><td data-cell-label=\"To‘lov\"><span class=\"card-cell-label\">To‘lov</span><div><span>Kirish · Kirish tokenlari</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Chiqish · Chiqish tokenlari</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Kirish · Keshdan o‘qish</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Kirish · Keshga yozish</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Kirish · Keshga yozish, 1 soat</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Sozlama\" scope=\"row\"><span class=\"card-cell-label\">Sozlama</span>Ultra</th><td data-cell-label=\"Tariflar jadvali\"><span class=\"card-cell-label\">Tariflar jadvali</span>—</td><td data-cell-label=\"Hisob birligi\"><span class=\"card-cell-label\">Hisob birligi</span>utf8 kirish audiosining bayti uchun</td><td data-cell-label=\"To‘lov\"><span class=\"card-cell-label\">To‘lov</span><div><span>Kirish · Kirish audiosining utf8 bayti</span> <b>$0.00003</b> <span class=\"price-unit\">utf8 kirish audiosining bayti uchun</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. <a href=\"/docs/uz/billing/reserve/\">Summani band qilish va to‘lovni hisoblash tartibi →</a></p><div data-declared-reference-pricing><h4>Ma’lumot uchun tarif tafsilotlari</h4><p class=\"note-s\">Modelning ma’lumot jadvallari usul tanlash, narx hisobi yoki to‘lovlarni o‘zgartirmaydi. Amaldagi to‘lovlar tanlangan Ailoot usuli tariflari bo‘yicha hisoblanadi.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Fish Audio: S1</summary><h4>Sozlamalar bo‘yicha narxlar</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Sozlama</th><th>To‘lovni hisoblash shartlari</th><th>To‘lov</th></tr></thead><tbody><tr><th data-cell-label=\"Sozlama\" scope=\"row\"><span class=\"card-cell-label\">Sozlama</span>Fish Audio: S1 · Standart sozlama</th><td data-cell-label=\"To‘lovni hisoblash shartlari\"><span class=\"card-cell-label\">To‘lovni hisoblash shartlari</span>Standart konfiguratsiya</td><td data-cell-label=\"To‘lov\"><span class=\"card-cell-label\">To‘lov</span><div><span>Kirish · Kirish UTF-8 baytlari</span> <b>0,00003 US$</b> <span class=\"price-unit\">UTF-8 kirish bayti uchun</span></div></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">So‘rov namunalari</h3><h4>Ailoot Ultra · Ovozlashtirish</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kod variantlari\"><button class=\"cg-tab\" id=\"model-code-1354-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1354-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · Asl API formatiga aynan mos so‘rov tanasi va to‘liq natija</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kodni nusxalash\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1354-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1354-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;fish-audio/s1&#39;, &#39;input&#39;: &#39;Hello world&#39;, &#39;voice&#39;: &#39;b347db033a6549378b48d00acb0d06cd&#39;, &#39;response_format&#39;: &#39;mp3&#39;}\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Natijalarni olish va saqlash</h3><h4>Ailoot Ultra · Ovozlashtirish</h4><p class=\"note-s\">haqiqatda e’lon qilingan ikkilik audio</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Barcha tayyor natijalarni saqlash</h5><p class=\"note-s\">Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.</p><p class=\"note-s\">Barcha to‘liq ikkilik baytlar va dastlabki sarlavhalarni saqlang; JSON qaytarilsa, uni to‘liq saqlang. Haqiqiy operatsiya/aktiv ID lari saqlanadi.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Asl javobni tekshirish kerak bo‘lsa</h5><p class=\"note-s\">Dastlabki operation_id/X-Client-Request-ID va dastlabki javobni saqlang. Qayta yubormasdan haqiqiy, egalik qilinadigan vazifa/aktiv yozuvlarini o‘qing; audio holatini so‘rash uchun maxsus URL tuzilmaydi.</p></div><details class=\"card-about\" data-output-fields><summary>Javob maydonlari</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Maydon</th><th>Tur</th></tr></thead><tbody><tr><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">binary audio</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span>bytes</td></tr><tr><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span>headers</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Taxalluslar</h3><h4>Model taxalluslari</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=fish-audio%2Fs1&amp;route=Ultra&amp;caller=fish-audio%2Fs1&amp;fmt=speech\"><code>fish-audio/s1</code></a></span></p><h4>Usul yo‘llari taxalluslari</h4><p class=\"note-s\">Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.</p><h4>Chaqirish uchun tegishli ID lar</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Fs1&amp;route=Ultra&amp;caller=fish-audio%2Fs1&amp;fmt=speech\"><code>fish-audio/s1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/s1",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|fish-audio%2Fs1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save all complete binary bytes and all original headers; keep full JSON if returned. Actual operation/asset IDs are preserved.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Dastlabki operation_id/X-Client-Request-ID va dastlabki javobni saqlang. Qayta yubormasdan haqiqiy, egalik qilinadigan vazifa/aktiv yozuvlarini o‘qing; audio holatini so‘rash uchun maxsus URL tuzilmaydi."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "actual UTF-8 script",
                  "exact supported voice"
                ]
              }
            ],
            "outputs": {
              "all_results": "Barcha to‘liq ikkilik baytlar va dastlabki sarlavhalarni saqlang; JSON qaytarilsa, uni to‘liq saqlang. Haqiqiy operatsiya/aktiv ID lari saqlanadi.",
              "family": "audio",
              "fields": [
                {
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "haqiqatda e’lon qilingan ikkilik audio"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "enum": [
                  "fish-audio/s1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "min_length": 1,
                "name": "input",
                "quantity_unit": "decoded input UTF-8 bytes",
                "required": true,
                "type": "string"
              },
              {
                "availability": "saved_exact_supplier_example",
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s1"
                  ],
                  "type": "string"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "Hello world",
                "model": "fish-audio/s1",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "hints": [
            "Aniq model va hujjatdagi kirish maydonlaridan foydalaning.",
            "To‘liq javobni, har bir haqiqiy chiqish natijasini va dastlab qaytarilgan ID larni saqlang."
          ],
          "input": {
            "content_type": "application/json",
            "default_response_format": "pcm",
            "material_types": [
              "text"
            ],
            "native_byte_quote_controls": "Qo‘shimcha hisoblanadigan matn e’lon qilinmaguncha, bo‘sh bo‘lmagan instructions va bir nechta so‘zlovchi navbatlaridan iborat kirish aynan shu bayt asosidagi narx hisoblash yo‘lida rad etiladi.",
            "quantity": "Yagona dekodlangan kirish satrining UTF-8 baytlari; boshidagi va oxiridagi bo‘shliq belgilarini olib tashlamasdan va normallashtirmasdan",
            "required": [
              "model",
              "input",
              "voice"
            ],
            "response_format": [
              "mp3",
              "pcm"
            ],
            "voice_ids": [
              "b347db033a6549378b48d00acb0d06cd"
            ],
            "voice_list_exhaustive": false
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Amalda qaytarilgan task_id yoki media kutubxonasidagi yozuv",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID and original response. Read actual owned task/asset records without resubmitting; no dedicated audio poll URL is constructed."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "all_results": true,
            "family": "audio",
            "format": "actual MP3 or PCM bytes and MIME",
            "response": "complete raw audio bytes plus response headers"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s1', 'input': 'Hello world', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact model and documented input fields.",
          "Keep the complete response, every actual output and original returned IDs."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_utf8_byte": 3e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 byte",
            "quantity": "1",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/s1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "daca2c26c0c6aaabf3926c1f6d4adf6355067a84fd610a45580310f12b3d1eb1",
    "input_html_sha256": "771bca437256303d40bf5f4c348d5f2fb1f44205bf631cee228c03ad10fcad0a",
    "private_audit_sha256": "f97bd5ccf5bff66fe345df91cfa56a4191b01483d20abb453e9a61bc7a347120",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/uz/fish-audio-s1/",
    "description": "Fish Audio S1 ovoz namunalari va qavs ichidagi hissiyot ko‘rsatmalari yordamida ko‘p tilli ssenariylarni ifodali, bir so‘zlovchili audioga aylantiradi. Uni hikoya o‘qish, qisqa ovozli ko‘rsatmalar yoki qahramon gaplari uchun, tayyor audio formati va prosodiyasini boshqarish bilan ishlating.",
    "locale": "uz",
    "md_url": "https://ailoot.ai/models/uz/fish-audio-s1/index.md",
    "title": "Fish Audio: S1 — Ailoot",
    "url": "https://ailoot.ai/models/uz/fish-audio-s1/"
  },
  "rawModel": {
    "about": "S1 — Fish Audio’ning ifodali hikoya o‘qish va bitta so‘zlovchi ovozini yaratish uchun oldingi avlod matndan nutqqa modeli. U berilgan ssenariyni o‘qib, tanlangan yoki namuna bilan shartlangan ovozda audio qaytaradi. To‘liq S1 kichikroq distillangan S1-mini modelidan alohida; ishlab chiqaruvchi ularni mos ravishda 4 milliard va 0.5 milliard parametrli variantlar sifatida tanishtiradi. Bu profil aynan S1 modelini qamrab oladi.\n\nHikoya o‘qish uchun amalda aytilishi kerak bo‘lgan so‘zlarni tayyorlang va ijro o‘zgarishi kerak bo‘lgan joylarni belgilang. Foydali tushuntirish ssenariyi asosiy fikrni avval aytadi, bir vaqtning o‘zida bitta g‘oyani rivojlantiradi va tabiiy pauza kerak bo‘lgan iboralarni tinish belgilari bilan ajratadi. Qisqa ko‘rsatmada so‘zlar ekransiz eshitilganda ham aniq bo‘lsin. Ismlar, qisqartmalar va birliklarning ko‘zlangan o‘qilishini saqlang; ko‘z bilan o‘qiladigan satr faqat bitta talaffuzga ega deb taxmin qilmay, raqamlarni audio natijada tekshiring.\n\nS1 (angry), (sad), (in a hurry) yoki (chuckling) kabi qavs ichidagi hissiyot va aytish uslubi ko‘rsatmalaridan foydalanadi. Ko‘rsatmani ta’sir qilishi kerak bo‘lgan gap yoki iboradan oldin qo‘ying, undan keyin esa haqiqiy nutq bo‘lsin. Ijro ko‘rsatmadan keyingi matnga tegishli, shuning uchun kayfiyat o‘zgarishi ijro o‘zgarishi kerak bo‘lgan joyda paydo bo‘lsin. Bu S2 ning kvadrat qavsli ko‘rsatmalaridan boshqa sintaksis; ikki belgilash shaklini o‘zaro almashtirish mumkin deb hisoblamay, ssenariyni tanlangan avlod uchun yozing.\n\nOvozni saqlangan ovoz identifikatori orqali tanlash yoki namuna yozuvi va uning transkripti bilan shartlash mumkin. Tezkor namuna jarayoni uchun umumiy nutq qo‘llanmasi toza 10–30 soniyalik namunani tavsiya qiladi. Gapirish uslubi va yozuv sifati ko‘zlangan natijaga mos namunani tanlang, transkriptni esa undagi so‘zlarga moslang. Takrorlanuvchi hikoyachi uchun bir xil ovoz namunasini parchalar bo‘ylab qayta ishlating, shunda mavzu almashishi beixtiyor qahramon almashishiga aylanmaydi.\n\nS1 relizi qo‘llab-quvvatlanadigan tillar orasida ingliz, xitoy, yapon, nemis, fransuz, ispan, koreys, arab, rus, niderland, italyan, polyak va portugal tillarini nomlaydi hamda ssenariy ichida tillarni aralashtirishni ta’riflaydi. Nutq sintezini tarjima bosqichi deb ko‘rmay, maqsad tilidagi so‘zlarni bering. O‘zlashma ism yoki til almashishi bor parchada yozilish va atrofdagi gap kontekstini aniq saqlang, tanlangan ovoz shu o‘tishni qanday bajarayotganini tekshiring.\n\nS1 ning ishlab chiqaruvchi interfeysi har bir sintez so‘rovida bitta so‘zlovchini qo‘llab-quvvatlaydi. Dialogni o‘z ovoz namunalariga ega alohida segmentlar sifatida tayyorlab, keyin ilovada yig‘ish mumkin; S2 oilasining ichki ko‘p so‘zlovchili sintezi alohida imkoniyatdir. Qahramon gaplarini tayyorlashda har bir segmentning roli, ovozi va matnini birga saqlang. Sintez natijasi ssenariyning audio ijrosi bo‘ladi; suhbat vaqtini moslash yoki uni musiqa va video bilan birlashtirish keyingi tahrirlash bosqichidir.\n\nChiqish variantlariga MP3, WAV, xom PCM va Opus kiradi; MP3 standart tanlovdir. Hujjatlashtirilgan chiqish mono; WAV va PCM 16-bit namunalar ishlatadi, formatga xos diskretlash chastotasi tanlovlari esa farq qiladi. MP3 64, 128 va 192 kbps ni qo‘llab-quvvatlaydi, Opus esa 48 kHz dan foydalanadi. Tezlikni 0.5 dan 2.0 gacha, ovoz balandligini ham boshqarish mumkin. Kadr orti audio fayli uchun kodlangan faylni yoki ijro uchun mos oqimni tanlang va tanlangan ovoz hamda ssenariyni natija bilan saqlang.\n\nIshlab chiqaruvchi uzun matnni bo‘laklarda qayta ishlaydi; hujjatlashtirilgan bo‘lak uzunligi oralig‘i 100–300, audio token budjeti esa umumiy yozuv davomiyligi kafolati o‘rniga har bir bo‘lak uchun belgilanadi. Matnni me’yorlashtirish ingliz va xitoy tillaridagi raqamlarni tabiiy o‘qishga yoyishi mumkin, S1 takrorlash jarimasi esa takroriy audio naqshlarini kamaytirishi mumkin. Chiqish ovoz balandligini me’yorlashtirish boshqa sozlama bo‘lib, S1 ga ta’sir qilmaydi. Tayyor parchani yig‘ishdan oldin talaffuz, ibora chegaralari, takrorlangan tovushlar va ko‘zlangan hissiy o‘zgarishni tekshiring, so‘ng e’tibor kerak bo‘lgan aniq gap yoki namunani tuzating.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "available": null,
    "canonical_model": "fish-audio/s1",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 byte",
            "quantity": "1",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ],
        "summary": "Konfiguratsiya narxlari tafsilotlarda to‘liq ko‘rsatilgan."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "ca1892881aa6bc927745",
        "label": "Fish Audio: S1",
        "profiles": [
          {
            "basis": "",
            "dimensions": {
              "conditions": "Standart konfiguratsiya"
            },
            "label": "Fish Audio: S1 · Standart sozlama",
            "units": [
              {
                "amount": "0.000030",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "key": "e7b3eb5a7636763feb8a9472",
                "label": "Input UTF-8 bytes",
                "public_unit_label": "per input UTF-8 byte",
                "quantity": "1",
                "rate_role": "declared_tariff_rate",
                "side": "in",
                "unit": "input_utf8_byte"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "speech"
    ],
    "id": "fish-audio/s1",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save all complete binary bytes and all original headers; keep full JSON if returned. Actual operation/asset IDs are preserved.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Dastlabki operation_id/X-Client-Request-ID va dastlabki javobni saqlang. Qayta yubormasdan haqiqiy, egalik qilinadigan vazifa/aktiv yozuvlarini o‘qing; audio holatini so‘rash uchun maxsus URL tuzilmaydi."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "actual UTF-8 script",
                  "exact supported voice"
                ]
              }
            ],
            "outputs": {
              "all_results": "Barcha to‘liq ikkilik baytlar va dastlabki sarlavhalarni saqlang; JSON qaytarilsa, uni to‘liq saqlang. Haqiqiy operatsiya/aktiv ID lari saqlanadi.",
              "family": "audio",
              "fields": [
                {
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "haqiqatda e’lon qilingan ikkilik audio"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "enum": [
                  "fish-audio/s1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "min_length": 1,
                "name": "input",
                "quantity_unit": "decoded input UTF-8 bytes",
                "required": true,
                "type": "string"
              },
              {
                "availability": "saved_exact_supplier_example",
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s1"
                  ],
                  "type": "string"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "Hello world",
                "model": "fish-audio/s1",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "hints": [
            "Aniq model va hujjatdagi kirish maydonlaridan foydalaning.",
            "To‘liq javobni, har bir haqiqiy chiqish natijasini va dastlab qaytarilgan ID larni saqlang."
          ],
          "input": {
            "content_type": "application/json",
            "default_response_format": "pcm",
            "material_types": [
              "text"
            ],
            "native_byte_quote_controls": "Qo‘shimcha hisoblanadigan matn e’lon qilinmaguncha, bo‘sh bo‘lmagan instructions va bir nechta so‘zlovchi navbatlaridan iborat kirish aynan shu bayt asosidagi narx hisoblash yo‘lida rad etiladi.",
            "quantity": "Yagona dekodlangan kirish satrining UTF-8 baytlari; boshidagi va oxiridagi bo‘shliq belgilarini olib tashlamasdan va normallashtirmasdan",
            "required": [
              "model",
              "input",
              "voice"
            ],
            "response_format": [
              "mp3",
              "pcm"
            ],
            "voice_ids": [
              "b347db033a6549378b48d00acb0d06cd"
            ],
            "voice_list_exhaustive": false
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Amalda qaytarilgan task_id yoki media kutubxonasidagi yozuv",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID and original response. Read actual owned task/asset records without resubmitting; no dedicated audio poll URL is constructed."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "all_results": true,
            "family": "audio",
            "format": "actual MP3 or PCM bytes and MIME",
            "response": "complete raw audio bytes plus response headers"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s1', 'input': 'Hello world', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact model and documented input fields.",
          "Keep the complete response, every actual output and original returned IDs."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_utf8_byte": 3e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 byte",
            "quantity": "1",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/s1",
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: S1",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "not_character_or_token_count": true,
          "quoted_unit": "1000000_UTF8_bytes",
          "retirement_date": "2026-12-31"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000030",
            "amount_unit": "usd_per_input_utf8_byte",
            "conditions": {
              "not_character_or_token_count": true,
              "quoted_unit": "1000000_UTF8_bytes",
              "retirement_date": "2026-12-31"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_utf8_byte"
          }
        ]
      }
    ],
    "public_id": "fish-audio/s1",
    "short": "Fish Audio S1 ovoz namunalari va qavs ichidagi hissiyot ko‘rsatmalari yordamida ko‘p tilli ssenariylarni ifodali, bir so‘zlovchili audioga aylantiradi. Uni hikoya o‘qish, qisqa ovozli ko‘rsatmalar yoki qahramon gaplari uchun, tayyor audio formati va prosodiyasini boshqarish bilan ishlating."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Fish Audio S1 ovoz namunalari va qavs ichidagi hissiyot ko‘rsatmalari yordamida ko‘p tilli ssenariylarni ifodali, bir so‘zlovchili audioga aylantiradi. Uni hikoya o‘qish, qisqa ovozli ko‘rsatmalar yoki qahramon gaplari uchun, tayyor audio formati va prosodiyasini boshqarish bilan ishlating.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "d0d14e13fbe11ae1e466d6fc02e06fec9575e0da074574a5eb2aa60b4d64e367",
    "renderer_sha256": "aa8a0fca1bd770c042b64987512b6187fca2067aea3ddc877f68b163d80e7df6"
  },
  "sourceRevision": "82bd55afc5c1d69c4742db5596a47f5b024cfcc3247db94db0e8dea6e920f78b"
}
