{
  "aboutHtml": "<p>Grok Text to Speech je schopnost převodu textu na zvuk hlasové rodiny Grok. Výrobce dokumentuje expresivní vestavěné mluvčí, vložené hlasové pokyny a výstupní formáty vhodné pro přehrávání médií nebo telefonní zvuk. Vstupem je text určený k vyslovení spolu s volbou hlasu a jazyka. Výsledná nahrávka je řečí z tohoto textu; rozpoznávání řeči a konverzační modely převodu řeči na řeč mají samostatné úkoly.</p><h4>Hlas, jazyk a mluvený text</h4><p>Katalog výrobce dává každému hlasu profil přednesu. Ara je vřelá a přátelská, Eve je veselá s britským přízvukem a Rex je popsán jako jasný a sebejistý. Hlas a jazyk jsou v dokumentované rodině nezávislé: vestavění mluvčí mohou používat každou podporovanou volbu jazyka. Příručka uvádí dvacet možností jazykových kódů včetně regionálních variant a podporuje také automatické rozpoznání jazyka. Vedle vestavěných mluvčích výrobce dokumentuje opakovaně použitelné vlastní hlasy vytvořené z referenční nahrávky a vybírané pomocí voice_id pro úplnou či streamovanou syntézu. Referenční zvuk může mít až 120 sekund; pro zachycení přednesu a intonace se doporučuje 90–120 sekund čisté řeči jednoho mluvčího. Referenci, vytvořený profil hlasu a generovanou nahrávku uchovávejte jako samostatné výstupy a referenční přednes slaďte se zamýšleným scénářem.</p><p>Připravte konečné mluvené znění a zachovejte zamýšlený jazyk jmen a citovaných pasáží. U namluveného průvodce je užitečná věta: „Vyberte téma, poslechněte si krátký úvod a otevřete oddíl, který chcete prozkoumat.“ Potřebuje-li značka nebo odborný termín zvláštní čtení, nástroje nahrazování výrobce mohou dodat upravený zápis nebo výslovnost IPA bez změny zobrazovaného zdrojového textu. Samostatná volba normalizace textu převádí psaná čísla, zkratky a symboly směrem k jejich mluvené podobě.</p><h4>Pokyny k přednesu</h4><p>Vložené značky umisťují událost do konkrétního bodu, například pauzu, smích, povzdech nebo nádech. Obalující značky aplikují přednes na úplnou frázi, například šeptání, důraz nebo pomalejší pasáž. Pokyn umístěte tam, kde jej vyžaduje význam, a slova ponechte čitelná. Příručka doporučuje stylové úseky přes celé fráze a interpunkci místo hromady nesouvisejících značek.</p><p>U expresivní repliky postavy připravte společně mluvenou větu a změnu přednesu. U vysvětlení zachovejte jasný rytmus, který posluchači pomáhá sledovat kroky. Dokumentovaný rozsah rychlosti řeči je 0.7 až 1.5, s hodnotou 1.0 pro běžný přednes. Volba rychlosti mění mluvené tempo; nemění slova, která má aplikace sdělit.</p><h4>Zvuk a časování</h4><p>Výrobce dokumentuje výstupy MP3, WAV, surový PCM, mu-law a A-law. Podporované možnosti vzorkovací frekvence sahají od 8 kHz do 48 kHz s konkrétně uvedenými frekvencemi mezi nimi. Výchozí konfigurace MP3 je 24 kHz při 128 kbit/s. Použijte zvukové vyjádření, kterému rozumí zamýšlený přehrávač, fáze úprav nebo telefonní přenos.</p><p>Volitelné časování znaků spojuje vrácenou posloupnost znaků s počátečními a koncovými časy. Bez nahrazení výslovnosti tato posloupnost odpovídá vstupu; náhrady ji mohou změnit na mluvený text. Může podporovat průběžné čtení na obrazovce, zvýrazňování nebo zarovnání s vizuálním přednesem. V postupu úplné odpovědi změní vyžádání časování výstup na obálku obsahující kódovaný zvuk a časová data. Časování a zvuk považujte za spojený výsledek, zvláště když normalizace textu rozepíše psaný symbol do několika mluvených slov.</p><h4>Úplné nebo streamované generování</h4><p>Výrobce nabízí cestu úplného požadavku a obousměrné streamování, při kterém přicházejí textové fragmenty a vracejí se zvukové části během generování promluvy. Dokumentuje limit 60 000 znaků pro úplný požadavek i pro jednotlivý streamovaný textový fragment. Dokončení nebo vymazání promluvy má ve streamovaném postupu výslovnou roli.</p><p>U delšího vyprávění vybírejte souvislé hranice pasáží a u každého výsledku uchovejte scénář. U interaktivního přehrávání odlišujte text odeslaný k syntéze od zvuku, který již posluchač slyšel. Užitečným výstupem je namluvený scénář se záměrnými pokyny k přednesu, vhodným zvukovým formátem a časovými daty, pokud je aplikace potřebuje. Se zvukem uchovávejte scénář, vybraný hlas, pokyny k přednesu a výstupní nastavení, aby pozdější úpravy zachovaly zamýšlené podání.</p>",
  "aboutText": "Grok Text to Speech je schopnost převodu textu na zvuk hlasové rodiny Grok. Výrobce dokumentuje expresivní vestavěné mluvčí, vložené hlasové pokyny a výstupní formáty vhodné pro přehrávání médií nebo telefonní zvuk. Vstupem je text určený k vyslovení spolu s volbou hlasu a jazyka. Výsledná nahrávka je řečí z tohoto textu; rozpoznávání řeči a konverzační modely převodu řeči na řeč mají samostatné úkoly.\n\n### Hlas, jazyk a mluvený text\n\nKatalog výrobce dává každému hlasu profil přednesu. Ara je vřelá a přátelská, Eve je veselá s britským přízvukem a Rex je popsán jako jasný a sebejistý. Hlas a jazyk jsou v dokumentované rodině nezávislé: vestavění mluvčí mohou používat každou podporovanou volbu jazyka. Příručka uvádí dvacet možností jazykových kódů včetně regionálních variant a podporuje také automatické rozpoznání jazyka. Vedle vestavěných mluvčích výrobce dokumentuje opakovaně použitelné vlastní hlasy vytvořené z referenční nahrávky a vybírané pomocí voice_id pro úplnou či streamovanou syntézu. Referenční zvuk může mít až 120 sekund; pro zachycení přednesu a intonace se doporučuje 90–120 sekund čisté řeči jednoho mluvčího. Referenci, vytvořený profil hlasu a generovanou nahrávku uchovávejte jako samostatné výstupy a referenční přednes slaďte se zamýšleným scénářem.\n\nPřipravte konečné mluvené znění a zachovejte zamýšlený jazyk jmen a citovaných pasáží. U namluveného průvodce je užitečná věta: „Vyberte téma, poslechněte si krátký úvod a otevřete oddíl, který chcete prozkoumat.“ Potřebuje-li značka nebo odborný termín zvláštní čtení, nástroje nahrazování výrobce mohou dodat upravený zápis nebo výslovnost IPA bez změny zobrazovaného zdrojového textu. Samostatná volba normalizace textu převádí psaná čísla, zkratky a symboly směrem k jejich mluvené podobě.\n\n### Pokyny k přednesu\n\nVložené značky umisťují událost do konkrétního bodu, například pauzu, smích, povzdech nebo nádech. Obalující značky aplikují přednes na úplnou frázi, například šeptání, důraz nebo pomalejší pasáž. Pokyn umístěte tam, kde jej vyžaduje význam, a slova ponechte čitelná. Příručka doporučuje stylové úseky přes celé fráze a interpunkci místo hromady nesouvisejících značek.\n\nU expresivní repliky postavy připravte společně mluvenou větu a změnu přednesu. U vysvětlení zachovejte jasný rytmus, který posluchači pomáhá sledovat kroky. Dokumentovaný rozsah rychlosti řeči je 0.7 až 1.5, s hodnotou 1.0 pro běžný přednes. Volba rychlosti mění mluvené tempo; nemění slova, která má aplikace sdělit.\n\n### Zvuk a časování\n\nVýrobce dokumentuje výstupy MP3, WAV, surový PCM, mu-law a A-law. Podporované možnosti vzorkovací frekvence sahají od 8 kHz do 48 kHz s konkrétně uvedenými frekvencemi mezi nimi. Výchozí konfigurace MP3 je 24 kHz při 128 kbit/s. Použijte zvukové vyjádření, kterému rozumí zamýšlený přehrávač, fáze úprav nebo telefonní přenos.\n\nVolitelné časování znaků spojuje vrácenou posloupnost znaků s počátečními a koncovými časy. Bez nahrazení výslovnosti tato posloupnost odpovídá vstupu; náhrady ji mohou změnit na mluvený text. Může podporovat průběžné čtení na obrazovce, zvýrazňování nebo zarovnání s vizuálním přednesem. V postupu úplné odpovědi změní vyžádání časování výstup na obálku obsahující kódovaný zvuk a časová data. Časování a zvuk považujte za spojený výsledek, zvláště když normalizace textu rozepíše psaný symbol do několika mluvených slov.\n\n### Úplné nebo streamované generování\n\nVýrobce nabízí cestu úplného požadavku a obousměrné streamování, při kterém přicházejí textové fragmenty a vracejí se zvukové části během generování promluvy. Dokumentuje limit 60 000 znaků pro úplný požadavek i pro jednotlivý streamovaný textový fragment. Dokončení nebo vymazání promluvy má ve streamovaném postupu výslovnou roli.\n\nU delšího vyprávění vybírejte souvislé hranice pasáží a u každého výsledku uchovejte scénář. U interaktivního přehrávání odlišujte text odeslaný k syntéze od zvuku, který již posluchač slyšel. Užitečným výstupem je namluvený scénář se záměrnými pokyny k přednesu, vhodným zvukovým formátem a časovými daty, pokud je aplikace potřebuje. Se zvukem uchovávejte scénář, vybraný hlas, pokyny k přednesu a výstupní nastavení, aby pozdější úpravy zachovaly zamýšlené podání.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "a5c518d254e816c0d9ec6f1d7d678d60cd0a507925bd4688d20b20802cdab867",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "cs",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">SpaceXAI: Grok Voice TTS 1.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Zavřít\">×</button></div><div class=\"idline\"><span>SpaceXAI /</span><code>x-ai/grok-voice-tts-1.0</code><button type=\"button\" id=\"copy-id\">Zkopírovat ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Sekce karty modelu\"><button type=\"button\" data-card-jump=\"overview\">Úvod</button><button type=\"button\" data-card-jump=\"methods\">Vstupy a metody</button><button type=\"button\" data-card-jump=\"pricing\">Tarify</button><button type=\"button\" data-card-jump=\"examples\">Příklady</button><button type=\"button\" data-card-jump=\"results\">Výsledky</button><button type=\"button\" data-card-jump=\"aliases\">Aliasy</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metody API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|x-ai%2Fgrok-voice-tts-1.0\">Převod na řeč</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Úvod</h3><p class=\"mdesc-full\">Grok Text to Speech převádí psaný text na expresivní zvuk s volitelnými hlasy, vloženými pokyny k přednesu a více výstupními kodeky. Dokumentovaná rodina výrobce podporuje úplnou i streamovanou řeč a volitelné časování na úrovni znaků.</p><dl class=\"card-io\" data-card-io><div><dt>Přijímané vstupy</dt><dd>Text</dd></div><div><dt>Výsledky</dt><dd>Zvuk</dd></div></dl><details class=\"card-about\"><summary>O modelu</summary><p class=\"note-s\" data-model-method-boundary>Tento popis zahrnuje schopnosti modelu. Vstupy, výstupy a možnosti dostupné v Ailoot jsou uvedeny níže pro vybranou metodu.</p><div class=\"mabout\" id=\"m-about\"><p>Grok Text to Speech je schopnost převodu textu na zvuk hlasové rodiny Grok. Výrobce dokumentuje expresivní vestavěné mluvčí, vložené hlasové pokyny a výstupní formáty vhodné pro přehrávání médií nebo telefonní zvuk. Vstupem je text určený k vyslovení spolu s volbou hlasu a jazyka. Výsledná nahrávka je řečí z tohoto textu; rozpoznávání řeči a konverzační modely převodu řeči na řeč mají samostatné úkoly.</p><h4>Hlas, jazyk a mluvený text</h4><p>Katalog výrobce dává každému hlasu profil přednesu. Ara je vřelá a přátelská, Eve je veselá s britským přízvukem a Rex je popsán jako jasný a sebejistý. Hlas a jazyk jsou v dokumentované rodině nezávislé: vestavění mluvčí mohou používat každou podporovanou volbu jazyka. Příručka uvádí dvacet možností jazykových kódů včetně regionálních variant a podporuje také automatické rozpoznání jazyka. Vedle vestavěných mluvčích výrobce dokumentuje opakovaně použitelné vlastní hlasy vytvořené z referenční nahrávky a vybírané pomocí voice_id pro úplnou či streamovanou syntézu. Referenční zvuk může mít až 120 sekund; pro zachycení přednesu a intonace se doporučuje 90–120 sekund čisté řeči jednoho mluvčího. Referenci, vytvořený profil hlasu a generovanou nahrávku uchovávejte jako samostatné výstupy a referenční přednes slaďte se zamýšleným scénářem.</p><p>Připravte konečné mluvené znění a zachovejte zamýšlený jazyk jmen a citovaných pasáží. U namluveného průvodce je užitečná věta: „Vyberte téma, poslechněte si krátký úvod a otevřete oddíl, který chcete prozkoumat.“ Potřebuje-li značka nebo odborný termín zvláštní čtení, nástroje nahrazování výrobce mohou dodat upravený zápis nebo výslovnost IPA bez změny zobrazovaného zdrojového textu. Samostatná volba normalizace textu převádí psaná čísla, zkratky a symboly směrem k jejich mluvené podobě.</p><h4>Pokyny k přednesu</h4><p>Vložené značky umisťují událost do konkrétního bodu, například pauzu, smích, povzdech nebo nádech. Obalující značky aplikují přednes na úplnou frázi, například šeptání, důraz nebo pomalejší pasáž. Pokyn umístěte tam, kde jej vyžaduje význam, a slova ponechte čitelná. Příručka doporučuje stylové úseky přes celé fráze a interpunkci místo hromady nesouvisejících značek.</p><p>U expresivní repliky postavy připravte společně mluvenou větu a změnu přednesu. U vysvětlení zachovejte jasný rytmus, který posluchači pomáhá sledovat kroky. Dokumentovaný rozsah rychlosti řeči je 0.7 až 1.5, s hodnotou 1.0 pro běžný přednes. Volba rychlosti mění mluvené tempo; nemění slova, která má aplikace sdělit.</p><h4>Zvuk a časování</h4><p>Výrobce dokumentuje výstupy MP3, WAV, surový PCM, mu-law a A-law. Podporované možnosti vzorkovací frekvence sahají od 8 kHz do 48 kHz s konkrétně uvedenými frekvencemi mezi nimi. Výchozí konfigurace MP3 je 24 kHz při 128 kbit/s. Použijte zvukové vyjádření, kterému rozumí zamýšlený přehrávač, fáze úprav nebo telefonní přenos.</p><p>Volitelné časování znaků spojuje vrácenou posloupnost znaků s počátečními a koncovými časy. Bez nahrazení výslovnosti tato posloupnost odpovídá vstupu; náhrady ji mohou změnit na mluvený text. Může podporovat průběžné čtení na obrazovce, zvýrazňování nebo zarovnání s vizuálním přednesem. V postupu úplné odpovědi změní vyžádání časování výstup na obálku obsahující kódovaný zvuk a časová data. Časování a zvuk považujte za spojený výsledek, zvláště když normalizace textu rozepíše psaný symbol do několika mluvených slov.</p><h4>Úplné nebo streamované generování</h4><p>Výrobce nabízí cestu úplného požadavku a obousměrné streamování, při kterém přicházejí textové fragmenty a vracejí se zvukové části během generování promluvy. Dokumentuje limit 60 000 znaků pro úplný požadavek i pro jednotlivý streamovaný textový fragment. Dokončení nebo vymazání promluvy má ve streamovaném postupu výslovnou roli.</p><p>U delšího vyprávění vybírejte souvislé hranice pasáží a u každého výsledku uchovejte scénář. U interaktivního přehrávání odlišujte text odeslaný k syntéze od zvuku, který již posluchač slyšel. Užitečným výstupem je namluvený scénář se záměrnými pokyny k přednesu, vhodným zvukovým formátem a časovými daty, pokud je aplikace potřebuje. Se zvukem uchovávejte scénář, vybraný hlas, pokyny k přednesu a výstupní nastavení, aby pozdější úpravy zachovaly zamýšlené podání.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Dostupné v Ailoot · vstupy a metody</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Převod na řeč</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Vstup</dt><dd><code>text</code></dd></div><div><dt>Výstup</dt><dd><code>audio</code></dd></div><div><dt>Výstupní formát</dt><dd>mp3</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Pole</th><th>Typ</th><th>Požadavek</th><th>Hodnoty a limity</th><th>Výchozí</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Požadavek\"><span class=\"card-cell-label\">Požadavek</span>Povinné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>x-ai/grok-voice-tts-1.0</div></td><td data-cell-label=\"Výchozí\" data-default=\"unspecified\"><span class=\"card-cell-label\">Výchozí</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Požadavek\"><span class=\"card-cell-label\">Požadavek</span>Povinné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>Minimální délka: 1</div><div>Maximální délka: 15 000</div><div>Jednotka: znaky Unicode</div></td><td data-cell-label=\"Výchozí\" data-default=\"unspecified\"><span class=\"card-cell-label\">Výchozí</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Požadavek\"><span class=\"card-cell-label\">Požadavek</span>Povinné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>eve, ara, rex, sal, leo</div></td><td data-cell-label=\"Výchozí\" data-default=\"unspecified\"><span class=\"card-cell-label\">Výchozí</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Požadavek\"><span class=\"card-cell-label\">Požadavek</span>Povinné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>mp3</div></td><td data-cell-label=\"Výchozí\" data-default=\"unspecified\"><span class=\"card-cell-label\">Výchozí</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinace vstupních materiálů</summary><p class=\"note-s\"><b>text_to_speech</b> · Povinné: input</p></details><details class=\"note-s\" data-method-contract><summary>Parametry a životní cyklus metody</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametr</th><th>Kontrakt</th></tr></thead><tbody><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>content_type</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>application/json</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>required</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>model, input, voice, response_format</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>voice_ids</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>eve, ara, rex, sal, leo</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>response_format</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>mp3</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>max_input_characters</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>15000</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>other_options</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>false</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>input</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>přesný text UTF-8; počet znaků Unicode bez normalizace</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>material_types</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>text</td></tr></tbody></table></div><p>Životní cyklus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · skutečně vrácené task_id nebo záznam v knihovně médií</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">Vyberte přesný hlas z tohoto profilu modelu.</p><p class=\"note-s\">Vstupní znaky a sekundy zvuku jsou různé měrné jednotky.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarify</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.</p><dl data-price-conditions><dt>Rychlý režim</dt><dd>Neuvedeno <span class=\"note-s\">Při výběru rychlého režimu</span></dd><dt>Režim flex</dt><dd>Neuvedeno <span class=\"note-s\">Při výběru režimu flex</span></dd><dt>Maximální intenzita uvažování</dt><dd>Neuvedeno <span class=\"note-s\">Když se při maximální intenzitě uvažování použije výchozí úprava (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Sazby Ailoot</h4><h4>Ceny podle konfigurace</h4><p class=\"note-s\">Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurace</th><th>Tabulka sazeb</th><th>Účtované množství</th><th>Účtovací jednotka</th><th>Poplatek</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurace\" scope=\"row\"><span class=\"card-cell-label\">Konfigurace</span>Základní sazby za tokeny</th><td data-cell-label=\"Tabulka sazeb\"><span class=\"card-cell-label\">Tabulka sazeb</span>Základní sazba</td><td data-cell-label=\"Účtované množství\"><span class=\"card-cell-label\">Účtované množství</span>—</td><td data-cell-label=\"Účtovací jednotka\"><span class=\"card-cell-label\">Účtovací jednotka</span>—</td><td data-cell-label=\"Poplatek\"><span class=\"card-cell-label\">Poplatek</span><div><span>Vstup · Vstupní tokeny</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenů</span></div><div><span>Výstup · Výstupní tokeny</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenů</span></div><div><span>Vstup · Čtení z mezipaměti</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenů</span></div><div><span>Vstup · Zápis do mezipaměti</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenů</span></div><div><span>Vstup · Zápis do mezipaměti, 1 hodina</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenů</span></div></td></tr><tr><th data-cell-label=\"Konfigurace\" scope=\"row\"><span class=\"card-cell-label\">Konfigurace</span>Ultra</th><td data-cell-label=\"Tabulka sazeb\"><span class=\"card-cell-label\">Tabulka sazeb</span>—</td><td data-cell-label=\"Účtované množství\"><span class=\"card-cell-label\">Účtované množství</span>Každý kódový bod Unicode se počítá jako jeden znak, včetně znaků Han.</td><td data-cell-label=\"Účtovací jednotka\"><span class=\"card-cell-label\">Účtovací jednotka</span>za 1K vstupních znaků</td><td data-cell-label=\"Poplatek\"><span class=\"card-cell-label\">Poplatek</span><div><span>Vstup · vstupní znak</span> <b>$0.03</b> <span class=\"price-unit\">za 1K vstupních znaků</span></div></td></tr></tbody></table></div></div><div data-declared-reference-pricing><h4>Podrobnosti referenčního tarifu</h4><p class=\"note-s\">Referenční tabulky modelu nemění výběr metody, cenové nabídky ani poplatky. Skutečné poplatky používají sazby vybrané metody Ailoot.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>SpaceXAI: Grok Voice TTS 1.0</summary><h4>Ceny podle konfigurace</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurace</th><th>Podmínky účtování</th><th>Poplatek</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurace\" scope=\"row\"><span class=\"card-cell-label\">Konfigurace</span>SpaceXAI: Grok Voice TTS 1.0 · Výchozí konfigurace</th><td data-cell-label=\"Podmínky účtování\"><span class=\"card-cell-label\">Podmínky účtování</span>Výchozí konfigurace</td><td data-cell-label=\"Poplatek\"><span class=\"card-cell-label\">Poplatek</span><div><span>Vstup · Vstupní znaky</span> <b>0,00003 US$</b> <span class=\"price-unit\">za vstupní znak</span></div></td></tr></tbody></table></div></details></div><p class=\"note-s\">Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. <a href=\"/docs/cs/billing/reserve/\">Jak funguje rezervace a vyúčtování →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Příklady požadavků</h3><h4>Ailoot Ultra · Převod na řeč</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Varianty kódu\"><button class=\"cg-tab\" id=\"model-code-2731-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2731-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Zkopírovat kód\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2731-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2731-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}&quot;\nexport AILOOT_VOICE_ID\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;x-ai/grok-voice-tts-1.0&quot;, &quot;input&quot;: &quot;Good afternoon! This is a short voice take.&quot;}&#39;)\nvoice=os.environ[&quot;AILOOT_VOICE_ID&quot;]\nallowed=json.loads(&#39;[&quot;eve&quot;, &quot;ara&quot;, &quot;rex&quot;, &quot;sal&quot;, &quot;leo&quot;]&#39;)\nif voice not in allowed: raise SystemExit(&quot;Choose an accepted voice ID from this exact model profile&quot;)\np[&quot;voice&quot;]=voice\np[&quot;response_format&quot;]=&quot;mp3&quot;\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Přijímání a ukládání výsledků</h3><h4>Ailoot Ultra · Převod na řeč</h4><p class=\"note-s\">mp3</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Další načtení obsahu</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Varianty kódu\"><button class=\"cg-tab\" id=\"model-code-2732-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2732-panel-0\" aria-selected=\"true\" tabindex=\"0\">Knihovna médií</button><button class=\"cg-tab\" id=\"model-code-2732-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2732-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Stav úlohy</button><button class=\"cg-tab\" id=\"model-code-2732-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2732-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Podrobnosti souboru</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Zkopírovat kód\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2732-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2732-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-assets.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2732-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2732-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_MEDIA_TASK_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/tasks/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-task.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-task.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2732-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2732-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_ASSET_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/assets/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-asset.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-asset.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Uchovejte všechny dokončené výsledky</h5><p class=\"note-s\">Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.</p><p class=\"note-s\">Uchovejte úplný binární výsledek a hlavičky. Pokud odpověď obsahuje JSON nebo více výstupů, uchovejte všechny datové položky a stáhněte každý soubor ze skutečně vrácené podepsané URL.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Pokud je nutné ověřit původní odpověď</h5><p class=\"note-s\">Uchovejte původní operation_id/X-Client-Request-ID pro spárování záznamů bez opětovného odeslání; samostatná trasa pro dotazování na stav zvuku neexistuje.</p></div><details class=\"card-about\" data-output-fields><summary>Pole odpovědi</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\">binary audio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>bytes</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>headers</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Chyby a další kroky</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Odpověď</th><th>Podmínka</th><th>Další krok</th></tr></thead><tbody><tr><th data-cell-label=\"Odpověď\" scope=\"row\"><span class=\"card-cell-label\">Odpověď</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Podmínka\"><span class=\"card-cell-label\">Podmínka</span>Neplatná povinná pole, reprezentace podkladů nebo hodnota parametru</td><td data-cell-label=\"Další krok\"><span class=\"card-cell-label\">Další krok</span>Před novým požadavkem na vytvoření opravte uvedená pole.</td></tr><tr><th data-cell-label=\"Odpověď\" scope=\"row\"><span class=\"card-cell-label\">Odpověď</span><code>server_error</code></th><td data-cell-label=\"Podmínka\"><span class=\"card-cell-label\">Podmínka</span>Vrácená odpověď uvádí, že operaci nebo výsledek je třeba zkontrolovat</td><td data-cell-label=\"Další krok\"><span class=\"card-cell-label\">Další krok</span>Uchovejte původní vrácené ID operace nebo úlohy, hlavičky požadavku a odpověď; pokračujte v podporovaném načítání údajů o této původní operaci. Požadavek na vytvoření znovu neodesílejte.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasy</h3><h4>Aliasy modelu</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=x-ai%2Fgrok-voice-tts-1.0&amp;route=Ultra&amp;caller=x-ai%2Fgrok-voice-tts-1.0&amp;fmt=speech\"><code>x-ai/grok-voice-tts-1.0</code></a></span></p><h4>Aliasy cest metod</h4><p class=\"note-s\">Použijte cesty metod uvedené výše.</p><h4>Související ID modelů</h4><p class=\"note-s\"><a href=\"#m=x-ai%2Fgrok-voice-tts-1.0&amp;route=Ultra&amp;caller=x-ai%2Fgrok-voice-tts-1.0&amp;fmt=speech\"><code>x-ai/grok-voice-tts-1.0</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "x-ai/grok-voice-tts-1.0",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "x-ai/grok-voice-tts-1.0",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|x-ai%2Fgrok-voice-tts-1.0",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Neplatná povinná pole, reprezentace podkladů nebo hodnota parametru",
                "http_status": 400,
                "recovery": "Před novým požadavkem na vytvoření opravte uvedená pole.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Vrácená odpověď uvádí, že operaci nebo výsledek je třeba zkontrolovat",
                "http_status": null,
                "recovery": "Uchovejte původní vrácené ID operace nebo úlohy, hlavičky požadavku a odpověď; pokračujte v podporovaném načítání údajů o této původní operaci. Požadavek na vytvoření znovu neodesílejte.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Uchovejte původní operation_id/X-Client-Request-ID pro spárování záznamů bez opětovného odeslání; samostatná trasa pro dotazování na stav zvuku neexistuje."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Uchovejte úplný binární výsledek a hlavičky. Pokud odpověď obsahuje JSON nebo více výstupů, uchovejte všechny datové položky a stáhněte každý soubor ze skutečně vrácené podepsané URL.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "x-ai/grok-voice-tts-1.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": true,
                "maximum_length": 15000,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "znaky Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "eve",
                  "ara",
                  "rex",
                  "sal",
                  "leo"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Vyberte přesný hlas z tohoto profilu modelu.",
            "Vstupní znaky a sekundy zvuku jsou různé měrné jednotky."
          ],
          "input": {
            "content_type": "application/json",
            "input": "přesný text UTF-8; počet znaků Unicode bez normalizace",
            "material_types": [
              "text"
            ],
            "max_input_characters": 15000,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "eve",
              "ara",
              "rex",
              "sal",
              "leo"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "skutečně vrácené task_id nebo záznam v knihovně médií",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "5e001ac1780cc15b5437",
            "label": "SpaceXAI: Grok Voice TTS 1.0",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Výchozí konfigurace"
                },
                "label": "SpaceXAI: Grok Voice TTS 1.0 · Výchozí konfigurace",
                "units": [
                  {
                    "amount": "0.000030",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "ed8a12aff2e585a97bdf27e4",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"x-ai/grok-voice-tts-1.0\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"eve\", \"ara\", \"rex\", \"sal\", \"leo\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_character": 3e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "request_model_id": "x-ai/grok-voice-tts-1.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    }
  ],
  "model_id": "x-ai/grok-voice-tts-1.0",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "d2dd2e6a12729ca84831ba165f9a5da1090a5b09655c087c62484c6f2c033d71",
    "input_html_sha256": "9d8155cf6b806d3b76c85af1730c050d2fba9e450fa89a2edf19ced5077bf7d7",
    "private_audit_sha256": "eb34e43b88fc3f12e3af152d22deaa5135427edea87c3fb5aa0a4e2cbf31c320",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/cs/x-ai-grok-voice-tts-1-0/",
    "description": "Grok Text to Speech převádí psaný text na expresivní zvuk s volitelnými hlasy, vloženými pokyny k přednesu a více výstupními kodeky. Dokumentovaná rodina výrobce podporuje úplnou i streamovanou řeč a volitelné časování na úrovni znaků.",
    "locale": "cs",
    "md_url": "https://ailoot.ai/models/cs/x-ai-grok-voice-tts-1-0/index.md",
    "title": "SpaceXAI: Grok Voice TTS 1.0 — Ailoot",
    "url": "https://ailoot.ai/models/cs/x-ai-grok-voice-tts-1-0/"
  },
  "rawModel": {
    "about": "Grok Text to Speech je schopnost převodu textu na zvuk hlasové rodiny Grok. Výrobce dokumentuje expresivní vestavěné mluvčí, vložené hlasové pokyny a výstupní formáty vhodné pro přehrávání médií nebo telefonní zvuk. Vstupem je text určený k vyslovení spolu s volbou hlasu a jazyka. Výsledná nahrávka je řečí z tohoto textu; rozpoznávání řeči a konverzační modely převodu řeči na řeč mají samostatné úkoly.\n\n### Hlas, jazyk a mluvený text\n\nKatalog výrobce dává každému hlasu profil přednesu. Ara je vřelá a přátelská, Eve je veselá s britským přízvukem a Rex je popsán jako jasný a sebejistý. Hlas a jazyk jsou v dokumentované rodině nezávislé: vestavění mluvčí mohou používat každou podporovanou volbu jazyka. Příručka uvádí dvacet možností jazykových kódů včetně regionálních variant a podporuje také automatické rozpoznání jazyka. Vedle vestavěných mluvčích výrobce dokumentuje opakovaně použitelné vlastní hlasy vytvořené z referenční nahrávky a vybírané pomocí voice_id pro úplnou či streamovanou syntézu. Referenční zvuk může mít až 120 sekund; pro zachycení přednesu a intonace se doporučuje 90–120 sekund čisté řeči jednoho mluvčího. Referenci, vytvořený profil hlasu a generovanou nahrávku uchovávejte jako samostatné výstupy a referenční přednes slaďte se zamýšleným scénářem.\n\nPřipravte konečné mluvené znění a zachovejte zamýšlený jazyk jmen a citovaných pasáží. U namluveného průvodce je užitečná věta: „Vyberte téma, poslechněte si krátký úvod a otevřete oddíl, který chcete prozkoumat.“ Potřebuje-li značka nebo odborný termín zvláštní čtení, nástroje nahrazování výrobce mohou dodat upravený zápis nebo výslovnost IPA bez změny zobrazovaného zdrojového textu. Samostatná volba normalizace textu převádí psaná čísla, zkratky a symboly směrem k jejich mluvené podobě.\n\n### Pokyny k přednesu\n\nVložené značky umisťují událost do konkrétního bodu, například pauzu, smích, povzdech nebo nádech. Obalující značky aplikují přednes na úplnou frázi, například šeptání, důraz nebo pomalejší pasáž. Pokyn umístěte tam, kde jej vyžaduje význam, a slova ponechte čitelná. Příručka doporučuje stylové úseky přes celé fráze a interpunkci místo hromady nesouvisejících značek.\n\nU expresivní repliky postavy připravte společně mluvenou větu a změnu přednesu. U vysvětlení zachovejte jasný rytmus, který posluchači pomáhá sledovat kroky. Dokumentovaný rozsah rychlosti řeči je 0.7 až 1.5, s hodnotou 1.0 pro běžný přednes. Volba rychlosti mění mluvené tempo; nemění slova, která má aplikace sdělit.\n\n### Zvuk a časování\n\nVýrobce dokumentuje výstupy MP3, WAV, surový PCM, mu-law a A-law. Podporované možnosti vzorkovací frekvence sahají od 8 kHz do 48 kHz s konkrétně uvedenými frekvencemi mezi nimi. Výchozí konfigurace MP3 je 24 kHz při 128 kbit/s. Použijte zvukové vyjádření, kterému rozumí zamýšlený přehrávač, fáze úprav nebo telefonní přenos.\n\nVolitelné časování znaků spojuje vrácenou posloupnost znaků s počátečními a koncovými časy. Bez nahrazení výslovnosti tato posloupnost odpovídá vstupu; náhrady ji mohou změnit na mluvený text. Může podporovat průběžné čtení na obrazovce, zvýrazňování nebo zarovnání s vizuálním přednesem. V postupu úplné odpovědi změní vyžádání časování výstup na obálku obsahující kódovaný zvuk a časová data. Časování a zvuk považujte za spojený výsledek, zvláště když normalizace textu rozepíše psaný symbol do několika mluvených slov.\n\n### Úplné nebo streamované generování\n\nVýrobce nabízí cestu úplného požadavku a obousměrné streamování, při kterém přicházejí textové fragmenty a vracejí se zvukové části během generování promluvy. Dokumentuje limit 60 000 znaků pro úplný požadavek i pro jednotlivý streamovaný textový fragment. Dokončení nebo vymazání promluvy má ve streamovaném postupu výslovnou roli.\n\nU delšího vyprávění vybírejte souvislé hranice pasáží a u každého výsledku uchovejte scénář. U interaktivního přehrávání odlišujte text odeslaný k syntéze od zvuku, který již posluchač slyšel. Užitečným výstupem je namluvený scénář se záměrnými pokyny k přednesu, vhodným zvukovým formátem a časovými daty, pokud je aplikace potřebuje. Se zvukem uchovávejte scénář, vybraný hlas, pokyny k přednesu a výstupní nastavení, aby pozdější úpravy zachovaly zamýšlené podání.",
    "alias_of": null,
    "aliases": [],
    "author": "SpaceXAI",
    "available": null,
    "canonical_model": "x-ai/grok-voice-tts-1.0",
    "capabilities": {
      "context_length": 15000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ],
        "summary": "Kompletní ceník konfigurace v podrobnostech."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "speech"
    ],
    "id": "x-ai/grok-voice-tts-1.0",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Neplatná povinná pole, reprezentace podkladů nebo hodnota parametru",
                "http_status": 400,
                "recovery": "Před novým požadavkem na vytvoření opravte uvedená pole.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Vrácená odpověď uvádí, že operaci nebo výsledek je třeba zkontrolovat",
                "http_status": null,
                "recovery": "Uchovejte původní vrácené ID operace nebo úlohy, hlavičky požadavku a odpověď; pokračujte v podporovaném načítání údajů o této původní operaci. Požadavek na vytvoření znovu neodesílejte.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Uchovejte původní operation_id/X-Client-Request-ID pro spárování záznamů bez opětovného odeslání; samostatná trasa pro dotazování na stav zvuku neexistuje."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Uchovejte úplný binární výsledek a hlavičky. Pokud odpověď obsahuje JSON nebo více výstupů, uchovejte všechny datové položky a stáhněte každý soubor ze skutečně vrácené podepsané URL.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "x-ai/grok-voice-tts-1.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": true,
                "maximum_length": 15000,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "znaky Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "eve",
                  "ara",
                  "rex",
                  "sal",
                  "leo"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Vyberte přesný hlas z tohoto profilu modelu.",
            "Vstupní znaky a sekundy zvuku jsou různé měrné jednotky."
          ],
          "input": {
            "content_type": "application/json",
            "input": "přesný text UTF-8; počet znaků Unicode bez normalizace",
            "material_types": [
              "text"
            ],
            "max_input_characters": 15000,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "eve",
              "ara",
              "rex",
              "sal",
              "leo"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "skutečně vrácené task_id nebo záznam v knihovně médií",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "5e001ac1780cc15b5437",
            "label": "SpaceXAI: Grok Voice TTS 1.0",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Výchozí konfigurace"
                },
                "label": "SpaceXAI: Grok Voice TTS 1.0 · Výchozí konfigurace",
                "units": [
                  {
                    "amount": "0.000030",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "ed8a12aff2e585a97bdf27e4",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"x-ai/grok-voice-tts-1.0\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"eve\", \"ara\", \"rex\", \"sal\", \"leo\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_character": 3e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "request_model_id": "x-ai/grok-voice-tts-1.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "x-ai/grok-voice-tts-1.0",
        "request_model_id": "x-ai/grok-voice-tts-1.0",
        "route_label": "Ultra"
      }
    ],
    "name": "SpaceXAI: Grok Voice TTS 1.0",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "quoted_unit": "1000000_characters"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000030",
            "amount_unit": "usd_per_input_character",
            "conditions": {
              "quoted_unit": "1000000_characters"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    ],
    "public_id": "x-ai/grok-voice-tts-1.0",
    "short": "Grok Text to Speech převádí psaný text na expresivní zvuk s volitelnými hlasy, vloženými pokyny k přednesu a více výstupními kodeky. Dokumentovaná rodina výrobce podporuje úplnou i streamovanou řeč a volitelné časování na úrovni znaků."
  },
  "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": "Grok Text to Speech převádí psaný text na expresivní zvuk s volitelnými hlasy, vloženými pokyny k přednesu a více výstupními kodeky. Dokumentovaná rodina výrobce podporuje úplnou i streamovanou řeč a volitelné časování na úrovni znaků.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "4fe3316fdd032591b14a7346f1df264c6aacad1aacef06071032b7cf57533710",
    "renderer_sha256": "41721c81890b87836cd3fd41ef732d3276f5969e30822ba09962305294953718"
  },
  "sourceRevision": "837186fb6749be94892297e32e65e1c342654c48ae4f889f85f50e94a97a3063"
}
