{
  "aboutHtml": "<p>Google Chirp 3 er en flersproget model til automatisk talegenkendelse, som omdanner talt lyd til tekst. Google dokumenterer den som transskriptionsmodellen Chirp 3 i sin Speech-to-Text V2-familie med modelidentifikatoren chirp_3. Formålet er at genkende optaget eller streamet tale med sprogidentifikation og transskriptionsspecifikke funktioner. Resultatet er et transkript og de metadata, som den valgte genkendelsesmetode understøtter, frem for genereret tale eller et åbent assistentsvar.</p><p>Producenten skelner mellem streaminggenkendelse, synkron genkendelse til korte klip og batchgenkendelse til længere optagelser. Vælg metoden efter kildelyden og det påkrævede resultat. Til en kort talebesked kan et færdigt tekstsvar være tilstrækkeligt. Til et interview eller et optaget opkald kan et batchresultat med taleroplysninger være mere nyttigt. Ved livetekster eller en grænseflade til talekommandoer skal du holde foreløbig tekst adskilt fra det endelige genkendelsesresultat og bevare det lydinterval, det beskriver.</p><p>Forbered lyd i den kodning, som genkendelsesimplementeringen forventer. Googles Chirp 3-eksempler bruger automatisk registreret afkodning til optagede filer og eksplicit afkodning til en konfiguration med rå streaminglyd. Den tilknyttede V2-afkoderreference angiver blandt sine understøttede kodninger WAV PCM eller kompanderet lyd, FLAC, MP3, Ogg/WebM Opus og AAC i MP4-, M4A- eller MOV-containere. Et containernavn erstatter ikke den faktiske codec- og samplekonfiguration. Bevar tydelig tale, og undgå kraftig overstyring eller unødvendig konvertering, der fjerner hørbare detaljer.</p><p>Chirp 3 kan automatisk identificere og transskribere det dominerende sprog, og et sæt forventede sprogvarianter kan indsnævre genkendelsesmulighederne. Sprogtilgængeligheden varierer efter metode og funktion. Listen over transskriptionssprog er bredere end listen for taleradskillelse, så genkendelse af et sprog dokumenterer ikke, at alle taler- eller tidsfunktioner gælder for det. Brug den sprogvariant, der passer til optagelsen, og bevar navne fra sprogskift eller fagtermer til gennemgang. En registreret sprogetiket er en del af resultatet, ikke dokumentation for, at alle usædvanlige ord blev genkendt korrekt.</p><p>Taleradskillelse grupperer tale efter stemme i en optagelse med én kanal. Google giver et eksempel på batchtransskription med taleroplysninger for hvert ord. Ved et interview skal du bevare disse etiketter sammen med den genkendte tekst og sammenligne talerskift med optagelsen, før du knytter faktiske navne eller roller til dem. Lignende stemmer, afbrydelser og overlappende tale kan gøre tilordning vanskelig. Gør kildens kanalopbygning og den tilsigtede talergennemgang tydelig frem for at behandle en etiket som en uafhængigt verificeret identitet.</p><p>Tidsoplysninger er også metodespecifikke. Streaminggenkendelse giver tidsstempler på ytringsniveau, mens producentens vejledning om filgenkendelse beskriver valgfrie ordtider med en mulig afvejning i forhold til transskriptionskvaliteten. Bevar de metadata, som den valgte metode faktisk returnerer, og gennemgå tidsjusteringen sammen med ordlyden. En undertekstningsarbejdsgang kræver begge dele: læsbar genkendt tekst og dokumentation for, at en tidsgrænse passer til den rigtige lyd. Google advarer også om, at den returnerede confidence-værdi på ordniveau ikke er en reel sikkerhedsscore, så den bør ikke bruges til at attestere, at et ord er korrekt.</p><p>Taletilpasning leverer fraser og egennavne, der sandsynligvis forekommer i optagelsen. Producenten dokumenterer en ordbog med op til 1.000 fraser og anbefaler så få relevante poster som muligt for at undgå at forringe genkendelsen af andre termer. Til et teknisk oplæg skal du forberede en kort liste over faktiske produktnavne og forkortelser og derefter gennemgå dem i transkriptet. Vægtningen hjælper genkendelsen med at overveje en term; den dokumenterer ikke, at termen blev sagt, og erstatter ikke en kontrol mod lyden.</p><p>Modellen tilføjer automatisk tegnsætning og store bogstaver, som den dokumenterede grænseflade kan deaktivere. Google beskriver også en previewfunktion til brugerdefinerede instruktioner for transskriptionsformat, eksempelvis hvordan et bestemt navn eller en bestemt dato skal skrives. Hold disse instruktioner fokuseret på formatering af den genkendte tale. Et transkript, der normaliserer en dato eller skriver et brandnavn med stort, skal stadig bevare den talte betydning. En sammenfatning, oversættelse eller faktuel analyse er en senere brug af transkriptet frem for noget, som genkendelsesresultatet i sig selv fastslår.</p><p>Den indbyggede støjreduktion skal dæmpe baggrundsmusik og miljølyde som regn eller gadestøj. Google angiver udtrykkeligt, at den ikke kan fjerne menneskestemmer i baggrunden. Bevar denne skelnen, når du forbereder en optagelse med overlappende samtaler. Sammenhold støjende og stille afsnit med kilden frem for at antage, at et renere udseende transkript beviser, at den forstyrrende lyd blev fjernet. Et nyttigt resultat gør usikre passager genkendelige, så de kan rettes.</p><p>Ved streamingopgaver ændrer følsomheden for ytringsafslutning, hvornår en ytring behandles som færdig. Producenten beskriver indstillingerne standard, short og supershort til stadig kortere forventet tale. En hurtigere indstilling kan afbryde en taler, der holder pause midt i en tanke. Tilpas indstillingen til naturlig diktat, en kort sætning eller en meget kort kommando, og bevar status for det endelige resultat sammen med transkriptet. Ved en færdig fil skal du gennemgå navne, mængder, negationer og talergrænser og derefter bevare den valgte metode og kildelyden, så resultatet kan kontrolleres eller genbruges.</p>",
  "aboutText": "Google Chirp 3 er en flersproget model til automatisk talegenkendelse, som omdanner talt lyd til tekst. Google dokumenterer den som transskriptionsmodellen Chirp 3 i sin Speech-to-Text V2-familie med modelidentifikatoren chirp_3. Formålet er at genkende optaget eller streamet tale med sprogidentifikation og transskriptionsspecifikke funktioner. Resultatet er et transkript og de metadata, som den valgte genkendelsesmetode understøtter, frem for genereret tale eller et åbent assistentsvar.\n\nProducenten skelner mellem streaminggenkendelse, synkron genkendelse til korte klip og batchgenkendelse til længere optagelser. Vælg metoden efter kildelyden og det påkrævede resultat. Til en kort talebesked kan et færdigt tekstsvar være tilstrækkeligt. Til et interview eller et optaget opkald kan et batchresultat med taleroplysninger være mere nyttigt. Ved livetekster eller en grænseflade til talekommandoer skal du holde foreløbig tekst adskilt fra det endelige genkendelsesresultat og bevare det lydinterval, det beskriver.\n\nForbered lyd i den kodning, som genkendelsesimplementeringen forventer. Googles Chirp 3-eksempler bruger automatisk registreret afkodning til optagede filer og eksplicit afkodning til en konfiguration med rå streaminglyd. Den tilknyttede V2-afkoderreference angiver blandt sine understøttede kodninger WAV PCM eller kompanderet lyd, FLAC, MP3, Ogg/WebM Opus og AAC i MP4-, M4A- eller MOV-containere. Et containernavn erstatter ikke den faktiske codec- og samplekonfiguration. Bevar tydelig tale, og undgå kraftig overstyring eller unødvendig konvertering, der fjerner hørbare detaljer.\n\nChirp 3 kan automatisk identificere og transskribere det dominerende sprog, og et sæt forventede sprogvarianter kan indsnævre genkendelsesmulighederne. Sprogtilgængeligheden varierer efter metode og funktion. Listen over transskriptionssprog er bredere end listen for taleradskillelse, så genkendelse af et sprog dokumenterer ikke, at alle taler- eller tidsfunktioner gælder for det. Brug den sprogvariant, der passer til optagelsen, og bevar navne fra sprogskift eller fagtermer til gennemgang. En registreret sprogetiket er en del af resultatet, ikke dokumentation for, at alle usædvanlige ord blev genkendt korrekt.\n\nTaleradskillelse grupperer tale efter stemme i en optagelse med én kanal. Google giver et eksempel på batchtransskription med taleroplysninger for hvert ord. Ved et interview skal du bevare disse etiketter sammen med den genkendte tekst og sammenligne talerskift med optagelsen, før du knytter faktiske navne eller roller til dem. Lignende stemmer, afbrydelser og overlappende tale kan gøre tilordning vanskelig. Gør kildens kanalopbygning og den tilsigtede talergennemgang tydelig frem for at behandle en etiket som en uafhængigt verificeret identitet.\n\nTidsoplysninger er også metodespecifikke. Streaminggenkendelse giver tidsstempler på ytringsniveau, mens producentens vejledning om filgenkendelse beskriver valgfrie ordtider med en mulig afvejning i forhold til transskriptionskvaliteten. Bevar de metadata, som den valgte metode faktisk returnerer, og gennemgå tidsjusteringen sammen med ordlyden. En undertekstningsarbejdsgang kræver begge dele: læsbar genkendt tekst og dokumentation for, at en tidsgrænse passer til den rigtige lyd. Google advarer også om, at den returnerede confidence-værdi på ordniveau ikke er en reel sikkerhedsscore, så den bør ikke bruges til at attestere, at et ord er korrekt.\n\nTaletilpasning leverer fraser og egennavne, der sandsynligvis forekommer i optagelsen. Producenten dokumenterer en ordbog med op til 1.000 fraser og anbefaler så få relevante poster som muligt for at undgå at forringe genkendelsen af andre termer. Til et teknisk oplæg skal du forberede en kort liste over faktiske produktnavne og forkortelser og derefter gennemgå dem i transkriptet. Vægtningen hjælper genkendelsen med at overveje en term; den dokumenterer ikke, at termen blev sagt, og erstatter ikke en kontrol mod lyden.\n\nModellen tilføjer automatisk tegnsætning og store bogstaver, som den dokumenterede grænseflade kan deaktivere. Google beskriver også en previewfunktion til brugerdefinerede instruktioner for transskriptionsformat, eksempelvis hvordan et bestemt navn eller en bestemt dato skal skrives. Hold disse instruktioner fokuseret på formatering af den genkendte tale. Et transkript, der normaliserer en dato eller skriver et brandnavn med stort, skal stadig bevare den talte betydning. En sammenfatning, oversættelse eller faktuel analyse er en senere brug af transkriptet frem for noget, som genkendelsesresultatet i sig selv fastslår.\n\nDen indbyggede støjreduktion skal dæmpe baggrundsmusik og miljølyde som regn eller gadestøj. Google angiver udtrykkeligt, at den ikke kan fjerne menneskestemmer i baggrunden. Bevar denne skelnen, når du forbereder en optagelse med overlappende samtaler. Sammenhold støjende og stille afsnit med kilden frem for at antage, at et renere udseende transkript beviser, at den forstyrrende lyd blev fjernet. Et nyttigt resultat gør usikre passager genkendelige, så de kan rettes.\n\nVed streamingopgaver ændrer følsomheden for ytringsafslutning, hvornår en ytring behandles som færdig. Producenten beskriver indstillingerne standard, short og supershort til stadig kortere forventet tale. En hurtigere indstilling kan afbryde en taler, der holder pause midt i en tanke. Tilpas indstillingen til naturlig diktat, en kort sætning eller en meget kort kommando, og bevar status for det endelige resultat sammen med transkriptet. Ved en færdig fil skal du gennemgå navne, mængder, negationer og talergrænser og derefter bevare den valgte metode og kildelyden, så resultatet kan kontrolleres eller genbruges.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "da0ed39950442e2bfcb66ca8a51c7260a42010fea1d8d8579ff38de06b4cbcff",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "da",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">G</span><h2 id=\"sheet-title\">Google: Chirp 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Luk\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/chirp-3</code><button type=\"button\" id=\"copy-id\">Kopiér ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Modelkortets afsnit\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Input og metoder</button><button type=\"button\" data-card-jump=\"pricing\">Priser</button><button type=\"button\" data-card-jump=\"examples\">Eksempler</button><button type=\"button\" data-card-jump=\"results\">Resultater</button><button type=\"button\" data-card-jump=\"aliases\">Aliaser</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metoder\"><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|google%2Fchirp-3\">Genkendelse</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\">Google Chirp 3 er en flersproget talegenkendelsesmodel til streaming, korte optagelser og batchtransskription af længere optagelser. Den tilbyder automatisk sprogidentifikation, tegnsætning, ordforrådstilpasning og metodeafhængige tids- eller talermetadata. Støjreduktionen dæmper baggrundsstøj, men kan ikke fjerne andre stemmer.</p><dl class=\"card-io\" data-card-io><div><dt>Accepterede input</dt><dd>Lyd</dd></div><div><dt>Resultater</dt><dd>Tekst</dd></div></dl><details class=\"card-about\"><summary>Om modellen</summary><p class=\"note-s\" data-model-method-boundary>Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.</p><div class=\"mabout\" id=\"m-about\"><p>Google Chirp 3 er en flersproget model til automatisk talegenkendelse, som omdanner talt lyd til tekst. Google dokumenterer den som transskriptionsmodellen Chirp 3 i sin Speech-to-Text V2-familie med modelidentifikatoren chirp_3. Formålet er at genkende optaget eller streamet tale med sprogidentifikation og transskriptionsspecifikke funktioner. Resultatet er et transkript og de metadata, som den valgte genkendelsesmetode understøtter, frem for genereret tale eller et åbent assistentsvar.</p><p>Producenten skelner mellem streaminggenkendelse, synkron genkendelse til korte klip og batchgenkendelse til længere optagelser. Vælg metoden efter kildelyden og det påkrævede resultat. Til en kort talebesked kan et færdigt tekstsvar være tilstrækkeligt. Til et interview eller et optaget opkald kan et batchresultat med taleroplysninger være mere nyttigt. Ved livetekster eller en grænseflade til talekommandoer skal du holde foreløbig tekst adskilt fra det endelige genkendelsesresultat og bevare det lydinterval, det beskriver.</p><p>Forbered lyd i den kodning, som genkendelsesimplementeringen forventer. Googles Chirp 3-eksempler bruger automatisk registreret afkodning til optagede filer og eksplicit afkodning til en konfiguration med rå streaminglyd. Den tilknyttede V2-afkoderreference angiver blandt sine understøttede kodninger WAV PCM eller kompanderet lyd, FLAC, MP3, Ogg/WebM Opus og AAC i MP4-, M4A- eller MOV-containere. Et containernavn erstatter ikke den faktiske codec- og samplekonfiguration. Bevar tydelig tale, og undgå kraftig overstyring eller unødvendig konvertering, der fjerner hørbare detaljer.</p><p>Chirp 3 kan automatisk identificere og transskribere det dominerende sprog, og et sæt forventede sprogvarianter kan indsnævre genkendelsesmulighederne. Sprogtilgængeligheden varierer efter metode og funktion. Listen over transskriptionssprog er bredere end listen for taleradskillelse, så genkendelse af et sprog dokumenterer ikke, at alle taler- eller tidsfunktioner gælder for det. Brug den sprogvariant, der passer til optagelsen, og bevar navne fra sprogskift eller fagtermer til gennemgang. En registreret sprogetiket er en del af resultatet, ikke dokumentation for, at alle usædvanlige ord blev genkendt korrekt.</p><p>Taleradskillelse grupperer tale efter stemme i en optagelse med én kanal. Google giver et eksempel på batchtransskription med taleroplysninger for hvert ord. Ved et interview skal du bevare disse etiketter sammen med den genkendte tekst og sammenligne talerskift med optagelsen, før du knytter faktiske navne eller roller til dem. Lignende stemmer, afbrydelser og overlappende tale kan gøre tilordning vanskelig. Gør kildens kanalopbygning og den tilsigtede talergennemgang tydelig frem for at behandle en etiket som en uafhængigt verificeret identitet.</p><p>Tidsoplysninger er også metodespecifikke. Streaminggenkendelse giver tidsstempler på ytringsniveau, mens producentens vejledning om filgenkendelse beskriver valgfrie ordtider med en mulig afvejning i forhold til transskriptionskvaliteten. Bevar de metadata, som den valgte metode faktisk returnerer, og gennemgå tidsjusteringen sammen med ordlyden. En undertekstningsarbejdsgang kræver begge dele: læsbar genkendt tekst og dokumentation for, at en tidsgrænse passer til den rigtige lyd. Google advarer også om, at den returnerede confidence-værdi på ordniveau ikke er en reel sikkerhedsscore, så den bør ikke bruges til at attestere, at et ord er korrekt.</p><p>Taletilpasning leverer fraser og egennavne, der sandsynligvis forekommer i optagelsen. Producenten dokumenterer en ordbog med op til 1.000 fraser og anbefaler så få relevante poster som muligt for at undgå at forringe genkendelsen af andre termer. Til et teknisk oplæg skal du forberede en kort liste over faktiske produktnavne og forkortelser og derefter gennemgå dem i transkriptet. Vægtningen hjælper genkendelsen med at overveje en term; den dokumenterer ikke, at termen blev sagt, og erstatter ikke en kontrol mod lyden.</p><p>Modellen tilføjer automatisk tegnsætning og store bogstaver, som den dokumenterede grænseflade kan deaktivere. Google beskriver også en previewfunktion til brugerdefinerede instruktioner for transskriptionsformat, eksempelvis hvordan et bestemt navn eller en bestemt dato skal skrives. Hold disse instruktioner fokuseret på formatering af den genkendte tale. Et transkript, der normaliserer en dato eller skriver et brandnavn med stort, skal stadig bevare den talte betydning. En sammenfatning, oversættelse eller faktuel analyse er en senere brug af transkriptet frem for noget, som genkendelsesresultatet i sig selv fastslår.</p><p>Den indbyggede støjreduktion skal dæmpe baggrundsmusik og miljølyde som regn eller gadestøj. Google angiver udtrykkeligt, at den ikke kan fjerne menneskestemmer i baggrunden. Bevar denne skelnen, når du forbereder en optagelse med overlappende samtaler. Sammenhold støjende og stille afsnit med kilden frem for at antage, at et renere udseende transkript beviser, at den forstyrrende lyd blev fjernet. Et nyttigt resultat gør usikre passager genkendelige, så de kan rettes.</p><p>Ved streamingopgaver ændrer følsomheden for ytringsafslutning, hvornår en ytring behandles som færdig. Producenten beskriver indstillingerne standard, short og supershort til stadig kortere forventet tale. En hurtigere indstilling kan afbryde en taler, der holder pause midt i en tanke. Tilpas indstillingen til naturlig diktat, en kort sætning eller en meget kort kommando, og bevar status for det endelige resultat sammen med transkriptet. Ved en færdig fil skal du gennemgå navne, mængder, negationer og talergrænser og derefter bevare den valgte metode og kildelyden, så resultatet kan kontrolleres eller genbruges.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tilgængelig i Ailoot · input og metoder</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Transskription</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Inputtyper</dt><dd><code>audio</code></dd></div><div><dt>Outputtyper</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Felt</th><th>Type</th><th>Krav</th><th>Værdier og grænser</th><th>Standard</th></tr></thead><tbody><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrævet</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>google/chirp-3</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrævet</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Metodeparametre og livscyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Kontrakt</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>model, input_audio</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>audio</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_conditions</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>Eksemplet læser din faktiske, ikke-tomme PCM WAV-fil, koder samtlige bytes i filen som base64 og sender input_audio.format som wav.</td></tr></tbody></table></div><p>Livscyklus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · præcist task_id fra en eksisterende mediepost, du ejer</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\">Priser</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.</p><dl data-price-conditions><dt>Hurtig tilstand</dt><dd>Ikke angivet <span class=\"note-s\">Når hurtig tilstand er valgt</span></dd><dt>flex-tilstand</dt><dd>Ikke angivet <span class=\"note-s\">Når flex-tilstanden er valgt</span></dd><dt>Maksimal ræsonneringsindsats</dt><dd>Ikke angivet <span class=\"note-s\">Når default-justeringen anvendes ved maksimal ræsonneringsindsats</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-takster</h4><h4>Priser efter konfiguration</h4><p class=\"note-s\">Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Takstplan</th><th>Afregningsenhed</th><th>Beløb</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Grundpriser for tokens</th><td data-cell-label=\"Takstplan\"><span class=\"card-cell-label\">Takstplan</span>Grundtakst</td><td data-cell-label=\"Afregningsenhed\"><span class=\"card-cell-label\">Afregningsenhed</span>—</td><td data-cell-label=\"Beløb\"><span class=\"card-cell-label\">Beløb</span><div><span>Input · Inputtokens</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Output · Outputtokens</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cachelæsning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cacheskrivning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cacheskrivning, 1 time</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>sekund inputlyd</th><td data-cell-label=\"Takstplan\"><span class=\"card-cell-label\">Takstplan</span>—</td><td data-cell-label=\"Afregningsenhed\"><span class=\"card-cell-label\">Afregningsenhed</span>pr. sekund lydinput</td><td data-cell-label=\"Beløb\"><span class=\"card-cell-label\">Beløb</span><div><span>Input · sekund inputlyd</span> <b>$0.000533333333334</b> <span class=\"price-unit\">pr. sekund lydinput</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. <a href=\"/docs/da/billing/reserve/\">Sådan fungerer reservation og afregning →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Eksempelanmodninger</h3><h4>Ailoot Ultra · Transskription</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodevarianter\"><button class=\"cg-tab\" id=\"model-code-1435-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1435-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · faktisk WAV-fil og hele det oprindelige resultat</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiér kode\"><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-1435-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1435-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;google/chirp-3&#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\">Hent og gem resultater</h3><h4>Ailoot Ultra · Transskription</h4><p class=\"note-s\">Hele det oprindelige svarindhold, status og videresendte headere. Denne handler tilføjer hverken en universel JSON-struktur, et tekstfelt eller en opgaveindpakning.</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>Behold alle færdige resultater</h5><p class=\"note-s\">Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.</p><p class=\"note-s\">Gem hele svaret og alle headere, alle faktisk returnerede output, de oprindeligt returnerede identifikatorer og alle felter med forbrugsdata. Gendan den oprindelige operation uden at sende oprettelsesanmodningen igen.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Hvis det oprindelige svar skal kontrolleres</h5><p class=\"note-s\">Behold det faktiske X-Client-Request-ID og hele svaret. Læs de oprindelige aktiver, du ejer, og deres præcise signerede indholds-URL’er; indsend aldrig en oprettelse med usikkert udfald igen.</p></div><details class=\"card-about\" data-output-fields><summary>Svarfelter</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Felt</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">text (when present)</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fejl og næste trin</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Svar</th><th>Betingelse</th><th>Næste trin</th></tr></thead><tbody><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Betingelse\"><span class=\"card-cell-label\">Betingelse</span>JSON-indholdet eller det eksplicitte kanoniske model-ID er ugyldigt.</td><td data-cell-label=\"Næste trin\"><span class=\"card-cell-label\">Næste trin</span>Behold svaret, og ret det angivne forespørgselsfelt.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Betingelse\"><span class=\"card-cell-label\">Betingelse</span>Ailoot API-nøglen er ugyldig.</td><td data-cell-label=\"Næste trin\"><span class=\"card-cell-label\">Næste trin</span>Brug din autoriserede Ailoot API-nøgle.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>403 · <code>permission_error</code></th><td data-cell-label=\"Betingelse\"><span class=\"card-cell-label\">Betingelse</span>Nøglens gruppe giver ikke adgang til denne metode.</td><td data-cell-label=\"Næste trin\"><span class=\"card-cell-label\">Næste trin</span>Behold de returnerede fejloplysninger.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Betingelse\"><span class=\"card-cell-label\">Betingelse</span>Den valgte metode har ingen rute med adgangstilladelse.</td><td data-cell-label=\"Næste trin\"><span class=\"card-cell-label\">Næste trin</span>Behold de returnerede fejloplysninger.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Betingelse\"><span class=\"card-cell-label\">Betingelse</span>Den accepterede tarif kan ikke hente den påkrævede inputmængde eller grænse.</td><td data-cell-label=\"Næste trin\"><span class=\"card-cell-label\">Næste trin</span>Behold svaret; brug den inputrepræsentation, som den accepterede tarif kræver.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>503 · <code></code></th><td data-cell-label=\"Betingelse\"><span class=\"card-cell-label\">Betingelse</span>Påkrævet lager, rute, metodepris eller reservation er utilgængelig.</td><td data-cell-label=\"Næste trin\"><span class=\"card-cell-label\">Næste trin</span>Behold hele det oprindelige svar. En usikker reservation giver ikke tilladelse til at indsende igen.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>502 · <code>server_error</code></th><td data-cell-label=\"Betingelse\"><span class=\"card-cell-label\">Betingelse</span>Det oprindelige resultat, forbrug eller den oprindelige afregning skal kontrolleres.</td><td data-cell-label=\"Næste trin\"><span class=\"card-cell-label\">Næste trin</span>Behold det faktiske forespørgsels-ID og det oprindelige svar. Læs den eksisterende post, du ejer; indsend ikke oprettelsen igen.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliaser</h3><h4>Modelaliaser</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=google%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</code></a></span></p><h4>Aliaser for metodestier</h4><p class=\"note-s\">Brug metodestierne vist ovenfor.</p><h4>Relaterede kalder-ID’er</h4><p class=\"note-s\"><a href=\"#m=google%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/chirp-3",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|google%2Fchirp-3",
      "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": "JSON-indholdet eller det eksplicitte kanoniske model-ID er ugyldigt.",
                "http_status": 400,
                "recovery": "Behold svaret, og ret det angivne forespørgselsfelt.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ailoot API-nøglen er ugyldig.",
                "http_status": 401,
                "recovery": "Brug din autoriserede Ailoot API-nøgle.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Nøglens gruppe giver ikke adgang til denne metode.",
                "http_status": 403,
                "recovery": "Behold de returnerede fejloplysninger.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Den valgte metode har ingen rute med adgangstilladelse.",
                "http_status": 404,
                "recovery": "Behold de returnerede fejloplysninger.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Den accepterede tarif kan ikke hente den påkrævede inputmængde eller grænse.",
                "http_status": 422,
                "recovery": "Behold svaret; brug den inputrepræsentation, som den accepterede tarif kræver.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Påkrævet lager, rute, metodepris eller reservation er utilgængelig.",
                "http_status": 503,
                "recovery": "Behold hele det oprindelige svar. En usikker reservation giver ikke tilladelse til at indsende igen.",
                "type": null
              },
              {
                "code": null,
                "condition": "Det oprindelige resultat, forbrug eller den oprindelige afregning skal kontrolleres.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Behold det faktiske forespørgsels-ID og det oprindelige svar. Læs den eksisterende post, du ejer; indsend ikke oprettelsen igen.",
                "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": "Behold det faktiske X-Client-Request-ID og hele svaret. Læs de oprindelige aktiver, du ejer, og deres præcise signerede indholds-URL’er; indsend aldrig en oprettelse med usikkert udfald igen."
            },
            "outputs": {
              "all_results": "Gem hele svaret og alle headere, alle faktisk returnerede output, de oprindeligt returnerede identifikatorer og alle felter med forbrugsdata. Gendan den oprindelige operation uden at sende oprettelsesanmodningen igen.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Hele det oprindelige svarindhold, status og videresendte headere. Denne handler tilføjer hverken en universel JSON-struktur, et tekstfelt eller en opgaveindpakning."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "google/chirp-3"
                ],
                "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": [
                    "google/chirp-3"
                  ],
                  "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": "google/chirp-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Eksemplet læser din faktiske, ikke-tomme PCM WAV-fil, koder samtlige bytes i filen som base64 og sender input_audio.format som 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": "præcist task_id fra en eksisterende mediepost, du ejer",
                "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.000533333333334",
                "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.000533333333334",
                "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': 'google/chirp-3', '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": "Transskription",
        "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.000533333333334
          }
        },
        "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.000533333333334",
                "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.000533333333334",
                "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": "google/chirp-3",
        "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.000533333333334",
            "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.000533333333334",
            "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": "google/chirp-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "faa003dedc234967f4b9b5be0b6bf8bd3fb74040597b499d24a4fc9ecc5eb903",
    "input_html_sha256": "4e444615d809112416b2a2c1d59b3e385b0e1bfd0c9c005a68d74ae9a5c8969f",
    "private_audit_sha256": "2ba112871d8da2d51906f0b716e4f1784319eca7f054d779fe6b00b0eec08ce5",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/da/google-chirp-3/",
    "description": "Google Chirp 3 er en flersproget talegenkendelsesmodel til streaming, korte optagelser og batchtransskription af længere optagelser. Den tilbyder automatisk sprogidentifikation, tegnsætning, ordforrådstilpasning og metodeafhængige tids- eller talermetadata. Støjreduktionen dæmper baggrundsstøj, men kan ikke fjerne andre stemmer.",
    "locale": "da",
    "md_url": "https://ailoot.ai/models/da/google-chirp-3/index.md",
    "title": "Google: Chirp 3 — Ailoot",
    "url": "https://ailoot.ai/models/da/google-chirp-3/"
  },
  "rawModel": {
    "about": "Google Chirp 3 er en flersproget model til automatisk talegenkendelse, som omdanner talt lyd til tekst. Google dokumenterer den som transskriptionsmodellen Chirp 3 i sin Speech-to-Text V2-familie med modelidentifikatoren chirp_3. Formålet er at genkende optaget eller streamet tale med sprogidentifikation og transskriptionsspecifikke funktioner. Resultatet er et transkript og de metadata, som den valgte genkendelsesmetode understøtter, frem for genereret tale eller et åbent assistentsvar.\n\nProducenten skelner mellem streaminggenkendelse, synkron genkendelse til korte klip og batchgenkendelse til længere optagelser. Vælg metoden efter kildelyden og det påkrævede resultat. Til en kort talebesked kan et færdigt tekstsvar være tilstrækkeligt. Til et interview eller et optaget opkald kan et batchresultat med taleroplysninger være mere nyttigt. Ved livetekster eller en grænseflade til talekommandoer skal du holde foreløbig tekst adskilt fra det endelige genkendelsesresultat og bevare det lydinterval, det beskriver.\n\nForbered lyd i den kodning, som genkendelsesimplementeringen forventer. Googles Chirp 3-eksempler bruger automatisk registreret afkodning til optagede filer og eksplicit afkodning til en konfiguration med rå streaminglyd. Den tilknyttede V2-afkoderreference angiver blandt sine understøttede kodninger WAV PCM eller kompanderet lyd, FLAC, MP3, Ogg/WebM Opus og AAC i MP4-, M4A- eller MOV-containere. Et containernavn erstatter ikke den faktiske codec- og samplekonfiguration. Bevar tydelig tale, og undgå kraftig overstyring eller unødvendig konvertering, der fjerner hørbare detaljer.\n\nChirp 3 kan automatisk identificere og transskribere det dominerende sprog, og et sæt forventede sprogvarianter kan indsnævre genkendelsesmulighederne. Sprogtilgængeligheden varierer efter metode og funktion. Listen over transskriptionssprog er bredere end listen for taleradskillelse, så genkendelse af et sprog dokumenterer ikke, at alle taler- eller tidsfunktioner gælder for det. Brug den sprogvariant, der passer til optagelsen, og bevar navne fra sprogskift eller fagtermer til gennemgang. En registreret sprogetiket er en del af resultatet, ikke dokumentation for, at alle usædvanlige ord blev genkendt korrekt.\n\nTaleradskillelse grupperer tale efter stemme i en optagelse med én kanal. Google giver et eksempel på batchtransskription med taleroplysninger for hvert ord. Ved et interview skal du bevare disse etiketter sammen med den genkendte tekst og sammenligne talerskift med optagelsen, før du knytter faktiske navne eller roller til dem. Lignende stemmer, afbrydelser og overlappende tale kan gøre tilordning vanskelig. Gør kildens kanalopbygning og den tilsigtede talergennemgang tydelig frem for at behandle en etiket som en uafhængigt verificeret identitet.\n\nTidsoplysninger er også metodespecifikke. Streaminggenkendelse giver tidsstempler på ytringsniveau, mens producentens vejledning om filgenkendelse beskriver valgfrie ordtider med en mulig afvejning i forhold til transskriptionskvaliteten. Bevar de metadata, som den valgte metode faktisk returnerer, og gennemgå tidsjusteringen sammen med ordlyden. En undertekstningsarbejdsgang kræver begge dele: læsbar genkendt tekst og dokumentation for, at en tidsgrænse passer til den rigtige lyd. Google advarer også om, at den returnerede confidence-værdi på ordniveau ikke er en reel sikkerhedsscore, så den bør ikke bruges til at attestere, at et ord er korrekt.\n\nTaletilpasning leverer fraser og egennavne, der sandsynligvis forekommer i optagelsen. Producenten dokumenterer en ordbog med op til 1.000 fraser og anbefaler så få relevante poster som muligt for at undgå at forringe genkendelsen af andre termer. Til et teknisk oplæg skal du forberede en kort liste over faktiske produktnavne og forkortelser og derefter gennemgå dem i transkriptet. Vægtningen hjælper genkendelsen med at overveje en term; den dokumenterer ikke, at termen blev sagt, og erstatter ikke en kontrol mod lyden.\n\nModellen tilføjer automatisk tegnsætning og store bogstaver, som den dokumenterede grænseflade kan deaktivere. Google beskriver også en previewfunktion til brugerdefinerede instruktioner for transskriptionsformat, eksempelvis hvordan et bestemt navn eller en bestemt dato skal skrives. Hold disse instruktioner fokuseret på formatering af den genkendte tale. Et transkript, der normaliserer en dato eller skriver et brandnavn med stort, skal stadig bevare den talte betydning. En sammenfatning, oversættelse eller faktuel analyse er en senere brug af transkriptet frem for noget, som genkendelsesresultatet i sig selv fastslår.\n\nDen indbyggede støjreduktion skal dæmpe baggrundsmusik og miljølyde som regn eller gadestøj. Google angiver udtrykkeligt, at den ikke kan fjerne menneskestemmer i baggrunden. Bevar denne skelnen, når du forbereder en optagelse med overlappende samtaler. Sammenhold støjende og stille afsnit med kilden frem for at antage, at et renere udseende transkript beviser, at den forstyrrende lyd blev fjernet. Et nyttigt resultat gør usikre passager genkendelige, så de kan rettes.\n\nVed streamingopgaver ændrer følsomheden for ytringsafslutning, hvornår en ytring behandles som færdig. Producenten beskriver indstillingerne standard, short og supershort til stadig kortere forventet tale. En hurtigere indstilling kan afbryde en taler, der holder pause midt i en tanke. Tilpas indstillingen til naturlig diktat, en kort sætning eller en meget kort kommando, og bevar status for det endelige resultat sammen med transkriptet. Ved en færdig fil skal du gennemgå navne, mængder, negationer og talergrænser og derefter bevare den valgte metode og kildelyden, så resultatet kan kontrolleres eller genbruges.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.000533333333334",
            "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.000533333333334",
            "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": "De fulde prisoplysninger for konfigurationen findes under detaljer."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "google/chirp-3",
    "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": "JSON-indholdet eller det eksplicitte kanoniske model-ID er ugyldigt.",
                "http_status": 400,
                "recovery": "Behold svaret, og ret det angivne forespørgselsfelt.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ailoot API-nøglen er ugyldig.",
                "http_status": 401,
                "recovery": "Brug din autoriserede Ailoot API-nøgle.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Nøglens gruppe giver ikke adgang til denne metode.",
                "http_status": 403,
                "recovery": "Behold de returnerede fejloplysninger.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Den valgte metode har ingen rute med adgangstilladelse.",
                "http_status": 404,
                "recovery": "Behold de returnerede fejloplysninger.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Den accepterede tarif kan ikke hente den påkrævede inputmængde eller grænse.",
                "http_status": 422,
                "recovery": "Behold svaret; brug den inputrepræsentation, som den accepterede tarif kræver.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Påkrævet lager, rute, metodepris eller reservation er utilgængelig.",
                "http_status": 503,
                "recovery": "Behold hele det oprindelige svar. En usikker reservation giver ikke tilladelse til at indsende igen.",
                "type": null
              },
              {
                "code": null,
                "condition": "Det oprindelige resultat, forbrug eller den oprindelige afregning skal kontrolleres.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Behold det faktiske forespørgsels-ID og det oprindelige svar. Læs den eksisterende post, du ejer; indsend ikke oprettelsen igen.",
                "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": "Behold det faktiske X-Client-Request-ID og hele svaret. Læs de oprindelige aktiver, du ejer, og deres præcise signerede indholds-URL’er; indsend aldrig en oprettelse med usikkert udfald igen."
            },
            "outputs": {
              "all_results": "Gem hele svaret og alle headere, alle faktisk returnerede output, de oprindeligt returnerede identifikatorer og alle felter med forbrugsdata. Gendan den oprindelige operation uden at sende oprettelsesanmodningen igen.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Hele det oprindelige svarindhold, status og videresendte headere. Denne handler tilføjer hverken en universel JSON-struktur, et tekstfelt eller en opgaveindpakning."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "google/chirp-3"
                ],
                "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": [
                    "google/chirp-3"
                  ],
                  "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": "google/chirp-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Eksemplet læser din faktiske, ikke-tomme PCM WAV-fil, koder samtlige bytes i filen som base64 og sender input_audio.format som 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": "præcist task_id fra en eksisterende mediepost, du ejer",
                "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.000533333333334",
                "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.000533333333334",
                "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': 'google/chirp-3', '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": "Transskription",
        "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.000533333333334
          }
        },
        "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.000533333333334",
                "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.000533333333334",
                "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": "google/chirp-3",
        "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.000533333333334",
            "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.000533333333334",
            "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": "google/chirp-3",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Google: Chirp 3",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Google Chirp 3 er en flersproget talegenkendelsesmodel til streaming, korte optagelser og batchtransskription af længere optagelser. Den tilbyder automatisk sprogidentifikation, tegnsætning, ordforrådstilpasning og metodeafhængige tids- eller talermetadata. Støjreduktionen dæmper baggrundsstøj, men kan ikke fjerne andre stemmer."
  },
  "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": "Google Chirp 3 er en flersproget talegenkendelsesmodel til streaming, korte optagelser og batchtransskription af længere optagelser. Den tilbyder automatisk sprogidentifikation, tegnsætning, ordforrådstilpasning og metodeafhængige tids- eller talermetadata. Støjreduktionen dæmper baggrundsstøj, men kan ikke fjerne andre stemmer.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "ac94cdc87dcc9af2952f60c89f83f1d4da606154deef7a58219096c93afecaaa",
    "renderer_sha256": "2bf9f26ea9bfd57ed53d867671d8f05b41a6ea85089f48039e3365dc2b92ec2c"
  },
  "sourceRevision": "81350adc22fdc4f2d3a8ded658934b7884bbef6d56d2237b1c685a05c2c8f153"
}
