{
  "aboutHtml": "<p>Transcribe 1 je všeobecný model spoločnosti Fish Audio na prevod reči na text pri krátkych nahrávkach. Prijíma zvukový súbor a vracia rozpoznané slová ako text spolu s trvaním nahrávky, voliteľnými časovanými úsekmi a informáciami o jazyku, ak sú známe. Tento model je užitočný na krátku hlasovú poznámku, hovorený pokyn, výňatok z nahrávky alebo zvukový klip, ktorý potrebuje čitateľnú textovú podobu.</p><p>Ilustračný postup s hlasovou poznámkou uchováva nahrávku spolu s úplným prepisom a identifikátorom pôvodného klipu. Neskorší krok aplikácie môže text prehľadávať, usporiadať poznámku alebo vytvoriť zhrnutie pri zachovaní hovoreného zdroja. Pri príkaze prepis poskytuje aplikácii rozpoznané slová; každá akcia je samostatným krokom interpretácie a vykonania. Pri výňatku z rozhovoru zaznamenajte polohu klipu v celej nahrávke, aby sa citácia dala skontrolovať na správnom mieste.</p><p>Výrobca prijíma WAV, MP3, AAC vrátane M4A/MP4, FLAC a Ogg obsahujúci Opus alebo Vorbis. Nahrávky prehliadača vo WebM treba pre tento model skonvertovať na Ogg/Opus, MP3 alebo WAV; Pro dokumentuje natívnu podporu ďalších kontajnerov. Na jednu požiadavku dodajte jeden zvukový súbor. Zdokumentovaný limit požiadavky základného modelu je najviac 50 MiB, pričom súbory MP3 a Opus musia byť menšie než 25 MiB. Veľkosť súboru a dĺžka nahrávky sú odlišné hľadiská: komprimovaný súbor sa môže zmestiť do limitu nahrávania, ale jeho spracovanie môže trvať príliš dlho.</p><p>Transcribe 1 je určený na krátke nahrávky. Pri zvuku dlhšom než niekoľko minút výrobca odporúča Pro; dlhá požiadavka na základný model môže zlyhať pri prekročení časového limitu spracovania. Pri príprave dlhšieho zdroja na prepis krátkych klipov zachovajte počiatočný časový posun každého klipu a pred spojením výsledkov potvrďte, že vrátený prepis pokrýva celý klip. K miestnym časom úsekov pripočítajte pôvodný posun, aby navigácia zostala prepojená s celou nahrávkou. Pokyny základného modelu nemožno vykladať ako samostatný 60-minútový limit Pro.</p><p>Odpoveď výrobcu obsahuje text, trvanie a úseky. Trvanie je vyjadrené v sekundách a čitateľný úplný prepis sa má uchovať ako hlavné znenie klipu. Časové značky sú voliteľné: ignore_timestamps má v API výrobcu predvolenú hodnotu true, zatiaľ čo false vyžaduje úseky na úrovni slov s textom a časmi začiatku a konca v sekundách. Požiadavka na časové zarovnanie predlžuje spracovanie. Prázdne pole segments môže znamenať vynechané časovanie, neprítomnosť reči alebo dočasne nedostupné zarovnanie, preto sa nemá automaticky vykladať ako prázdny úplný prepis.</p><p>Úseky zvyčajne predstavujú slová, pri čínštine a japončine jeden znak alebo niekoľko znakov. Ich text neobsahuje interpunkciu a hodnotu môže normalizovať inak než úplný prepis; nejde o kópiu čitateľnej odpovede znak po znaku. Úsek môže mať rovnaký čas začiatku aj konca. Úseky používajte na vyhľadanie miesta v nahrávke alebo prípravu časovaného zobrazenia a úplný text vtedy, keď záleží na znení a interpunkcii. Vo výslednom súbore tieto dve reprezentácie odlišujte.</p><p>Jazyk sa rozpoznáva automaticky bez ohľadu na to, či je zadaná voliteľná jazyková pomôcka. Výrobca dokumentuje pre pomôcky kódy ISO 639-1 malými písmenami a pri známom jazyku vracia jeho kód pre aplikačnú logiku aj názov pre zobrazenie. Odpoveď uvádza jeden jazyk, nie všetky jazyky nahrávky, ktorá medzi nimi prepína. Zdrojové znenie a dostupné jazykové metadáta uchovajte spolu s výsledkom a požiadavku na prepis nepovažujte za preklad.</p><p>Pri tvorbe titulkov spájajte nadväzujúce časované úseky do čitateľných titulkových blokov namiesto zobrazovania po jednom slove. Užitočným výstupom je súbor SRT alebo WebVTT prepojený s pôvodným klipom, s hranicami blokov podľa páuz a primeraným množstvom textu na obrazovke. Skontrolujte chýbajúce časovanie a zabezpečte, aby koniec každého bloku nasledoval po jeho začiatku. Zoskupovanie titulkov a formátovanie súboru sú aplikačné kroky založené na vrátenom zarovnaní a spôsob zobrazenia má vyhovovať prehrávaču aj publiku.</p><p>Zdokumentované ovládacie prvky Transcribe 1 sú zvuk, jazyková pomôcka a voľba časových značiek. Značky hovoriacich, štruktúrované repliky, ovládanie emocionálnych udalostí a pomôcky pre počet hovoriacich v Pro sú samostatné funkcie; nie sú súčasťou zdokumentovaného kontraktu odpovede tohto základného modelu. Požadovaný výsledok vyberte pred spracovaním: obyčajný čitateľný text na poznámku alebo text spolu so zarovnaním pre navigáciu pri prehrávaní a titulky. Zachovanie identifikátora klipu, prepisu a dostupného časovania robí výsledok užitočným pre ďalší krok aplikácie.</p>",
  "aboutText": "Transcribe 1 je všeobecný model spoločnosti Fish Audio na prevod reči na text pri krátkych nahrávkach. Prijíma zvukový súbor a vracia rozpoznané slová ako text spolu s trvaním nahrávky, voliteľnými časovanými úsekmi a informáciami o jazyku, ak sú známe. Tento model je užitočný na krátku hlasovú poznámku, hovorený pokyn, výňatok z nahrávky alebo zvukový klip, ktorý potrebuje čitateľnú textovú podobu.\n\nIlustračný postup s hlasovou poznámkou uchováva nahrávku spolu s úplným prepisom a identifikátorom pôvodného klipu. Neskorší krok aplikácie môže text prehľadávať, usporiadať poznámku alebo vytvoriť zhrnutie pri zachovaní hovoreného zdroja. Pri príkaze prepis poskytuje aplikácii rozpoznané slová; každá akcia je samostatným krokom interpretácie a vykonania. Pri výňatku z rozhovoru zaznamenajte polohu klipu v celej nahrávke, aby sa citácia dala skontrolovať na správnom mieste.\n\nVýrobca prijíma WAV, MP3, AAC vrátane M4A/MP4, FLAC a Ogg obsahujúci Opus alebo Vorbis. Nahrávky prehliadača vo WebM treba pre tento model skonvertovať na Ogg/Opus, MP3 alebo WAV; Pro dokumentuje natívnu podporu ďalších kontajnerov. Na jednu požiadavku dodajte jeden zvukový súbor. Zdokumentovaný limit požiadavky základného modelu je najviac 50 MiB, pričom súbory MP3 a Opus musia byť menšie než 25 MiB. Veľkosť súboru a dĺžka nahrávky sú odlišné hľadiská: komprimovaný súbor sa môže zmestiť do limitu nahrávania, ale jeho spracovanie môže trvať príliš dlho.\n\nTranscribe 1 je určený na krátke nahrávky. Pri zvuku dlhšom než niekoľko minút výrobca odporúča Pro; dlhá požiadavka na základný model môže zlyhať pri prekročení časového limitu spracovania. Pri príprave dlhšieho zdroja na prepis krátkych klipov zachovajte počiatočný časový posun každého klipu a pred spojením výsledkov potvrďte, že vrátený prepis pokrýva celý klip. K miestnym časom úsekov pripočítajte pôvodný posun, aby navigácia zostala prepojená s celou nahrávkou. Pokyny základného modelu nemožno vykladať ako samostatný 60-minútový limit Pro.\n\nOdpoveď výrobcu obsahuje text, trvanie a úseky. Trvanie je vyjadrené v sekundách a čitateľný úplný prepis sa má uchovať ako hlavné znenie klipu. Časové značky sú voliteľné: ignore_timestamps má v API výrobcu predvolenú hodnotu true, zatiaľ čo false vyžaduje úseky na úrovni slov s textom a časmi začiatku a konca v sekundách. Požiadavka na časové zarovnanie predlžuje spracovanie. Prázdne pole segments môže znamenať vynechané časovanie, neprítomnosť reči alebo dočasne nedostupné zarovnanie, preto sa nemá automaticky vykladať ako prázdny úplný prepis.\n\nÚseky zvyčajne predstavujú slová, pri čínštine a japončine jeden znak alebo niekoľko znakov. Ich text neobsahuje interpunkciu a hodnotu môže normalizovať inak než úplný prepis; nejde o kópiu čitateľnej odpovede znak po znaku. Úsek môže mať rovnaký čas začiatku aj konca. Úseky používajte na vyhľadanie miesta v nahrávke alebo prípravu časovaného zobrazenia a úplný text vtedy, keď záleží na znení a interpunkcii. Vo výslednom súbore tieto dve reprezentácie odlišujte.\n\nJazyk sa rozpoznáva automaticky bez ohľadu na to, či je zadaná voliteľná jazyková pomôcka. Výrobca dokumentuje pre pomôcky kódy ISO 639-1 malými písmenami a pri známom jazyku vracia jeho kód pre aplikačnú logiku aj názov pre zobrazenie. Odpoveď uvádza jeden jazyk, nie všetky jazyky nahrávky, ktorá medzi nimi prepína. Zdrojové znenie a dostupné jazykové metadáta uchovajte spolu s výsledkom a požiadavku na prepis nepovažujte za preklad.\n\nPri tvorbe titulkov spájajte nadväzujúce časované úseky do čitateľných titulkových blokov namiesto zobrazovania po jednom slove. Užitočným výstupom je súbor SRT alebo WebVTT prepojený s pôvodným klipom, s hranicami blokov podľa páuz a primeraným množstvom textu na obrazovke. Skontrolujte chýbajúce časovanie a zabezpečte, aby koniec každého bloku nasledoval po jeho začiatku. Zoskupovanie titulkov a formátovanie súboru sú aplikačné kroky založené na vrátenom zarovnaní a spôsob zobrazenia má vyhovovať prehrávaču aj publiku.\n\nZdokumentované ovládacie prvky Transcribe 1 sú zvuk, jazyková pomôcka a voľba časových značiek. Značky hovoriacich, štruktúrované repliky, ovládanie emocionálnych udalostí a pomôcky pre počet hovoriacich v Pro sú samostatné funkcie; nie sú súčasťou zdokumentovaného kontraktu odpovede tohto základného modelu. Požadovaný výsledok vyberte pred spracovaním: obyčajný čitateľný text na poznámku alebo text spolu so zarovnaním pre navigáciu pri prehrávaní a titulky. Zachovanie identifikátora klipu, prepisu a dostupného časovania robí výsledok užitočným pre ďalší krok aplikácie.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "67f54d4af4b0b566529c57d494b5b059bba49556dbc164a45e763028bcf28d1f",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "sk",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Fish Audio: Transcribe 1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Zavrieť\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/transcribe-1</code><button type=\"button\" id=\"copy-id\">Skopírovať ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Sekcie karty modelu\"><button type=\"button\" data-card-jump=\"overview\">Úvod</button><button type=\"button\" data-card-jump=\"methods\">Vstupy a metódy</button><button type=\"button\" data-card-jump=\"pricing\">Cenník</button><button type=\"button\" data-card-jump=\"examples\">Prí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=\"Metódy 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|transcriptions|/v1/audio/transcriptions|fish-audio%2Ftranscribe-1\">Rozpoznávanie</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\">Transcribe 1 prevádza krátke zvukové nahrávky na text s automatickým rozpoznaním jazyka a voliteľnými časovými značkami jednotlivých slov. Prepis využite na hlasové poznámky, prehľadávateľné klipy alebo prípravu titulkov a časované úseky uchovávajte oddelene od čitateľného úplného textu.</p><dl class=\"card-io\" data-card-io><div><dt>Povolené vstupy</dt><dd>Audio</dd></div><div><dt>Výsledky</dt><dd>Text</dd></div></dl><details class=\"card-about\"><summary>O modeli</summary><p class=\"note-s\" data-model-method-boundary>Tento opis pokrýva možnosti modelu. Dostupné vstupy, výstupy a voľby v Ailoot sú uvedené nižšie pre vybranú metódu.</p><div class=\"mabout\" id=\"m-about\"><p>Transcribe 1 je všeobecný model spoločnosti Fish Audio na prevod reči na text pri krátkych nahrávkach. Prijíma zvukový súbor a vracia rozpoznané slová ako text spolu s trvaním nahrávky, voliteľnými časovanými úsekmi a informáciami o jazyku, ak sú známe. Tento model je užitočný na krátku hlasovú poznámku, hovorený pokyn, výňatok z nahrávky alebo zvukový klip, ktorý potrebuje čitateľnú textovú podobu.</p><p>Ilustračný postup s hlasovou poznámkou uchováva nahrávku spolu s úplným prepisom a identifikátorom pôvodného klipu. Neskorší krok aplikácie môže text prehľadávať, usporiadať poznámku alebo vytvoriť zhrnutie pri zachovaní hovoreného zdroja. Pri príkaze prepis poskytuje aplikácii rozpoznané slová; každá akcia je samostatným krokom interpretácie a vykonania. Pri výňatku z rozhovoru zaznamenajte polohu klipu v celej nahrávke, aby sa citácia dala skontrolovať na správnom mieste.</p><p>Výrobca prijíma WAV, MP3, AAC vrátane M4A/MP4, FLAC a Ogg obsahujúci Opus alebo Vorbis. Nahrávky prehliadača vo WebM treba pre tento model skonvertovať na Ogg/Opus, MP3 alebo WAV; Pro dokumentuje natívnu podporu ďalších kontajnerov. Na jednu požiadavku dodajte jeden zvukový súbor. Zdokumentovaný limit požiadavky základného modelu je najviac 50 MiB, pričom súbory MP3 a Opus musia byť menšie než 25 MiB. Veľkosť súboru a dĺžka nahrávky sú odlišné hľadiská: komprimovaný súbor sa môže zmestiť do limitu nahrávania, ale jeho spracovanie môže trvať príliš dlho.</p><p>Transcribe 1 je určený na krátke nahrávky. Pri zvuku dlhšom než niekoľko minút výrobca odporúča Pro; dlhá požiadavka na základný model môže zlyhať pri prekročení časového limitu spracovania. Pri príprave dlhšieho zdroja na prepis krátkych klipov zachovajte počiatočný časový posun každého klipu a pred spojením výsledkov potvrďte, že vrátený prepis pokrýva celý klip. K miestnym časom úsekov pripočítajte pôvodný posun, aby navigácia zostala prepojená s celou nahrávkou. Pokyny základného modelu nemožno vykladať ako samostatný 60-minútový limit Pro.</p><p>Odpoveď výrobcu obsahuje text, trvanie a úseky. Trvanie je vyjadrené v sekundách a čitateľný úplný prepis sa má uchovať ako hlavné znenie klipu. Časové značky sú voliteľné: ignore_timestamps má v API výrobcu predvolenú hodnotu true, zatiaľ čo false vyžaduje úseky na úrovni slov s textom a časmi začiatku a konca v sekundách. Požiadavka na časové zarovnanie predlžuje spracovanie. Prázdne pole segments môže znamenať vynechané časovanie, neprítomnosť reči alebo dočasne nedostupné zarovnanie, preto sa nemá automaticky vykladať ako prázdny úplný prepis.</p><p>Úseky zvyčajne predstavujú slová, pri čínštine a japončine jeden znak alebo niekoľko znakov. Ich text neobsahuje interpunkciu a hodnotu môže normalizovať inak než úplný prepis; nejde o kópiu čitateľnej odpovede znak po znaku. Úsek môže mať rovnaký čas začiatku aj konca. Úseky používajte na vyhľadanie miesta v nahrávke alebo prípravu časovaného zobrazenia a úplný text vtedy, keď záleží na znení a interpunkcii. Vo výslednom súbore tieto dve reprezentácie odlišujte.</p><p>Jazyk sa rozpoznáva automaticky bez ohľadu na to, či je zadaná voliteľná jazyková pomôcka. Výrobca dokumentuje pre pomôcky kódy ISO 639-1 malými písmenami a pri známom jazyku vracia jeho kód pre aplikačnú logiku aj názov pre zobrazenie. Odpoveď uvádza jeden jazyk, nie všetky jazyky nahrávky, ktorá medzi nimi prepína. Zdrojové znenie a dostupné jazykové metadáta uchovajte spolu s výsledkom a požiadavku na prepis nepovažujte za preklad.</p><p>Pri tvorbe titulkov spájajte nadväzujúce časované úseky do čitateľných titulkových blokov namiesto zobrazovania po jednom slove. Užitočným výstupom je súbor SRT alebo WebVTT prepojený s pôvodným klipom, s hranicami blokov podľa páuz a primeraným množstvom textu na obrazovke. Skontrolujte chýbajúce časovanie a zabezpečte, aby koniec každého bloku nasledoval po jeho začiatku. Zoskupovanie titulkov a formátovanie súboru sú aplikačné kroky založené na vrátenom zarovnaní a spôsob zobrazenia má vyhovovať prehrávaču aj publiku.</p><p>Zdokumentované ovládacie prvky Transcribe 1 sú zvuk, jazyková pomôcka a voľba časových značiek. Značky hovoriacich, štruktúrované repliky, ovládanie emocionálnych udalostí a pomôcky pre počet hovoriacich v Pro sú samostatné funkcie; nie sú súčasťou zdokumentovaného kontraktu odpovede tohto základného modelu. Požadovaný výsledok vyberte pred spracovaním: obyčajný čitateľný text na poznámku alebo text spolu so zarovnaním pre navigáciu pri prehrávaní a titulky. Zachovanie identifikátora klipu, prepisu a dostupného časovania robí výsledok užitočným pre ďalší krok aplikácie.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Dostupné v Ailoot · vstupy a metódy</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Prepis zvuku</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Vstup</dt><dd><code>audio</code></dd></div><div><dt>Výstup</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Pole</th><th>Typ</th><th>Požiadavka</th><th>Hodnoty a limity</th><th>Predvolené</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žiadavka\"><span class=\"card-cell-label\">Požiadavka</span>Povinné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>fish-audio/transcribe-1</div></td><td data-cell-label=\"Predvolené\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predvolené</span>—</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">input_audio</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žiadavka\"><span class=\"card-cell-label\">Požiadavka</span>Povinné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span></td><td data-cell-label=\"Predvolené\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predvolené</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Parametre a životný cyklus metódy</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Špecifikácia</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=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</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=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</span>model, input_audio</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=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</span>audio</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_conditions</code></th><td data-cell-label=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</span>Príklad načíta váš skutočný neprázdny súbor PCM WAV, zakóduje všetky jeho bajty do base64 a odošle input_audio.format s hodnotou wav.</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> · presné task_id z existujúceho mediálneho záznamu vo vašom vlastníctve</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\">Cenník</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.</p><dl data-price-conditions><dt>Rýchly režim</dt><dd>Neuvedené <span class=\"note-s\">Keď je zvolený rýchly režim</span></dd><dt>Režim Flex</dt><dd>Neuvedené <span class=\"note-s\">Keď je zvolený režim flex</span></dd><dt>Maximálna úroveň uvažovania</dt><dd>Neuvedené <span class=\"note-s\">Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Sadzby Ailoot</h4><h4>Ceny podľa konfigurácie</h4><p class=\"note-s\">Každý poplatok priraďte k zobrazeným podmienkam. Pre každú skupinu alternatívnych konfigurácií použite jednu sadzbu.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurácia</th><th>Sadzobník</th><th>Účtovacia jednotka</th><th>Poplatok</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurácia\" scope=\"row\"><span class=\"card-cell-label\">Konfigurácia</span>Základné sadzby za tokeny</th><td data-cell-label=\"Sadzobník\"><span class=\"card-cell-label\">Sadzobník</span>Základná sadzba</td><td data-cell-label=\"Účtovacia jednotka\"><span class=\"card-cell-label\">Účtovacia jednotka</span>—</td><td data-cell-label=\"Poplatok\"><span class=\"card-cell-label\">Poplatok</span><div><span>Vstup · Vstupné tokeny</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenov</span></div><div><span>Výstup · Výstupné tokeny</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenov</span></div><div><span>Vstup · Čítanie cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenov</span></div><div><span>Vstup · Zápis do cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenov</span></div><div><span>Vstup · Zápis do cache, 1 hod</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenov</span></div></td></tr><tr><th data-cell-label=\"Konfigurácia\" scope=\"row\"><span class=\"card-cell-label\">Konfigurácia</span>sekunda vstupného zvuku</th><td data-cell-label=\"Sadzobník\"><span class=\"card-cell-label\">Sadzobník</span>—</td><td data-cell-label=\"Účtovacia jednotka\"><span class=\"card-cell-label\">Účtovacia jednotka</span>za sekundu vstupného audia</td><td data-cell-label=\"Poplatok\"><span class=\"card-cell-label\">Poplatok</span><div><span>Vstup · sekunda vstupného zvuku</span> <b>$0.0002</b> <span class=\"price-unit\">za sekundu vstupného audia</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. <a href=\"/docs/sk/billing/reserve/\">Ako funguje rezervácia a vyúčtovanie →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Príklady požiadaviek</h3><h4>Ailoot Ultra · Prepis zvuku</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-1361-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1361-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · skutočný súbor WAV a úplný pôvodný výsledok</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Skopírovať 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-1361-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1361-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;fish-audio/transcribe-1&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#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/transcriptions \\\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 original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Prijať a uložiť výsledky</h3><h4>Ailoot Ultra · Prepis zvuku</h4><p class=\"note-s\">Celé pôvodné telo odpovede, stav a preposlané hlavičky. Tento obslužný kód nepridáva žiadnu univerzálnu štruktúru JSON, textové pole ani obálku úlohy.</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Uchovať všetky dokončené výsledky</h5><p class=\"note-s\">Uložte každú úplnú vrátenú odpoveď, súbor a časť obsahu.</p><p class=\"note-s\">Uchovajte úplnú odpoveď a hlavičky, všetky skutočné výstupy, pôvodné vrátené identifikátory a všetky polia s údajmi o spotrebe. Obnovte pôvodnú operáciu bez opätovného odoslania požiadavky na vytvorenie.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Ak treba overiť pôvodnú odpoveď</h5><p class=\"note-s\">Zachovajte skutočné X-Client-Request-ID a celú odpoveď. Načítajte pôvodné súbory vo vašom vlastníctve a ich presné podpísané URL obsahu; neisté vytvorenie nikdy znova neodosielajte.</p></div><details class=\"card-about\" data-output-fields><summary>Polia odpovede</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Pole</th><th>Typ</th></tr></thead><tbody><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">text (when present)</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span></td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Chyby a ďalšie kroky</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Odpoveď</th><th>Podmienka</th><th>Ďalší krok</th></tr></thead><tbody><tr><th data-cell-label=\"Odpoveď\" scope=\"row\"><span class=\"card-cell-label\">Odpoveď</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Podmienka\"><span class=\"card-cell-label\">Podmienka</span>Telo JSON alebo explicitné kanonické ID modelu sú neplatné.</td><td data-cell-label=\"Ďalší krok\"><span class=\"card-cell-label\">Ďalší krok</span>Zachovajte odpoveď a opravte označené pole požiadavky.</td></tr><tr><th data-cell-label=\"Odpoveď\" scope=\"row\"><span class=\"card-cell-label\">Odpoveď</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Podmienka\"><span class=\"card-cell-label\">Podmienka</span>Kľúč API služby Ailoot je neplatný.</td><td data-cell-label=\"Ďalší krok\"><span class=\"card-cell-label\">Ďalší krok</span>Použite svoj autorizovaný kľúč API služby Ailoot.</td></tr><tr><th data-cell-label=\"Odpoveď\" scope=\"row\"><span class=\"card-cell-label\">Odpoveď</span>403 · <code>permission_error</code></th><td data-cell-label=\"Podmienka\"><span class=\"card-cell-label\">Podmienka</span>Skupina kľúča nepovoľuje túto metódu.</td><td data-cell-label=\"Ďalší krok\"><span class=\"card-cell-label\">Ďalší krok</span>Zachovajte vrátené podrobnosti chyby.</td></tr><tr><th data-cell-label=\"Odpoveď\" scope=\"row\"><span class=\"card-cell-label\">Odpoveď</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Podmienka\"><span class=\"card-cell-label\">Podmienka</span>Vybraná metóda nemá povolenú trasu.</td><td data-cell-label=\"Ďalší krok\"><span class=\"card-cell-label\">Ďalší krok</span>Zachovajte vrátené podrobnosti chyby.</td></tr><tr><th data-cell-label=\"Odpoveď\" scope=\"row\"><span class=\"card-cell-label\">Odpoveď</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Podmienka\"><span class=\"card-cell-label\">Podmienka</span>Prijatá tarifa nedokáže získať požadované množstvo vstupu alebo jeho hranicu.</td><td data-cell-label=\"Ďalší krok\"><span class=\"card-cell-label\">Ďalší krok</span>Zachovajte odpoveď; použite reprezentáciu vstupu vyžadovanú prijatou tarifou.</td></tr><tr><th data-cell-label=\"Odpoveď\" scope=\"row\"><span class=\"card-cell-label\">Odpoveď</span>503 · <code></code></th><td data-cell-label=\"Podmienka\"><span class=\"card-cell-label\">Podmienka</span>Požadované úložisko, trasa, cena metódy alebo rezervácia nie sú dostupné.</td><td data-cell-label=\"Ďalší krok\"><span class=\"card-cell-label\">Ďalší krok</span>Zachovajte celú pôvodnú odpoveď. Neistá rezervácia nie je povolením na opätovné odoslanie.</td></tr><tr><th data-cell-label=\"Odpoveď\" scope=\"row\"><span class=\"card-cell-label\">Odpoveď</span>502 · <code>server_error</code></th><td data-cell-label=\"Podmienka\"><span class=\"card-cell-label\">Podmienka</span>Pôvodný výsledok, spotreba alebo zúčtovanie vyžadujú kontrolu.</td><td data-cell-label=\"Ďalší krok\"><span class=\"card-cell-label\">Ďalší krok</span>Zachovajte skutočné ID požiadavky a pôvodnú odpoveď. Načítajte existujúci záznam vo vašom vlastníctve; vytvorenie znova neodosielajte.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasy</h3><h4>Aliasy modelov</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=fish-audio%2Ftranscribe-1&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1</code></a></span></p><h4>Aliasy ciest metód</h4><p class=\"note-s\">Použite cesty metód uvedené vyššie.</p><h4>Súvisiace ID na volanie</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Ftranscribe-1&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/transcribe-1",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|fish-audio%2Ftranscribe-1",
      "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.",
            "errors": [
              {
                "code": null,
                "condition": "Telo JSON alebo explicitné kanonické ID modelu sú neplatné.",
                "http_status": 400,
                "recovery": "Zachovajte odpoveď a opravte označené pole požiadavky.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Kľúč API služby Ailoot je neplatný.",
                "http_status": 401,
                "recovery": "Použite svoj autorizovaný kľúč API služby Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Skupina kľúča nepovoľuje túto metódu.",
                "http_status": 403,
                "recovery": "Zachovajte vrátené podrobnosti chyby.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Vybraná metóda nemá povolenú trasu.",
                "http_status": 404,
                "recovery": "Zachovajte vrátené podrobnosti chyby.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Prijatá tarifa nedokáže získať požadované množstvo vstupu alebo jeho hranicu.",
                "http_status": 422,
                "recovery": "Zachovajte odpoveď; použite reprezentáciu vstupu vyžadovanú prijatou tarifou.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Požadované úložisko, trasa, cena metódy alebo rezervácia nie sú dostupné.",
                "http_status": 503,
                "recovery": "Zachovajte celú pôvodnú odpoveď. Neistá rezervácia nie je povolením na opätovné odoslanie.",
                "type": null
              },
              {
                "code": null,
                "condition": "Pôvodný výsledok, spotreba alebo zúčtovanie vyžadujú kontrolu.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Zachovajte skutočné ID požiadavky a pôvodnú odpoveď. Načítajte existujúci záznam vo vašom vlastníctve; vytvorenie znova neodosielajte.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Zachovajte skutočné X-Client-Request-ID a celú odpoveď. Načítajte pôvodné súbory vo vašom vlastníctve a ich presné podpísané URL obsahu; neisté vytvorenie nikdy znova neodosielajte."
            },
            "outputs": {
              "all_results": "Uchovajte úplnú odpoveď a hlavičky, všetky skutočné výstupy, pôvodné vrátené identifikátory a všetky polia s údajmi o spotrebe. Obnovte pôvodnú operáciu bez opätovného odoslania požiadavky na vytvorenie.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Celé pôvodné telo odpovede, stav a preposlané hlavičky. Tento obslužný kód nepridáva žiadnu univerzálnu štruktúru JSON, textové pole ani obálku úlohy."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "fish-audio/transcribe-1"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "fish-audio/transcribe-1"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Príklad načíta váš skutočný neprázdny súbor PCM WAV, zakóduje všetky jeho bajty do base64 a odošle input_audio.format s hodnotou wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "presné task_id z existujúceho mediálneho záznamu vo vašom vlastníctve",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "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": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\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/transcriptions \\\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 original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "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": [
          "audio"
        ],
        "label": "Prepis zvuku",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0002
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/transcribe-1",
        "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.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/transcribe-1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "dce1ca91f8f6728606061cb33eb683cb340f919317af1ce0d015f33a04020d03",
    "input_html_sha256": "2c87ea1d33a58a64d2f758f68fef392de93c95657e206bc7bf76d0f86181afb2",
    "private_audit_sha256": "7aaa0b705a4f959e111857cff913d0551c34f794c5ca780075e4662962044df7",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/sk/fish-audio-transcribe-1/",
    "description": "Transcribe 1 prevádza krátke zvukové nahrávky na text s automatickým rozpoznaním jazyka a voliteľnými časovými značkami jednotlivých slov. Prepis využite na hlasové poznámky, prehľadávateľné klipy alebo prípravu titulkov a časované úseky uchovávajte oddelene od čitateľného úplného textu.",
    "locale": "sk",
    "md_url": "https://ailoot.ai/models/sk/fish-audio-transcribe-1/index.md",
    "title": "Fish Audio: Transcribe 1 — Ailoot",
    "url": "https://ailoot.ai/models/sk/fish-audio-transcribe-1/"
  },
  "rawModel": {
    "about": "Transcribe 1 je všeobecný model spoločnosti Fish Audio na prevod reči na text pri krátkych nahrávkach. Prijíma zvukový súbor a vracia rozpoznané slová ako text spolu s trvaním nahrávky, voliteľnými časovanými úsekmi a informáciami o jazyku, ak sú známe. Tento model je užitočný na krátku hlasovú poznámku, hovorený pokyn, výňatok z nahrávky alebo zvukový klip, ktorý potrebuje čitateľnú textovú podobu.\n\nIlustračný postup s hlasovou poznámkou uchováva nahrávku spolu s úplným prepisom a identifikátorom pôvodného klipu. Neskorší krok aplikácie môže text prehľadávať, usporiadať poznámku alebo vytvoriť zhrnutie pri zachovaní hovoreného zdroja. Pri príkaze prepis poskytuje aplikácii rozpoznané slová; každá akcia je samostatným krokom interpretácie a vykonania. Pri výňatku z rozhovoru zaznamenajte polohu klipu v celej nahrávke, aby sa citácia dala skontrolovať na správnom mieste.\n\nVýrobca prijíma WAV, MP3, AAC vrátane M4A/MP4, FLAC a Ogg obsahujúci Opus alebo Vorbis. Nahrávky prehliadača vo WebM treba pre tento model skonvertovať na Ogg/Opus, MP3 alebo WAV; Pro dokumentuje natívnu podporu ďalších kontajnerov. Na jednu požiadavku dodajte jeden zvukový súbor. Zdokumentovaný limit požiadavky základného modelu je najviac 50 MiB, pričom súbory MP3 a Opus musia byť menšie než 25 MiB. Veľkosť súboru a dĺžka nahrávky sú odlišné hľadiská: komprimovaný súbor sa môže zmestiť do limitu nahrávania, ale jeho spracovanie môže trvať príliš dlho.\n\nTranscribe 1 je určený na krátke nahrávky. Pri zvuku dlhšom než niekoľko minút výrobca odporúča Pro; dlhá požiadavka na základný model môže zlyhať pri prekročení časového limitu spracovania. Pri príprave dlhšieho zdroja na prepis krátkych klipov zachovajte počiatočný časový posun každého klipu a pred spojením výsledkov potvrďte, že vrátený prepis pokrýva celý klip. K miestnym časom úsekov pripočítajte pôvodný posun, aby navigácia zostala prepojená s celou nahrávkou. Pokyny základného modelu nemožno vykladať ako samostatný 60-minútový limit Pro.\n\nOdpoveď výrobcu obsahuje text, trvanie a úseky. Trvanie je vyjadrené v sekundách a čitateľný úplný prepis sa má uchovať ako hlavné znenie klipu. Časové značky sú voliteľné: ignore_timestamps má v API výrobcu predvolenú hodnotu true, zatiaľ čo false vyžaduje úseky na úrovni slov s textom a časmi začiatku a konca v sekundách. Požiadavka na časové zarovnanie predlžuje spracovanie. Prázdne pole segments môže znamenať vynechané časovanie, neprítomnosť reči alebo dočasne nedostupné zarovnanie, preto sa nemá automaticky vykladať ako prázdny úplný prepis.\n\nÚseky zvyčajne predstavujú slová, pri čínštine a japončine jeden znak alebo niekoľko znakov. Ich text neobsahuje interpunkciu a hodnotu môže normalizovať inak než úplný prepis; nejde o kópiu čitateľnej odpovede znak po znaku. Úsek môže mať rovnaký čas začiatku aj konca. Úseky používajte na vyhľadanie miesta v nahrávke alebo prípravu časovaného zobrazenia a úplný text vtedy, keď záleží na znení a interpunkcii. Vo výslednom súbore tieto dve reprezentácie odlišujte.\n\nJazyk sa rozpoznáva automaticky bez ohľadu na to, či je zadaná voliteľná jazyková pomôcka. Výrobca dokumentuje pre pomôcky kódy ISO 639-1 malými písmenami a pri známom jazyku vracia jeho kód pre aplikačnú logiku aj názov pre zobrazenie. Odpoveď uvádza jeden jazyk, nie všetky jazyky nahrávky, ktorá medzi nimi prepína. Zdrojové znenie a dostupné jazykové metadáta uchovajte spolu s výsledkom a požiadavku na prepis nepovažujte za preklad.\n\nPri tvorbe titulkov spájajte nadväzujúce časované úseky do čitateľných titulkových blokov namiesto zobrazovania po jednom slove. Užitočným výstupom je súbor SRT alebo WebVTT prepojený s pôvodným klipom, s hranicami blokov podľa páuz a primeraným množstvom textu na obrazovke. Skontrolujte chýbajúce časovanie a zabezpečte, aby koniec každého bloku nasledoval po jeho začiatku. Zoskupovanie titulkov a formátovanie súboru sú aplikačné kroky založené na vrátenom zarovnaní a spôsob zobrazenia má vyhovovať prehrávaču aj publiku.\n\nZdokumentované ovládacie prvky Transcribe 1 sú zvuk, jazyková pomôcka a voľba časových značiek. Značky hovoriacich, štruktúrované repliky, ovládanie emocionálnych udalostí a pomôcky pre počet hovoriacich v Pro sú samostatné funkcie; nie sú súčasťou zdokumentovaného kontraktu odpovede tohto základného modelu. Požadovaný výsledok vyberte pred spracovaním: obyčajný čitateľný text na poznámku alebo text spolu so zarovnaním pre navigáciu pri prehrávaní a titulky. Zachovanie identifikátora klipu, prepisu a dostupného časovania robí výsledok užitočným pre ďalší krok aplikácie.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "Úplný cenník konfigurácie nájdete v podrobnostiach."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "fish-audio/transcribe-1",
    "input": [
      "audio"
    ],
    "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.",
            "errors": [
              {
                "code": null,
                "condition": "Telo JSON alebo explicitné kanonické ID modelu sú neplatné.",
                "http_status": 400,
                "recovery": "Zachovajte odpoveď a opravte označené pole požiadavky.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Kľúč API služby Ailoot je neplatný.",
                "http_status": 401,
                "recovery": "Použite svoj autorizovaný kľúč API služby Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Skupina kľúča nepovoľuje túto metódu.",
                "http_status": 403,
                "recovery": "Zachovajte vrátené podrobnosti chyby.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Vybraná metóda nemá povolenú trasu.",
                "http_status": 404,
                "recovery": "Zachovajte vrátené podrobnosti chyby.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Prijatá tarifa nedokáže získať požadované množstvo vstupu alebo jeho hranicu.",
                "http_status": 422,
                "recovery": "Zachovajte odpoveď; použite reprezentáciu vstupu vyžadovanú prijatou tarifou.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Požadované úložisko, trasa, cena metódy alebo rezervácia nie sú dostupné.",
                "http_status": 503,
                "recovery": "Zachovajte celú pôvodnú odpoveď. Neistá rezervácia nie je povolením na opätovné odoslanie.",
                "type": null
              },
              {
                "code": null,
                "condition": "Pôvodný výsledok, spotreba alebo zúčtovanie vyžadujú kontrolu.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Zachovajte skutočné ID požiadavky a pôvodnú odpoveď. Načítajte existujúci záznam vo vašom vlastníctve; vytvorenie znova neodosielajte.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Zachovajte skutočné X-Client-Request-ID a celú odpoveď. Načítajte pôvodné súbory vo vašom vlastníctve a ich presné podpísané URL obsahu; neisté vytvorenie nikdy znova neodosielajte."
            },
            "outputs": {
              "all_results": "Uchovajte úplnú odpoveď a hlavičky, všetky skutočné výstupy, pôvodné vrátené identifikátory a všetky polia s údajmi o spotrebe. Obnovte pôvodnú operáciu bez opätovného odoslania požiadavky na vytvorenie.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Celé pôvodné telo odpovede, stav a preposlané hlavičky. Tento obslužný kód nepridáva žiadnu univerzálnu štruktúru JSON, textové pole ani obálku úlohy."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "fish-audio/transcribe-1"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "fish-audio/transcribe-1"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Príklad načíta váš skutočný neprázdny súbor PCM WAV, zakóduje všetky jeho bajty do base64 a odošle input_audio.format s hodnotou wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "presné task_id z existujúceho mediálneho záznamu vo vašom vlastníctve",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "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": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\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/transcriptions \\\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 original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "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": [
          "audio"
        ],
        "label": "Prepis zvuku",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0002
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/transcribe-1",
        "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.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/transcribe-1",
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: Transcribe 1",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Transcribe 1 prevádza krátke zvukové nahrávky na text s automatickým rozpoznaním jazyka a voliteľnými časovými značkami jednotlivých slov. Prepis využite na hlasové poznámky, prehľadávateľné klipy alebo prípravu titulkov a časované úseky uchovávajte oddelene od čitateľného úplného textu."
  },
  "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": "Transcribe 1 prevádza krátke zvukové nahrávky na text s automatickým rozpoznaním jazyka a voliteľnými časovými značkami jednotlivých slov. Prepis využite na hlasové poznámky, prehľadávateľné klipy alebo prípravu titulkov a časované úseky uchovávajte oddelene od čitateľného úplného textu.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "496646dc7843b001474b111d06ea3318fe1617439790f6292954f8def5c44e38",
    "renderer_sha256": "94893ba0fa4d7b7d32370787b705f436a4c2569f84ec7b33063549adc74b07e0"
  },
  "sourceRevision": "aaf1b07fe825c42c27d1cfb5df106e24045ad00a4b1d931f4e530d9bd8f5a262"
}
