{
  "aboutHtml": "<p>S2.1 Pro Free je izdaja modela za pretvorbo besedila v govor S2.1 podjetja Fish Audio, namenjena razvijalcem. Osnovni model in ključne zmožnosti sinteze si deli s S2.1 Pro: izrazni večjezični govor, navodila za izvedbo v naravnem jeziku in nativni dialog več govorcev. Namenjena je preizkušanju, prototipiranju, razvoju in manjšim aplikacijskim potekom.</p><p>Pri prototipu glasovnega pomočnika začnite s celotnim vzorčnim odgovorom in ocenite njegov zven, preden preizkusite postopno prihajajoče besedilo. Za učni izdelek pripravite kratko razlago z natančnimi izrazi in izgovarjavo števil, ki jih poslušalec potrebuje. Pri prototipu dialoga opredelite govorce in njihove glasovne reference, preden dodate navodila za izvedbo. Ti koraki razvijajo zvočni izdelek in aplikacijski potek okoli njega, namesto da bi zahtevi za sintezo naložili odgovornost za celoten pogovor.</p><p>Napišite besede, ki naj bodo dejansko izgovorjene, nato pa navodilo postavite neposredno pred odlomek, katerega izvedba naj se spremeni. Navodila v oglatih oklepajih lahko izrazijo šepet, premor, odziv, poudarek ali poljubno opisan način govora. Spremembo sredi povedi postavite tja, kjer jo izvedba potrebuje, opisnim navodilom pa naj sledi dejansko besedilo za govor. Uporabna navodila za razlago ločijo stvarno besedilo od topline, tempa ali poudarka, ki ga želite za poslušalca.</p><p>Za enega govorca izberite shranjeni identifikator glasu ali predložite referenčni posnetek z njegovim prepisom. Proizvajalčev vodnik za govor priporoča čist vzorec, dolg 10–30 sekund, za takojšnje prilagajanje glasu. Izberite referenco s tonom in kakovostjo posnetka, ki ustrezata scenariju, ter isto referenco ohranite v povezanih odlomkih. Glasovna referenca določa zven govorca, besedilo in navodila v njem pa vsebino in njeno izvedbo.</p><p>Nativna sinteza več govorcev uporablja oznake, kot sta &lt;|speaker:0|&gt; in &lt;|speaker:1|&gt;, z urejenim poljem identifikatorjev glasov ali ločenimi skupinami referenc. Številčne oznake govorcev naj ustrezajo temu vrstnemu redu. Za poučni pogovor napišite repliko vsakega govorca in navodilo za izvedbo postavite za oznako govorca na ustrezno mesto. Tako nastane dialog v eni zahtevi; to je drugačen potek od ločenih odsekov z enim govorcem pri S1 in njihovega poznejšega sestavljanja.</p><p>Proizvajalčev potek omogoča izhod MP3, WAV, surovi PCM in Opus, pri čemer je privzet MP3. MP3 podpira 64, 128 in 192 kb/s; WAV in PCM uporabljata dokumentirane 16-bitne mono formate vzorcev, Opus pa 48 kHz. Izberite format za shranjeno pripovedno datoteko, pretočno predvajanje ali nadaljnji zvočni cevovod. Celoten scenarij in izbiro glasu hranite skupaj z zvokom, da lahko poznejši popravek naslovi eno vrstico, ne da bi se izgubila predvidena izvedba.</p><p>Hitrost lahko prilagodite od 0,5 do 2,0, na voljo pa so tudi nastavitve glasnosti. Normalizacija besedila razširi angleška in kitajska števila za naravno branje. Normalizacija glasnosti izhoda ima privzeto vrednost true in se uporablja za družino S2; isto polje na S1 ni vplivalo. Parameter repetition_penalty iz S1 ne spremeni zvoka S2.1 Pro, zato stare nastavitve ne obravnavajte kot učinkovitega upravljalnega parametra za ta model. Ponavljajoče se zvoke in besedilo preverite neposredno, namesto da bi se pri presoji rezultata zanašali na preneseni parameter.</p><p>Daljši scenariji se obdelujejo po kosih. Dokumentirani razpon dolžine kosa je 100–300, max_new_tokens pa je proračun zvočnih žetonov na kos, ne zagotovilo skupnega trajanja. Pogojevanje s prejšnjim kosom lahko prenese glasovni kontekst naprej. Proizvajalčev potek dostave opisuje celoten zvok, postopne zvočne kose in sprotno pretakanje besedila, ko scenarij prihaja postopoma. Izberite način uporabe za aplikacijo in ohranite dovolj konteksta scenarija za izgovarjavo in ton naslednjega odlomka.</p><p>Za uporaben končni izdelek preverite s poslušanjem izpuščene ali ponovljene besede, izgovarjavo števil, menjave govorcev, premore in intenzivnost navodil. Različne glasovne reference lahko isti namig izvedejo različno intenzivno, zato začnite s preprosto usmerjeno repliko, preden dodate nasprotujoče si oznake. Pri večjezičnem delu predložite scenarij v ciljnem jeziku, namesto da bi od govornega modela zahtevali izmišljanje ali prevajanje vsebine. Usmerjen popravek spremeni vrstico, namig ali referenco, ki povzroča neskladje, in ohrani dele izvedbe, ki že ustrezajo navodilom.</p>",
  "aboutText": "S2.1 Pro Free je izdaja modela za pretvorbo besedila v govor S2.1 podjetja Fish Audio, namenjena razvijalcem. Osnovni model in ključne zmožnosti sinteze si deli s S2.1 Pro: izrazni večjezični govor, navodila za izvedbo v naravnem jeziku in nativni dialog več govorcev. Namenjena je preizkušanju, prototipiranju, razvoju in manjšim aplikacijskim potekom.\n\nPri prototipu glasovnega pomočnika začnite s celotnim vzorčnim odgovorom in ocenite njegov zven, preden preizkusite postopno prihajajoče besedilo. Za učni izdelek pripravite kratko razlago z natančnimi izrazi in izgovarjavo števil, ki jih poslušalec potrebuje. Pri prototipu dialoga opredelite govorce in njihove glasovne reference, preden dodate navodila za izvedbo. Ti koraki razvijajo zvočni izdelek in aplikacijski potek okoli njega, namesto da bi zahtevi za sintezo naložili odgovornost za celoten pogovor.\n\nNapišite besede, ki naj bodo dejansko izgovorjene, nato pa navodilo postavite neposredno pred odlomek, katerega izvedba naj se spremeni. Navodila v oglatih oklepajih lahko izrazijo šepet, premor, odziv, poudarek ali poljubno opisan način govora. Spremembo sredi povedi postavite tja, kjer jo izvedba potrebuje, opisnim navodilom pa naj sledi dejansko besedilo za govor. Uporabna navodila za razlago ločijo stvarno besedilo od topline, tempa ali poudarka, ki ga želite za poslušalca.\n\nZa enega govorca izberite shranjeni identifikator glasu ali predložite referenčni posnetek z njegovim prepisom. Proizvajalčev vodnik za govor priporoča čist vzorec, dolg 10–30 sekund, za takojšnje prilagajanje glasu. Izberite referenco s tonom in kakovostjo posnetka, ki ustrezata scenariju, ter isto referenco ohranite v povezanih odlomkih. Glasovna referenca določa zven govorca, besedilo in navodila v njem pa vsebino in njeno izvedbo.\n\nNativna sinteza več govorcev uporablja oznake, kot sta <|speaker:0|> in <|speaker:1|>, z urejenim poljem identifikatorjev glasov ali ločenimi skupinami referenc. Številčne oznake govorcev naj ustrezajo temu vrstnemu redu. Za poučni pogovor napišite repliko vsakega govorca in navodilo za izvedbo postavite za oznako govorca na ustrezno mesto. Tako nastane dialog v eni zahtevi; to je drugačen potek od ločenih odsekov z enim govorcem pri S1 in njihovega poznejšega sestavljanja.\n\nProizvajalčev potek omogoča izhod MP3, WAV, surovi PCM in Opus, pri čemer je privzet MP3. MP3 podpira 64, 128 in 192 kb/s; WAV in PCM uporabljata dokumentirane 16-bitne mono formate vzorcev, Opus pa 48 kHz. Izberite format za shranjeno pripovedno datoteko, pretočno predvajanje ali nadaljnji zvočni cevovod. Celoten scenarij in izbiro glasu hranite skupaj z zvokom, da lahko poznejši popravek naslovi eno vrstico, ne da bi se izgubila predvidena izvedba.\n\nHitrost lahko prilagodite od 0,5 do 2,0, na voljo pa so tudi nastavitve glasnosti. Normalizacija besedila razširi angleška in kitajska števila za naravno branje. Normalizacija glasnosti izhoda ima privzeto vrednost true in se uporablja za družino S2; isto polje na S1 ni vplivalo. Parameter repetition_penalty iz S1 ne spremeni zvoka S2.1 Pro, zato stare nastavitve ne obravnavajte kot učinkovitega upravljalnega parametra za ta model. Ponavljajoče se zvoke in besedilo preverite neposredno, namesto da bi se pri presoji rezultata zanašali na preneseni parameter.\n\nDaljši scenariji se obdelujejo po kosih. Dokumentirani razpon dolžine kosa je 100–300, max_new_tokens pa je proračun zvočnih žetonov na kos, ne zagotovilo skupnega trajanja. Pogojevanje s prejšnjim kosom lahko prenese glasovni kontekst naprej. Proizvajalčev potek dostave opisuje celoten zvok, postopne zvočne kose in sprotno pretakanje besedila, ko scenarij prihaja postopoma. Izberite način uporabe za aplikacijo in ohranite dovolj konteksta scenarija za izgovarjavo in ton naslednjega odlomka.\n\nZa uporaben končni izdelek preverite s poslušanjem izpuščene ali ponovljene besede, izgovarjavo števil, menjave govorcev, premore in intenzivnost navodil. Različne glasovne reference lahko isti namig izvedejo različno intenzivno, zato začnite s preprosto usmerjeno repliko, preden dodate nasprotujoče si oznake. Pri večjezičnem delu predložite scenarij v ciljnem jeziku, namesto da bi od govornega modela zahtevali izmišljanje ali prevajanje vsebine. Usmerjen popravek spremeni vrstico, namig ali referenco, ki povzroča neskladje, in ohrani dele izvedbe, ki že ustrezajo navodilom.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "6cf8b1436616661f7291163a4dc7627b7c6c6972ca0caf8bfe317209b6b13cc0",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "sl",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Fish Audio: S2.1 Pro Free (free)</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Zapri\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/s2.1-pro-free:free</code><button type=\"button\" id=\"copy-id\">Kopiraj ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Razdelki kartice modela\"><button type=\"button\" data-card-jump=\"overview\">Začetek</button><button type=\"button\" data-card-jump=\"methods\">Vhodi in metode</button><button type=\"button\" data-card-jump=\"pricing\">Cenik</button><button type=\"button\" data-card-jump=\"examples\">Primeri</button><button type=\"button\" data-card-jump=\"results\">Rezultati</button><button type=\"button\" data-card-jump=\"aliases\">Druga imena</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metode API\"><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-free%3Afree\">Pretvorba v govor</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\">Začetek</h3><p class=\"mdesc-full\">S2.1 Pro Free je razvojna izdaja govornega modela S2.1 podjetja Fish Audio za pripovedovanje, usmerjen govorni izhod in dialog več govorcev. Za preizkušanje in izdelavo prototipov ponuja iste zmožnosti sinteze kot osnovni model.</p><dl class=\"card-io\" data-card-io><div><dt>Dovoljeni vhodi</dt><dd>Besedilo</dd></div><div><dt>Rezultati</dt><dd>Zvok</dd></div></dl><details class=\"card-about\"><summary>O modelu</summary><p class=\"note-s\" data-model-method-boundary>Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.</p><div class=\"mabout\" id=\"m-about\"><p>S2.1 Pro Free je izdaja modela za pretvorbo besedila v govor S2.1 podjetja Fish Audio, namenjena razvijalcem. Osnovni model in ključne zmožnosti sinteze si deli s S2.1 Pro: izrazni večjezični govor, navodila za izvedbo v naravnem jeziku in nativni dialog več govorcev. Namenjena je preizkušanju, prototipiranju, razvoju in manjšim aplikacijskim potekom.</p><p>Pri prototipu glasovnega pomočnika začnite s celotnim vzorčnim odgovorom in ocenite njegov zven, preden preizkusite postopno prihajajoče besedilo. Za učni izdelek pripravite kratko razlago z natančnimi izrazi in izgovarjavo števil, ki jih poslušalec potrebuje. Pri prototipu dialoga opredelite govorce in njihove glasovne reference, preden dodate navodila za izvedbo. Ti koraki razvijajo zvočni izdelek in aplikacijski potek okoli njega, namesto da bi zahtevi za sintezo naložili odgovornost za celoten pogovor.</p><p>Napišite besede, ki naj bodo dejansko izgovorjene, nato pa navodilo postavite neposredno pred odlomek, katerega izvedba naj se spremeni. Navodila v oglatih oklepajih lahko izrazijo šepet, premor, odziv, poudarek ali poljubno opisan način govora. Spremembo sredi povedi postavite tja, kjer jo izvedba potrebuje, opisnim navodilom pa naj sledi dejansko besedilo za govor. Uporabna navodila za razlago ločijo stvarno besedilo od topline, tempa ali poudarka, ki ga želite za poslušalca.</p><p>Za enega govorca izberite shranjeni identifikator glasu ali predložite referenčni posnetek z njegovim prepisom. Proizvajalčev vodnik za govor priporoča čist vzorec, dolg 10–30 sekund, za takojšnje prilagajanje glasu. Izberite referenco s tonom in kakovostjo posnetka, ki ustrezata scenariju, ter isto referenco ohranite v povezanih odlomkih. Glasovna referenca določa zven govorca, besedilo in navodila v njem pa vsebino in njeno izvedbo.</p><p>Nativna sinteza več govorcev uporablja oznake, kot sta &lt;|speaker:0|&gt; in &lt;|speaker:1|&gt;, z urejenim poljem identifikatorjev glasov ali ločenimi skupinami referenc. Številčne oznake govorcev naj ustrezajo temu vrstnemu redu. Za poučni pogovor napišite repliko vsakega govorca in navodilo za izvedbo postavite za oznako govorca na ustrezno mesto. Tako nastane dialog v eni zahtevi; to je drugačen potek od ločenih odsekov z enim govorcem pri S1 in njihovega poznejšega sestavljanja.</p><p>Proizvajalčev potek omogoča izhod MP3, WAV, surovi PCM in Opus, pri čemer je privzet MP3. MP3 podpira 64, 128 in 192 kb/s; WAV in PCM uporabljata dokumentirane 16-bitne mono formate vzorcev, Opus pa 48 kHz. Izberite format za shranjeno pripovedno datoteko, pretočno predvajanje ali nadaljnji zvočni cevovod. Celoten scenarij in izbiro glasu hranite skupaj z zvokom, da lahko poznejši popravek naslovi eno vrstico, ne da bi se izgubila predvidena izvedba.</p><p>Hitrost lahko prilagodite od 0,5 do 2,0, na voljo pa so tudi nastavitve glasnosti. Normalizacija besedila razširi angleška in kitajska števila za naravno branje. Normalizacija glasnosti izhoda ima privzeto vrednost true in se uporablja za družino S2; isto polje na S1 ni vplivalo. Parameter repetition_penalty iz S1 ne spremeni zvoka S2.1 Pro, zato stare nastavitve ne obravnavajte kot učinkovitega upravljalnega parametra za ta model. Ponavljajoče se zvoke in besedilo preverite neposredno, namesto da bi se pri presoji rezultata zanašali na preneseni parameter.</p><p>Daljši scenariji se obdelujejo po kosih. Dokumentirani razpon dolžine kosa je 100–300, max_new_tokens pa je proračun zvočnih žetonov na kos, ne zagotovilo skupnega trajanja. Pogojevanje s prejšnjim kosom lahko prenese glasovni kontekst naprej. Proizvajalčev potek dostave opisuje celoten zvok, postopne zvočne kose in sprotno pretakanje besedila, ko scenarij prihaja postopoma. Izberite način uporabe za aplikacijo in ohranite dovolj konteksta scenarija za izgovarjavo in ton naslednjega odlomka.</p><p>Za uporaben končni izdelek preverite s poslušanjem izpuščene ali ponovljene besede, izgovarjavo števil, menjave govorcev, premore in intenzivnost navodil. Različne glasovne reference lahko isti namig izvedejo različno intenzivno, zato začnite s preprosto usmerjeno repliko, preden dodate nasprotujoče si oznake. Pri večjezičnem delu predložite scenarij v ciljnem jeziku, namesto da bi od govornega modela zahtevali izmišljanje ali prevajanje vsebine. Usmerjen popravek spremeni vrstico, namig ali referenco, ki povzroča neskladje, in ohrani dele izvedbe, ki že ustrezajo navodilom.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Na voljo v Ailoot · vhodi in metode</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Govor</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Vhod</dt><dd><code>text</code></dd></div><div><dt>Izhod</dt><dd><code>audio</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Polje</th><th>Vrsta</th><th>Zahteva</th><th>Vrednosti in omejitve</th><th>Privzeto</th></tr></thead><tbody><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>fish-audio/s2.1-pro-free:free</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Najmanjša dolžina: 1</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>b347db033a6549378b48d00acb0d06cd</div><div>Najmanjša dolžina: 1</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>mp3, pcm</div></td><td data-cell-label=\"Privzeto\" data-default=\"known\"><span class=\"card-cell-label\">Privzeto</span>pcm</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>object</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Parametri in življenjski cikel metode</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Specifikacija</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>model, input, voice</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>text</td></tr></tbody></table></div><p>Življenjski cikel: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Dejansko vrnjeni task_id ali zapis v medijski knjižnici</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\">Cenik</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.</p><dl data-price-conditions><dt>Hitri način</dt><dd>Ni navedeno <span class=\"note-s\">Ko je izbran hitri način</span></dd><dt>Način flex</dt><dd>Ni navedeno <span class=\"note-s\">Ko je izbran način flex</span></dd><dt>Najvišja raven razmišljanja</dt><dd>Ni navedeno <span class=\"note-s\">Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Cene Ailoot</h4><h4>Cene po nastavitvah</h4><p class=\"note-s\">Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Nastavitev</th><th>Cenovna lestvica</th><th>Obračunska količina</th><th>Strošek</th></tr></thead><tbody><tr><th data-cell-label=\"Nastavitev\" scope=\"row\"><span class=\"card-cell-label\">Nastavitev</span>Osnovne cene žetonov</th><td data-cell-label=\"Cenovna lestvica\"><span class=\"card-cell-label\">Cenovna lestvica</span>Osnovna cena</td><td data-cell-label=\"Obračunska količina\"><span class=\"card-cell-label\">Obračunska količina</span>—</td><td data-cell-label=\"Strošek\"><span class=\"card-cell-label\">Strošek</span><div><span>Vhod · Vhodni žetoni</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Izhod · Izhodni žetoni</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Vhod · Branje predpomnilnika</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Vhod · Zapis v predpomnilnik</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Vhod · Zapis v predpomnilnik, 1 ura</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div></td></tr><tr><th data-cell-label=\"Nastavitev\" scope=\"row\"><span class=\"card-cell-label\">Nastavitev</span>Na zahtevo</th><td data-cell-label=\"Cenovna lestvica\"><span class=\"card-cell-label\">Cenovna lestvica</span>—</td><td data-cell-label=\"Obračunska količina\"><span class=\"card-cell-label\">Obračunska količina</span>ena zahteva</td><td data-cell-label=\"Strošek\"><span class=\"card-cell-label\">Strošek</span><div><span>Vhod</span> <b>$0</b> <span class=\"price-unit\">na zahtevo</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. <a href=\"/docs/sl/billing/reserve/\">Kako delujeta rezervacija in obračun →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Primeri zahtev</h3><h4>Ailoot Ultra · Govor</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Primeri kode\"><button class=\"cg-tab\" id=\"model-code-1359-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1359-panel-0\" aria-selected=\"true\" tabindex=\"0\">Uporabite dejanski vhod in ohranite celoten rezultat</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiraj kodo\"><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-1359-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1359-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-free:free&#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\">Prejmi in shrani rezultate</h3><h4>Ailoot Ultra · Govor</h4><p class=\"note-s\">Celoten binarni zvok ali izvirni odgovor audio_url, glave in vsako sredstvo v vaši lasti.</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>Branje druge vsebine</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Primeri kode\"><button class=\"cg-tab\" id=\"model-code-1360-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1360-panel-0\" aria-selected=\"true\" tabindex=\"0\">Preberi obstoječa gradiva, ki vam pripadajo</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiraj kodo\"><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-1360-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1360-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>Ohrani vse dokončane rezultate</h5><p class=\"note-s\">Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.</p><p class=\"note-s\">Shranite celoten odgovor in glave, vse dejanske izhode, izvirne vrnjene identifikatorje in vsa polja s podatki o porabi. Pridobite podatke izvirne operacije brez ponovnega pošiljanja zahteve za ustvarjanje.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Če je treba preveriti izvirni odgovor</h5><p class=\"note-s\">Shranite vrnjeni X-Client-Request-ID za uskladitev evidenc. Berite samo dejansko vrnjene vrednosti task_id/asset_id ali svojo medijsko knjižnico; iz ID operacije nikoli ne sestavite URL opravila in zahteve za ustvarjanje nikoli ne pošljite znova.</p></div></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Druga imena</h3><h4>Druga imena modelov</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=fish-audio%2Fs2.1-pro-free%3Afree&amp;route=Ultra&amp;caller=fish-audio%2Fs2.1-pro-free%3Afree&amp;fmt=speech\"><code>fish-audio/s2.1-pro-free:free</code></a></span></p><h4>Druga imena poti metod</h4><p class=\"note-s\">Uporabite zgoraj navedene poti metod.</p><h4>Povezani ID-ji za klic</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Fs2.1-pro-free%3Afree&amp;route=Ultra&amp;caller=fish-audio%2Fs2.1-pro-free%3Afree&amp;fmt=speech\"><code>fish-audio/s2.1-pro-free:free</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/s2.1-pro-free:free",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|fish-audio%2Fs2.1-pro-free%3Afree",
      "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": "Shranite vrnjeni X-Client-Request-ID za uskladitev evidenc. Berite samo dejansko vrnjene vrednosti task_id/asset_id ali svojo medijsko knjižnico; iz ID operacije nikoli ne sestavite URL opravila in zahteve za ustvarjanje nikoli ne pošljite znova."
            },
            "outputs": {
              "all_results": "Shranite celoten odgovor in glave, vse dejanske izhode, izvirne vrnjene identifikatorje in vsa polja s podatki o porabi. Pridobite podatke izvirne operacije brez ponovnega pošiljanja zahteve za ustvarjanje.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "Celoten binarni zvok ali izvirni odgovor audio_url, glave in vsako sredstvo v vaši lasti."
            },
            "parameters": [
              {
                "enum": [
                  "fish-audio/s2.1-pro-free:free"
                ],
                "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-free:free"
                  ],
                  "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-free:free",
                "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": "Dejansko vrnjeni task_id ali zapis v medijski knjižnici",
                "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": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "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-free:free', '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": "Govor",
        "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": 0
        },
        "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": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "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",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "per_request",
            "label": "per request",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "public_unit_label": "per request",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "per_request"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/s2.1-pro-free:free",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "828509d234b9f260dbdf9664677f273b394acaca8ef066d248cfd9eaaee2cd89",
    "input_html_sha256": "df85cc54cac6fbdef844a68a5c865fe7e49fc9e6f945e1cf14c8a0b0a2a337d7",
    "private_audit_sha256": "28b0c78a0fd9d2e61b4ec01b0c0c4c5986b1fc3b570cb2294cef67da10dee317",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/sl/fish-audio-s2-1-pro-free-u003a-free/",
    "description": "S2.1 Pro Free je razvojna izdaja govornega modela S2.1 podjetja Fish Audio za pripovedovanje, usmerjen govorni izhod in dialog več govorcev. Za preizkušanje in izdelavo prototipov ponuja iste zmožnosti sinteze kot osnovni model.",
    "locale": "sl",
    "md_url": "https://ailoot.ai/models/sl/fish-audio-s2-1-pro-free-u003a-free/index.md",
    "title": "Fish Audio: S2.1 Pro Free (free) — Ailoot",
    "url": "https://ailoot.ai/models/sl/fish-audio-s2-1-pro-free-u003a-free/"
  },
  "rawModel": {
    "about": "S2.1 Pro Free je izdaja modela za pretvorbo besedila v govor S2.1 podjetja Fish Audio, namenjena razvijalcem. Osnovni model in ključne zmožnosti sinteze si deli s S2.1 Pro: izrazni večjezični govor, navodila za izvedbo v naravnem jeziku in nativni dialog več govorcev. Namenjena je preizkušanju, prototipiranju, razvoju in manjšim aplikacijskim potekom.\n\nPri prototipu glasovnega pomočnika začnite s celotnim vzorčnim odgovorom in ocenite njegov zven, preden preizkusite postopno prihajajoče besedilo. Za učni izdelek pripravite kratko razlago z natančnimi izrazi in izgovarjavo števil, ki jih poslušalec potrebuje. Pri prototipu dialoga opredelite govorce in njihove glasovne reference, preden dodate navodila za izvedbo. Ti koraki razvijajo zvočni izdelek in aplikacijski potek okoli njega, namesto da bi zahtevi za sintezo naložili odgovornost za celoten pogovor.\n\nNapišite besede, ki naj bodo dejansko izgovorjene, nato pa navodilo postavite neposredno pred odlomek, katerega izvedba naj se spremeni. Navodila v oglatih oklepajih lahko izrazijo šepet, premor, odziv, poudarek ali poljubno opisan način govora. Spremembo sredi povedi postavite tja, kjer jo izvedba potrebuje, opisnim navodilom pa naj sledi dejansko besedilo za govor. Uporabna navodila za razlago ločijo stvarno besedilo od topline, tempa ali poudarka, ki ga želite za poslušalca.\n\nZa enega govorca izberite shranjeni identifikator glasu ali predložite referenčni posnetek z njegovim prepisom. Proizvajalčev vodnik za govor priporoča čist vzorec, dolg 10–30 sekund, za takojšnje prilagajanje glasu. Izberite referenco s tonom in kakovostjo posnetka, ki ustrezata scenariju, ter isto referenco ohranite v povezanih odlomkih. Glasovna referenca določa zven govorca, besedilo in navodila v njem pa vsebino in njeno izvedbo.\n\nNativna sinteza več govorcev uporablja oznake, kot sta <|speaker:0|> in <|speaker:1|>, z urejenim poljem identifikatorjev glasov ali ločenimi skupinami referenc. Številčne oznake govorcev naj ustrezajo temu vrstnemu redu. Za poučni pogovor napišite repliko vsakega govorca in navodilo za izvedbo postavite za oznako govorca na ustrezno mesto. Tako nastane dialog v eni zahtevi; to je drugačen potek od ločenih odsekov z enim govorcem pri S1 in njihovega poznejšega sestavljanja.\n\nProizvajalčev potek omogoča izhod MP3, WAV, surovi PCM in Opus, pri čemer je privzet MP3. MP3 podpira 64, 128 in 192 kb/s; WAV in PCM uporabljata dokumentirane 16-bitne mono formate vzorcev, Opus pa 48 kHz. Izberite format za shranjeno pripovedno datoteko, pretočno predvajanje ali nadaljnji zvočni cevovod. Celoten scenarij in izbiro glasu hranite skupaj z zvokom, da lahko poznejši popravek naslovi eno vrstico, ne da bi se izgubila predvidena izvedba.\n\nHitrost lahko prilagodite od 0,5 do 2,0, na voljo pa so tudi nastavitve glasnosti. Normalizacija besedila razširi angleška in kitajska števila za naravno branje. Normalizacija glasnosti izhoda ima privzeto vrednost true in se uporablja za družino S2; isto polje na S1 ni vplivalo. Parameter repetition_penalty iz S1 ne spremeni zvoka S2.1 Pro, zato stare nastavitve ne obravnavajte kot učinkovitega upravljalnega parametra za ta model. Ponavljajoče se zvoke in besedilo preverite neposredno, namesto da bi se pri presoji rezultata zanašali na preneseni parameter.\n\nDaljši scenariji se obdelujejo po kosih. Dokumentirani razpon dolžine kosa je 100–300, max_new_tokens pa je proračun zvočnih žetonov na kos, ne zagotovilo skupnega trajanja. Pogojevanje s prejšnjim kosom lahko prenese glasovni kontekst naprej. Proizvajalčev potek dostave opisuje celoten zvok, postopne zvočne kose in sprotno pretakanje besedila, ko scenarij prihaja postopoma. Izberite način uporabe za aplikacijo in ohranite dovolj konteksta scenarija za izgovarjavo in ton naslednjega odlomka.\n\nZa uporaben končni izdelek preverite s poslušanjem izpuščene ali ponovljene besede, izgovarjavo števil, menjave govorcev, premore in intenzivnost navodil. Različne glasovne reference lahko isti namig izvedejo različno intenzivno, zato začnite s preprosto usmerjeno repliko, preden dodate nasprotujoče si oznake. Pri večjezičnem delu predložite scenarij v ciljnem jeziku, namesto da bi od govornega modela zahtevali izmišljanje ali prevajanje vsebine. Usmerjen popravek spremeni vrstico, namig ali referenco, ki povzroča neskladje, in ohrani dele izvedbe, ki že ustrezajo navodilom.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "per_request",
            "label": "per request",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "public_unit_label": "per request",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "per_request"
          }
        ],
        "summary": "Celoten cenik konfiguracije je v podrobnostih."
      }
    ],
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "fish-audio/s2.1-pro-free:free",
    "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": "Shranite vrnjeni X-Client-Request-ID za uskladitev evidenc. Berite samo dejansko vrnjene vrednosti task_id/asset_id ali svojo medijsko knjižnico; iz ID operacije nikoli ne sestavite URL opravila in zahteve za ustvarjanje nikoli ne pošljite znova."
            },
            "outputs": {
              "all_results": "Shranite celoten odgovor in glave, vse dejanske izhode, izvirne vrnjene identifikatorje in vsa polja s podatki o porabi. Pridobite podatke izvirne operacije brez ponovnega pošiljanja zahteve za ustvarjanje.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "Celoten binarni zvok ali izvirni odgovor audio_url, glave in vsako sredstvo v vaši lasti."
            },
            "parameters": [
              {
                "enum": [
                  "fish-audio/s2.1-pro-free:free"
                ],
                "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-free:free"
                  ],
                  "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-free:free",
                "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": "Dejansko vrnjeni task_id ali zapis v medijski knjižnici",
                "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": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "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-free:free', '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": "Govor",
        "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": 0
        },
        "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": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "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",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "per_request",
            "label": "per request",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "public_unit_label": "per request",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "per_request"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/s2.1-pro-free:free",
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: S2.1 Pro Free (free)",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "S2.1 Pro Free je razvojna izdaja govornega modela S2.1 podjetja Fish Audio za pripovedovanje, usmerjen govorni izhod in dialog več govorcev. Za preizkušanje in izdelavo prototipov ponuja iste zmožnosti sinteze kot osnovni model."
  },
  "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": "S2.1 Pro Free je razvojna izdaja govornega modela S2.1 podjetja Fish Audio za pripovedovanje, usmerjen govorni izhod in dialog več govorcev. Za preizkušanje in izdelavo prototipov ponuja iste zmožnosti sinteze kot osnovni model.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "181b1eb6f10f98c7947837b983b2aad5c3ea34d3d9057d8a009e0ffe31b2f58e",
    "renderer_sha256": "dcba2271c18b0f9570a8b166e8d1e3166f121e096a58609c3a46da31562a1bf2"
  },
  "sourceRevision": "b631faa662838f0c9f2904686c24a9586790ddfc2ea730ede3345da8708092f9"
}
