{
  "aboutHtml": "<p>S2.1 Pro Free je edice modelu pro převod textu na řeč S2.1 od Fish Audio zaměřená na vývojáře. Se S2.1 Pro sdílí základní model i hlavní schopnosti syntézy: expresivní vícejazyčnou řeč, pokyny k přednesu v přirozeném jazyce a nativní dialog více mluvčích. Je určena k testování, tvorbě prototypů, vývoji a menším aplikačním postupům.</p><p>U prototypu hlasového asistenta začněte úplnou ukázkovou odpovědí a posuďte její zvuk dříve, než začnete zkoušet postupně přicházející text. Pro vzdělávací produkt připravte krátké vysvětlení s přesnými termíny a způsobem čtení čísel, které posluchač potřebuje. U prototypu dialogu definujte mluvčí a jejich hlasové reference před přidáním pokynů k přednesu. Tyto kroky vytvářejí zvukový výstup a aplikační postup kolem něj, místo aby za celou konverzaci odpovídal požadavek na syntézu.</p><p>Napište slova, která mají skutečně zaznít, a bezprostředně před pasáž, jejíž přednes se má změnit, vložte pokyn. Pokyny v hranatých závorkách mohou vyjádřit šepot, pauzu, reakci, důraz nebo volně popsaný styl řeči. Změnu uprostřed věty umístěte tam, kde ji přednes potřebuje, a za popisným pokynem vždy uveďte skutečný mluvený text. Užitečné zadání výkladu odděluje jeho věcné znění od vřelosti, tempa či důrazu, které má posluchač vnímat.</p><p>Pro jednoho mluvčího vyberte uložený identifikátor hlasu nebo poskytněte referenční nahrávku s přepisem. Hlasový průvodce výrobce doporučuje pro okamžité přizpůsobení hlasu čistý vzorek o délce 10–30 sekund. Zvolte referenci s tónem a kvalitou záznamu vhodnými pro scénář a u souvisejících pasáží zachovejte stejnou referenci. Hlasová reference dodává zvuk mluvčího; text a vložené pokyny určují obsah a jeho přednes.</p><p>Nativní syntéza s více mluvčími používá značky jako &lt;|speaker:0|&gt; a &lt;|speaker:1|&gt; spolu s uspořádaným polem identifikátorů hlasů nebo samostatnými skupinami referencí. Číselná označení mluvčích musí odpovídat tomuto pořadí. U výukového rozhovoru napište repliku každého mluvčího a pokyn k přednesu vložte na příslušné místo za značku mluvčího. Tak vznikne dialog v jediném požadavku; tento postup se liší od samostatných úseků s jedním mluvčím u S1 a jejich následného sestavení.</p><p>Postup výrobce nabízí výstup MP3, WAV, surové PCM a Opus; výchozí je MP3. MP3 podporuje 64, 128 a 192 kb/s; WAV a PCM používají zdokumentované 16bitové monofonní formáty vzorků, zatímco Opus používá 48 kHz. Formát zvolte podle toho, zda potřebujete uložený soubor s komentářem, streamované přehrávání nebo navazující zpracování zvuku. Se zvukem uchovávejte celý scénář a výběr hlasu, aby pozdější úprava jedné repliky neztratila zamýšlený přednes.</p><p>Rychlost lze upravit v rozsahu 0,5 až 2,0 a k dispozici je také ovládání hlasitosti. Normalizace textu rozepisuje anglická a čínská čísla pro přirozené čtení. Normalizace hlasitosti výstupu má výchozí hodnotu true a používá se u rodiny S2; stejné pole u S1 nemělo žádný účinek. Parametr repetition_penalty z S1 nemění zvuk S2.1 Pro, takže staré nastavení nelze považovat za účinný ovládací prvek tohoto modelu. Opakované zvuky a slova kontrolujte přímo, místo abyste výsledek posuzovali podle převzatého parametru.</p><p>Delší scénáře se zpracovávají po částech. Zdokumentovaný rozsah délky části je 100–300 a max_new_tokens představuje rozpočet zvukových tokenů na jednu část, nikoli záruku celkové délky nahrávky. Podmínění předchozí částí může přenášet hlasový kontext dále. Postup doručení výrobce popisuje úplný zvuk, postupně dodávané zvukové části a živé streamování textu, když scénář přichází průběžně. Zvolte způsob odběru vhodný pro aplikaci a zachovejte dostatek kontextu scénáře pro výslovnost a tón další pasáže.</p><p>Aby byl výsledný soubor užitečný, poslechem kontrolujte vynechaná či opakovaná slova, výslovnost čísel, střídání mluvčích, pauzy a intenzitu pokynů. Různé hlasové reference mohou stejný pokyn vyložit s odlišnou silou, proto začněte jednoduchou replikou s jedním pokynem a teprve poté přidávejte případně soupeřící značky. Při vícejazyčné práci dodejte scénář v cílovém jazyce, místo abyste hlasový model žádali o vymýšlení či překlad obsahu. Cílená úprava mění repliku, pokyn nebo referenci odpovědnou za nesoulad a zachovává části přednesu, které již zadání odpovídají.</p>",
  "aboutText": "S2.1 Pro Free je edice modelu pro převod textu na řeč S2.1 od Fish Audio zaměřená na vývojáře. Se S2.1 Pro sdílí základní model i hlavní schopnosti syntézy: expresivní vícejazyčnou řeč, pokyny k přednesu v přirozeném jazyce a nativní dialog více mluvčích. Je určena k testování, tvorbě prototypů, vývoji a menším aplikačním postupům.\n\nU prototypu hlasového asistenta začněte úplnou ukázkovou odpovědí a posuďte její zvuk dříve, než začnete zkoušet postupně přicházející text. Pro vzdělávací produkt připravte krátké vysvětlení s přesnými termíny a způsobem čtení čísel, které posluchač potřebuje. U prototypu dialogu definujte mluvčí a jejich hlasové reference před přidáním pokynů k přednesu. Tyto kroky vytvářejí zvukový výstup a aplikační postup kolem něj, místo aby za celou konverzaci odpovídal požadavek na syntézu.\n\nNapište slova, která mají skutečně zaznít, a bezprostředně před pasáž, jejíž přednes se má změnit, vložte pokyn. Pokyny v hranatých závorkách mohou vyjádřit šepot, pauzu, reakci, důraz nebo volně popsaný styl řeči. Změnu uprostřed věty umístěte tam, kde ji přednes potřebuje, a za popisným pokynem vždy uveďte skutečný mluvený text. Užitečné zadání výkladu odděluje jeho věcné znění od vřelosti, tempa či důrazu, které má posluchač vnímat.\n\nPro jednoho mluvčího vyberte uložený identifikátor hlasu nebo poskytněte referenční nahrávku s přepisem. Hlasový průvodce výrobce doporučuje pro okamžité přizpůsobení hlasu čistý vzorek o délce 10–30 sekund. Zvolte referenci s tónem a kvalitou záznamu vhodnými pro scénář a u souvisejících pasáží zachovejte stejnou referenci. Hlasová reference dodává zvuk mluvčího; text a vložené pokyny určují obsah a jeho přednes.\n\nNativní syntéza s více mluvčími používá značky jako <|speaker:0|> a <|speaker:1|> spolu s uspořádaným polem identifikátorů hlasů nebo samostatnými skupinami referencí. Číselná označení mluvčích musí odpovídat tomuto pořadí. U výukového rozhovoru napište repliku každého mluvčího a pokyn k přednesu vložte na příslušné místo za značku mluvčího. Tak vznikne dialog v jediném požadavku; tento postup se liší od samostatných úseků s jedním mluvčím u S1 a jejich následného sestavení.\n\nPostup výrobce nabízí výstup MP3, WAV, surové PCM a Opus; výchozí je MP3. MP3 podporuje 64, 128 a 192 kb/s; WAV a PCM používají zdokumentované 16bitové monofonní formáty vzorků, zatímco Opus používá 48 kHz. Formát zvolte podle toho, zda potřebujete uložený soubor s komentářem, streamované přehrávání nebo navazující zpracování zvuku. Se zvukem uchovávejte celý scénář a výběr hlasu, aby pozdější úprava jedné repliky neztratila zamýšlený přednes.\n\nRychlost lze upravit v rozsahu 0,5 až 2,0 a k dispozici je také ovládání hlasitosti. Normalizace textu rozepisuje anglická a čínská čísla pro přirozené čtení. Normalizace hlasitosti výstupu má výchozí hodnotu true a používá se u rodiny S2; stejné pole u S1 nemělo žádný účinek. Parametr repetition_penalty z S1 nemění zvuk S2.1 Pro, takže staré nastavení nelze považovat za účinný ovládací prvek tohoto modelu. Opakované zvuky a slova kontrolujte přímo, místo abyste výsledek posuzovali podle převzatého parametru.\n\nDelší scénáře se zpracovávají po částech. Zdokumentovaný rozsah délky části je 100–300 a max_new_tokens představuje rozpočet zvukových tokenů na jednu část, nikoli záruku celkové délky nahrávky. Podmínění předchozí částí může přenášet hlasový kontext dále. Postup doručení výrobce popisuje úplný zvuk, postupně dodávané zvukové části a živé streamování textu, když scénář přichází průběžně. Zvolte způsob odběru vhodný pro aplikaci a zachovejte dostatek kontextu scénáře pro výslovnost a tón další pasáže.\n\nAby byl výsledný soubor užitečný, poslechem kontrolujte vynechaná či opakovaná slova, výslovnost čísel, střídání mluvčích, pauzy a intenzitu pokynů. Různé hlasové reference mohou stejný pokyn vyložit s odlišnou silou, proto začněte jednoduchou replikou s jedním pokynem a teprve poté přidávejte případně soupeřící značky. Při vícejazyčné práci dodejte scénář v cílovém jazyce, místo abyste hlasový model žádali o vymýšlení či překlad obsahu. Cílená úprava mění repliku, pokyn nebo referenci odpovědnou za nesoulad a zachovává části přednesu, které již zadání odpovídají.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "b60eb0ad85db1c1934432947e97611ed06d969fa139e4f388966f4c202bfed15",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "cs",
  "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=\"Zavřít\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/s2.1-pro-free:free</code><button type=\"button\" id=\"copy-id\">Zkopírovat ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Sekce karty modelu\"><button type=\"button\" data-card-jump=\"overview\">Úvod</button><button type=\"button\" data-card-jump=\"methods\">Vstupy a metody</button><button type=\"button\" data-card-jump=\"pricing\">Tarify</button><button type=\"button\" data-card-jump=\"examples\">Příklady</button><button type=\"button\" data-card-jump=\"results\">Výsledky</button><button type=\"button\" data-card-jump=\"aliases\">Aliasy</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metody 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\">Převod na řeč</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\">Úvod</h3><p class=\"mdesc-full\">S2.1 Pro Free je vývojová edice hlasového modelu S2.1 od Fish Audio pro komentář, řízený hlasový výstup a dialog více mluvčích. Sdílí schopnosti syntézy tohoto modelu pro testování a tvorbu prototypů.</p><dl class=\"card-io\" data-card-io><div><dt>Přijímané vstupy</dt><dd>Text</dd></div><div><dt>Výsledky</dt><dd>Zvuk</dd></div></dl><details class=\"card-about\"><summary>O modelu</summary><p class=\"note-s\" data-model-method-boundary>Tento popis zahrnuje schopnosti modelu. Vstupy, výstupy a možnosti dostupné v Ailoot jsou uvedeny níže pro vybranou metodu.</p><div class=\"mabout\" id=\"m-about\"><p>S2.1 Pro Free je edice modelu pro převod textu na řeč S2.1 od Fish Audio zaměřená na vývojáře. Se S2.1 Pro sdílí základní model i hlavní schopnosti syntézy: expresivní vícejazyčnou řeč, pokyny k přednesu v přirozeném jazyce a nativní dialog více mluvčích. Je určena k testování, tvorbě prototypů, vývoji a menším aplikačním postupům.</p><p>U prototypu hlasového asistenta začněte úplnou ukázkovou odpovědí a posuďte její zvuk dříve, než začnete zkoušet postupně přicházející text. Pro vzdělávací produkt připravte krátké vysvětlení s přesnými termíny a způsobem čtení čísel, které posluchač potřebuje. U prototypu dialogu definujte mluvčí a jejich hlasové reference před přidáním pokynů k přednesu. Tyto kroky vytvářejí zvukový výstup a aplikační postup kolem něj, místo aby za celou konverzaci odpovídal požadavek na syntézu.</p><p>Napište slova, která mají skutečně zaznít, a bezprostředně před pasáž, jejíž přednes se má změnit, vložte pokyn. Pokyny v hranatých závorkách mohou vyjádřit šepot, pauzu, reakci, důraz nebo volně popsaný styl řeči. Změnu uprostřed věty umístěte tam, kde ji přednes potřebuje, a za popisným pokynem vždy uveďte skutečný mluvený text. Užitečné zadání výkladu odděluje jeho věcné znění od vřelosti, tempa či důrazu, které má posluchač vnímat.</p><p>Pro jednoho mluvčího vyberte uložený identifikátor hlasu nebo poskytněte referenční nahrávku s přepisem. Hlasový průvodce výrobce doporučuje pro okamžité přizpůsobení hlasu čistý vzorek o délce 10–30 sekund. Zvolte referenci s tónem a kvalitou záznamu vhodnými pro scénář a u souvisejících pasáží zachovejte stejnou referenci. Hlasová reference dodává zvuk mluvčího; text a vložené pokyny určují obsah a jeho přednes.</p><p>Nativní syntéza s více mluvčími používá značky jako &lt;|speaker:0|&gt; a &lt;|speaker:1|&gt; spolu s uspořádaným polem identifikátorů hlasů nebo samostatnými skupinami referencí. Číselná označení mluvčích musí odpovídat tomuto pořadí. U výukového rozhovoru napište repliku každého mluvčího a pokyn k přednesu vložte na příslušné místo za značku mluvčího. Tak vznikne dialog v jediném požadavku; tento postup se liší od samostatných úseků s jedním mluvčím u S1 a jejich následného sestavení.</p><p>Postup výrobce nabízí výstup MP3, WAV, surové PCM a Opus; výchozí je MP3. MP3 podporuje 64, 128 a 192 kb/s; WAV a PCM používají zdokumentované 16bitové monofonní formáty vzorků, zatímco Opus používá 48 kHz. Formát zvolte podle toho, zda potřebujete uložený soubor s komentářem, streamované přehrávání nebo navazující zpracování zvuku. Se zvukem uchovávejte celý scénář a výběr hlasu, aby pozdější úprava jedné repliky neztratila zamýšlený přednes.</p><p>Rychlost lze upravit v rozsahu 0,5 až 2,0 a k dispozici je také ovládání hlasitosti. Normalizace textu rozepisuje anglická a čínská čísla pro přirozené čtení. Normalizace hlasitosti výstupu má výchozí hodnotu true a používá se u rodiny S2; stejné pole u S1 nemělo žádný účinek. Parametr repetition_penalty z S1 nemění zvuk S2.1 Pro, takže staré nastavení nelze považovat za účinný ovládací prvek tohoto modelu. Opakované zvuky a slova kontrolujte přímo, místo abyste výsledek posuzovali podle převzatého parametru.</p><p>Delší scénáře se zpracovávají po částech. Zdokumentovaný rozsah délky části je 100–300 a max_new_tokens představuje rozpočet zvukových tokenů na jednu část, nikoli záruku celkové délky nahrávky. Podmínění předchozí částí může přenášet hlasový kontext dále. Postup doručení výrobce popisuje úplný zvuk, postupně dodávané zvukové části a živé streamování textu, když scénář přichází průběžně. Zvolte způsob odběru vhodný pro aplikaci a zachovejte dostatek kontextu scénáře pro výslovnost a tón další pasáže.</p><p>Aby byl výsledný soubor užitečný, poslechem kontrolujte vynechaná či opakovaná slova, výslovnost čísel, střídání mluvčích, pauzy a intenzitu pokynů. Různé hlasové reference mohou stejný pokyn vyložit s odlišnou silou, proto začněte jednoduchou replikou s jedním pokynem a teprve poté přidávejte případně soupeřící značky. Při vícejazyčné práci dodejte scénář v cílovém jazyce, místo abyste hlasový model žádali o vymýšlení či překlad obsahu. Cílená úprava mění repliku, pokyn nebo referenci odpovědnou za nesoulad a zachovává části přednesu, které již zadání odpovídají.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Dostupné v Ailoot · vstupy a metody</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Řeč</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Vstup</dt><dd><code>text</code></dd></div><div><dt>Výstup</dt><dd><code>audio</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Pole</th><th>Typ</th><th>Požadavek</th><th>Hodnoty a limity</th><th>Výchozí</th></tr></thead><tbody><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Požadavek\"><span class=\"card-cell-label\">Požadavek</span>Povinné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>fish-audio/s2.1-pro-free:free</div></td><td data-cell-label=\"Výchozí\" data-default=\"unspecified\"><span class=\"card-cell-label\">Výchozí</span>—</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Požadavek\"><span class=\"card-cell-label\">Požadavek</span>Povinné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>Minimální délka: 1</div></td><td data-cell-label=\"Výchozí\" data-default=\"unspecified\"><span class=\"card-cell-label\">Výchozí</span>—</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Požadavek\"><span class=\"card-cell-label\">Požadavek</span>Povinné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>b347db033a6549378b48d00acb0d06cd</div><div>Minimální délka: 1</div></td><td data-cell-label=\"Výchozí\" data-default=\"unspecified\"><span class=\"card-cell-label\">Výchozí</span>—</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Požadavek\"><span class=\"card-cell-label\">Požadavek</span>Volitelné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>mp3, pcm</div></td><td data-cell-label=\"Výchozí\" data-default=\"known\"><span class=\"card-cell-label\">Výchozí</span>pcm</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"Požadavek\"><span class=\"card-cell-label\">Požadavek</span>Volitelné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span></td><td data-cell-label=\"Výchozí\" data-default=\"unspecified\"><span class=\"card-cell-label\">Výchozí</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Parametry a životní cyklus metody</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametr</th><th>Kontrakt</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=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</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=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</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=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>text</td></tr></tbody></table></div><p>Životní cyklus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · skutečně vrácené task_id nebo záznam v knihovně médií</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\">Tarify</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.</p><dl data-price-conditions><dt>Rychlý režim</dt><dd>Neuvedeno <span class=\"note-s\">Při výběru rychlého režimu</span></dd><dt>Režim flex</dt><dd>Neuvedeno <span class=\"note-s\">Při výběru režimu flex</span></dd><dt>Maximální intenzita uvažování</dt><dd>Neuvedeno <span class=\"note-s\">Když se při maximální intenzitě uvažování použije výchozí úprava (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Sazby Ailoot</h4><h4>Ceny podle konfigurace</h4><p class=\"note-s\">Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurace</th><th>Tabulka sazeb</th><th>Množství pro účtování</th><th>Poplatek</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurace\" scope=\"row\"><span class=\"card-cell-label\">Konfigurace</span>Základní sazby za tokeny</th><td data-cell-label=\"Tabulka sazeb\"><span class=\"card-cell-label\">Tabulka sazeb</span>Základní sazba</td><td data-cell-label=\"Množství pro účtování\"><span class=\"card-cell-label\">Množství pro účtování</span>—</td><td data-cell-label=\"Poplatek\"><span class=\"card-cell-label\">Poplatek</span><div><span>Vstup · Vstupní tokeny</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenů</span></div><div><span>Výstup · Výstupní tokeny</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenů</span></div><div><span>Vstup · Čtení z mezipaměti</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenů</span></div><div><span>Vstup · Zápis do mezipaměti</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenů</span></div><div><span>Vstup · Zápis do mezipaměti, 1 hodina</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenů</span></div></td></tr><tr><th data-cell-label=\"Konfigurace\" scope=\"row\"><span class=\"card-cell-label\">Konfigurace</span>Za požadavek</th><td data-cell-label=\"Tabulka sazeb\"><span class=\"card-cell-label\">Tabulka sazeb</span>—</td><td data-cell-label=\"Množství pro účtování\"><span class=\"card-cell-label\">Množství pro účtování</span>jeden požadavek</td><td data-cell-label=\"Poplatek\"><span class=\"card-cell-label\">Poplatek</span><div><span>Vstup</span> <b>$0</b> <span class=\"price-unit\">za požadavek</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. <a href=\"/docs/cs/billing/reserve/\">Jak funguje rezervace a vyúčtování →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Příklady požadavků</h3><h4>Ailoot Ultra · Řeč</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Varianty kódu\"><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\">Použijte skutečný vstup a uchovejte úplný výsledek</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Zkopírovat kód\"><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\">Přijímání a ukládání výsledků</h3><h4>Ailoot Ultra · Řeč</h4><p class=\"note-s\">Úplný binární zvuk nebo původní odpověď audio_url, hlavičky a každý soubor spravovaný službou.</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>Další načtení obsahu</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Varianty kódu\"><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\">Načíst existující soubory, které vám patří</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Zkopírovat kód\"><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>Uchovejte všechny dokončené výsledky</h5><p class=\"note-s\">Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.</p><p class=\"note-s\">Uchovejte úplnou odpověď a hlavičky, všechny skutečné výstupy, původní vrácené identifikátory a všechna pole s údaji o využití. Obnovte původní operaci bez opětovného odeslání požadavku na vytvoření.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Pokud je nutné ověřit původní odpověď</h5><p class=\"note-s\">Uchovejte vrácené X-Client-Request-ID pro spárování záznamů. Načítejte pouze skutečně vrácené hodnoty task_id/asset_id nebo vlastní knihovnu médií; nikdy nevytvářejte URL úlohy z ID operace a nikdy znovu neodesílejte požadavek na vytvoření.</p></div></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasy</h3><h4>Aliasy modelu</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>Aliasy cest metod</h4><p class=\"note-s\">Použijte cesty metod uvedené výše.</p><h4>Související ID modelů</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": "Uchovejte vrácené X-Client-Request-ID pro spárování záznamů. Načítejte pouze skutečně vrácené hodnoty task_id/asset_id nebo vlastní knihovnu médií; nikdy nevytvářejte URL úlohy z ID operace a nikdy znovu neodesílejte požadavek na vytvoření."
            },
            "outputs": {
              "all_results": "Uchovejte úplnou odpověď a hlavičky, všechny skutečné výstupy, původní vrácené identifikátory a všechna pole s údaji o využití. Obnovte původní operaci bez opětovného odeslání požadavku na vytvoření.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "Úplný binární zvuk nebo původní odpověď audio_url, hlavičky a každý soubor spravovaný službou."
            },
            "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": "skutečně vrácené task_id nebo záznam v knihovně médií",
                "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": "Řeč",
        "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": "840017a8788cdd384a6a837f822e23a33751639783e0a6dcdc887a14ab81350b",
    "input_html_sha256": "bc3f9691418c026dfae1f22979c293d7eac64d49dc1f663e50323fdc102aba21",
    "private_audit_sha256": "e0504cb12713c9d911d3f3376d0bb2183f4617e23a036a644fde030e6588dd76",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/cs/fish-audio-s2-1-pro-free-u003a-free/",
    "description": "S2.1 Pro Free je vývojová edice hlasového modelu S2.1 od Fish Audio pro komentář, řízený hlasový výstup a dialog více mluvčích. Sdílí schopnosti syntézy tohoto modelu pro testování a tvorbu prototypů.",
    "locale": "cs",
    "md_url": "https://ailoot.ai/models/cs/fish-audio-s2-1-pro-free-u003a-free/index.md",
    "title": "Fish Audio: S2.1 Pro Free (free) — Ailoot",
    "url": "https://ailoot.ai/models/cs/fish-audio-s2-1-pro-free-u003a-free/"
  },
  "rawModel": {
    "about": "S2.1 Pro Free je edice modelu pro převod textu na řeč S2.1 od Fish Audio zaměřená na vývojáře. Se S2.1 Pro sdílí základní model i hlavní schopnosti syntézy: expresivní vícejazyčnou řeč, pokyny k přednesu v přirozeném jazyce a nativní dialog více mluvčích. Je určena k testování, tvorbě prototypů, vývoji a menším aplikačním postupům.\n\nU prototypu hlasového asistenta začněte úplnou ukázkovou odpovědí a posuďte její zvuk dříve, než začnete zkoušet postupně přicházející text. Pro vzdělávací produkt připravte krátké vysvětlení s přesnými termíny a způsobem čtení čísel, které posluchač potřebuje. U prototypu dialogu definujte mluvčí a jejich hlasové reference před přidáním pokynů k přednesu. Tyto kroky vytvářejí zvukový výstup a aplikační postup kolem něj, místo aby za celou konverzaci odpovídal požadavek na syntézu.\n\nNapište slova, která mají skutečně zaznít, a bezprostředně před pasáž, jejíž přednes se má změnit, vložte pokyn. Pokyny v hranatých závorkách mohou vyjádřit šepot, pauzu, reakci, důraz nebo volně popsaný styl řeči. Změnu uprostřed věty umístěte tam, kde ji přednes potřebuje, a za popisným pokynem vždy uveďte skutečný mluvený text. Užitečné zadání výkladu odděluje jeho věcné znění od vřelosti, tempa či důrazu, které má posluchač vnímat.\n\nPro jednoho mluvčího vyberte uložený identifikátor hlasu nebo poskytněte referenční nahrávku s přepisem. Hlasový průvodce výrobce doporučuje pro okamžité přizpůsobení hlasu čistý vzorek o délce 10–30 sekund. Zvolte referenci s tónem a kvalitou záznamu vhodnými pro scénář a u souvisejících pasáží zachovejte stejnou referenci. Hlasová reference dodává zvuk mluvčího; text a vložené pokyny určují obsah a jeho přednes.\n\nNativní syntéza s více mluvčími používá značky jako <|speaker:0|> a <|speaker:1|> spolu s uspořádaným polem identifikátorů hlasů nebo samostatnými skupinami referencí. Číselná označení mluvčích musí odpovídat tomuto pořadí. U výukového rozhovoru napište repliku každého mluvčího a pokyn k přednesu vložte na příslušné místo za značku mluvčího. Tak vznikne dialog v jediném požadavku; tento postup se liší od samostatných úseků s jedním mluvčím u S1 a jejich následného sestavení.\n\nPostup výrobce nabízí výstup MP3, WAV, surové PCM a Opus; výchozí je MP3. MP3 podporuje 64, 128 a 192 kb/s; WAV a PCM používají zdokumentované 16bitové monofonní formáty vzorků, zatímco Opus používá 48 kHz. Formát zvolte podle toho, zda potřebujete uložený soubor s komentářem, streamované přehrávání nebo navazující zpracování zvuku. Se zvukem uchovávejte celý scénář a výběr hlasu, aby pozdější úprava jedné repliky neztratila zamýšlený přednes.\n\nRychlost lze upravit v rozsahu 0,5 až 2,0 a k dispozici je také ovládání hlasitosti. Normalizace textu rozepisuje anglická a čínská čísla pro přirozené čtení. Normalizace hlasitosti výstupu má výchozí hodnotu true a používá se u rodiny S2; stejné pole u S1 nemělo žádný účinek. Parametr repetition_penalty z S1 nemění zvuk S2.1 Pro, takže staré nastavení nelze považovat za účinný ovládací prvek tohoto modelu. Opakované zvuky a slova kontrolujte přímo, místo abyste výsledek posuzovali podle převzatého parametru.\n\nDelší scénáře se zpracovávají po částech. Zdokumentovaný rozsah délky části je 100–300 a max_new_tokens představuje rozpočet zvukových tokenů na jednu část, nikoli záruku celkové délky nahrávky. Podmínění předchozí částí může přenášet hlasový kontext dále. Postup doručení výrobce popisuje úplný zvuk, postupně dodávané zvukové části a živé streamování textu, když scénář přichází průběžně. Zvolte způsob odběru vhodný pro aplikaci a zachovejte dostatek kontextu scénáře pro výslovnost a tón další pasáže.\n\nAby byl výsledný soubor užitečný, poslechem kontrolujte vynechaná či opakovaná slova, výslovnost čísel, střídání mluvčích, pauzy a intenzitu pokynů. Různé hlasové reference mohou stejný pokyn vyložit s odlišnou silou, proto začněte jednoduchou replikou s jedním pokynem a teprve poté přidávejte případně soupeřící značky. Při vícejazyčné práci dodejte scénář v cílovém jazyce, místo abyste hlasový model žádali o vymýšlení či překlad obsahu. Cílená úprava mění repliku, pokyn nebo referenci odpovědnou za nesoulad a zachovává části přednesu, které již zadání odpovídají.",
    "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": "Kompletní ceník konfigurace v podrobnostech."
      }
    ],
    "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": "Uchovejte vrácené X-Client-Request-ID pro spárování záznamů. Načítejte pouze skutečně vrácené hodnoty task_id/asset_id nebo vlastní knihovnu médií; nikdy nevytvářejte URL úlohy z ID operace a nikdy znovu neodesílejte požadavek na vytvoření."
            },
            "outputs": {
              "all_results": "Uchovejte úplnou odpověď a hlavičky, všechny skutečné výstupy, původní vrácené identifikátory a všechna pole s údaji o využití. Obnovte původní operaci bez opětovného odeslání požadavku na vytvoření.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "Úplný binární zvuk nebo původní odpověď audio_url, hlavičky a každý soubor spravovaný službou."
            },
            "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": "skutečně vrácené task_id nebo záznam v knihovně médií",
                "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": "Řeč",
        "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 vývojová edice hlasového modelu S2.1 od Fish Audio pro komentář, řízený hlasový výstup a dialog více mluvčích. Sdílí schopnosti syntézy tohoto modelu pro testování a tvorbu prototypů."
  },
  "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 vývojová edice hlasového modelu S2.1 od Fish Audio pro komentář, řízený hlasový výstup a dialog více mluvčích. Sdílí schopnosti syntézy tohoto modelu pro testování a tvorbu prototypů.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "5c48675320d248e3409dbbb2ebddad84d05885c1c8aaf6ea0fd70ba46804bc2b",
    "renderer_sha256": "41721c81890b87836cd3fd41ef732d3276f5969e30822ba09962305294953718"
  },
  "sourceRevision": "83e3196b7f45ffcc98ddb6e3a003340c1b404818a4f03f1695fa387b466ff76b"
}
