{
  "aboutHtml": "<p>S2.1 Pro — Fish Audio’ning ifodali ovozli bayon va suhbat ovozi ilovalari uchun keyingi S2 avlod matnni nutqqa aylantirish modeli. U tabiiy tildagi ijro boshqaruvi va modelning o‘zida qo‘llab-quvvatlanadigan ko‘p so‘zlovchili muloqotni saqlab, S2 Pro’ga nisbatan nutq sifati, kechikish va o‘tkazuvchanlikni yaxshilaydi. S2.1 Pro va S2.1 Pro Free bir xil asosiy nutq modelidan foydalanadi.</p><p>Ovozli tushuntirish uchun tayyor matn, mo‘ljallangan ovoz va sur’at yoki urg‘u o‘zgarishi kerak bo‘lgan joylarni bering. Suhbat ilovasida ilova tanlagan javobni sintez qiling va faktik mazmunni ijro ko‘rsatmalaridan ajrating. Ssenariyli muloqotda navbatlarni yozishdan oldin so‘zlovchilar va ularning ovozlarini belgilang. Foydali natija — so‘zlari, ijrosi va so‘zlovchi rollari shu topshiriqqa mos keladigan to‘liq audio parcha yoki ijro etiladigan oqim.</p><p>Avval haqiqatan aytilishi kerak bo‘lgan so‘zlarni yozing, so‘ng ijrosi o‘zgarishi kerak bo‘lgan parcha oldiga bevosita ko‘rsatma qo‘ying. Kvadrat qavsdagi ko‘rsatmalar pichirlash, pauza, reaksiya, urg‘u yoki erkin ta’riflangan so‘zlash uslubini ifodalashi mumkin. Gap ichidagi o‘zgarishni ijro talab qilgan joyga qo‘ying va tavsifiy ko‘rsatmadan keyin haqiqiy nutq matnini yozing. Foydali tushuntirish topshirig‘i faktik matnni tinglovchi uchun kerakli iliqlik, sur’at yoki urg‘udan ajratadi.</p><p>Bitta so‘zlovchi uchun saqlangan ovoz identifikatorini tanlang yoki transkripti bilan namuna yozuv bering. Ishlab chiqaruvchining nutq qo‘llanmasi ovozni darhol moslashtirish uchun toza 10–30 soniyali namunani tavsiya qiladi. Ssenariyga mos ohang va yozuv sifatidagi namunani tanlang, bog‘liq parchalar uchun ayni namunani saqlang. Ovoz namunasi so‘zlovchining jarangini, matn va ichki ko‘rsatmalar esa mazmun hamda uning ijrosini beradi.</p><p>Modelning o‘zida qo‘llab-quvvatlanadigan ko‘p so‘zlovchili sintez ovoz identifikatorlarining tartiblangan massivi yoki alohida namuna guruhlari bilan &lt;|speaker:0|&gt; va &lt;|speaker:1|&gt; kabi belgilardan foydalanadi. Raqamli so‘zlovchi belgilarini shu tartibga mos tuting. O‘quv muloqotida har so‘zlovchining jumlasini yozing va ijro ko‘rsatmasini so‘zlovchi belgisidan keyin tegishli joyga qo‘ying. Bu bitta so‘rov ichida muloqot yaratadi; u S1’dagi alohida bir so‘zlovchili segmentlar va ularni keyin yig‘ish jarayonidan farq qiladi.</p><p>Ishlab chiqaruvchi jarayoni MP3, WAV, xom PCM va Opus chiqishlarini taklif qiladi; standart format MP3. MP3 64, 128 va 192 kbps’ni qo‘llab-quvvatlaydi; WAV va PCM hujjatlashtirilgan 16 bitli mono namuna formatlaridan, Opus esa 48 kHz’dan foydalanadi. Saqlanadigan ovozli bayon fayli, oqimli ijro yoki keyingi audio jarayoni uchun format tanlang. Keyingi tahrir mo‘ljallangan ijroni yo‘qotmasdan bitta jumlani o‘zgartira olishi uchun to‘liq ssenariy va ovoz tanlovini audio bilan birga saqlang.</p><p>Tezlikni 0.5 dan 2.0 gacha o‘zgartirish va ovoz balandligini boshqarish mumkin. Matnni me’yorlashtirish ingliz va xitoy tillaridagi sonlarni tabiiy o‘qish uchun yoyib beradi. Chiqish ovoz balandligini me’yorlashtirish standart holda true va S2 oilasiga qo‘llanadi; ayni maydon S1’da ta’sir qilmagan. S1’ning repetition_penalty parametri S2.1 Pro audiosini o‘zgartirmaydi, shuning uchun eski sozlamani bu model uchun amaldagi boshqaruv deb hisoblamang. Natijani tasdiqlashda ko‘chib qolgan parametrga tayanmasdan, takroriy tovush va so‘zlarni bevosita tekshiring.</p><p>Uzunroq ssenariylar bo‘laklarga ajratib qayta ishlanadi. Hujjatlashtirilgan bo‘lak uzunligi oralig‘i 100–300; max_new_tokens umumiy davomiylik kafolati emas, har bo‘lak uchun audio token byudjetidir. Oldingi bo‘lakka tayantirish ovoz kontekstini keyingisiga olib o‘tishi mumkin. Ishlab chiqaruvchining yetkazish jarayoni yaxlit audio, bosqichma-bosqich audio bo‘laklari va ssenariy asta kelganda jonli matn oqimini tavsiflaydi. Ilova uchun qabul qilish usulini tanlang va keyingi parchaning talaffuzi hamda ohangi uchun yetarli ssenariy kontekstini saqlang.</p><p>Foydali yakuniy material uchun tushib qolgan yoki takrorlangan so‘zlar, sonlar talaffuzi, so‘zlovchi almashishi, pauzalar va ko‘rsatmalar kuchini tinglab tekshiring. Turli ovoz namunalari bir ishorani turli kuchda talqin qilishi mumkin, shuning uchun raqobatlashuvchi teglar qo‘shishdan oldin oddiy boshqariladigan jumladan boshlang. Ko‘p tilli ishda nutq modelidan mazmunni o‘ylab topish yoki tarjima qilishni so‘ramasdan, kerakli tildagi ssenariyni bering. Aniq tahrir nomuvofiqlikka sabab bo‘lgan jumla, ishora yoki namunani o‘zgartiradi va topshiriqqa allaqachon mos ijro qismlarini saqlaydi.</p>",
  "aboutText": "S2.1 Pro — Fish Audio’ning ifodali ovozli bayon va suhbat ovozi ilovalari uchun keyingi S2 avlod matnni nutqqa aylantirish modeli. U tabiiy tildagi ijro boshqaruvi va modelning o‘zida qo‘llab-quvvatlanadigan ko‘p so‘zlovchili muloqotni saqlab, S2 Pro’ga nisbatan nutq sifati, kechikish va o‘tkazuvchanlikni yaxshilaydi. S2.1 Pro va S2.1 Pro Free bir xil asosiy nutq modelidan foydalanadi.\n\nOvozli tushuntirish uchun tayyor matn, mo‘ljallangan ovoz va sur’at yoki urg‘u o‘zgarishi kerak bo‘lgan joylarni bering. Suhbat ilovasida ilova tanlagan javobni sintez qiling va faktik mazmunni ijro ko‘rsatmalaridan ajrating. Ssenariyli muloqotda navbatlarni yozishdan oldin so‘zlovchilar va ularning ovozlarini belgilang. Foydali natija — so‘zlari, ijrosi va so‘zlovchi rollari shu topshiriqqa mos keladigan to‘liq audio parcha yoki ijro etiladigan oqim.\n\nAvval haqiqatan aytilishi kerak bo‘lgan so‘zlarni yozing, so‘ng ijrosi o‘zgarishi kerak bo‘lgan parcha oldiga bevosita ko‘rsatma qo‘ying. Kvadrat qavsdagi ko‘rsatmalar pichirlash, pauza, reaksiya, urg‘u yoki erkin ta’riflangan so‘zlash uslubini ifodalashi mumkin. Gap ichidagi o‘zgarishni ijro talab qilgan joyga qo‘ying va tavsifiy ko‘rsatmadan keyin haqiqiy nutq matnini yozing. Foydali tushuntirish topshirig‘i faktik matnni tinglovchi uchun kerakli iliqlik, sur’at yoki urg‘udan ajratadi.\n\nBitta so‘zlovchi uchun saqlangan ovoz identifikatorini tanlang yoki transkripti bilan namuna yozuv bering. Ishlab chiqaruvchining nutq qo‘llanmasi ovozni darhol moslashtirish uchun toza 10–30 soniyali namunani tavsiya qiladi. Ssenariyga mos ohang va yozuv sifatidagi namunani tanlang, bog‘liq parchalar uchun ayni namunani saqlang. Ovoz namunasi so‘zlovchining jarangini, matn va ichki ko‘rsatmalar esa mazmun hamda uning ijrosini beradi.\n\nModelning o‘zida qo‘llab-quvvatlanadigan ko‘p so‘zlovchili sintez ovoz identifikatorlarining tartiblangan massivi yoki alohida namuna guruhlari bilan <|speaker:0|> va <|speaker:1|> kabi belgilardan foydalanadi. Raqamli so‘zlovchi belgilarini shu tartibga mos tuting. O‘quv muloqotida har so‘zlovchining jumlasini yozing va ijro ko‘rsatmasini so‘zlovchi belgisidan keyin tegishli joyga qo‘ying. Bu bitta so‘rov ichida muloqot yaratadi; u S1’dagi alohida bir so‘zlovchili segmentlar va ularni keyin yig‘ish jarayonidan farq qiladi.\n\nIshlab chiqaruvchi jarayoni MP3, WAV, xom PCM va Opus chiqishlarini taklif qiladi; standart format MP3. MP3 64, 128 va 192 kbps’ni qo‘llab-quvvatlaydi; WAV va PCM hujjatlashtirilgan 16 bitli mono namuna formatlaridan, Opus esa 48 kHz’dan foydalanadi. Saqlanadigan ovozli bayon fayli, oqimli ijro yoki keyingi audio jarayoni uchun format tanlang. Keyingi tahrir mo‘ljallangan ijroni yo‘qotmasdan bitta jumlani o‘zgartira olishi uchun to‘liq ssenariy va ovoz tanlovini audio bilan birga saqlang.\n\nTezlikni 0.5 dan 2.0 gacha o‘zgartirish va ovoz balandligini boshqarish mumkin. Matnni me’yorlashtirish ingliz va xitoy tillaridagi sonlarni tabiiy o‘qish uchun yoyib beradi. Chiqish ovoz balandligini me’yorlashtirish standart holda true va S2 oilasiga qo‘llanadi; ayni maydon S1’da ta’sir qilmagan. S1’ning repetition_penalty parametri S2.1 Pro audiosini o‘zgartirmaydi, shuning uchun eski sozlamani bu model uchun amaldagi boshqaruv deb hisoblamang. Natijani tasdiqlashda ko‘chib qolgan parametrga tayanmasdan, takroriy tovush va so‘zlarni bevosita tekshiring.\n\nUzunroq ssenariylar bo‘laklarga ajratib qayta ishlanadi. Hujjatlashtirilgan bo‘lak uzunligi oralig‘i 100–300; max_new_tokens umumiy davomiylik kafolati emas, har bo‘lak uchun audio token byudjetidir. Oldingi bo‘lakka tayantirish ovoz kontekstini keyingisiga olib o‘tishi mumkin. Ishlab chiqaruvchining yetkazish jarayoni yaxlit audio, bosqichma-bosqich audio bo‘laklari va ssenariy asta kelganda jonli matn oqimini tavsiflaydi. Ilova uchun qabul qilish usulini tanlang va keyingi parchaning talaffuzi hamda ohangi uchun yetarli ssenariy kontekstini saqlang.\n\nFoydali yakuniy material uchun tushib qolgan yoki takrorlangan so‘zlar, sonlar talaffuzi, so‘zlovchi almashishi, pauzalar va ko‘rsatmalar kuchini tinglab tekshiring. Turli ovoz namunalari bir ishorani turli kuchda talqin qilishi mumkin, shuning uchun raqobatlashuvchi teglar qo‘shishdan oldin oddiy boshqariladigan jumladan boshlang. Ko‘p tilli ishda nutq modelidan mazmunni o‘ylab topish yoki tarjima qilishni so‘ramasdan, kerakli tildagi ssenariyni bering. Aniq tahrir nomuvofiqlikka sabab bo‘lgan jumla, ishora yoki namunani o‘zgartiradi va topshiriqqa allaqachon mos ijro qismlarini saqlaydi.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "9439fc831e869a49f28334c1cb97811d580946e0258bc431989b588b3e8dffb0",
    "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: S2.1 Pro</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/s2.1-pro</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%2Fs2.1-pro\">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 S2.1 Pro ifodali ko‘p tilli nutq yaratadi va bir nechta so‘zlovchi ishtirokidagi muloqotni bevosita sintez qiladi; S2 Pro’ga nisbatan nutq sifatini va o‘tkazuvchanlikni oshirib, kechikishni kamaytiradi. Ovozli bayon yoki suhbat audiosi yaratish uchun ijroni ssenariy ichida boshqaring va ovoz namunalaridan foydalaning.</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>S2.1 Pro — Fish Audio’ning ifodali ovozli bayon va suhbat ovozi ilovalari uchun keyingi S2 avlod matnni nutqqa aylantirish modeli. U tabiiy tildagi ijro boshqaruvi va modelning o‘zida qo‘llab-quvvatlanadigan ko‘p so‘zlovchili muloqotni saqlab, S2 Pro’ga nisbatan nutq sifati, kechikish va o‘tkazuvchanlikni yaxshilaydi. S2.1 Pro va S2.1 Pro Free bir xil asosiy nutq modelidan foydalanadi.</p><p>Ovozli tushuntirish uchun tayyor matn, mo‘ljallangan ovoz va sur’at yoki urg‘u o‘zgarishi kerak bo‘lgan joylarni bering. Suhbat ilovasida ilova tanlagan javobni sintez qiling va faktik mazmunni ijro ko‘rsatmalaridan ajrating. Ssenariyli muloqotda navbatlarni yozishdan oldin so‘zlovchilar va ularning ovozlarini belgilang. Foydali natija — so‘zlari, ijrosi va so‘zlovchi rollari shu topshiriqqa mos keladigan to‘liq audio parcha yoki ijro etiladigan oqim.</p><p>Avval haqiqatan aytilishi kerak bo‘lgan so‘zlarni yozing, so‘ng ijrosi o‘zgarishi kerak bo‘lgan parcha oldiga bevosita ko‘rsatma qo‘ying. Kvadrat qavsdagi ko‘rsatmalar pichirlash, pauza, reaksiya, urg‘u yoki erkin ta’riflangan so‘zlash uslubini ifodalashi mumkin. Gap ichidagi o‘zgarishni ijro talab qilgan joyga qo‘ying va tavsifiy ko‘rsatmadan keyin haqiqiy nutq matnini yozing. Foydali tushuntirish topshirig‘i faktik matnni tinglovchi uchun kerakli iliqlik, sur’at yoki urg‘udan ajratadi.</p><p>Bitta so‘zlovchi uchun saqlangan ovoz identifikatorini tanlang yoki transkripti bilan namuna yozuv bering. Ishlab chiqaruvchining nutq qo‘llanmasi ovozni darhol moslashtirish uchun toza 10–30 soniyali namunani tavsiya qiladi. Ssenariyga mos ohang va yozuv sifatidagi namunani tanlang, bog‘liq parchalar uchun ayni namunani saqlang. Ovoz namunasi so‘zlovchining jarangini, matn va ichki ko‘rsatmalar esa mazmun hamda uning ijrosini beradi.</p><p>Modelning o‘zida qo‘llab-quvvatlanadigan ko‘p so‘zlovchili sintez ovoz identifikatorlarining tartiblangan massivi yoki alohida namuna guruhlari bilan &lt;|speaker:0|&gt; va &lt;|speaker:1|&gt; kabi belgilardan foydalanadi. Raqamli so‘zlovchi belgilarini shu tartibga mos tuting. O‘quv muloqotida har so‘zlovchining jumlasini yozing va ijro ko‘rsatmasini so‘zlovchi belgisidan keyin tegishli joyga qo‘ying. Bu bitta so‘rov ichida muloqot yaratadi; u S1’dagi alohida bir so‘zlovchili segmentlar va ularni keyin yig‘ish jarayonidan farq qiladi.</p><p>Ishlab chiqaruvchi jarayoni MP3, WAV, xom PCM va Opus chiqishlarini taklif qiladi; standart format MP3. MP3 64, 128 va 192 kbps’ni qo‘llab-quvvatlaydi; WAV va PCM hujjatlashtirilgan 16 bitli mono namuna formatlaridan, Opus esa 48 kHz’dan foydalanadi. Saqlanadigan ovozli bayon fayli, oqimli ijro yoki keyingi audio jarayoni uchun format tanlang. Keyingi tahrir mo‘ljallangan ijroni yo‘qotmasdan bitta jumlani o‘zgartira olishi uchun to‘liq ssenariy va ovoz tanlovini audio bilan birga saqlang.</p><p>Tezlikni 0.5 dan 2.0 gacha o‘zgartirish va ovoz balandligini boshqarish mumkin. Matnni me’yorlashtirish ingliz va xitoy tillaridagi sonlarni tabiiy o‘qish uchun yoyib beradi. Chiqish ovoz balandligini me’yorlashtirish standart holda true va S2 oilasiga qo‘llanadi; ayni maydon S1’da ta’sir qilmagan. S1’ning repetition_penalty parametri S2.1 Pro audiosini o‘zgartirmaydi, shuning uchun eski sozlamani bu model uchun amaldagi boshqaruv deb hisoblamang. Natijani tasdiqlashda ko‘chib qolgan parametrga tayanmasdan, takroriy tovush va so‘zlarni bevosita tekshiring.</p><p>Uzunroq ssenariylar bo‘laklarga ajratib qayta ishlanadi. Hujjatlashtirilgan bo‘lak uzunligi oralig‘i 100–300; max_new_tokens umumiy davomiylik kafolati emas, har bo‘lak uchun audio token byudjetidir. Oldingi bo‘lakka tayantirish ovoz kontekstini keyingisiga olib o‘tishi mumkin. Ishlab chiqaruvchining yetkazish jarayoni yaxlit audio, bosqichma-bosqich audio bo‘laklari va ssenariy asta kelganda jonli matn oqimini tavsiflaydi. Ilova uchun qabul qilish usulini tanlang va keyingi parchaning talaffuzi hamda ohangi uchun yetarli ssenariy kontekstini saqlang.</p><p>Foydali yakuniy material uchun tushib qolgan yoki takrorlangan so‘zlar, sonlar talaffuzi, so‘zlovchi almashishi, pauzalar va ko‘rsatmalar kuchini tinglab tekshiring. Turli ovoz namunalari bir ishorani turli kuchda talqin qilishi mumkin, shuning uchun raqobatlashuvchi teglar qo‘shishdan oldin oddiy boshqariladigan jumladan boshlang. Ko‘p tilli ishda nutq modelidan mazmunni o‘ylab topish yoki tarjima qilishni so‘ramasdan, kerakli tildagi ssenariyni bering. Aniq tahrir nomuvofiqlikka sabab bo‘lgan jumla, ishora yoki namunani o‘zgartiradi va topshiriqqa allaqachon mos ijro qismlarini saqlaydi.</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 · Nutq</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></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><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/s2.1-pro</div></td><td data-cell-label=\"Standart\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standart</span>—</td></tr><tr><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><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>b347db033a6549378b48d00acb0d06cd</div><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><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><tr><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span><code>object</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></td><td data-cell-label=\"Standart\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standart</span>—</td></tr></tbody></table></div><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></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></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>Kirish UTF-8 bayti</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>UTF-8 kirish bayti uchun</td><td data-cell-label=\"To‘lov\"><span class=\"card-cell-label\">To‘lov</span><div><span>Kirish · Kirish UTF-8 bayti</span> <b>$0.00003</b> <span class=\"price-unit\">UTF-8 kirish 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></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">So‘rov namunalari</h3><h4>Ailoot Ultra · Nutq</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-1357-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1357-panel-0\" aria-selected=\"true\" tabindex=\"0\">Haqiqiy kirish ma’lumotlaridan foydalaning va natijani to‘liq saqlang</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-1357-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1357-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_INPUT_TEXT:?Set the actual documented input value}&quot;\nexport AILOOT_INPUT_TEXT\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;fish-audio/s2.1-pro&#39;, &#39;input&#39;: &#39;${ACTUAL_INPUT_TEXT}&#39;, &#39;voice&#39;: &#39;b347db033a6549378b48d00acb0d06cd&#39;, &#39;response_format&#39;: &#39;mp3&#39;}\nrequest[&#39;input&#39;]=os.environ[&#39;AILOOT_INPUT_TEXT&#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# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\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 · Nutq</h4><p class=\"note-s\">To‘liq ikkilik audio yoki dastlabki audio_url javobi, sarlavhalar va egalik qilinadigan har bir aktiv.</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><details class=\"card-about\"><summary>Boshqa kontentni o‘qish</summary><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-1358-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1358-panel-0\" aria-selected=\"true\" tabindex=\"0\">O‘zingizga tegishli mavjud materiallarni o‘qish</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-1358-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1358-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><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\">To‘liq javob va sarlavhalarni, amalda qaytarilgan barcha natijalarni, dastlab qaytarilgan identifikatorlarni hamda barcha usage maydonlarini saqlang. Yaratish so‘rovini qayta yubormasdan dastlabki operatsiyani tiklang.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Asl javobni tekshirish kerak bo‘lsa</h5><p class=\"note-s\">Qaytarilgan X-Client-Request-ID ni ma’lumotlarni solishtirib tekshirish uchun saqlang. Faqat amalda qaytarilgan task_id/asset_id qiymatlari bo‘yicha yoki o‘zingizga tegishli media kutubxonasidan ma’lumot o‘qing; operatsiya ID sidan vazifa URL manzilini hech qachon tuzmang va yaratish so‘rovini qayta yubormang.</p></div></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%2Fs2.1-pro&amp;route=Ultra&amp;caller=fish-audio%2Fs2.1-pro&amp;fmt=speech\"><code>fish-audio/s2.1-pro</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%2Fs2.1-pro&amp;route=Ultra&amp;caller=fish-audio%2Fs2.1-pro&amp;fmt=speech\"><code>fish-audio/s2.1-pro</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/s2.1-pro",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "fish-audio/s2.1-pro",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|fish-audio%2Fs2.1-pro",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "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": "Qaytarilgan X-Client-Request-ID ni ma’lumotlarni solishtirib tekshirish uchun saqlang. Faqat amalda qaytarilgan task_id/asset_id qiymatlari bo‘yicha yoki o‘zingizga tegishli media kutubxonasidan ma’lumot o‘qing; operatsiya ID sidan vazifa URL manzilini hech qachon tuzmang va yaratish so‘rovini qayta yubormang."
            },
            "outputs": {
              "all_results": "To‘liq javob va sarlavhalarni, amalda qaytarilgan barcha natijalarni, dastlab qaytarilgan identifikatorlarni hamda barcha usage maydonlarini saqlang. Yaratish so‘rovini qayta yubormasdan dastlabki operatsiyani tiklang.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "To‘liq ikkilik audio yoki dastlabki audio_url javobi, sarlavhalar va egalik qilinadigan har bir aktiv."
            },
            "parameters": [
              {
                "enum": [
                  "fish-audio/s2.1-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_known": true,
                "min_length": 1,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s2.1-pro"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "enum": [
                    "b347db033a6549378b48d00acb0d06cd"
                  ],
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "fish-audio/s2.1-pro",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input",
              "voice"
            ]
          },
          "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": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "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": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 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}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s2.1-pro', 'input': '${ACTUAL_INPUT_TEXT}', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\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# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Nutq",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "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": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 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/s2.1-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "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_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "input UTF-8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per input UTF-8 byte",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/s2.1-pro",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "84371425db5613f065052f97022f6dfcf50939ab9e40c2f5853b04aacecc7a5a",
    "input_html_sha256": "709b3f1e907c18efdfc72fc34721fad37acc5f9363b8bb7ce9e20fa87357616d",
    "private_audit_sha256": "48bc536fc146061d534991b62bcf783f06bf62dc3179cad3f1becf62ed78714e",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/uz/fish-audio-s2-1-pro/",
    "description": "Fish Audio S2.1 Pro ifodali ko‘p tilli nutq yaratadi va bir nechta so‘zlovchi ishtirokidagi muloqotni bevosita sintez qiladi; S2 Pro’ga nisbatan nutq sifatini va o‘tkazuvchanlikni oshirib, kechikishni kamaytiradi. Ovozli bayon yoki suhbat audiosi yaratish uchun ijroni ssenariy ichida boshqaring va ovoz namunalaridan foydalaning.",
    "locale": "uz",
    "md_url": "https://ailoot.ai/models/uz/fish-audio-s2-1-pro/index.md",
    "title": "Fish Audio: S2.1 Pro — Ailoot",
    "url": "https://ailoot.ai/models/uz/fish-audio-s2-1-pro/"
  },
  "rawModel": {
    "about": "S2.1 Pro — Fish Audio’ning ifodali ovozli bayon va suhbat ovozi ilovalari uchun keyingi S2 avlod matnni nutqqa aylantirish modeli. U tabiiy tildagi ijro boshqaruvi va modelning o‘zida qo‘llab-quvvatlanadigan ko‘p so‘zlovchili muloqotni saqlab, S2 Pro’ga nisbatan nutq sifati, kechikish va o‘tkazuvchanlikni yaxshilaydi. S2.1 Pro va S2.1 Pro Free bir xil asosiy nutq modelidan foydalanadi.\n\nOvozli tushuntirish uchun tayyor matn, mo‘ljallangan ovoz va sur’at yoki urg‘u o‘zgarishi kerak bo‘lgan joylarni bering. Suhbat ilovasida ilova tanlagan javobni sintez qiling va faktik mazmunni ijro ko‘rsatmalaridan ajrating. Ssenariyli muloqotda navbatlarni yozishdan oldin so‘zlovchilar va ularning ovozlarini belgilang. Foydali natija — so‘zlari, ijrosi va so‘zlovchi rollari shu topshiriqqa mos keladigan to‘liq audio parcha yoki ijro etiladigan oqim.\n\nAvval haqiqatan aytilishi kerak bo‘lgan so‘zlarni yozing, so‘ng ijrosi o‘zgarishi kerak bo‘lgan parcha oldiga bevosita ko‘rsatma qo‘ying. Kvadrat qavsdagi ko‘rsatmalar pichirlash, pauza, reaksiya, urg‘u yoki erkin ta’riflangan so‘zlash uslubini ifodalashi mumkin. Gap ichidagi o‘zgarishni ijro talab qilgan joyga qo‘ying va tavsifiy ko‘rsatmadan keyin haqiqiy nutq matnini yozing. Foydali tushuntirish topshirig‘i faktik matnni tinglovchi uchun kerakli iliqlik, sur’at yoki urg‘udan ajratadi.\n\nBitta so‘zlovchi uchun saqlangan ovoz identifikatorini tanlang yoki transkripti bilan namuna yozuv bering. Ishlab chiqaruvchining nutq qo‘llanmasi ovozni darhol moslashtirish uchun toza 10–30 soniyali namunani tavsiya qiladi. Ssenariyga mos ohang va yozuv sifatidagi namunani tanlang, bog‘liq parchalar uchun ayni namunani saqlang. Ovoz namunasi so‘zlovchining jarangini, matn va ichki ko‘rsatmalar esa mazmun hamda uning ijrosini beradi.\n\nModelning o‘zida qo‘llab-quvvatlanadigan ko‘p so‘zlovchili sintez ovoz identifikatorlarining tartiblangan massivi yoki alohida namuna guruhlari bilan <|speaker:0|> va <|speaker:1|> kabi belgilardan foydalanadi. Raqamli so‘zlovchi belgilarini shu tartibga mos tuting. O‘quv muloqotida har so‘zlovchining jumlasini yozing va ijro ko‘rsatmasini so‘zlovchi belgisidan keyin tegishli joyga qo‘ying. Bu bitta so‘rov ichida muloqot yaratadi; u S1’dagi alohida bir so‘zlovchili segmentlar va ularni keyin yig‘ish jarayonidan farq qiladi.\n\nIshlab chiqaruvchi jarayoni MP3, WAV, xom PCM va Opus chiqishlarini taklif qiladi; standart format MP3. MP3 64, 128 va 192 kbps’ni qo‘llab-quvvatlaydi; WAV va PCM hujjatlashtirilgan 16 bitli mono namuna formatlaridan, Opus esa 48 kHz’dan foydalanadi. Saqlanadigan ovozli bayon fayli, oqimli ijro yoki keyingi audio jarayoni uchun format tanlang. Keyingi tahrir mo‘ljallangan ijroni yo‘qotmasdan bitta jumlani o‘zgartira olishi uchun to‘liq ssenariy va ovoz tanlovini audio bilan birga saqlang.\n\nTezlikni 0.5 dan 2.0 gacha o‘zgartirish va ovoz balandligini boshqarish mumkin. Matnni me’yorlashtirish ingliz va xitoy tillaridagi sonlarni tabiiy o‘qish uchun yoyib beradi. Chiqish ovoz balandligini me’yorlashtirish standart holda true va S2 oilasiga qo‘llanadi; ayni maydon S1’da ta’sir qilmagan. S1’ning repetition_penalty parametri S2.1 Pro audiosini o‘zgartirmaydi, shuning uchun eski sozlamani bu model uchun amaldagi boshqaruv deb hisoblamang. Natijani tasdiqlashda ko‘chib qolgan parametrga tayanmasdan, takroriy tovush va so‘zlarni bevosita tekshiring.\n\nUzunroq ssenariylar bo‘laklarga ajratib qayta ishlanadi. Hujjatlashtirilgan bo‘lak uzunligi oralig‘i 100–300; max_new_tokens umumiy davomiylik kafolati emas, har bo‘lak uchun audio token byudjetidir. Oldingi bo‘lakka tayantirish ovoz kontekstini keyingisiga olib o‘tishi mumkin. Ishlab chiqaruvchining yetkazish jarayoni yaxlit audio, bosqichma-bosqich audio bo‘laklari va ssenariy asta kelganda jonli matn oqimini tavsiflaydi. Ilova uchun qabul qilish usulini tanlang va keyingi parchaning talaffuzi hamda ohangi uchun yetarli ssenariy kontekstini saqlang.\n\nFoydali yakuniy material uchun tushib qolgan yoki takrorlangan so‘zlar, sonlar talaffuzi, so‘zlovchi almashishi, pauzalar va ko‘rsatmalar kuchini tinglab tekshiring. Turli ovoz namunalari bir ishorani turli kuchda talqin qilishi mumkin, shuning uchun raqobatlashuvchi teglar qo‘shishdan oldin oddiy boshqariladigan jumladan boshlang. Ko‘p tilli ishda nutq modelidan mazmunni o‘ylab topish yoki tarjima qilishni so‘ramasdan, kerakli tildagi ssenariyni bering. Aniq tahrir nomuvofiqlikka sabab bo‘lgan jumla, ishora yoki namunani o‘zgartiradi va topshiriqqa allaqachon mos ijro qismlarini saqlaydi.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "input UTF-8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per input UTF-8 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,
    "formats": [
      "speech"
    ],
    "id": "fish-audio/s2.1-pro",
    "input": [
      "text"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "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": "Qaytarilgan X-Client-Request-ID ni ma’lumotlarni solishtirib tekshirish uchun saqlang. Faqat amalda qaytarilgan task_id/asset_id qiymatlari bo‘yicha yoki o‘zingizga tegishli media kutubxonasidan ma’lumot o‘qing; operatsiya ID sidan vazifa URL manzilini hech qachon tuzmang va yaratish so‘rovini qayta yubormang."
            },
            "outputs": {
              "all_results": "To‘liq javob va sarlavhalarni, amalda qaytarilgan barcha natijalarni, dastlab qaytarilgan identifikatorlarni hamda barcha usage maydonlarini saqlang. Yaratish so‘rovini qayta yubormasdan dastlabki operatsiyani tiklang.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "To‘liq ikkilik audio yoki dastlabki audio_url javobi, sarlavhalar va egalik qilinadigan har bir aktiv."
            },
            "parameters": [
              {
                "enum": [
                  "fish-audio/s2.1-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_known": true,
                "min_length": 1,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s2.1-pro"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "enum": [
                    "b347db033a6549378b48d00acb0d06cd"
                  ],
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "fish-audio/s2.1-pro",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input",
              "voice"
            ]
          },
          "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": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "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": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 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}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s2.1-pro', 'input': '${ACTUAL_INPUT_TEXT}', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\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# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Nutq",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "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": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 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/s2.1-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "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_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "input UTF-8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per input UTF-8 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/s2.1-pro",
        "request_model_id": "fish-audio/s2.1-pro",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: S2.1 Pro",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Fish Audio S2.1 Pro ifodali ko‘p tilli nutq yaratadi va bir nechta so‘zlovchi ishtirokidagi muloqotni bevosita sintez qiladi; S2 Pro’ga nisbatan nutq sifatini va o‘tkazuvchanlikni oshirib, kechikishni kamaytiradi. Ovozli bayon yoki suhbat audiosi yaratish uchun ijroni ssenariy ichida boshqaring va ovoz namunalaridan foydalaning."
  },
  "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 S2.1 Pro ifodali ko‘p tilli nutq yaratadi va bir nechta so‘zlovchi ishtirokidagi muloqotni bevosita sintez qiladi; S2 Pro’ga nisbatan nutq sifatini va o‘tkazuvchanlikni oshirib, kechikishni kamaytiradi. Ovozli bayon yoki suhbat audiosi yaratish uchun ijroni ssenariy ichida boshqaring va ovoz namunalaridan foydalaning.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "542e2516b0314a47dc44286f0c65de4d9b94895d474a38364077ed450e2391c7",
    "renderer_sha256": "aa8a0fca1bd770c042b64987512b6187fca2067aea3ddc877f68b163d80e7df6"
  },
  "sourceRevision": "3f75e3e22c356a8ca9277c12aa51ba573c996c682da910ecd864b24a40e624d2"
}
