{
  "aboutHtml": "<p>S2 Pro — Fish Audio’ning ifodali ovozli bayon, qahramonlar muloqoti va suhbat ovozi uchun ikkinchi avlod matnni nutqqa aylantirish modeli. U yozma ssenariyni audioga aylantiradi va so‘z yoki ibora darajasida tabiiy tildagi ko‘rsatmalarni qo‘llab-quvvatlaydi. Oldingi S1 avlodi yumaloq qavsdagi ishoralardan, S2 Pro esa bevosita kvadrat qavslardan foydalanadi va bitta sintez so‘rovida bir nechta so‘zlovchini qo‘llab-quvvatlaydi. Ishlab chiqaruvchi S2 Pro vaznlari va qo‘shimcha o‘qitish kodini alohida moslashtirish ishlari uchun chiqaradi; oddiy nutq so‘rovi yangi model o‘qitmasdan tanlangan modeldan foydalanadi.</p><p>Avval aytiladigan mazmunni yozing, so‘ng ijro ko‘rsatmasini u ta’sir qilishi kerak bo‘lgan so‘z yoki ibora oldiga bevosita qo‘ying. Ko‘rsatmalar pichirlash, reaksiya, pauza, hissiy o‘zgarish yoki erkin ta’riflangan so‘zlash uslubini tavsiflashi mumkin. Qisqa mahsulot tushuntirishida faktik jumlani ravshan tuting va faqat tinglovchi farqni sezishi kerak bo‘lgan joyga urg‘u bering. Qahramon jumlasida butun parchaga bitta o‘zgarmas kayfiyat berish o‘rniga hissiy o‘zgarishni sodir bo‘lgan paytda tavsiflang.</p><p>Kvadrat qavsdagi teglar yopiq menyu emas, erkin sohadagi tavsiflardir. Misollar: [whispering], [sigh], [long pause] va [speaking slowly, almost hesitant] kabi ibora. Teglar gap o‘rtasida kelib, keyingi nutqqa ta’sir qilishi mumkin. Tavsifiy tegdan keyin haqiqiy matn bo‘lishi kerak; yolg‘iz ko‘rsatma oldindan aytib bo‘lmaydigan natija berishi mumkin. Qo‘shimcha qatlamlardan oldin bir yoki ikki foydali ko‘rsatmadan boshlang, chunki bir-biriga zid teglar mo‘ljallangan ijroni xiralashtirishi mumkin. Turli ovoz namunalari bir xil ko‘rsatmaga turli kuchda javob berishi mumkin.</p><p>S2 relizi taxminan 80 tilni tavsiflaydi va ijro ko‘rsatmalarini ssenariy bilan bir tilda yozish misollarini beradi. Matnni aytilishi kerak bo‘lgan tilda tayyorlang va alohida o‘qilishi kerak bo‘lgan nomlar, birliklar va qisqartmalarni saqlang. Ko‘p tilli ovozli bayon ssenariy tili o‘zgarganda mo‘ljallangan ovozni saqlashi mumkin, biroq yakuniy materialda talaffuz va izchillik tinglab tekshirilishi kerak. Sintez ilova qanday ma’lumot aytishini belgilamasdan, berilgan mazmunni nutqqa aylantiradi.</p><p>Bitta so‘zlovchi uchun saqlangan ovoz identifikatorini tanlang yoki namuna audio va unga mos transkript bering. Ishlab chiqaruvchi darhol moslashtirish uchun toza 10–30 soniyali namunani tavsiya qiladi. Muloqotda so‘zlovchilar uchun tartiblangan ovoz identifikatorlari ro‘yxati yoki alohida namuna guruhlari bilan &lt;|speaker:0|&gt; va &lt;|speaker:1|&gt; kabi belgilardan foydalaning. Raqamli belgi tegishli ovoz yozuvini tanlaydi; suhbat rivojlanganda tartibni o‘zgartirmang. Tabiiy tildagi ijro ko‘rsatmalari va so‘zlovchi tanlash ssenariyda turli vazifalarni bajaradi.</p><p>Audio chiqishi MP3, WAV, xom PCM yoki Opus bo‘lishi mumkin. MP3 standart holda 128 kbps, shuningdek 64 yoki 192 kbps’ni taklif qiladi; Opus chiqishi 48 kHz’dan foydalanadi, WAV va PCM esa hujjatlashtirilgan namuna chastotasi variantlarini 16 bitli mono sifatida qo‘llab-quvvatlaydi. Formatni haqiqiy manziliga qarab tanlang: ovozli bayon uchun saqlanadigan fayl yoki ijro uchun mos audio bo‘laklari. Ishlab chiqaruvchining nutq jarayoni ssenariy asta kelganda jonli matn oqimini ham tavsiflaydi. Generatsiya qilingan natija to‘liq ssenariy va tanlangan ovozlarga bog‘langan holda qolishi kerak.</p><p>Tezlikni 0.5 va 2.0 orasida o‘zgartirish, ovoz balandligi va chiqish balandligini me’yorlashtirishni boshqarish mumkin. Matnni me’yorlashtirish ingliz va xitoy tillaridagi sonlarni o‘qishni yaxshilaydi. Qayta ishlash 100–300 oralig‘idagi bo‘laklar va har bo‘lakka audio token byudjetidan foydalanadi; bu sozlamalarni butun ovozli bayonning qat’iy maksimal uzunligi deb tushunmang. Oldingi bo‘lakka tayantirish ovoz kontekstini keyingi segmentga o‘tkazishi mumkin. temperature va top-p kabi tanlab olish boshqaruvlari xilma-xillikka ta’sir qiladi; ataylab boshqarilgan jumlaga ham mo‘ljallangan jarangni berish uchun yetarli matn va kontekst zarur.</p><p>Foydali ishlab chiqarish topshirig‘i ovozli bayon, muloqot va ijro ko‘rsatmalarini ajratadi, so‘ng natijaning ovozi va formatini belgilaydi. Tushib qolgan so‘zlar, takrorlangan audio, sonlar talaffuzi, so‘zlovchi almashishi va reaksiya vaqtini tinglang. Ko‘proq teg har bir parchani yaxshilaydi deb hisoblamasdan, nomuvofiqlikka sabab bo‘lgan jumla yoki ovoz namunasini tahrirlang. S2 Pro oldingi S2 avlodining alohida modeli bo‘lib qoladi; S2.1 Pro esa o‘z yaxshilanishlari va modelga xos sozlama xatti-harakatiga ega keyingi nashrdir.</p>",
  "aboutText": "S2 Pro — Fish Audio’ning ifodali ovozli bayon, qahramonlar muloqoti va suhbat ovozi uchun ikkinchi avlod matnni nutqqa aylantirish modeli. U yozma ssenariyni audioga aylantiradi va so‘z yoki ibora darajasida tabiiy tildagi ko‘rsatmalarni qo‘llab-quvvatlaydi. Oldingi S1 avlodi yumaloq qavsdagi ishoralardan, S2 Pro esa bevosita kvadrat qavslardan foydalanadi va bitta sintez so‘rovida bir nechta so‘zlovchini qo‘llab-quvvatlaydi. Ishlab chiqaruvchi S2 Pro vaznlari va qo‘shimcha o‘qitish kodini alohida moslashtirish ishlari uchun chiqaradi; oddiy nutq so‘rovi yangi model o‘qitmasdan tanlangan modeldan foydalanadi.\n\nAvval aytiladigan mazmunni yozing, so‘ng ijro ko‘rsatmasini u ta’sir qilishi kerak bo‘lgan so‘z yoki ibora oldiga bevosita qo‘ying. Ko‘rsatmalar pichirlash, reaksiya, pauza, hissiy o‘zgarish yoki erkin ta’riflangan so‘zlash uslubini tavsiflashi mumkin. Qisqa mahsulot tushuntirishida faktik jumlani ravshan tuting va faqat tinglovchi farqni sezishi kerak bo‘lgan joyga urg‘u bering. Qahramon jumlasida butun parchaga bitta o‘zgarmas kayfiyat berish o‘rniga hissiy o‘zgarishni sodir bo‘lgan paytda tavsiflang.\n\nKvadrat qavsdagi teglar yopiq menyu emas, erkin sohadagi tavsiflardir. Misollar: [whispering], [sigh], [long pause] va [speaking slowly, almost hesitant] kabi ibora. Teglar gap o‘rtasida kelib, keyingi nutqqa ta’sir qilishi mumkin. Tavsifiy tegdan keyin haqiqiy matn bo‘lishi kerak; yolg‘iz ko‘rsatma oldindan aytib bo‘lmaydigan natija berishi mumkin. Qo‘shimcha qatlamlardan oldin bir yoki ikki foydali ko‘rsatmadan boshlang, chunki bir-biriga zid teglar mo‘ljallangan ijroni xiralashtirishi mumkin. Turli ovoz namunalari bir xil ko‘rsatmaga turli kuchda javob berishi mumkin.\n\nS2 relizi taxminan 80 tilni tavsiflaydi va ijro ko‘rsatmalarini ssenariy bilan bir tilda yozish misollarini beradi. Matnni aytilishi kerak bo‘lgan tilda tayyorlang va alohida o‘qilishi kerak bo‘lgan nomlar, birliklar va qisqartmalarni saqlang. Ko‘p tilli ovozli bayon ssenariy tili o‘zgarganda mo‘ljallangan ovozni saqlashi mumkin, biroq yakuniy materialda talaffuz va izchillik tinglab tekshirilishi kerak. Sintez ilova qanday ma’lumot aytishini belgilamasdan, berilgan mazmunni nutqqa aylantiradi.\n\nBitta so‘zlovchi uchun saqlangan ovoz identifikatorini tanlang yoki namuna audio va unga mos transkript bering. Ishlab chiqaruvchi darhol moslashtirish uchun toza 10–30 soniyali namunani tavsiya qiladi. Muloqotda so‘zlovchilar uchun tartiblangan ovoz identifikatorlari ro‘yxati yoki alohida namuna guruhlari bilan <|speaker:0|> va <|speaker:1|> kabi belgilardan foydalaning. Raqamli belgi tegishli ovoz yozuvini tanlaydi; suhbat rivojlanganda tartibni o‘zgartirmang. Tabiiy tildagi ijro ko‘rsatmalari va so‘zlovchi tanlash ssenariyda turli vazifalarni bajaradi.\n\nAudio chiqishi MP3, WAV, xom PCM yoki Opus bo‘lishi mumkin. MP3 standart holda 128 kbps, shuningdek 64 yoki 192 kbps’ni taklif qiladi; Opus chiqishi 48 kHz’dan foydalanadi, WAV va PCM esa hujjatlashtirilgan namuna chastotasi variantlarini 16 bitli mono sifatida qo‘llab-quvvatlaydi. Formatni haqiqiy manziliga qarab tanlang: ovozli bayon uchun saqlanadigan fayl yoki ijro uchun mos audio bo‘laklari. Ishlab chiqaruvchining nutq jarayoni ssenariy asta kelganda jonli matn oqimini ham tavsiflaydi. Generatsiya qilingan natija to‘liq ssenariy va tanlangan ovozlarga bog‘langan holda qolishi kerak.\n\nTezlikni 0.5 va 2.0 orasida o‘zgartirish, ovoz balandligi va chiqish balandligini me’yorlashtirishni boshqarish mumkin. Matnni me’yorlashtirish ingliz va xitoy tillaridagi sonlarni o‘qishni yaxshilaydi. Qayta ishlash 100–300 oralig‘idagi bo‘laklar va har bo‘lakka audio token byudjetidan foydalanadi; bu sozlamalarni butun ovozli bayonning qat’iy maksimal uzunligi deb tushunmang. Oldingi bo‘lakka tayantirish ovoz kontekstini keyingi segmentga o‘tkazishi mumkin. temperature va top-p kabi tanlab olish boshqaruvlari xilma-xillikka ta’sir qiladi; ataylab boshqarilgan jumlaga ham mo‘ljallangan jarangni berish uchun yetarli matn va kontekst zarur.\n\nFoydali ishlab chiqarish topshirig‘i ovozli bayon, muloqot va ijro ko‘rsatmalarini ajratadi, so‘ng natijaning ovozi va formatini belgilaydi. Tushib qolgan so‘zlar, takrorlangan audio, sonlar talaffuzi, so‘zlovchi almashishi va reaksiya vaqtini tinglang. Ko‘proq teg har bir parchani yaxshilaydi deb hisoblamasdan, nomuvofiqlikka sabab bo‘lgan jumla yoki ovoz namunasini tahrirlang. S2 Pro oldingi S2 avlodining alohida modeli bo‘lib qoladi; S2.1 Pro esa o‘z yaxshilanishlari va modelga xos sozlama xatti-harakatiga ega keyingi nashrdir.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "9988a7938caf2981274fb03a91f116d356fbfef88cf7e75c7a4e6dcd1417ef95",
    "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 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-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-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 Pro so‘z darajasidagi ko‘rsatmalar asosida ifodali ko‘p tilli nutq yaratadi va bir nechta so‘zlovchi ishtirokidagi muloqotni bevosita sintez qiladi. Kvadrat qavsdagi ko‘rsatmalar ssenariy ichidagi ijroni boshqaradi, ovoz namunalari so‘zlovchilarni belgilaydi, chiqish sozlamalari esa audio materialni shakllantiradi.</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 Pro — Fish Audio’ning ifodali ovozli bayon, qahramonlar muloqoti va suhbat ovozi uchun ikkinchi avlod matnni nutqqa aylantirish modeli. U yozma ssenariyni audioga aylantiradi va so‘z yoki ibora darajasida tabiiy tildagi ko‘rsatmalarni qo‘llab-quvvatlaydi. Oldingi S1 avlodi yumaloq qavsdagi ishoralardan, S2 Pro esa bevosita kvadrat qavslardan foydalanadi va bitta sintez so‘rovida bir nechta so‘zlovchini qo‘llab-quvvatlaydi. Ishlab chiqaruvchi S2 Pro vaznlari va qo‘shimcha o‘qitish kodini alohida moslashtirish ishlari uchun chiqaradi; oddiy nutq so‘rovi yangi model o‘qitmasdan tanlangan modeldan foydalanadi.</p><p>Avval aytiladigan mazmunni yozing, so‘ng ijro ko‘rsatmasini u ta’sir qilishi kerak bo‘lgan so‘z yoki ibora oldiga bevosita qo‘ying. Ko‘rsatmalar pichirlash, reaksiya, pauza, hissiy o‘zgarish yoki erkin ta’riflangan so‘zlash uslubini tavsiflashi mumkin. Qisqa mahsulot tushuntirishida faktik jumlani ravshan tuting va faqat tinglovchi farqni sezishi kerak bo‘lgan joyga urg‘u bering. Qahramon jumlasida butun parchaga bitta o‘zgarmas kayfiyat berish o‘rniga hissiy o‘zgarishni sodir bo‘lgan paytda tavsiflang.</p><p>Kvadrat qavsdagi teglar yopiq menyu emas, erkin sohadagi tavsiflardir. Misollar: [whispering], [sigh], [long pause] va [speaking slowly, almost hesitant] kabi ibora. Teglar gap o‘rtasida kelib, keyingi nutqqa ta’sir qilishi mumkin. Tavsifiy tegdan keyin haqiqiy matn bo‘lishi kerak; yolg‘iz ko‘rsatma oldindan aytib bo‘lmaydigan natija berishi mumkin. Qo‘shimcha qatlamlardan oldin bir yoki ikki foydali ko‘rsatmadan boshlang, chunki bir-biriga zid teglar mo‘ljallangan ijroni xiralashtirishi mumkin. Turli ovoz namunalari bir xil ko‘rsatmaga turli kuchda javob berishi mumkin.</p><p>S2 relizi taxminan 80 tilni tavsiflaydi va ijro ko‘rsatmalarini ssenariy bilan bir tilda yozish misollarini beradi. Matnni aytilishi kerak bo‘lgan tilda tayyorlang va alohida o‘qilishi kerak bo‘lgan nomlar, birliklar va qisqartmalarni saqlang. Ko‘p tilli ovozli bayon ssenariy tili o‘zgarganda mo‘ljallangan ovozni saqlashi mumkin, biroq yakuniy materialda talaffuz va izchillik tinglab tekshirilishi kerak. Sintez ilova qanday ma’lumot aytishini belgilamasdan, berilgan mazmunni nutqqa aylantiradi.</p><p>Bitta so‘zlovchi uchun saqlangan ovoz identifikatorini tanlang yoki namuna audio va unga mos transkript bering. Ishlab chiqaruvchi darhol moslashtirish uchun toza 10–30 soniyali namunani tavsiya qiladi. Muloqotda so‘zlovchilar uchun tartiblangan ovoz identifikatorlari ro‘yxati yoki alohida namuna guruhlari bilan &lt;|speaker:0|&gt; va &lt;|speaker:1|&gt; kabi belgilardan foydalaning. Raqamli belgi tegishli ovoz yozuvini tanlaydi; suhbat rivojlanganda tartibni o‘zgartirmang. Tabiiy tildagi ijro ko‘rsatmalari va so‘zlovchi tanlash ssenariyda turli vazifalarni bajaradi.</p><p>Audio chiqishi MP3, WAV, xom PCM yoki Opus bo‘lishi mumkin. MP3 standart holda 128 kbps, shuningdek 64 yoki 192 kbps’ni taklif qiladi; Opus chiqishi 48 kHz’dan foydalanadi, WAV va PCM esa hujjatlashtirilgan namuna chastotasi variantlarini 16 bitli mono sifatida qo‘llab-quvvatlaydi. Formatni haqiqiy manziliga qarab tanlang: ovozli bayon uchun saqlanadigan fayl yoki ijro uchun mos audio bo‘laklari. Ishlab chiqaruvchining nutq jarayoni ssenariy asta kelganda jonli matn oqimini ham tavsiflaydi. Generatsiya qilingan natija to‘liq ssenariy va tanlangan ovozlarga bog‘langan holda qolishi kerak.</p><p>Tezlikni 0.5 va 2.0 orasida o‘zgartirish, ovoz balandligi va chiqish balandligini me’yorlashtirishni boshqarish mumkin. Matnni me’yorlashtirish ingliz va xitoy tillaridagi sonlarni o‘qishni yaxshilaydi. Qayta ishlash 100–300 oralig‘idagi bo‘laklar va har bo‘lakka audio token byudjetidan foydalanadi; bu sozlamalarni butun ovozli bayonning qat’iy maksimal uzunligi deb tushunmang. Oldingi bo‘lakka tayantirish ovoz kontekstini keyingi segmentga o‘tkazishi mumkin. temperature va top-p kabi tanlab olish boshqaruvlari xilma-xillikka ta’sir qiladi; ataylab boshqarilgan jumlaga ham mo‘ljallangan jarangni berish uchun yetarli matn va kontekst zarur.</p><p>Foydali ishlab chiqarish topshirig‘i ovozli bayon, muloqot va ijro ko‘rsatmalarini ajratadi, so‘ng natijaning ovozi va formatini belgilaydi. Tushib qolgan so‘zlar, takrorlangan audio, sonlar talaffuzi, so‘zlovchi almashishi va reaksiya vaqtini tinglang. Ko‘proq teg har bir parchani yaxshilaydi deb hisoblamasdan, nomuvofiqlikka sabab bo‘lgan jumla yoki ovoz namunasini tahrirlang. S2 Pro oldingi S2 avlodining alohida modeli bo‘lib qoladi; S2.1 Pro esa o‘z yaxshilanishlari va modelga xos sozlama xatti-harakatiga ega keyingi nashrdir.</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-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-1355-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1355-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-1355-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1355-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-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-1356-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1356-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-1356-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1356-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-pro&amp;route=Ultra&amp;caller=fish-audio%2Fs2-pro&amp;fmt=speech\"><code>fish-audio/s2-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-pro&amp;route=Ultra&amp;caller=fish-audio%2Fs2-pro&amp;fmt=speech\"><code>fish-audio/s2-pro</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/s2-pro",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "fish-audio/s2-pro",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|fish-audio%2Fs2-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-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-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-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-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-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-pro",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "34b419c22914ac1a94620db0400827eafc1144358ef31e43e82e6b9c0c3eac31",
    "input_html_sha256": "1d8e319a11a8468a8cfd4490ff8d9a333db6dea3c2eac85edd3307b8c746778c",
    "private_audit_sha256": "610e611e63632618f1e27c7ba460a43932a8bb97432a22f322dcbc9e55d867cf",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/uz/fish-audio-s2-pro/",
    "description": "Fish Audio S2 Pro so‘z darajasidagi ko‘rsatmalar asosida ifodali ko‘p tilli nutq yaratadi va bir nechta so‘zlovchi ishtirokidagi muloqotni bevosita sintez qiladi. Kvadrat qavsdagi ko‘rsatmalar ssenariy ichidagi ijroni boshqaradi, ovoz namunalari so‘zlovchilarni belgilaydi, chiqish sozlamalari esa audio materialni shakllantiradi.",
    "locale": "uz",
    "md_url": "https://ailoot.ai/models/uz/fish-audio-s2-pro/index.md",
    "title": "Fish Audio: S2 Pro — Ailoot",
    "url": "https://ailoot.ai/models/uz/fish-audio-s2-pro/"
  },
  "rawModel": {
    "about": "S2 Pro — Fish Audio’ning ifodali ovozli bayon, qahramonlar muloqoti va suhbat ovozi uchun ikkinchi avlod matnni nutqqa aylantirish modeli. U yozma ssenariyni audioga aylantiradi va so‘z yoki ibora darajasida tabiiy tildagi ko‘rsatmalarni qo‘llab-quvvatlaydi. Oldingi S1 avlodi yumaloq qavsdagi ishoralardan, S2 Pro esa bevosita kvadrat qavslardan foydalanadi va bitta sintez so‘rovida bir nechta so‘zlovchini qo‘llab-quvvatlaydi. Ishlab chiqaruvchi S2 Pro vaznlari va qo‘shimcha o‘qitish kodini alohida moslashtirish ishlari uchun chiqaradi; oddiy nutq so‘rovi yangi model o‘qitmasdan tanlangan modeldan foydalanadi.\n\nAvval aytiladigan mazmunni yozing, so‘ng ijro ko‘rsatmasini u ta’sir qilishi kerak bo‘lgan so‘z yoki ibora oldiga bevosita qo‘ying. Ko‘rsatmalar pichirlash, reaksiya, pauza, hissiy o‘zgarish yoki erkin ta’riflangan so‘zlash uslubini tavsiflashi mumkin. Qisqa mahsulot tushuntirishida faktik jumlani ravshan tuting va faqat tinglovchi farqni sezishi kerak bo‘lgan joyga urg‘u bering. Qahramon jumlasida butun parchaga bitta o‘zgarmas kayfiyat berish o‘rniga hissiy o‘zgarishni sodir bo‘lgan paytda tavsiflang.\n\nKvadrat qavsdagi teglar yopiq menyu emas, erkin sohadagi tavsiflardir. Misollar: [whispering], [sigh], [long pause] va [speaking slowly, almost hesitant] kabi ibora. Teglar gap o‘rtasida kelib, keyingi nutqqa ta’sir qilishi mumkin. Tavsifiy tegdan keyin haqiqiy matn bo‘lishi kerak; yolg‘iz ko‘rsatma oldindan aytib bo‘lmaydigan natija berishi mumkin. Qo‘shimcha qatlamlardan oldin bir yoki ikki foydali ko‘rsatmadan boshlang, chunki bir-biriga zid teglar mo‘ljallangan ijroni xiralashtirishi mumkin. Turli ovoz namunalari bir xil ko‘rsatmaga turli kuchda javob berishi mumkin.\n\nS2 relizi taxminan 80 tilni tavsiflaydi va ijro ko‘rsatmalarini ssenariy bilan bir tilda yozish misollarini beradi. Matnni aytilishi kerak bo‘lgan tilda tayyorlang va alohida o‘qilishi kerak bo‘lgan nomlar, birliklar va qisqartmalarni saqlang. Ko‘p tilli ovozli bayon ssenariy tili o‘zgarganda mo‘ljallangan ovozni saqlashi mumkin, biroq yakuniy materialda talaffuz va izchillik tinglab tekshirilishi kerak. Sintez ilova qanday ma’lumot aytishini belgilamasdan, berilgan mazmunni nutqqa aylantiradi.\n\nBitta so‘zlovchi uchun saqlangan ovoz identifikatorini tanlang yoki namuna audio va unga mos transkript bering. Ishlab chiqaruvchi darhol moslashtirish uchun toza 10–30 soniyali namunani tavsiya qiladi. Muloqotda so‘zlovchilar uchun tartiblangan ovoz identifikatorlari ro‘yxati yoki alohida namuna guruhlari bilan <|speaker:0|> va <|speaker:1|> kabi belgilardan foydalaning. Raqamli belgi tegishli ovoz yozuvini tanlaydi; suhbat rivojlanganda tartibni o‘zgartirmang. Tabiiy tildagi ijro ko‘rsatmalari va so‘zlovchi tanlash ssenariyda turli vazifalarni bajaradi.\n\nAudio chiqishi MP3, WAV, xom PCM yoki Opus bo‘lishi mumkin. MP3 standart holda 128 kbps, shuningdek 64 yoki 192 kbps’ni taklif qiladi; Opus chiqishi 48 kHz’dan foydalanadi, WAV va PCM esa hujjatlashtirilgan namuna chastotasi variantlarini 16 bitli mono sifatida qo‘llab-quvvatlaydi. Formatni haqiqiy manziliga qarab tanlang: ovozli bayon uchun saqlanadigan fayl yoki ijro uchun mos audio bo‘laklari. Ishlab chiqaruvchining nutq jarayoni ssenariy asta kelganda jonli matn oqimini ham tavsiflaydi. Generatsiya qilingan natija to‘liq ssenariy va tanlangan ovozlarga bog‘langan holda qolishi kerak.\n\nTezlikni 0.5 va 2.0 orasida o‘zgartirish, ovoz balandligi va chiqish balandligini me’yorlashtirishni boshqarish mumkin. Matnni me’yorlashtirish ingliz va xitoy tillaridagi sonlarni o‘qishni yaxshilaydi. Qayta ishlash 100–300 oralig‘idagi bo‘laklar va har bo‘lakka audio token byudjetidan foydalanadi; bu sozlamalarni butun ovozli bayonning qat’iy maksimal uzunligi deb tushunmang. Oldingi bo‘lakka tayantirish ovoz kontekstini keyingi segmentga o‘tkazishi mumkin. temperature va top-p kabi tanlab olish boshqaruvlari xilma-xillikka ta’sir qiladi; ataylab boshqarilgan jumlaga ham mo‘ljallangan jarangni berish uchun yetarli matn va kontekst zarur.\n\nFoydali ishlab chiqarish topshirig‘i ovozli bayon, muloqot va ijro ko‘rsatmalarini ajratadi, so‘ng natijaning ovozi va formatini belgilaydi. Tushib qolgan so‘zlar, takrorlangan audio, sonlar talaffuzi, so‘zlovchi almashishi va reaksiya vaqtini tinglang. Ko‘proq teg har bir parchani yaxshilaydi deb hisoblamasdan, nomuvofiqlikka sabab bo‘lgan jumla yoki ovoz namunasini tahrirlang. S2 Pro oldingi S2 avlodining alohida modeli bo‘lib qoladi; S2.1 Pro esa o‘z yaxshilanishlari va modelga xos sozlama xatti-harakatiga ega keyingi nashrdir.",
    "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-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-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-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-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-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-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-pro",
        "request_model_id": "fish-audio/s2-pro",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: S2 Pro",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Fish Audio S2 Pro so‘z darajasidagi ko‘rsatmalar asosida ifodali ko‘p tilli nutq yaratadi va bir nechta so‘zlovchi ishtirokidagi muloqotni bevosita sintez qiladi. Kvadrat qavsdagi ko‘rsatmalar ssenariy ichidagi ijroni boshqaradi, ovoz namunalari so‘zlovchilarni belgilaydi, chiqish sozlamalari esa audio materialni shakllantiradi."
  },
  "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 Pro so‘z darajasidagi ko‘rsatmalar asosida ifodali ko‘p tilli nutq yaratadi va bir nechta so‘zlovchi ishtirokidagi muloqotni bevosita sintez qiladi. Kvadrat qavsdagi ko‘rsatmalar ssenariy ichidagi ijroni boshqaradi, ovoz namunalari so‘zlovchilarni belgilaydi, chiqish sozlamalari esa audio materialni shakllantiradi.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "c2afaa02aff35b3bc1c77bc83eb4b9ee4a27bd75c86effc51f6a233a6b359e44",
    "renderer_sha256": "aa8a0fca1bd770c042b64987512b6187fca2067aea3ddc877f68b163d80e7df6"
  },
  "sourceRevision": "1410a0648b64c03a539f02ce8446d8f37952b60ace4ced93faf6ad01ad4978dc"
}
