{
  "aboutHtml": "<p>S1 to model zamiany tekstu na mowę poprzedniej generacji Fish Audio do ekspresyjnej narracji i wyjścia głosowego jednego mówcy. Odczytuje dostarczony scenariusz i zwraca audio wybranym lub warunkowanym referencją głosem. Pełny model S1 jest odrębny od S1-mini, mniejszego modelu destylowanego; producent przedstawia je jako warianty odpowiednio o 4 miliardach i 0,5 miliarda parametrów. Ten profil obejmuje wskazany model S1.</p><p>Do narracji przygotuj słowa, które rzeczywiście mają zostać wypowiedziane, i zaznacz miejsca zmiany sposobu wypowiedzi. Użyteczny scenariusz objaśniający zaczyna od głównej myśli, rozwija po jednej idei i za pomocą interpunkcji oddziela frazy potrzebujące naturalnej pauzy. W krótkiej instrukcji zadbaj o zrozumiałość bez patrzenia na ekran. Zachowaj zamierzony odczyt nazw, skrótów i jednostek oraz sprawdzaj liczby w audio, zamiast zakładać, że czytelny wizualnie ciąg ma tylko jedną wymowę.</p><p>S1 używa wskazówek emocji i sposobu wypowiedzi w nawiasach okrągłych, takich jak (angry), (sad), (in a hurry) lub (chuckling). Umieszczaj wskazówkę przed zdaniem lub frazą, na którą ma wpływać, a po niej rzeczywistą mowę. Sposób wypowiedzi dotyczy następującego tekstu, więc zmiana nastroju powinna znaleźć się tam, gdzie ma zmienić się wykonanie. To składnia inna niż wskazówki S2 w nawiasach kwadratowych; pisz scenariusz dla wybranej generacji, zamiast zakładać zamienność obu form oznaczeń.</p><p>Głos można wybrać przez zapisany identyfikator głosu lub uwarunkować nagraniem referencyjnym wraz z jego transkrypcją. Dla natychmiastowego procesu referencyjnego ogólny przewodnik mowy zaleca czystą próbkę 10–30 sekund. Wybierz próbkę, której styl wypowiedzi i jakość nagrania pasują do zamierzonego wyniku, a transkrypcję dopasuj do słów w tej próbce. Dla stałego narratora używaj tej samej referencji głosowej we wszystkich fragmentach, aby zmiana tematu nie stała się przypadkowo zmianą postaci.</p><p>Wydanie S1 wymienia wśród obsługiwanych języków angielski, chiński, japoński, niemiecki, francuski, hiszpański, koreański, arabski, rosyjski, niderlandzki, włoski, polski i portugalski oraz opisuje mieszanie języków w scenariuszu. Dostarczaj sformułowania w języku docelowym, zamiast traktować syntezę mowy jako krok tłumaczenia. W fragmencie z zapożyczoną nazwą lub przejściem między językami zachowaj jasną pisownię i kontekst zdania oraz oceń, jak wybrany głos radzi sobie z przejściem.</p><p>Interfejs producenta S1 obsługuje jednego mówcę na żądanie syntezy. Dialog można przygotować jako osobne segmenty z własnymi referencjami głosowymi, a następnie złożyć w aplikacji; natywna synteza wielu mówców rodziny S2 jest odrębną możliwością. Przygotowując kwestie postaci, zachowuj powiązanie roli, głosu i tekstu z każdym segmentem. Wynik syntezy jest wykonaniem audio scenariusza, natomiast nadanie rozmowie czasów lub połączenie jej z muzyką i wideo jest późniejszym etapem montażu.</p><p>Opcje wyjścia obejmują MP3, WAV, surowy PCM i Opus, z MP3 jako formatem domyślnym. Udokumentowane wyjście jest monofoniczne; WAV i PCM używają próbek 16-bitowych, a wybór częstotliwości próbkowania zależy od formatu. MP3 obsługuje 64, 128 i 192 kbps, natomiast Opus używa 48 kHz. Szybkość można ustawiać od 0.5 do 2.0 wraz z regulacją głośności. Wybierz kodowany plik do nagrania lektorskiego lub odpowiedni strumień do odtwarzania i zachowaj z wynikiem wybrany głos oraz scenariusz.</p><p>Producent przetwarza długi tekst fragmentami, z udokumentowanym zakresem długości fragmentu 100–300 i budżetem tokenów audio na fragment, a nie gwarantowanym całkowitym czasem nagrania. Normalizacja tekstu może rozwinąć angielskie i chińskie liczby do naturalnego odczytu, a kara za powtórzenia S1 może ograniczać powtarzające się wzorce audio. Normalizacja głośności wyjściowej jest innym ustawieniem i nie wpływa na S1. Przed złożeniem gotowego fragmentu sprawdź wymowę, granice fraz, powtarzające się dźwięki i zamierzoną zmianę emocji, a następnie popraw konkretną wypowiedź lub referencję wymagającą uwagi.</p>",
  "aboutText": "S1 to model zamiany tekstu na mowę poprzedniej generacji Fish Audio do ekspresyjnej narracji i wyjścia głosowego jednego mówcy. Odczytuje dostarczony scenariusz i zwraca audio wybranym lub warunkowanym referencją głosem. Pełny model S1 jest odrębny od S1-mini, mniejszego modelu destylowanego; producent przedstawia je jako warianty odpowiednio o 4 miliardach i 0,5 miliarda parametrów. Ten profil obejmuje wskazany model S1.\n\nDo narracji przygotuj słowa, które rzeczywiście mają zostać wypowiedziane, i zaznacz miejsca zmiany sposobu wypowiedzi. Użyteczny scenariusz objaśniający zaczyna od głównej myśli, rozwija po jednej idei i za pomocą interpunkcji oddziela frazy potrzebujące naturalnej pauzy. W krótkiej instrukcji zadbaj o zrozumiałość bez patrzenia na ekran. Zachowaj zamierzony odczyt nazw, skrótów i jednostek oraz sprawdzaj liczby w audio, zamiast zakładać, że czytelny wizualnie ciąg ma tylko jedną wymowę.\n\nS1 używa wskazówek emocji i sposobu wypowiedzi w nawiasach okrągłych, takich jak (angry), (sad), (in a hurry) lub (chuckling). Umieszczaj wskazówkę przed zdaniem lub frazą, na którą ma wpływać, a po niej rzeczywistą mowę. Sposób wypowiedzi dotyczy następującego tekstu, więc zmiana nastroju powinna znaleźć się tam, gdzie ma zmienić się wykonanie. To składnia inna niż wskazówki S2 w nawiasach kwadratowych; pisz scenariusz dla wybranej generacji, zamiast zakładać zamienność obu form oznaczeń.\n\nGłos można wybrać przez zapisany identyfikator głosu lub uwarunkować nagraniem referencyjnym wraz z jego transkrypcją. Dla natychmiastowego procesu referencyjnego ogólny przewodnik mowy zaleca czystą próbkę 10–30 sekund. Wybierz próbkę, której styl wypowiedzi i jakość nagrania pasują do zamierzonego wyniku, a transkrypcję dopasuj do słów w tej próbce. Dla stałego narratora używaj tej samej referencji głosowej we wszystkich fragmentach, aby zmiana tematu nie stała się przypadkowo zmianą postaci.\n\nWydanie S1 wymienia wśród obsługiwanych języków angielski, chiński, japoński, niemiecki, francuski, hiszpański, koreański, arabski, rosyjski, niderlandzki, włoski, polski i portugalski oraz opisuje mieszanie języków w scenariuszu. Dostarczaj sformułowania w języku docelowym, zamiast traktować syntezę mowy jako krok tłumaczenia. W fragmencie z zapożyczoną nazwą lub przejściem między językami zachowaj jasną pisownię i kontekst zdania oraz oceń, jak wybrany głos radzi sobie z przejściem.\n\nInterfejs producenta S1 obsługuje jednego mówcę na żądanie syntezy. Dialog można przygotować jako osobne segmenty z własnymi referencjami głosowymi, a następnie złożyć w aplikacji; natywna synteza wielu mówców rodziny S2 jest odrębną możliwością. Przygotowując kwestie postaci, zachowuj powiązanie roli, głosu i tekstu z każdym segmentem. Wynik syntezy jest wykonaniem audio scenariusza, natomiast nadanie rozmowie czasów lub połączenie jej z muzyką i wideo jest późniejszym etapem montażu.\n\nOpcje wyjścia obejmują MP3, WAV, surowy PCM i Opus, z MP3 jako formatem domyślnym. Udokumentowane wyjście jest monofoniczne; WAV i PCM używają próbek 16-bitowych, a wybór częstotliwości próbkowania zależy od formatu. MP3 obsługuje 64, 128 i 192 kbps, natomiast Opus używa 48 kHz. Szybkość można ustawiać od 0.5 do 2.0 wraz z regulacją głośności. Wybierz kodowany plik do nagrania lektorskiego lub odpowiedni strumień do odtwarzania i zachowaj z wynikiem wybrany głos oraz scenariusz.\n\nProducent przetwarza długi tekst fragmentami, z udokumentowanym zakresem długości fragmentu 100–300 i budżetem tokenów audio na fragment, a nie gwarantowanym całkowitym czasem nagrania. Normalizacja tekstu może rozwinąć angielskie i chińskie liczby do naturalnego odczytu, a kara za powtórzenia S1 może ograniczać powtarzające się wzorce audio. Normalizacja głośności wyjściowej jest innym ustawieniem i nie wpływa na S1. Przed złożeniem gotowego fragmentu sprawdź wymowę, granice fraz, powtarzające się dźwięki i zamierzoną zmianę emocji, a następnie popraw konkretną wypowiedź lub referencję wymagającą uwagi.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "8a544ba3d082bf27e3c6b2bae4abe200385e34cef73f0a9d716ba3d7f9d1b5d6",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "pl",
  "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=\"Zamknij\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/s1</code><button type=\"button\" id=\"copy-id\">Kopiuj ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Sekcje karty modelu\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Dane wejściowe i metody</button><button type=\"button\" data-card-jump=\"pricing\">Cennik</button><button type=\"button\" data-card-jump=\"examples\">Przykłady</button><button type=\"button\" data-card-jump=\"results\">Wyniki</button><button type=\"button\" data-card-jump=\"aliases\">Aliasy</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metody API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|fish-audio%2Fs1\">Synteza mowy</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\">Start</h3><p class=\"mdesc-full\">Fish Audio S1 zamienia wielojęzyczne scenariusze na ekspresyjne audio jednego mówcy przy użyciu referencji głosowych i wskazówek emocji w nawiasach okrągłych. Służy do narracji, krótkich instrukcji mówionych lub kwestii postaci, z parametrami formatu i prozodii końcowego audio.</p><dl class=\"card-io\" data-card-io><div><dt>Akceptowane dane wejściowe</dt><dd>Tekst</dd></div><div><dt>Wyniki</dt><dd>Audio</dd></div></dl><details class=\"card-about\"><summary>O modelu</summary><p class=\"note-s\" data-model-method-boundary>Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.</p><div class=\"mabout\" id=\"m-about\"><p>S1 to model zamiany tekstu na mowę poprzedniej generacji Fish Audio do ekspresyjnej narracji i wyjścia głosowego jednego mówcy. Odczytuje dostarczony scenariusz i zwraca audio wybranym lub warunkowanym referencją głosem. Pełny model S1 jest odrębny od S1-mini, mniejszego modelu destylowanego; producent przedstawia je jako warianty odpowiednio o 4 miliardach i 0,5 miliarda parametrów. Ten profil obejmuje wskazany model S1.</p><p>Do narracji przygotuj słowa, które rzeczywiście mają zostać wypowiedziane, i zaznacz miejsca zmiany sposobu wypowiedzi. Użyteczny scenariusz objaśniający zaczyna od głównej myśli, rozwija po jednej idei i za pomocą interpunkcji oddziela frazy potrzebujące naturalnej pauzy. W krótkiej instrukcji zadbaj o zrozumiałość bez patrzenia na ekran. Zachowaj zamierzony odczyt nazw, skrótów i jednostek oraz sprawdzaj liczby w audio, zamiast zakładać, że czytelny wizualnie ciąg ma tylko jedną wymowę.</p><p>S1 używa wskazówek emocji i sposobu wypowiedzi w nawiasach okrągłych, takich jak (angry), (sad), (in a hurry) lub (chuckling). Umieszczaj wskazówkę przed zdaniem lub frazą, na którą ma wpływać, a po niej rzeczywistą mowę. Sposób wypowiedzi dotyczy następującego tekstu, więc zmiana nastroju powinna znaleźć się tam, gdzie ma zmienić się wykonanie. To składnia inna niż wskazówki S2 w nawiasach kwadratowych; pisz scenariusz dla wybranej generacji, zamiast zakładać zamienność obu form oznaczeń.</p><p>Głos można wybrać przez zapisany identyfikator głosu lub uwarunkować nagraniem referencyjnym wraz z jego transkrypcją. Dla natychmiastowego procesu referencyjnego ogólny przewodnik mowy zaleca czystą próbkę 10–30 sekund. Wybierz próbkę, której styl wypowiedzi i jakość nagrania pasują do zamierzonego wyniku, a transkrypcję dopasuj do słów w tej próbce. Dla stałego narratora używaj tej samej referencji głosowej we wszystkich fragmentach, aby zmiana tematu nie stała się przypadkowo zmianą postaci.</p><p>Wydanie S1 wymienia wśród obsługiwanych języków angielski, chiński, japoński, niemiecki, francuski, hiszpański, koreański, arabski, rosyjski, niderlandzki, włoski, polski i portugalski oraz opisuje mieszanie języków w scenariuszu. Dostarczaj sformułowania w języku docelowym, zamiast traktować syntezę mowy jako krok tłumaczenia. W fragmencie z zapożyczoną nazwą lub przejściem między językami zachowaj jasną pisownię i kontekst zdania oraz oceń, jak wybrany głos radzi sobie z przejściem.</p><p>Interfejs producenta S1 obsługuje jednego mówcę na żądanie syntezy. Dialog można przygotować jako osobne segmenty z własnymi referencjami głosowymi, a następnie złożyć w aplikacji; natywna synteza wielu mówców rodziny S2 jest odrębną możliwością. Przygotowując kwestie postaci, zachowuj powiązanie roli, głosu i tekstu z każdym segmentem. Wynik syntezy jest wykonaniem audio scenariusza, natomiast nadanie rozmowie czasów lub połączenie jej z muzyką i wideo jest późniejszym etapem montażu.</p><p>Opcje wyjścia obejmują MP3, WAV, surowy PCM i Opus, z MP3 jako formatem domyślnym. Udokumentowane wyjście jest monofoniczne; WAV i PCM używają próbek 16-bitowych, a wybór częstotliwości próbkowania zależy od formatu. MP3 obsługuje 64, 128 i 192 kbps, natomiast Opus używa 48 kHz. Szybkość można ustawiać od 0.5 do 2.0 wraz z regulacją głośności. Wybierz kodowany plik do nagrania lektorskiego lub odpowiedni strumień do odtwarzania i zachowaj z wynikiem wybrany głos oraz scenariusz.</p><p>Producent przetwarza długi tekst fragmentami, z udokumentowanym zakresem długości fragmentu 100–300 i budżetem tokenów audio na fragment, a nie gwarantowanym całkowitym czasem nagrania. Normalizacja tekstu może rozwinąć angielskie i chińskie liczby do naturalnego odczytu, a kara za powtórzenia S1 może ograniczać powtarzające się wzorce audio. Normalizacja głośności wyjściowej jest innym ustawieniem i nie wpływa na S1. Przed złożeniem gotowego fragmentu sprawdź wymowę, granice fraz, powtarzające się dźwięki i zamierzoną zmianę emocji, a następnie popraw konkretną wypowiedź lub referencję wymagającą uwagi.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Dostępne w Ailoot · dane wejściowe i metody</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Synteza mowy</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Wejście</dt><dd><code>text</code></dd></div><div><dt>Wyjście</dt><dd><code>audio</code></dd></div><div><dt>Format wyjściowy</dt><dd>faktyczne zadeklarowane binarne dane dźwiękowe</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Pole</th><th>Typ</th><th>Wymaganie</th><th>Wartości i limity</th><th>Domyślnie</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=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Wymagane</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span><div>fish-audio/s1</div></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</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=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Wymagane</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span><div>Minimalna długość: 1</div></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr data-parameter-availability=\"saved_exact_supplier_example\"><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=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Wymagane</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span><div>Przykłady: b347db033a6549378b48d00acb0d06cd</div></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</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=\"Wymaganie\"><span class=\"card-cell-label\">Wymaganie</span>Opcjonalne</td><td data-cell-label=\"Wartości i limity\"><span class=\"card-cell-label\">Wartości i limity</span><div>mp3, pcm</div></td><td data-cell-label=\"Domyślnie\" data-default=\"known\"><span class=\"card-cell-label\">Domyślnie</span>pcm</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinacje materiałów wejściowych</summary><p class=\"note-s\"><b>text_to_speech</b> · Wymagane: actual UTF-8 script, exact supported voice</p></details><details class=\"note-s\" data-method-contract><summary>Parametry i cykl życia metody</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametr</th><th>Kontrakt</th></tr></thead><tbody><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>content_type</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>application/json</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>required</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>model, input, voice</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>material_types</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>text</td></tr><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>b347db033a6549378b48d00acb0d06cd</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>voice_list_exhaustive</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>response_format</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>mp3, pcm</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>default_response_format</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>pcm</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>quantity</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>Bajty UTF-8 pojedynczego zdekodowanego ciągu wejściowego; bez przycinania ani normalizacji</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>native_byte_quote_controls</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>Ta ścieżka wyceny dokładnych bajtów odrzuca niepuste instructions oraz wejście z turami wielu mówców, dopóki dodatkowy rozliczany tekst nie zostanie zadeklarowany.</td></tr></tbody></table></div><p>Cykl życia: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Rzeczywiście zwrócony task_id lub wpis w bibliotece multimediów</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\">Użyj dokładnego modelu i udokumentowanych pól wejściowych.</p><p class=\"note-s\">Zachowaj kompletną odpowiedź, wszystkie rzeczywiste wyniki i pierwotne zwrócone identyfikatory.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Cennik</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.</p><dl data-price-conditions><dt>Tryb szybki</dt><dd>Nie określono <span class=\"note-s\">Gdy wybrany jest tryb szybki</span></dd><dt>Tryb flex</dt><dd>Nie określono <span class=\"note-s\">Gdy wybrany jest tryb flex</span></dd><dt>Maksymalna intensywność rozumowania</dt><dd>Nie określono <span class=\"note-s\">Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Stawki Ailoot</h4><h4>Ceny według konfiguracji</h4><p class=\"note-s\">Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguracja</th><th>Tabela stawek</th><th>Jednostka rozliczeniowa</th><th>Opłata</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguracja\" scope=\"row\"><span class=\"card-cell-label\">Konfiguracja</span>Bazowe stawki za tokeny</th><td data-cell-label=\"Tabela stawek\"><span class=\"card-cell-label\">Tabela stawek</span>Stawka podstawowa</td><td data-cell-label=\"Jednostka rozliczeniowa\"><span class=\"card-cell-label\">Jednostka rozliczeniowa</span>—</td><td data-cell-label=\"Opłata\"><span class=\"card-cell-label\">Opłata</span><div><span>Wejście · Tokeny wejściowe</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenów</span></div><div><span>Wyjście · Tokeny wyjściowe</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenów</span></div><div><span>Wejście · Odczyt cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenów</span></div><div><span>Wejście · Zapis do cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenów</span></div><div><span>Wejście · Zapis do cache, 1 godz.</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenów</span></div></td></tr><tr><th data-cell-label=\"Konfiguracja\" scope=\"row\"><span class=\"card-cell-label\">Konfiguracja</span>Ultra</th><td data-cell-label=\"Tabela stawek\"><span class=\"card-cell-label\">Tabela stawek</span>—</td><td data-cell-label=\"Jednostka rozliczeniowa\"><span class=\"card-cell-label\">Jednostka rozliczeniowa</span>za bajt utf8 dźwięku wejściowego</td><td data-cell-label=\"Opłata\"><span class=\"card-cell-label\">Opłata</span><div><span>Wejście · bajt wejściowego audio w utf8</span> <b>$0.00003</b> <span class=\"price-unit\">za bajt utf8 dźwięku wejściowego</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. <a href=\"/docs/pl/billing/reserve/\">Jak działają rezerwacja i rozliczenie →</a></p><div data-declared-reference-pricing><h4>Szczegóły taryfy referencyjnej</h4><p class=\"note-s\">Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Fish Audio: S1</summary><h4>Ceny według konfiguracji</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguracja</th><th>Warunki rozliczania</th><th>Opłata</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguracja\" scope=\"row\"><span class=\"card-cell-label\">Konfiguracja</span>Fish Audio: S1 · Domyślna konfiguracja</th><td data-cell-label=\"Warunki rozliczania\"><span class=\"card-cell-label\">Warunki rozliczania</span>Konfiguracja domyślna</td><td data-cell-label=\"Opłata\"><span class=\"card-cell-label\">Opłata</span><div><span>Wejście · Bajty wejściowe UTF-8</span> <b>0,00003 USD</b> <span class=\"price-unit\">za wejściowy bajt UTF-8</span></div></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Przykładowe żądania</h3><h4>Ailoot Ultra · Synteza mowy</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Warianty kodu\"><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 · natywna treść żądania w dokładnej postaci i kompletny wynik</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiuj kod\"><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\">Odbieranie i zapisywanie wyników</h3><h4>Ailoot Ultra · Synteza mowy</h4><p class=\"note-s\">faktyczne zadeklarowane binarne dane dźwiękowe</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>Zachowaj wszystkie ukończone wyniki</h5><p class=\"note-s\">Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.</p><p class=\"note-s\">Zapisz wszystkie bajty kompletnych danych binarnych i wszystkie oryginalne nagłówki; zachowaj pełny JSON, jeśli został zwrócony. Faktyczne identyfikatory operacji i zasobów są zachowywane.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jeśli trzeba sprawdzić pierwotną odpowiedź</h5><p class=\"note-s\">Zachowaj pierwotne operation_id/X-Client-Request-ID i oryginalną odpowiedź. Odczytuj rzeczywiste rekordy zadań i zasobów należących do użytkownika bez ponownego wysyłania; nie tworzy się dedykowanego adresu URL do odpytywania dźwięku.</p></div><details class=\"card-about\" data-output-fields><summary>Pola odpowiedzi</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></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasy</h3><h4>Aliasy modelu</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=fish-audio%2Fs1&amp;route=Ultra&amp;caller=fish-audio%2Fs1&amp;fmt=speech\"><code>fish-audio/s1</code></a></span></p><h4>Aliasy ścieżek metod</h4><p class=\"note-s\">Użyj ścieżek metod podanych powyżej.</p><h4>Powiązane ID modeli</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": "Zachowaj pierwotne operation_id/X-Client-Request-ID i oryginalną odpowiedź. Odczytuj rzeczywiste rekordy zadań i zasobów należących do użytkownika bez ponownego wysyłania; nie tworzy się dedykowanego adresu URL do odpytywania dźwięku."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "actual UTF-8 script",
                  "exact supported voice"
                ]
              }
            ],
            "outputs": {
              "all_results": "Zapisz wszystkie bajty kompletnych danych binarnych i wszystkie oryginalne nagłówki; zachowaj pełny JSON, jeśli został zwrócony. Faktyczne identyfikatory operacji i zasobów są zachowywane.",
              "family": "audio",
              "fields": [
                {
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "faktyczne zadeklarowane binarne dane dźwiękowe"
            },
            "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": [
            "Użyj dokładnego modelu i udokumentowanych pól wejściowych.",
            "Zachowaj kompletną odpowiedź, wszystkie rzeczywiste wyniki i pierwotne zwrócone identyfikatory."
          ],
          "input": {
            "content_type": "application/json",
            "default_response_format": "pcm",
            "material_types": [
              "text"
            ],
            "native_byte_quote_controls": "Ta ścieżka wyceny dokładnych bajtów odrzuca niepuste instructions oraz wejście z turami wielu mówców, dopóki dodatkowy rozliczany tekst nie zostanie zadeklarowany.",
            "quantity": "Bajty UTF-8 pojedynczego zdekodowanego ciągu wejściowego; bez przycinania ani normalizacji",
            "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": "Rzeczywiście zwrócony task_id lub wpis w bibliotece multimediów",
                "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": "d3b465bbc660c4fb55c609edf602d704d3a085438e65b4b5cd6a0a5b8d17e44d",
    "input_html_sha256": "1d7d92a4b79e298e3bcce9b2e376ffa677e6e8c08e95f8c06a09f41243aa9b27",
    "private_audit_sha256": "7a36bc96b0a7ed657089c4c106e7617bfebdc410ef647b6dc30dd6e465713255",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/pl/fish-audio-s1/",
    "description": "Fish Audio S1 zamienia wielojęzyczne scenariusze na ekspresyjne audio jednego mówcy przy użyciu referencji głosowych i wskazówek emocji w nawiasach okrągłych. Służy do narracji, krótkich instrukcji mówionych lub kwestii postaci, z parametrami formatu i prozodii końcowego audio.",
    "locale": "pl",
    "md_url": "https://ailoot.ai/models/pl/fish-audio-s1/index.md",
    "title": "Fish Audio: S1 — Ailoot",
    "url": "https://ailoot.ai/models/pl/fish-audio-s1/"
  },
  "rawModel": {
    "about": "S1 to model zamiany tekstu na mowę poprzedniej generacji Fish Audio do ekspresyjnej narracji i wyjścia głosowego jednego mówcy. Odczytuje dostarczony scenariusz i zwraca audio wybranym lub warunkowanym referencją głosem. Pełny model S1 jest odrębny od S1-mini, mniejszego modelu destylowanego; producent przedstawia je jako warianty odpowiednio o 4 miliardach i 0,5 miliarda parametrów. Ten profil obejmuje wskazany model S1.\n\nDo narracji przygotuj słowa, które rzeczywiście mają zostać wypowiedziane, i zaznacz miejsca zmiany sposobu wypowiedzi. Użyteczny scenariusz objaśniający zaczyna od głównej myśli, rozwija po jednej idei i za pomocą interpunkcji oddziela frazy potrzebujące naturalnej pauzy. W krótkiej instrukcji zadbaj o zrozumiałość bez patrzenia na ekran. Zachowaj zamierzony odczyt nazw, skrótów i jednostek oraz sprawdzaj liczby w audio, zamiast zakładać, że czytelny wizualnie ciąg ma tylko jedną wymowę.\n\nS1 używa wskazówek emocji i sposobu wypowiedzi w nawiasach okrągłych, takich jak (angry), (sad), (in a hurry) lub (chuckling). Umieszczaj wskazówkę przed zdaniem lub frazą, na którą ma wpływać, a po niej rzeczywistą mowę. Sposób wypowiedzi dotyczy następującego tekstu, więc zmiana nastroju powinna znaleźć się tam, gdzie ma zmienić się wykonanie. To składnia inna niż wskazówki S2 w nawiasach kwadratowych; pisz scenariusz dla wybranej generacji, zamiast zakładać zamienność obu form oznaczeń.\n\nGłos można wybrać przez zapisany identyfikator głosu lub uwarunkować nagraniem referencyjnym wraz z jego transkrypcją. Dla natychmiastowego procesu referencyjnego ogólny przewodnik mowy zaleca czystą próbkę 10–30 sekund. Wybierz próbkę, której styl wypowiedzi i jakość nagrania pasują do zamierzonego wyniku, a transkrypcję dopasuj do słów w tej próbce. Dla stałego narratora używaj tej samej referencji głosowej we wszystkich fragmentach, aby zmiana tematu nie stała się przypadkowo zmianą postaci.\n\nWydanie S1 wymienia wśród obsługiwanych języków angielski, chiński, japoński, niemiecki, francuski, hiszpański, koreański, arabski, rosyjski, niderlandzki, włoski, polski i portugalski oraz opisuje mieszanie języków w scenariuszu. Dostarczaj sformułowania w języku docelowym, zamiast traktować syntezę mowy jako krok tłumaczenia. W fragmencie z zapożyczoną nazwą lub przejściem między językami zachowaj jasną pisownię i kontekst zdania oraz oceń, jak wybrany głos radzi sobie z przejściem.\n\nInterfejs producenta S1 obsługuje jednego mówcę na żądanie syntezy. Dialog można przygotować jako osobne segmenty z własnymi referencjami głosowymi, a następnie złożyć w aplikacji; natywna synteza wielu mówców rodziny S2 jest odrębną możliwością. Przygotowując kwestie postaci, zachowuj powiązanie roli, głosu i tekstu z każdym segmentem. Wynik syntezy jest wykonaniem audio scenariusza, natomiast nadanie rozmowie czasów lub połączenie jej z muzyką i wideo jest późniejszym etapem montażu.\n\nOpcje wyjścia obejmują MP3, WAV, surowy PCM i Opus, z MP3 jako formatem domyślnym. Udokumentowane wyjście jest monofoniczne; WAV i PCM używają próbek 16-bitowych, a wybór częstotliwości próbkowania zależy od formatu. MP3 obsługuje 64, 128 i 192 kbps, natomiast Opus używa 48 kHz. Szybkość można ustawiać od 0.5 do 2.0 wraz z regulacją głośności. Wybierz kodowany plik do nagrania lektorskiego lub odpowiedni strumień do odtwarzania i zachowaj z wynikiem wybrany głos oraz scenariusz.\n\nProducent przetwarza długi tekst fragmentami, z udokumentowanym zakresem długości fragmentu 100–300 i budżetem tokenów audio na fragment, a nie gwarantowanym całkowitym czasem nagrania. Normalizacja tekstu może rozwinąć angielskie i chińskie liczby do naturalnego odczytu, a kara za powtórzenia S1 może ograniczać powtarzające się wzorce audio. Normalizacja głośności wyjściowej jest innym ustawieniem i nie wpływa na S1. Przed złożeniem gotowego fragmentu sprawdź wymowę, granice fraz, powtarzające się dźwięki i zamierzoną zmianę emocji, a następnie popraw konkretną wypowiedź lub referencję wymagającą uwagi.",
    "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": "Pełny cennik konfiguracji w szczegółach."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "ca1892881aa6bc927745",
        "label": "Fish Audio: S1",
        "profiles": [
          {
            "basis": "",
            "dimensions": {
              "conditions": "Konfiguracja domyślna"
            },
            "label": "Fish Audio: S1 · Domyślna konfiguracja",
            "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": "Zachowaj pierwotne operation_id/X-Client-Request-ID i oryginalną odpowiedź. Odczytuj rzeczywiste rekordy zadań i zasobów należących do użytkownika bez ponownego wysyłania; nie tworzy się dedykowanego adresu URL do odpytywania dźwięku."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "actual UTF-8 script",
                  "exact supported voice"
                ]
              }
            ],
            "outputs": {
              "all_results": "Zapisz wszystkie bajty kompletnych danych binarnych i wszystkie oryginalne nagłówki; zachowaj pełny JSON, jeśli został zwrócony. Faktyczne identyfikatory operacji i zasobów są zachowywane.",
              "family": "audio",
              "fields": [
                {
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "faktyczne zadeklarowane binarne dane dźwiękowe"
            },
            "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": [
            "Użyj dokładnego modelu i udokumentowanych pól wejściowych.",
            "Zachowaj kompletną odpowiedź, wszystkie rzeczywiste wyniki i pierwotne zwrócone identyfikatory."
          ],
          "input": {
            "content_type": "application/json",
            "default_response_format": "pcm",
            "material_types": [
              "text"
            ],
            "native_byte_quote_controls": "Ta ścieżka wyceny dokładnych bajtów odrzuca niepuste instructions oraz wejście z turami wielu mówców, dopóki dodatkowy rozliczany tekst nie zostanie zadeklarowany.",
            "quantity": "Bajty UTF-8 pojedynczego zdekodowanego ciągu wejściowego; bez przycinania ani normalizacji",
            "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": "Rzeczywiście zwrócony task_id lub wpis w bibliotece multimediów",
                "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": "Fish Audio S1 zamienia wielojęzyczne scenariusze na ekspresyjne audio jednego mówcy przy użyciu referencji głosowych i wskazówek emocji w nawiasach okrągłych. Służy do narracji, krótkich instrukcji mówionych lub kwestii postaci, z parametrami formatu i prozodii końcowego audio."
  },
  "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": "Fish Audio S1 zamienia wielojęzyczne scenariusze na ekspresyjne audio jednego mówcy przy użyciu referencji głosowych i wskazówek emocji w nawiasach okrągłych. Służy do narracji, krótkich instrukcji mówionych lub kwestii postaci, z parametrami formatu i prozodii końcowego audio.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "9e86e06faaa4b9c6d1308a407c72cb08a05b06f7663c629a0e4c594780586b27",
    "renderer_sha256": "1217dcf19a93e99ac1d6fd7bf974dc19adc12fea4bd4470c2601f04e48f688cb"
  },
  "sourceRevision": "9d66089be7cf6970925b90ef0200437c60ad117db6191259f685d602d38029ef"
}
