{
  "aboutHtml": "<p>Az S1 a Fish Audio előző generációs szövegfelolvasó modellje kifejező narrációhoz és egybeszélős hangkimenethez. A megadott szöveget olvassa fel, és hanganyagot ad vissza kiválasztott vagy referencia alapján kondicionált hanggal. A teljes S1 modell különbözik a kisebb, desztillált S1-mini modelltől; a gyártó rendre 4 milliárd és 0,5 milliárd paraméteres változatként mutatja be őket. Ez a leírás a megnevezett S1 modellre vonatkozik.</p><p>Narrációhoz készítsd elő a ténylegesen kimondandó szavakat, és jelöld az előadásváltások helyét. A hasznos magyarázó szöveg először a fő állítást közli, egyszerre egy gondolatot fejt ki, és írásjelekkel választja el a természetes szünetet igénylő fordulatokat. Rövid utasításnál képernyő nélkül hallva is maradjon világos a megfogalmazás. Őrizd meg a nevek, rövidítések és mértékegységek kívánt olvasatát, a számokat pedig ellenőrizd a beszédkimenetben, ne feltételezd, hogy egy vizuálisan olvasható karaktersornak egyetlen kiejtése van.</p><p>Az S1 érzelmi és előadásjelzéseket használ zárójelben, például (angry), (sad), (in a hurry) vagy (chuckling). A jelzést a befolyásolandó mondat vagy fordulat elé helyezd, utána a tényleges beszéddel. Az előadás a következő szöveghez tartozik, ezért a hangulatváltás ott jelenjen meg, ahol az előadásnak változnia kell. Ez eltér az S2 szögletes zárójeles utasításainak szintaxisától; a szöveget a kiválasztott generációhoz írd, ne tekintsd felcserélhetőnek a két jelölési formát.</p><p>Hang mentett hangazonosítóval választható, vagy referenciafelvételből és annak átiratából kondicionálható. Az azonnali referenciás munkafolyamathoz az általános beszédútmutató tiszta, 10–30 másodperces mintát ajánl. Olyan mintát válassz, amelynek beszédstílusa és felvételminősége megfelel a tervezett eredménynek, és az átirat egyezzen a mintában szereplő szavakkal. Visszatérő narrátornál ugyanazt a hangreferenciát használd a részletekben, hogy a témaváltás ne váljon véletlenül karakterváltássá.</p><p>Az S1 kiadása támogatott nyelvei között angolt, kínait, japánt, németet, franciát, spanyolt, koreait, arabot, oroszt, hollandot, olaszt, lengyelt és portugált nevez meg, és leírja a nyelvek egy szövegen belüli keverését. A célnyelvi megfogalmazást add meg, ne kezeld fordítási lépésként a beszédszintézist. Átvett nevet vagy nyelvváltást tartalmazó részletnél az írásmód és a környező mondatkontextus legyen világos, és ellenőrizd, hogyan kezeli az átmenetet a kiválasztott hang.</p><p>Az S1 gyártói felülete szintéziskérésenként egy beszélőt támogat. Párbeszéd külön szegmensekként készíthető, saját hangreferenciákkal, majd az alkalmazás összeállíthatja; az S2 család natív többbeszélős szintézise külön képesség. Karaktermegszólalások előkészítésekor minden szegmens szerepét, hangját és szövegét összekapcsolva őrizd meg. A szintéziseredmény a szöveg hangos előadása, míg egy beszélgetés időzítése vagy zenével és videóval való kombinálása későbbi szerkesztési lépés.</p><p>A kimeneti lehetőségek között MP3, WAV, nyers PCM és Opus szerepel, MP3-alapértékkel. A dokumentált kimenet mono; a WAV és PCM 16 bites mintákat használ, a formátumspecifikus mintavételi lehetőségek eltérnek. Az MP3 64, 128 és 192 kbps-t támogat, az Opus 48 kHz-et használ. A sebesség 0.5–2.0 között állítható, hangerővezérléssel. Alámondási anyaghoz kódolt fájlt, lejátszáshoz megfelelő streamet válassz, és a kiválasztott hangot, valamint szöveget őrizd meg az eredménnyel.</p><p>A gyártó a hosszú szöveget darabokban dolgozza fel, dokumentált 100–300 közötti darabhossz-tartománnyal és darabonkénti hangtoken-kerettel, nem garantált teljes felvételidőtartammal. A szövegnormalizálás az angol és kínai számokat természetes olvasatra bonthatja, az S1 ismétlési büntetése pedig csökkentheti az ismétlődő hangmintákat. A kimeneti hangerő normalizálása másik beállítás, és nincs hatása az S1-re. A kész részlet összeállítása előtt vizsgáld meg a kiejtést, fordulathatárokat, ismétlődő hangokat és a kívánt érzelmi váltást, majd azt a konkrét sort vagy referenciát javítsd, amely figyelmet igényel.</p>",
  "aboutText": "Az S1 a Fish Audio előző generációs szövegfelolvasó modellje kifejező narrációhoz és egybeszélős hangkimenethez. A megadott szöveget olvassa fel, és hanganyagot ad vissza kiválasztott vagy referencia alapján kondicionált hanggal. A teljes S1 modell különbözik a kisebb, desztillált S1-mini modelltől; a gyártó rendre 4 milliárd és 0,5 milliárd paraméteres változatként mutatja be őket. Ez a leírás a megnevezett S1 modellre vonatkozik.\n\nNarrációhoz készítsd elő a ténylegesen kimondandó szavakat, és jelöld az előadásváltások helyét. A hasznos magyarázó szöveg először a fő állítást közli, egyszerre egy gondolatot fejt ki, és írásjelekkel választja el a természetes szünetet igénylő fordulatokat. Rövid utasításnál képernyő nélkül hallva is maradjon világos a megfogalmazás. Őrizd meg a nevek, rövidítések és mértékegységek kívánt olvasatát, a számokat pedig ellenőrizd a beszédkimenetben, ne feltételezd, hogy egy vizuálisan olvasható karaktersornak egyetlen kiejtése van.\n\nAz S1 érzelmi és előadásjelzéseket használ zárójelben, például (angry), (sad), (in a hurry) vagy (chuckling). A jelzést a befolyásolandó mondat vagy fordulat elé helyezd, utána a tényleges beszéddel. Az előadás a következő szöveghez tartozik, ezért a hangulatváltás ott jelenjen meg, ahol az előadásnak változnia kell. Ez eltér az S2 szögletes zárójeles utasításainak szintaxisától; a szöveget a kiválasztott generációhoz írd, ne tekintsd felcserélhetőnek a két jelölési formát.\n\nHang mentett hangazonosítóval választható, vagy referenciafelvételből és annak átiratából kondicionálható. Az azonnali referenciás munkafolyamathoz az általános beszédútmutató tiszta, 10–30 másodperces mintát ajánl. Olyan mintát válassz, amelynek beszédstílusa és felvételminősége megfelel a tervezett eredménynek, és az átirat egyezzen a mintában szereplő szavakkal. Visszatérő narrátornál ugyanazt a hangreferenciát használd a részletekben, hogy a témaváltás ne váljon véletlenül karakterváltássá.\n\nAz S1 kiadása támogatott nyelvei között angolt, kínait, japánt, németet, franciát, spanyolt, koreait, arabot, oroszt, hollandot, olaszt, lengyelt és portugált nevez meg, és leírja a nyelvek egy szövegen belüli keverését. A célnyelvi megfogalmazást add meg, ne kezeld fordítási lépésként a beszédszintézist. Átvett nevet vagy nyelvváltást tartalmazó részletnél az írásmód és a környező mondatkontextus legyen világos, és ellenőrizd, hogyan kezeli az átmenetet a kiválasztott hang.\n\nAz S1 gyártói felülete szintéziskérésenként egy beszélőt támogat. Párbeszéd külön szegmensekként készíthető, saját hangreferenciákkal, majd az alkalmazás összeállíthatja; az S2 család natív többbeszélős szintézise külön képesség. Karaktermegszólalások előkészítésekor minden szegmens szerepét, hangját és szövegét összekapcsolva őrizd meg. A szintéziseredmény a szöveg hangos előadása, míg egy beszélgetés időzítése vagy zenével és videóval való kombinálása későbbi szerkesztési lépés.\n\nA kimeneti lehetőségek között MP3, WAV, nyers PCM és Opus szerepel, MP3-alapértékkel. A dokumentált kimenet mono; a WAV és PCM 16 bites mintákat használ, a formátumspecifikus mintavételi lehetőségek eltérnek. Az MP3 64, 128 és 192 kbps-t támogat, az Opus 48 kHz-et használ. A sebesség 0.5–2.0 között állítható, hangerővezérléssel. Alámondási anyaghoz kódolt fájlt, lejátszáshoz megfelelő streamet válassz, és a kiválasztott hangot, valamint szöveget őrizd meg az eredménnyel.\n\nA gyártó a hosszú szöveget darabokban dolgozza fel, dokumentált 100–300 közötti darabhossz-tartománnyal és darabonkénti hangtoken-kerettel, nem garantált teljes felvételidőtartammal. A szövegnormalizálás az angol és kínai számokat természetes olvasatra bonthatja, az S1 ismétlési büntetése pedig csökkentheti az ismétlődő hangmintákat. A kimeneti hangerő normalizálása másik beállítás, és nincs hatása az S1-re. A kész részlet összeállítása előtt vizsgáld meg a kiejtést, fordulathatárokat, ismétlődő hangokat és a kívánt érzelmi váltást, majd azt a konkrét sort vagy referenciát javítsd, amely figyelmet igényel.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "9e92183cd6f6d0425c55312bfa6c3f829a63fca8cea2d58ace5fbf61b63f1599",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "hu",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Fish Audio: S1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Bezárás\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/s1</code><button type=\"button\" id=\"copy-id\">ID másolása</button></div><nav class=\"card-jump-nav\" aria-label=\"Modellkártya szakaszai\"><button type=\"button\" data-card-jump=\"overview\">Kezdő lépések</button><button type=\"button\" data-card-jump=\"methods\">Bemenetek és metódusok</button><button type=\"button\" data-card-jump=\"pricing\">Díjcsomagok</button><button type=\"button\" data-card-jump=\"examples\">Példák</button><button type=\"button\" data-card-jump=\"results\">Eredmények</button><button type=\"button\" data-card-jump=\"aliases\">Álnevek</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metódusok\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|fish-audio%2Fs1\">Felolvasás</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\">Kezdő lépések</h3><p class=\"mdesc-full\">A Fish Audio S1 többnyelvű szövegekből kifejező, egybeszélős hanganyagot készít hangreferenciák és zárójelbe tett érzelmi jelzések segítségével. Narrációhoz, rövid elmondott utasításokhoz vagy karaktermegszólalásokhoz használható, a kész hanganyag formátum- és prozódiavezérlésével.</p><dl class=\"card-io\" data-card-io><div><dt>Elfogadott bemenetek</dt><dd>Szöveg</dd></div><div><dt>Eredmények</dt><dd>Hang</dd></div></dl><details class=\"card-about\"><summary>A modellről</summary><p class=\"note-s\" data-model-method-boundary>Ez a leírás a modell képességeit ismerteti. Az Ailootban elérhető bemenetek, kimenetek és lehetőségek alább, a kiválasztott metódusnál láthatók.</p><div class=\"mabout\" id=\"m-about\"><p>Az S1 a Fish Audio előző generációs szövegfelolvasó modellje kifejező narrációhoz és egybeszélős hangkimenethez. A megadott szöveget olvassa fel, és hanganyagot ad vissza kiválasztott vagy referencia alapján kondicionált hanggal. A teljes S1 modell különbözik a kisebb, desztillált S1-mini modelltől; a gyártó rendre 4 milliárd és 0,5 milliárd paraméteres változatként mutatja be őket. Ez a leírás a megnevezett S1 modellre vonatkozik.</p><p>Narrációhoz készítsd elő a ténylegesen kimondandó szavakat, és jelöld az előadásváltások helyét. A hasznos magyarázó szöveg először a fő állítást közli, egyszerre egy gondolatot fejt ki, és írásjelekkel választja el a természetes szünetet igénylő fordulatokat. Rövid utasításnál képernyő nélkül hallva is maradjon világos a megfogalmazás. Őrizd meg a nevek, rövidítések és mértékegységek kívánt olvasatát, a számokat pedig ellenőrizd a beszédkimenetben, ne feltételezd, hogy egy vizuálisan olvasható karaktersornak egyetlen kiejtése van.</p><p>Az S1 érzelmi és előadásjelzéseket használ zárójelben, például (angry), (sad), (in a hurry) vagy (chuckling). A jelzést a befolyásolandó mondat vagy fordulat elé helyezd, utána a tényleges beszéddel. Az előadás a következő szöveghez tartozik, ezért a hangulatváltás ott jelenjen meg, ahol az előadásnak változnia kell. Ez eltér az S2 szögletes zárójeles utasításainak szintaxisától; a szöveget a kiválasztott generációhoz írd, ne tekintsd felcserélhetőnek a két jelölési formát.</p><p>Hang mentett hangazonosítóval választható, vagy referenciafelvételből és annak átiratából kondicionálható. Az azonnali referenciás munkafolyamathoz az általános beszédútmutató tiszta, 10–30 másodperces mintát ajánl. Olyan mintát válassz, amelynek beszédstílusa és felvételminősége megfelel a tervezett eredménynek, és az átirat egyezzen a mintában szereplő szavakkal. Visszatérő narrátornál ugyanazt a hangreferenciát használd a részletekben, hogy a témaváltás ne váljon véletlenül karakterváltássá.</p><p>Az S1 kiadása támogatott nyelvei között angolt, kínait, japánt, németet, franciát, spanyolt, koreait, arabot, oroszt, hollandot, olaszt, lengyelt és portugált nevez meg, és leírja a nyelvek egy szövegen belüli keverését. A célnyelvi megfogalmazást add meg, ne kezeld fordítási lépésként a beszédszintézist. Átvett nevet vagy nyelvváltást tartalmazó részletnél az írásmód és a környező mondatkontextus legyen világos, és ellenőrizd, hogyan kezeli az átmenetet a kiválasztott hang.</p><p>Az S1 gyártói felülete szintéziskérésenként egy beszélőt támogat. Párbeszéd külön szegmensekként készíthető, saját hangreferenciákkal, majd az alkalmazás összeállíthatja; az S2 család natív többbeszélős szintézise külön képesség. Karaktermegszólalások előkészítésekor minden szegmens szerepét, hangját és szövegét összekapcsolva őrizd meg. A szintéziseredmény a szöveg hangos előadása, míg egy beszélgetés időzítése vagy zenével és videóval való kombinálása későbbi szerkesztési lépés.</p><p>A kimeneti lehetőségek között MP3, WAV, nyers PCM és Opus szerepel, MP3-alapértékkel. A dokumentált kimenet mono; a WAV és PCM 16 bites mintákat használ, a formátumspecifikus mintavételi lehetőségek eltérnek. Az MP3 64, 128 és 192 kbps-t támogat, az Opus 48 kHz-et használ. A sebesség 0.5–2.0 között állítható, hangerővezérléssel. Alámondási anyaghoz kódolt fájlt, lejátszáshoz megfelelő streamet válassz, és a kiválasztott hangot, valamint szöveget őrizd meg az eredménnyel.</p><p>A gyártó a hosszú szöveget darabokban dolgozza fel, dokumentált 100–300 közötti darabhossz-tartománnyal és darabonkénti hangtoken-kerettel, nem garantált teljes felvételidőtartammal. A szövegnormalizálás az angol és kínai számokat természetes olvasatra bonthatja, az S1 ismétlési büntetése pedig csökkentheti az ismétlődő hangmintákat. A kimeneti hangerő normalizálása másik beállítás, és nincs hatása az S1-re. A kész részlet összeállítása előtt vizsgáld meg a kiejtést, fordulathatárokat, ismétlődő hangokat és a kívánt érzelmi váltást, majd azt a konkrét sort vagy referenciát javítsd, amely figyelmet igényel.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Elérhető az Ailootban · bemenetek és metódusok</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Felolvasás</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Bemenet</dt><dd><code>text</code></dd></div><div><dt>Kimenet</dt><dd><code>audio</code></dd></div><div><dt>Kimeneti formátum</dt><dd>a megadott formátumú tényleges bináris hang</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Mező</th><th>Típus</th><th>Követelmény</th><th>Értékek és korlátok</th><th>Alapértelmezett</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>fish-audio/s1</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Minimális hossz: 1</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"saved_exact_supplier_example\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Példák: b347db033a6549378b48d00acb0d06cd</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>mp3, pcm</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"known\"><span class=\"card-cell-label\">Alapértelmezett</span>pcm</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Bemeneti anyagok kombinációi</summary><p class=\"note-s\"><b>text_to_speech</b> · Kötelező: actual UTF-8 script, exact supported voice</p></details><details class=\"note-s\" data-method-contract><summary>Metódus paraméterei és életciklusa</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Paraméter</th><th>Szerződés</th></tr></thead><tbody><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>content_type</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>application/json</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>required</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>model, input, voice</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>material_types</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>text</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>voice_ids</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>b347db033a6549378b48d00acb0d06cd</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>voice_list_exhaustive</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>false</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>response_format</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>mp3, pcm</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>default_response_format</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>pcm</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>quantity</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>Egyetlen dekódolt bemeneti karakterlánc UTF-8-bájtjai; a kezdő és záró térközkarakterek eltávolítása és normalizálás nélkül</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>native_byte_quote_controls</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>Ez a pontos, bájtalapú árajánlati útvonal elutasítja a nem üres instructions mezőt és a több beszélő megszólalásait tartalmazó bemenetet, amíg a hozzáadott számlázott szöveg nincs deklarálva.</td></tr></tbody></table></div><p>Életciklus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · A ténylegesen visszaadott task_id vagy a médiatár bejegyzése</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\">Használja a pontos modellt és a dokumentált bemeneti mezőket.</p><p class=\"note-s\">Őrizze meg a teljes választ, minden tényleges kimenetet és az eredetileg visszaadott azonosítókat.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Díjcsomagok</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.</p><dl data-price-conditions><dt>Gyors mód</dt><dd>Nincs megadva <span class=\"note-s\">Ha a gyors mód van kiválasztva</span></dd><dt>Flex mód</dt><dd>Nincs megadva <span class=\"note-s\">Ha a flex mód van kiválasztva</span></dd><dt>Maximális gondolkodási ráfordítás</dt><dd>Nincs megadva <span class=\"note-s\">Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-díjak</h4><h4>Árak beállításonként</h4><p class=\"note-s\">Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Beállítás</th><th>Díjtáblázat</th><th>Elszámolási egység</th><th>Díj</th></tr></thead><tbody><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Tokenek alapdíjai</th><td data-cell-label=\"Díjtáblázat\"><span class=\"card-cell-label\">Díjtáblázat</span>Alapdíj</td><td data-cell-label=\"Elszámolási egység\"><span class=\"card-cell-label\">Elszámolási egység</span>—</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Bemenet · Bemeneti tokenek</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Kimenet · Kimeneti tokenek</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Gyorsítótár olvasása</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Írás a gyorsítótárba</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Írás a gyorsítótárba, 1 óra</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Ultra</th><td data-cell-label=\"Díjtáblázat\"><span class=\"card-cell-label\">Díjtáblázat</span>—</td><td data-cell-label=\"Elszámolási egység\"><span class=\"card-cell-label\">Elszámolási egység</span>a bemeneti hang minden utf8 bájtja után</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Bemenet · bemeneti hang utf8-bájtja</span> <b>$0.00003</b> <span class=\"price-unit\">a bemeneti hang minden utf8 bájtja után</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. <a href=\"/docs/hu/billing/reserve/\">A foglalás és az elszámolás működése →</a></p><div data-declared-reference-pricing><h4>A referencia-díjszabás részletei</h4><p class=\"note-s\">A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Fish Audio: S1</summary><h4>Árak beállításonként</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Beállítás</th><th>Elszámolási feltételek</th><th>Díj</th></tr></thead><tbody><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Fish Audio: S1 · Alapértelmezett beállítások</th><td data-cell-label=\"Elszámolási feltételek\"><span class=\"card-cell-label\">Elszámolási feltételek</span>Alapértelmezett konfiguráció</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Bemenet · Bemeneti UTF-8-bájtok</span> <b>0,00003 USD</b> <span class=\"price-unit\">bemeneti UTF-8 bájtonként</span></div></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Példakérések</h3><h4>Ailoot Ultra · Felolvasás</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kódváltozatok\"><button class=\"cg-tab\" id=\"model-code-1354-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1354-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · pontos natív kéréstörzs és teljes eredmény</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kód másolása\"><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-1354-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1354-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;fish-audio/s1&#39;, &#39;input&#39;: &#39;Hello world&#39;, &#39;voice&#39;: &#39;b347db033a6549378b48d00acb0d06cd&#39;, &#39;response_format&#39;: &#39;mp3&#39;}\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Eredmények fogadása és mentése</h3><h4>Ailoot Ultra · Felolvasás</h4><p class=\"note-s\">a megadott formátumú tényleges bináris hang</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Őrizzen meg minden elkészült eredményt</h5><p class=\"note-s\">Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.</p><p class=\"note-s\">Mentse el a teljes bináris bájttartalmat és az összes eredeti fejlécet; ha JSON érkezik, őrizze meg teljes egészében. A tényleges művelet- és médiaazonosítók megmaradnak.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Ha az eredeti választ ellenőrizni kell</h5><p class=\"note-s\">Őrizze meg az eredeti operation_id/X-Client-Request-ID értékeket és az eredeti választ. A tényleges saját feladat- és médiarekordokat kérdezze le újraküldés nélkül; külön hangállapot-lekérdezési URL-cím nem képződik.</p></div><details class=\"card-about\" data-output-fields><summary>Válaszmezők</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Mező</th><th>Típus</th></tr></thead><tbody><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">binary audio</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>bytes</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>headers</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Álnevek</h3><h4>Modell álnevei</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=fish-audio%2Fs1&amp;route=Ultra&amp;caller=fish-audio%2Fs1&amp;fmt=speech\"><code>fish-audio/s1</code></a></span></p><h4>Metódusútvonalak álnevei</h4><p class=\"note-s\">Használja a fent látható metódusútvonalakat.</p><h4>Kapcsolódó modellazonosítók</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Fs1&amp;route=Ultra&amp;caller=fish-audio%2Fs1&amp;fmt=speech\"><code>fish-audio/s1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/s1",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|fish-audio%2Fs1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save all complete binary bytes and all original headers; keep full JSON if returned. Actual operation/asset IDs are preserved.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Őrizze meg az eredeti operation_id/X-Client-Request-ID értékeket és az eredeti választ. A tényleges saját feladat- és médiarekordokat kérdezze le újraküldés nélkül; külön hangállapot-lekérdezési URL-cím nem képződik."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "actual UTF-8 script",
                  "exact supported voice"
                ]
              }
            ],
            "outputs": {
              "all_results": "Mentse el a teljes bináris bájttartalmat és az összes eredeti fejlécet; ha JSON érkezik, őrizze meg teljes egészében. A tényleges művelet- és médiaazonosítók megmaradnak.",
              "family": "audio",
              "fields": [
                {
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "a megadott formátumú tényleges bináris hang"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "enum": [
                  "fish-audio/s1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "min_length": 1,
                "name": "input",
                "quantity_unit": "decoded input UTF-8 bytes",
                "required": true,
                "type": "string"
              },
              {
                "availability": "saved_exact_supplier_example",
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s1"
                  ],
                  "type": "string"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "Hello world",
                "model": "fish-audio/s1",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "hints": [
            "Használja a pontos modellt és a dokumentált bemeneti mezőket.",
            "Őrizze meg a teljes választ, minden tényleges kimenetet és az eredetileg visszaadott azonosítókat."
          ],
          "input": {
            "content_type": "application/json",
            "default_response_format": "pcm",
            "material_types": [
              "text"
            ],
            "native_byte_quote_controls": "Ez a pontos, bájtalapú árajánlati útvonal elutasítja a nem üres instructions mezőt és a több beszélő megszólalásait tartalmazó bemenetet, amíg a hozzáadott számlázott szöveg nincs deklarálva.",
            "quantity": "Egyetlen dekódolt bemeneti karakterlánc UTF-8-bájtjai; a kezdő és záró térközkarakterek eltávolítása és normalizálás nélkül",
            "required": [
              "model",
              "input",
              "voice"
            ],
            "response_format": [
              "mp3",
              "pcm"
            ],
            "voice_ids": [
              "b347db033a6549378b48d00acb0d06cd"
            ],
            "voice_list_exhaustive": false
          },
          "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": "A ténylegesen visszaadott task_id vagy a médiatár bejegyzése",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID and original response. Read actual owned task/asset records without resubmitting; no dedicated audio poll URL is constructed."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "all_results": true,
            "family": "audio",
            "format": "actual MP3 or PCM bytes and MIME",
            "response": "complete raw audio bytes plus response headers"
          }
        },
        "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_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s1', 'input': 'Hello world', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact model and documented input fields.",
          "Keep the complete response, every actual output and original returned IDs."
        ],
        "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_utf8_byte": 3e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s1",
        "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.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 byte",
            "quantity": "1",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/s1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "45815a0bd128a8b9384742632ab99113d7b5dc6ef9803dfbc35860a2b99c112c",
    "input_html_sha256": "06e13baf153c9eb91033d6e739aec3cce2f8766d6864548775fd7469efbb007d",
    "private_audit_sha256": "3052b5c05e0853f576d65f3be0675762e2a61d6b2dd8917a8abc6c80ec934b48",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/hu/fish-audio-s1/",
    "description": "A Fish Audio S1 többnyelvű szövegekből kifejező, egybeszélős hanganyagot készít hangreferenciák és zárójelbe tett érzelmi jelzések segítségével. Narrációhoz, rövid elmondott utasításokhoz vagy karaktermegszólalásokhoz használható, a kész hanganyag formátum- és prozódiavezérlésével.",
    "locale": "hu",
    "md_url": "https://ailoot.ai/models/hu/fish-audio-s1/index.md",
    "title": "Fish Audio: S1 — Ailoot",
    "url": "https://ailoot.ai/models/hu/fish-audio-s1/"
  },
  "rawModel": {
    "about": "Az S1 a Fish Audio előző generációs szövegfelolvasó modellje kifejező narrációhoz és egybeszélős hangkimenethez. A megadott szöveget olvassa fel, és hanganyagot ad vissza kiválasztott vagy referencia alapján kondicionált hanggal. A teljes S1 modell különbözik a kisebb, desztillált S1-mini modelltől; a gyártó rendre 4 milliárd és 0,5 milliárd paraméteres változatként mutatja be őket. Ez a leírás a megnevezett S1 modellre vonatkozik.\n\nNarrációhoz készítsd elő a ténylegesen kimondandó szavakat, és jelöld az előadásváltások helyét. A hasznos magyarázó szöveg először a fő állítást közli, egyszerre egy gondolatot fejt ki, és írásjelekkel választja el a természetes szünetet igénylő fordulatokat. Rövid utasításnál képernyő nélkül hallva is maradjon világos a megfogalmazás. Őrizd meg a nevek, rövidítések és mértékegységek kívánt olvasatát, a számokat pedig ellenőrizd a beszédkimenetben, ne feltételezd, hogy egy vizuálisan olvasható karaktersornak egyetlen kiejtése van.\n\nAz S1 érzelmi és előadásjelzéseket használ zárójelben, például (angry), (sad), (in a hurry) vagy (chuckling). A jelzést a befolyásolandó mondat vagy fordulat elé helyezd, utána a tényleges beszéddel. Az előadás a következő szöveghez tartozik, ezért a hangulatváltás ott jelenjen meg, ahol az előadásnak változnia kell. Ez eltér az S2 szögletes zárójeles utasításainak szintaxisától; a szöveget a kiválasztott generációhoz írd, ne tekintsd felcserélhetőnek a két jelölési formát.\n\nHang mentett hangazonosítóval választható, vagy referenciafelvételből és annak átiratából kondicionálható. Az azonnali referenciás munkafolyamathoz az általános beszédútmutató tiszta, 10–30 másodperces mintát ajánl. Olyan mintát válassz, amelynek beszédstílusa és felvételminősége megfelel a tervezett eredménynek, és az átirat egyezzen a mintában szereplő szavakkal. Visszatérő narrátornál ugyanazt a hangreferenciát használd a részletekben, hogy a témaváltás ne váljon véletlenül karakterváltássá.\n\nAz S1 kiadása támogatott nyelvei között angolt, kínait, japánt, németet, franciát, spanyolt, koreait, arabot, oroszt, hollandot, olaszt, lengyelt és portugált nevez meg, és leírja a nyelvek egy szövegen belüli keverését. A célnyelvi megfogalmazást add meg, ne kezeld fordítási lépésként a beszédszintézist. Átvett nevet vagy nyelvváltást tartalmazó részletnél az írásmód és a környező mondatkontextus legyen világos, és ellenőrizd, hogyan kezeli az átmenetet a kiválasztott hang.\n\nAz S1 gyártói felülete szintéziskérésenként egy beszélőt támogat. Párbeszéd külön szegmensekként készíthető, saját hangreferenciákkal, majd az alkalmazás összeállíthatja; az S2 család natív többbeszélős szintézise külön képesség. Karaktermegszólalások előkészítésekor minden szegmens szerepét, hangját és szövegét összekapcsolva őrizd meg. A szintéziseredmény a szöveg hangos előadása, míg egy beszélgetés időzítése vagy zenével és videóval való kombinálása későbbi szerkesztési lépés.\n\nA kimeneti lehetőségek között MP3, WAV, nyers PCM és Opus szerepel, MP3-alapértékkel. A dokumentált kimenet mono; a WAV és PCM 16 bites mintákat használ, a formátumspecifikus mintavételi lehetőségek eltérnek. Az MP3 64, 128 és 192 kbps-t támogat, az Opus 48 kHz-et használ. A sebesség 0.5–2.0 között állítható, hangerővezérléssel. Alámondási anyaghoz kódolt fájlt, lejátszáshoz megfelelő streamet válassz, és a kiválasztott hangot, valamint szöveget őrizd meg az eredménnyel.\n\nA gyártó a hosszú szöveget darabokban dolgozza fel, dokumentált 100–300 közötti darabhossz-tartománnyal és darabonkénti hangtoken-kerettel, nem garantált teljes felvételidőtartammal. A szövegnormalizálás az angol és kínai számokat természetes olvasatra bonthatja, az S1 ismétlési büntetése pedig csökkentheti az ismétlődő hangmintákat. A kimeneti hangerő normalizálása másik beállítás, és nincs hatása az S1-re. A kész részlet összeállítása előtt vizsgáld meg a kiejtést, fordulathatárokat, ismétlődő hangokat és a kívánt érzelmi váltást, majd azt a konkrét sort vagy referenciát javítsd, amely figyelmet igényel.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "available": null,
    "canonical_model": "fish-audio/s1",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 byte",
            "quantity": "1",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ],
        "summary": "A konfiguráció teljes árazása a részletekben."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "ca1892881aa6bc927745",
        "label": "Fish Audio: S1",
        "profiles": [
          {
            "basis": "",
            "dimensions": {
              "conditions": "Alapértelmezett konfiguráció"
            },
            "label": "Fish Audio: S1 · Alapértelmezett beállítások",
            "units": [
              {
                "amount": "0.000030",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "key": "e7b3eb5a7636763feb8a9472",
                "label": "Input UTF-8 bytes",
                "public_unit_label": "per input UTF-8 byte",
                "quantity": "1",
                "rate_role": "declared_tariff_rate",
                "side": "in",
                "unit": "input_utf8_byte"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "speech"
    ],
    "id": "fish-audio/s1",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save all complete binary bytes and all original headers; keep full JSON if returned. Actual operation/asset IDs are preserved.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Őrizze meg az eredeti operation_id/X-Client-Request-ID értékeket és az eredeti választ. A tényleges saját feladat- és médiarekordokat kérdezze le újraküldés nélkül; külön hangállapot-lekérdezési URL-cím nem képződik."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "actual UTF-8 script",
                  "exact supported voice"
                ]
              }
            ],
            "outputs": {
              "all_results": "Mentse el a teljes bináris bájttartalmat és az összes eredeti fejlécet; ha JSON érkezik, őrizze meg teljes egészében. A tényleges művelet- és médiaazonosítók megmaradnak.",
              "family": "audio",
              "fields": [
                {
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "a megadott formátumú tényleges bináris hang"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "enum": [
                  "fish-audio/s1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "min_length": 1,
                "name": "input",
                "quantity_unit": "decoded input UTF-8 bytes",
                "required": true,
                "type": "string"
              },
              {
                "availability": "saved_exact_supplier_example",
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s1"
                  ],
                  "type": "string"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "Hello world",
                "model": "fish-audio/s1",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "hints": [
            "Használja a pontos modellt és a dokumentált bemeneti mezőket.",
            "Őrizze meg a teljes választ, minden tényleges kimenetet és az eredetileg visszaadott azonosítókat."
          ],
          "input": {
            "content_type": "application/json",
            "default_response_format": "pcm",
            "material_types": [
              "text"
            ],
            "native_byte_quote_controls": "Ez a pontos, bájtalapú árajánlati útvonal elutasítja a nem üres instructions mezőt és a több beszélő megszólalásait tartalmazó bemenetet, amíg a hozzáadott számlázott szöveg nincs deklarálva.",
            "quantity": "Egyetlen dekódolt bemeneti karakterlánc UTF-8-bájtjai; a kezdő és záró térközkarakterek eltávolítása és normalizálás nélkül",
            "required": [
              "model",
              "input",
              "voice"
            ],
            "response_format": [
              "mp3",
              "pcm"
            ],
            "voice_ids": [
              "b347db033a6549378b48d00acb0d06cd"
            ],
            "voice_list_exhaustive": false
          },
          "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": "A ténylegesen visszaadott task_id vagy a médiatár bejegyzése",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID and original response. Read actual owned task/asset records without resubmitting; no dedicated audio poll URL is constructed."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "all_results": true,
            "family": "audio",
            "format": "actual MP3 or PCM bytes and MIME",
            "response": "complete raw audio bytes plus response headers"
          }
        },
        "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_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s1', 'input': 'Hello world', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact model and documented input fields.",
          "Keep the complete response, every actual output and original returned IDs."
        ],
        "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_utf8_byte": 3e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s1",
        "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.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 byte",
            "quantity": "1",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/s1",
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: S1",
    "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": {
          "not_character_or_token_count": true,
          "quoted_unit": "1000000_UTF8_bytes",
          "retirement_date": "2026-12-31"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000030",
            "amount_unit": "usd_per_input_utf8_byte",
            "conditions": {
              "not_character_or_token_count": true,
              "quoted_unit": "1000000_UTF8_bytes",
              "retirement_date": "2026-12-31"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_utf8_byte"
          }
        ]
      }
    ],
    "public_id": "fish-audio/s1",
    "short": "A Fish Audio S1 többnyelvű szövegekből kifejező, egybeszélős hanganyagot készít hangreferenciák és zárójelbe tett érzelmi jelzések segítségével. Narrációhoz, rövid elmondott utasításokhoz vagy karaktermegszólalásokhoz használható, a kész hanganyag formátum- és prozódiavezérlésével."
  },
  "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": "A Fish Audio S1 többnyelvű szövegekből kifejező, egybeszélős hanganyagot készít hangreferenciák és zárójelbe tett érzelmi jelzések segítségével. Narrációhoz, rövid elmondott utasításokhoz vagy karaktermegszólalásokhoz használható, a kész hanganyag formátum- és prozódiavezérlésével.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "e2e04af84cc6c9037dd689ea9b076f9161ae719f0c7e1a756f38fe30dec0af22",
    "renderer_sha256": "59b0e30a0b251f9d98bf0bafcc7ef50440c33057c2bf9c9fadabbcaeefffb5bb"
  },
  "sourceRevision": "f5b537509052c2e8d5fe71843842eb66dec781a199ce8a72824e04c35dc1b388"
}
