{
  "aboutHtml": "<p>Transcribe 1 to ogólny model rozpoznawania mowy Fish Audio przeznaczony do krótkich nagrań. Przyjmuje plik audio i zwraca rozpoznane słowa jako tekst wraz z czasem trwania nagrania, opcjonalnymi segmentami z czasowaniem i informacją o języku, jeśli jest znany. Model przydaje się do krótkiej notatki głosowej, wypowiedzianej instrukcji, fragmentu nagrania lub klipu audio wymagającego czytelnej reprezentacji tekstowej.</p><p>Przykładowy proces obsługi notatki głosowej zachowuje nagranie wraz z pełną transkrypcją i identyfikatorem oryginalnego klipu. Późniejszy etap aplikacji może przeszukiwać tekst, porządkować notatkę lub tworzyć streszczenie, zachowując źródło mówione. W przypadku polecenia transkrypcja dostarcza aplikacji rozpoznane słowa; każde działanie jest osobnym etapem interpretacji i wykonania. Przy fragmencie wywiadu zapisz położenie klipu w całym nagraniu, aby cytat można było sprawdzić we właściwym miejscu.</p><p>Producent przyjmuje WAV, MP3, AAC, w tym M4A/MP4, FLAC oraz Ogg zawierający Opus lub Vorbis. Nagrania przeglądarkowe w WebM należy dla tego modelu przekonwertować do Ogg/Opus, MP3 lub WAV; dokumentacja Pro opisuje natywną obsługę dodatkowych kontenerów. Przesyłaj jeden plik audio na żądanie. Udokumentowany limit żądania dla modelu podstawowego wynosi do 50 MiB, przy czym pliki MP3 i Opus powinny mieć mniej niż 25 MiB. Rozmiar pliku i długość nagrania to różne kwestie: skompresowany plik może mieścić się w limicie przesyłania, a mimo to wymagać zbyt długiego przetwarzania.</p><p>Transcribe 1 zaprojektowano do krótkich nagrań. Producent zaleca Pro dla dźwięku dłuższego niż kilka minut; długie żądanie do modelu podstawowego może zakończyć się błędem po przekroczeniu limitu czasu przetwarzania. Przy przygotowywaniu dłuższego źródła do transkrypcji krótkich klipów zachowaj przesunięcie początku każdego klipu i przed połączeniem wyników potwierdź, że zwrócona transkrypcja obejmuje cały klip. Dodaj oryginalne przesunięcie do lokalnych czasów segmentów, aby nawigacja pozostała powiązana z pełnym nagraniem. Wytycznych modelu podstawowego nie należy rozumieć jako odrębnego, 60-minutowego limitu Pro.</p><p>Odpowiedź producenta zawiera tekst, czas trwania i segmenty. Czas trwania wyrażany jest w sekundach, a czytelną pełną transkrypcję należy zachować jako podstawowe brzmienie klipu. Znaczniki czasu są opcjonalne: ignore_timestamps ma w API producenta domyślną wartość true, natomiast false wymaga segmentów na poziomie słów z tekstem oraz czasem początku i końca w sekundach. Żądanie wyrównania czasowego wydłuża przetwarzanie. Pusta tablica segments może oznaczać pominięcie czasowania, brak mowy lub tymczasową niedostępność wyrównania, dlatego nie należy automatycznie uznawać jej za pustą pełną transkrypcję.</p><p>Segmenty to zazwyczaj słowa, a w językach chińskim i japońskim pojedynczy znak lub kilka znaków. Ich tekst pomija interpunkcję i może normalizować wartość inaczej niż pełna transkrypcja; nie jest kopią czytelnej odpowiedzi znak po znaku. Segment może mieć taki sam czas początku i końca. Używaj segmentów do znajdowania miejsca w nagraniu lub przygotowania wyświetlania z czasowaniem, a pełnego tekstu wtedy, gdy znaczenie mają dokładne słowa i interpunkcja. Zachowaj odrębność tych dwóch reprezentacji w wynikowym materiale.</p><p>Język wykrywany jest automatycznie, niezależnie od podania opcjonalnej wskazówki językowej. Producent dokumentuje kody ISO 639-1 zapisane małymi literami jako wskazówki i zwraca kod języka dla logiki aplikacji oraz nazwę języka do wyświetlenia, jeśli jest znana. Odpowiedź wskazuje jeden język, a nie wszystkie języki nagrania, w którym występują przełączenia między nimi. Zachowuj źródłowe brzmienie i dostępne metadane językowe wraz z wynikiem, zamiast traktować żądanie transkrypcji jako tłumaczenie.</p><p>Przy przygotowywaniu napisów grupuj kolejne segmenty z czasowaniem w czytelne kwestie, zamiast wyświetlać po jednym słowie. Użytecznym wynikiem jest plik SRT lub WebVTT powiązany z oryginalnym klipem, z granicami kwestii dopasowanymi do pauz i ilością tekstu możliwą do przeczytania na ekranie. Sprawdź braki czasowania i upewnij się, że koniec każdej kwestii następuje po jej początku. Grupowanie napisów i formatowanie pliku to etapy aplikacji budowane na zwróconym wyrównaniu, a sposób wyświetlania należy dopasować do odtwarzacza i odbiorców.</p><p>Udokumentowane ustawienia Transcribe 1 obejmują dźwięk, wskazówkę językową i wybór znaczników czasu. Znaczniki mówców Pro, strukturalne tury mówców, ustawienia emocji i zdarzeń oraz wskazówki liczby mówców są osobnymi funkcjami; nie należą do udokumentowanego kontraktu odpowiedzi tego modelu podstawowego. Wybierz potrzebny rezultat przed przetwarzaniem: zwykły czytelny tekst do notatki albo tekst z wyrównaniem do nawigacji podczas odtwarzania i napisów. Zachowanie identyfikatora klipu, transkrypcji i dostępnego czasowania czyni wynik użytecznym na kolejnym etapie aplikacji.</p>",
  "aboutText": "Transcribe 1 to ogólny model rozpoznawania mowy Fish Audio przeznaczony do krótkich nagrań. Przyjmuje plik audio i zwraca rozpoznane słowa jako tekst wraz z czasem trwania nagrania, opcjonalnymi segmentami z czasowaniem i informacją o języku, jeśli jest znany. Model przydaje się do krótkiej notatki głosowej, wypowiedzianej instrukcji, fragmentu nagrania lub klipu audio wymagającego czytelnej reprezentacji tekstowej.\n\nPrzykładowy proces obsługi notatki głosowej zachowuje nagranie wraz z pełną transkrypcją i identyfikatorem oryginalnego klipu. Późniejszy etap aplikacji może przeszukiwać tekst, porządkować notatkę lub tworzyć streszczenie, zachowując źródło mówione. W przypadku polecenia transkrypcja dostarcza aplikacji rozpoznane słowa; każde działanie jest osobnym etapem interpretacji i wykonania. Przy fragmencie wywiadu zapisz położenie klipu w całym nagraniu, aby cytat można było sprawdzić we właściwym miejscu.\n\nProducent przyjmuje WAV, MP3, AAC, w tym M4A/MP4, FLAC oraz Ogg zawierający Opus lub Vorbis. Nagrania przeglądarkowe w WebM należy dla tego modelu przekonwertować do Ogg/Opus, MP3 lub WAV; dokumentacja Pro opisuje natywną obsługę dodatkowych kontenerów. Przesyłaj jeden plik audio na żądanie. Udokumentowany limit żądania dla modelu podstawowego wynosi do 50 MiB, przy czym pliki MP3 i Opus powinny mieć mniej niż 25 MiB. Rozmiar pliku i długość nagrania to różne kwestie: skompresowany plik może mieścić się w limicie przesyłania, a mimo to wymagać zbyt długiego przetwarzania.\n\nTranscribe 1 zaprojektowano do krótkich nagrań. Producent zaleca Pro dla dźwięku dłuższego niż kilka minut; długie żądanie do modelu podstawowego może zakończyć się błędem po przekroczeniu limitu czasu przetwarzania. Przy przygotowywaniu dłuższego źródła do transkrypcji krótkich klipów zachowaj przesunięcie początku każdego klipu i przed połączeniem wyników potwierdź, że zwrócona transkrypcja obejmuje cały klip. Dodaj oryginalne przesunięcie do lokalnych czasów segmentów, aby nawigacja pozostała powiązana z pełnym nagraniem. Wytycznych modelu podstawowego nie należy rozumieć jako odrębnego, 60-minutowego limitu Pro.\n\nOdpowiedź producenta zawiera tekst, czas trwania i segmenty. Czas trwania wyrażany jest w sekundach, a czytelną pełną transkrypcję należy zachować jako podstawowe brzmienie klipu. Znaczniki czasu są opcjonalne: ignore_timestamps ma w API producenta domyślną wartość true, natomiast false wymaga segmentów na poziomie słów z tekstem oraz czasem początku i końca w sekundach. Żądanie wyrównania czasowego wydłuża przetwarzanie. Pusta tablica segments może oznaczać pominięcie czasowania, brak mowy lub tymczasową niedostępność wyrównania, dlatego nie należy automatycznie uznawać jej za pustą pełną transkrypcję.\n\nSegmenty to zazwyczaj słowa, a w językach chińskim i japońskim pojedynczy znak lub kilka znaków. Ich tekst pomija interpunkcję i może normalizować wartość inaczej niż pełna transkrypcja; nie jest kopią czytelnej odpowiedzi znak po znaku. Segment może mieć taki sam czas początku i końca. Używaj segmentów do znajdowania miejsca w nagraniu lub przygotowania wyświetlania z czasowaniem, a pełnego tekstu wtedy, gdy znaczenie mają dokładne słowa i interpunkcja. Zachowaj odrębność tych dwóch reprezentacji w wynikowym materiale.\n\nJęzyk wykrywany jest automatycznie, niezależnie od podania opcjonalnej wskazówki językowej. Producent dokumentuje kody ISO 639-1 zapisane małymi literami jako wskazówki i zwraca kod języka dla logiki aplikacji oraz nazwę języka do wyświetlenia, jeśli jest znana. Odpowiedź wskazuje jeden język, a nie wszystkie języki nagrania, w którym występują przełączenia między nimi. Zachowuj źródłowe brzmienie i dostępne metadane językowe wraz z wynikiem, zamiast traktować żądanie transkrypcji jako tłumaczenie.\n\nPrzy przygotowywaniu napisów grupuj kolejne segmenty z czasowaniem w czytelne kwestie, zamiast wyświetlać po jednym słowie. Użytecznym wynikiem jest plik SRT lub WebVTT powiązany z oryginalnym klipem, z granicami kwestii dopasowanymi do pauz i ilością tekstu możliwą do przeczytania na ekranie. Sprawdź braki czasowania i upewnij się, że koniec każdej kwestii następuje po jej początku. Grupowanie napisów i formatowanie pliku to etapy aplikacji budowane na zwróconym wyrównaniu, a sposób wyświetlania należy dopasować do odtwarzacza i odbiorców.\n\nUdokumentowane ustawienia Transcribe 1 obejmują dźwięk, wskazówkę językową i wybór znaczników czasu. Znaczniki mówców Pro, strukturalne tury mówców, ustawienia emocji i zdarzeń oraz wskazówki liczby mówców są osobnymi funkcjami; nie należą do udokumentowanego kontraktu odpowiedzi tego modelu podstawowego. Wybierz potrzebny rezultat przed przetwarzaniem: zwykły czytelny tekst do notatki albo tekst z wyrównaniem do nawigacji podczas odtwarzania i napisów. Zachowanie identyfikatora klipu, transkrypcji i dostępnego czasowania czyni wynik użytecznym na kolejnym etapie aplikacji.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "11cc1306dcb8e7806e4d1bbb5b5d21e458d3ad5d2bde2621c98b62a9a014747c",
    "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: Transcribe 1</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/transcribe-1</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|transcriptions|/v1/audio/transcriptions|fish-audio%2Ftranscribe-1\">Rozpoznawanie</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\">Transcribe 1 zamienia krótkie nagrania audio na tekst, automatycznie rozpoznając język i opcjonalnie dodając znaczniki czasu na poziomie słów. Wykorzystuj transkrypcję do notatek głosowych, przeszukiwalnych klipów lub przygotowania napisów, oddzielając segmenty z czasowaniem od pełnego, czytelnego tekstu.</p><dl class=\"card-io\" data-card-io><div><dt>Akceptowane dane wejściowe</dt><dd>Audio</dd></div><div><dt>Wyniki</dt><dd>Tekst</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>Transcribe 1 to ogólny model rozpoznawania mowy Fish Audio przeznaczony do krótkich nagrań. Przyjmuje plik audio i zwraca rozpoznane słowa jako tekst wraz z czasem trwania nagrania, opcjonalnymi segmentami z czasowaniem i informacją o języku, jeśli jest znany. Model przydaje się do krótkiej notatki głosowej, wypowiedzianej instrukcji, fragmentu nagrania lub klipu audio wymagającego czytelnej reprezentacji tekstowej.</p><p>Przykładowy proces obsługi notatki głosowej zachowuje nagranie wraz z pełną transkrypcją i identyfikatorem oryginalnego klipu. Późniejszy etap aplikacji może przeszukiwać tekst, porządkować notatkę lub tworzyć streszczenie, zachowując źródło mówione. W przypadku polecenia transkrypcja dostarcza aplikacji rozpoznane słowa; każde działanie jest osobnym etapem interpretacji i wykonania. Przy fragmencie wywiadu zapisz położenie klipu w całym nagraniu, aby cytat można było sprawdzić we właściwym miejscu.</p><p>Producent przyjmuje WAV, MP3, AAC, w tym M4A/MP4, FLAC oraz Ogg zawierający Opus lub Vorbis. Nagrania przeglądarkowe w WebM należy dla tego modelu przekonwertować do Ogg/Opus, MP3 lub WAV; dokumentacja Pro opisuje natywną obsługę dodatkowych kontenerów. Przesyłaj jeden plik audio na żądanie. Udokumentowany limit żądania dla modelu podstawowego wynosi do 50 MiB, przy czym pliki MP3 i Opus powinny mieć mniej niż 25 MiB. Rozmiar pliku i długość nagrania to różne kwestie: skompresowany plik może mieścić się w limicie przesyłania, a mimo to wymagać zbyt długiego przetwarzania.</p><p>Transcribe 1 zaprojektowano do krótkich nagrań. Producent zaleca Pro dla dźwięku dłuższego niż kilka minut; długie żądanie do modelu podstawowego może zakończyć się błędem po przekroczeniu limitu czasu przetwarzania. Przy przygotowywaniu dłuższego źródła do transkrypcji krótkich klipów zachowaj przesunięcie początku każdego klipu i przed połączeniem wyników potwierdź, że zwrócona transkrypcja obejmuje cały klip. Dodaj oryginalne przesunięcie do lokalnych czasów segmentów, aby nawigacja pozostała powiązana z pełnym nagraniem. Wytycznych modelu podstawowego nie należy rozumieć jako odrębnego, 60-minutowego limitu Pro.</p><p>Odpowiedź producenta zawiera tekst, czas trwania i segmenty. Czas trwania wyrażany jest w sekundach, a czytelną pełną transkrypcję należy zachować jako podstawowe brzmienie klipu. Znaczniki czasu są opcjonalne: ignore_timestamps ma w API producenta domyślną wartość true, natomiast false wymaga segmentów na poziomie słów z tekstem oraz czasem początku i końca w sekundach. Żądanie wyrównania czasowego wydłuża przetwarzanie. Pusta tablica segments może oznaczać pominięcie czasowania, brak mowy lub tymczasową niedostępność wyrównania, dlatego nie należy automatycznie uznawać jej za pustą pełną transkrypcję.</p><p>Segmenty to zazwyczaj słowa, a w językach chińskim i japońskim pojedynczy znak lub kilka znaków. Ich tekst pomija interpunkcję i może normalizować wartość inaczej niż pełna transkrypcja; nie jest kopią czytelnej odpowiedzi znak po znaku. Segment może mieć taki sam czas początku i końca. Używaj segmentów do znajdowania miejsca w nagraniu lub przygotowania wyświetlania z czasowaniem, a pełnego tekstu wtedy, gdy znaczenie mają dokładne słowa i interpunkcja. Zachowaj odrębność tych dwóch reprezentacji w wynikowym materiale.</p><p>Język wykrywany jest automatycznie, niezależnie od podania opcjonalnej wskazówki językowej. Producent dokumentuje kody ISO 639-1 zapisane małymi literami jako wskazówki i zwraca kod języka dla logiki aplikacji oraz nazwę języka do wyświetlenia, jeśli jest znana. Odpowiedź wskazuje jeden język, a nie wszystkie języki nagrania, w którym występują przełączenia między nimi. Zachowuj źródłowe brzmienie i dostępne metadane językowe wraz z wynikiem, zamiast traktować żądanie transkrypcji jako tłumaczenie.</p><p>Przy przygotowywaniu napisów grupuj kolejne segmenty z czasowaniem w czytelne kwestie, zamiast wyświetlać po jednym słowie. Użytecznym wynikiem jest plik SRT lub WebVTT powiązany z oryginalnym klipem, z granicami kwestii dopasowanymi do pauz i ilością tekstu możliwą do przeczytania na ekranie. Sprawdź braki czasowania i upewnij się, że koniec każdej kwestii następuje po jej początku. Grupowanie napisów i formatowanie pliku to etapy aplikacji budowane na zwróconym wyrównaniu, a sposób wyświetlania należy dopasować do odtwarzacza i odbiorców.</p><p>Udokumentowane ustawienia Transcribe 1 obejmują dźwięk, wskazówkę językową i wybór znaczników czasu. Znaczniki mówców Pro, strukturalne tury mówców, ustawienia emocji i zdarzeń oraz wskazówki liczby mówców są osobnymi funkcjami; nie należą do udokumentowanego kontraktu odpowiedzi tego modelu podstawowego. Wybierz potrzebny rezultat przed przetwarzaniem: zwykły czytelny tekst do notatki albo tekst z wyrównaniem do nawigacji podczas odtwarzania i napisów. Zachowanie identyfikatora klipu, transkrypcji i dostępnego czasowania czyni wynik użytecznym na kolejnym etapie aplikacji.</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 · Transkrypcja</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Wejście</dt><dd><code>audio</code></dd></div><div><dt>Wyjście</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Pole</th><th>Typ</th><th>Wymaganie</th><th>Wartości i limity</th><th>Domyślnie</th></tr></thead><tbody><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"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/transcribe-1</div></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"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></td><td data-cell-label=\"Domyślnie\" data-default=\"unspecified\"><span class=\"card-cell-label\">Domyślnie</span>—</td></tr></tbody></table></div><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_audio</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>audio</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>material_conditions</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>Przykład odczytuje Twój rzeczywisty, niepusty plik PCM WAV, koduje wszystkie bajty pliku jako base64 i wysyła input_audio.format z wartością wav.</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> · dokładne task_id z istniejącego rekordu multimediów należących do użytkownika</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">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>sekunda wejściowego audio</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 sekundę dźwięku wejściowego</td><td data-cell-label=\"Opłata\"><span class=\"card-cell-label\">Opłata</span><div><span>Wejście · sekunda wejściowego audio</span> <b>$0.0002</b> <span class=\"price-unit\">za sekundę 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></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Przykładowe żądania</h3><h4>Ailoot Ultra · Transkrypcja</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-1361-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1361-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · rzeczywisty plik WAV i kompletny pierwotny 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-1361-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1361-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;fish-audio/transcribe-1&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#39;}}\nPath(&#39;request.json&#39;).write_text(json.dumps(request, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Odbieranie i zapisywanie wyników</h3><h4>Ailoot Ultra · Transkrypcja</h4><p class=\"note-s\">Kompletna treść oryginalnej odpowiedzi, status i przekazane nagłówki. Ta funkcja obsługująca nie dodaje uniwersalnej struktury JSON, pola tekstowego ani obudowy zadania.</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\">Zachowaj pełną odpowiedź i nagłówki, wszystkie rzeczywiście uzyskane wyniki, pierwotnie zwrócone identyfikatory oraz wszystkie pola zużycia. Odzyskaj pierwotną operację bez ponownego wysyłania żądania utworzenia.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jeśli trzeba sprawdzić pierwotną odpowiedź</h5><p class=\"note-s\">Zachowaj rzeczywiste X-Client-Request-ID i kompletną odpowiedź. Odczytuj pierwotne zasoby należące do użytkownika i ich dokładne podpisane adresy URL treści; nigdy nie ponawiaj niepewnego utworzenia.</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\">text (when present)</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span></td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Błędy i dalsze kroki</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Odpowiedź</th><th>Warunek</th><th>Następny krok</th></tr></thead><tbody><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Treść JSON lub jawny kanoniczny identyfikator modelu są nieprawidłowe.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Zachowaj odpowiedź i popraw wskazane pole żądania.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Klucz API Ailoot jest nieprawidłowy.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Użyj swojego autoryzowanego klucza API Ailoot.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>403 · <code>permission_error</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Grupa klucza nie ma uprawnień do tej metody.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Zachowaj zwrócone szczegóły błędu.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Wybrana metoda nie ma dopuszczonej ścieżki.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Zachowaj zwrócone szczegóły błędu.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Zaakceptowana taryfa nie może uzyskać wymaganej ilości danych wejściowych lub ich górnej granicy.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Zachowaj odpowiedź; użyj reprezentacji danych wejściowych wymaganej przez zaakceptowaną taryfę.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>503 · <code></code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Wymagany magazyn, ścieżka, cena metody lub rezerwacja są niedostępne.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Zachowaj kompletną oryginalną odpowiedź. Niepewna rezerwacja nie uprawnia do ponownego wysłania.</td></tr><tr><th data-cell-label=\"Odpowiedź\" scope=\"row\"><span class=\"card-cell-label\">Odpowiedź</span>502 · <code>server_error</code></th><td data-cell-label=\"Warunek\"><span class=\"card-cell-label\">Warunek</span>Pierwotny wynik, dane użycia lub rozliczenie wymagają sprawdzenia.</td><td data-cell-label=\"Następny krok\"><span class=\"card-cell-label\">Następny krok</span>Zachowaj rzeczywisty identyfikator żądania i oryginalną odpowiedź. Odczytuj istniejący rekord należący do użytkownika; nie wysyłaj ponownie żądania utworzenia.</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%2Ftranscribe-1&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1</code></a></span></p><h4>Aliasy ś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%2Ftranscribe-1&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/transcribe-1",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|fish-audio%2Ftranscribe-1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "Treść JSON lub jawny kanoniczny identyfikator modelu są nieprawidłowe.",
                "http_status": 400,
                "recovery": "Zachowaj odpowiedź i popraw wskazane pole żądania.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Klucz API Ailoot jest nieprawidłowy.",
                "http_status": 401,
                "recovery": "Użyj swojego autoryzowanego klucza API Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Grupa klucza nie ma uprawnień do tej metody.",
                "http_status": 403,
                "recovery": "Zachowaj zwrócone szczegóły błędu.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Wybrana metoda nie ma dopuszczonej ścieżki.",
                "http_status": 404,
                "recovery": "Zachowaj zwrócone szczegóły błędu.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Zaakceptowana taryfa nie może uzyskać wymaganej ilości danych wejściowych lub ich górnej granicy.",
                "http_status": 422,
                "recovery": "Zachowaj odpowiedź; użyj reprezentacji danych wejściowych wymaganej przez zaakceptowaną taryfę.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Wymagany magazyn, ścieżka, cena metody lub rezerwacja są niedostępne.",
                "http_status": 503,
                "recovery": "Zachowaj kompletną oryginalną odpowiedź. Niepewna rezerwacja nie uprawnia do ponownego wysłania.",
                "type": null
              },
              {
                "code": null,
                "condition": "Pierwotny wynik, dane użycia lub rozliczenie wymagają sprawdzenia.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Zachowaj rzeczywisty identyfikator żądania i oryginalną odpowiedź. Odczytuj istniejący rekord należący do użytkownika; nie wysyłaj ponownie żądania utworzenia.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Zachowaj rzeczywiste X-Client-Request-ID i kompletną odpowiedź. Odczytuj pierwotne zasoby należące do użytkownika i ich dokładne podpisane adresy URL treści; nigdy nie ponawiaj niepewnego utworzenia."
            },
            "outputs": {
              "all_results": "Zachowaj pełną odpowiedź i nagłówki, wszystkie rzeczywiście uzyskane wyniki, pierwotnie zwrócone identyfikatory oraz wszystkie pola zużycia. Odzyskaj pierwotną operację bez ponownego wysyłania żądania utworzenia.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Kompletna treść oryginalnej odpowiedzi, status i przekazane nagłówki. Ta funkcja obsługująca nie dodaje uniwersalnej struktury JSON, pola tekstowego ani obudowy zadania."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "fish-audio/transcribe-1"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "fish-audio/transcribe-1"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Przykład odczytuje Twój rzeczywisty, niepusty plik PCM WAV, koduje wszystkie bajty pliku jako base64 i wysyła input_audio.format z wartością wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "dokładne task_id z istniejącego rekordu multimediów należących do użytkownika",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transkrypcja",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0002
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/transcribe-1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "877736f7b4f208efc2a2a395d8761be28cb375ef079f2aceb7399cbf6de59283",
    "input_html_sha256": "ca84ddddc68d3e9e658006ad33a8b3ed525b53351757edf80c4596f1668cce1f",
    "private_audit_sha256": "ae07b7e21891844bc9156e4859ab45668a3290dabbb3e40bddb922c0ca491e82",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/pl/fish-audio-transcribe-1/",
    "description": "Transcribe 1 zamienia krótkie nagrania audio na tekst, automatycznie rozpoznając język i opcjonalnie dodając znaczniki czasu na poziomie słów. Wykorzystuj transkrypcję do notatek głosowych, przeszukiwalnych klipów lub przygotowania napisów, oddzielając segmenty z czasowaniem od pełnego, czytelnego tekstu.",
    "locale": "pl",
    "md_url": "https://ailoot.ai/models/pl/fish-audio-transcribe-1/index.md",
    "title": "Fish Audio: Transcribe 1 — Ailoot",
    "url": "https://ailoot.ai/models/pl/fish-audio-transcribe-1/"
  },
  "rawModel": {
    "about": "Transcribe 1 to ogólny model rozpoznawania mowy Fish Audio przeznaczony do krótkich nagrań. Przyjmuje plik audio i zwraca rozpoznane słowa jako tekst wraz z czasem trwania nagrania, opcjonalnymi segmentami z czasowaniem i informacją o języku, jeśli jest znany. Model przydaje się do krótkiej notatki głosowej, wypowiedzianej instrukcji, fragmentu nagrania lub klipu audio wymagającego czytelnej reprezentacji tekstowej.\n\nPrzykładowy proces obsługi notatki głosowej zachowuje nagranie wraz z pełną transkrypcją i identyfikatorem oryginalnego klipu. Późniejszy etap aplikacji może przeszukiwać tekst, porządkować notatkę lub tworzyć streszczenie, zachowując źródło mówione. W przypadku polecenia transkrypcja dostarcza aplikacji rozpoznane słowa; każde działanie jest osobnym etapem interpretacji i wykonania. Przy fragmencie wywiadu zapisz położenie klipu w całym nagraniu, aby cytat można było sprawdzić we właściwym miejscu.\n\nProducent przyjmuje WAV, MP3, AAC, w tym M4A/MP4, FLAC oraz Ogg zawierający Opus lub Vorbis. Nagrania przeglądarkowe w WebM należy dla tego modelu przekonwertować do Ogg/Opus, MP3 lub WAV; dokumentacja Pro opisuje natywną obsługę dodatkowych kontenerów. Przesyłaj jeden plik audio na żądanie. Udokumentowany limit żądania dla modelu podstawowego wynosi do 50 MiB, przy czym pliki MP3 i Opus powinny mieć mniej niż 25 MiB. Rozmiar pliku i długość nagrania to różne kwestie: skompresowany plik może mieścić się w limicie przesyłania, a mimo to wymagać zbyt długiego przetwarzania.\n\nTranscribe 1 zaprojektowano do krótkich nagrań. Producent zaleca Pro dla dźwięku dłuższego niż kilka minut; długie żądanie do modelu podstawowego może zakończyć się błędem po przekroczeniu limitu czasu przetwarzania. Przy przygotowywaniu dłuższego źródła do transkrypcji krótkich klipów zachowaj przesunięcie początku każdego klipu i przed połączeniem wyników potwierdź, że zwrócona transkrypcja obejmuje cały klip. Dodaj oryginalne przesunięcie do lokalnych czasów segmentów, aby nawigacja pozostała powiązana z pełnym nagraniem. Wytycznych modelu podstawowego nie należy rozumieć jako odrębnego, 60-minutowego limitu Pro.\n\nOdpowiedź producenta zawiera tekst, czas trwania i segmenty. Czas trwania wyrażany jest w sekundach, a czytelną pełną transkrypcję należy zachować jako podstawowe brzmienie klipu. Znaczniki czasu są opcjonalne: ignore_timestamps ma w API producenta domyślną wartość true, natomiast false wymaga segmentów na poziomie słów z tekstem oraz czasem początku i końca w sekundach. Żądanie wyrównania czasowego wydłuża przetwarzanie. Pusta tablica segments może oznaczać pominięcie czasowania, brak mowy lub tymczasową niedostępność wyrównania, dlatego nie należy automatycznie uznawać jej za pustą pełną transkrypcję.\n\nSegmenty to zazwyczaj słowa, a w językach chińskim i japońskim pojedynczy znak lub kilka znaków. Ich tekst pomija interpunkcję i może normalizować wartość inaczej niż pełna transkrypcja; nie jest kopią czytelnej odpowiedzi znak po znaku. Segment może mieć taki sam czas początku i końca. Używaj segmentów do znajdowania miejsca w nagraniu lub przygotowania wyświetlania z czasowaniem, a pełnego tekstu wtedy, gdy znaczenie mają dokładne słowa i interpunkcja. Zachowaj odrębność tych dwóch reprezentacji w wynikowym materiale.\n\nJęzyk wykrywany jest automatycznie, niezależnie od podania opcjonalnej wskazówki językowej. Producent dokumentuje kody ISO 639-1 zapisane małymi literami jako wskazówki i zwraca kod języka dla logiki aplikacji oraz nazwę języka do wyświetlenia, jeśli jest znana. Odpowiedź wskazuje jeden język, a nie wszystkie języki nagrania, w którym występują przełączenia między nimi. Zachowuj źródłowe brzmienie i dostępne metadane językowe wraz z wynikiem, zamiast traktować żądanie transkrypcji jako tłumaczenie.\n\nPrzy przygotowywaniu napisów grupuj kolejne segmenty z czasowaniem w czytelne kwestie, zamiast wyświetlać po jednym słowie. Użytecznym wynikiem jest plik SRT lub WebVTT powiązany z oryginalnym klipem, z granicami kwestii dopasowanymi do pauz i ilością tekstu możliwą do przeczytania na ekranie. Sprawdź braki czasowania i upewnij się, że koniec każdej kwestii następuje po jej początku. Grupowanie napisów i formatowanie pliku to etapy aplikacji budowane na zwróconym wyrównaniu, a sposób wyświetlania należy dopasować do odtwarzacza i odbiorców.\n\nUdokumentowane ustawienia Transcribe 1 obejmują dźwięk, wskazówkę językową i wybór znaczników czasu. Znaczniki mówców Pro, strukturalne tury mówców, ustawienia emocji i zdarzeń oraz wskazówki liczby mówców są osobnymi funkcjami; nie należą do udokumentowanego kontraktu odpowiedzi tego modelu podstawowego. Wybierz potrzebny rezultat przed przetwarzaniem: zwykły czytelny tekst do notatki albo tekst z wyrównaniem do nawigacji podczas odtwarzania i napisów. Zachowanie identyfikatora klipu, transkrypcji i dostępnego czasowania czyni wynik użytecznym na kolejnym etapie aplikacji.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "Pełny cennik konfiguracji w szczegółach."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "fish-audio/transcribe-1",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "Treść JSON lub jawny kanoniczny identyfikator modelu są nieprawidłowe.",
                "http_status": 400,
                "recovery": "Zachowaj odpowiedź i popraw wskazane pole żądania.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Klucz API Ailoot jest nieprawidłowy.",
                "http_status": 401,
                "recovery": "Użyj swojego autoryzowanego klucza API Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Grupa klucza nie ma uprawnień do tej metody.",
                "http_status": 403,
                "recovery": "Zachowaj zwrócone szczegóły błędu.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Wybrana metoda nie ma dopuszczonej ścieżki.",
                "http_status": 404,
                "recovery": "Zachowaj zwrócone szczegóły błędu.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Zaakceptowana taryfa nie może uzyskać wymaganej ilości danych wejściowych lub ich górnej granicy.",
                "http_status": 422,
                "recovery": "Zachowaj odpowiedź; użyj reprezentacji danych wejściowych wymaganej przez zaakceptowaną taryfę.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Wymagany magazyn, ścieżka, cena metody lub rezerwacja są niedostępne.",
                "http_status": 503,
                "recovery": "Zachowaj kompletną oryginalną odpowiedź. Niepewna rezerwacja nie uprawnia do ponownego wysłania.",
                "type": null
              },
              {
                "code": null,
                "condition": "Pierwotny wynik, dane użycia lub rozliczenie wymagają sprawdzenia.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Zachowaj rzeczywisty identyfikator żądania i oryginalną odpowiedź. Odczytuj istniejący rekord należący do użytkownika; nie wysyłaj ponownie żądania utworzenia.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Zachowaj rzeczywiste X-Client-Request-ID i kompletną odpowiedź. Odczytuj pierwotne zasoby należące do użytkownika i ich dokładne podpisane adresy URL treści; nigdy nie ponawiaj niepewnego utworzenia."
            },
            "outputs": {
              "all_results": "Zachowaj pełną odpowiedź i nagłówki, wszystkie rzeczywiście uzyskane wyniki, pierwotnie zwrócone identyfikatory oraz wszystkie pola zużycia. Odzyskaj pierwotną operację bez ponownego wysyłania żądania utworzenia.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Kompletna treść oryginalnej odpowiedzi, status i przekazane nagłówki. Ta funkcja obsługująca nie dodaje uniwersalnej struktury JSON, pola tekstowego ani obudowy zadania."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "fish-audio/transcribe-1"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "fish-audio/transcribe-1"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Przykład odczytuje Twój rzeczywisty, niepusty plik PCM WAV, koduje wszystkie bajty pliku jako base64 i wysyła input_audio.format z wartością wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "dokładne task_id z istniejącego rekordu multimediów należących do użytkownika",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transkrypcja",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0002
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/transcribe-1",
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: Transcribe 1",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Transcribe 1 zamienia krótkie nagrania audio na tekst, automatycznie rozpoznając język i opcjonalnie dodając znaczniki czasu na poziomie słów. Wykorzystuj transkrypcję do notatek głosowych, przeszukiwalnych klipów lub przygotowania napisów, oddzielając segmenty z czasowaniem od pełnego, czytelnego tekstu."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Transcribe 1 zamienia krótkie nagrania audio na tekst, automatycznie rozpoznając język i opcjonalnie dodając znaczniki czasu na poziomie słów. Wykorzystuj transkrypcję do notatek głosowych, przeszukiwalnych klipów lub przygotowania napisów, oddzielając segmenty z czasowaniem od pełnego, czytelnego tekstu.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "b11043525e1948050ee277c41f04b9b1f5d197c138dd845aad2af6164312cdbc",
    "renderer_sha256": "1217dcf19a93e99ac1d6fd7bf974dc19adc12fea4bd4470c2601f04e48f688cb"
  },
  "sourceRevision": "8f128d5863abb6bfd840eba45a5f01b51c35dc7a6d31df5220b12b32efa54366"
}
