{
  "aboutHtml": "<p>Google Chirp 3 er en flerspråklig modell for automatisk talegjenkjenning som gjør talt lyd om til tekst. Google dokumenterer den som transkripsjonsmodellen Chirp 3 i Speech-to-Text V2-familien, med modellidentifikatoren chirp_3. Formålet er å gjenkjenne tale fra opptak eller strømming, med språkgjenkjenning og transkripsjonsspesifikke egenskaper. Den resulterende leveransen er en transkripsjon og metadataene som støttes av den valgte gjenkjenningsmetoden, fremfor generert tale eller et åpent assistentsvar.</p><p>Produsenten skiller mellom strømmegjenkjenning, synkron gjenkjenning for korte klipp og satsvis gjenkjenning for lengre opptak. Velg modus etter kildelyden og det ønskede resultatet. For et kort talenotat kan et ferdig tekstsvar være tilstrekkelig. For et intervju eller en innspilt samtale kan et satsvis resultat med talerinformasjon være mer nyttig. For direkteteksting eller et grensesnitt for talekommandoer bør du holde foreløpig tekst atskilt fra det endelige gjenkjenningsresultatet og bevare lydintervallet teksten beskriver.</p><p>Klargjør lyden i kodingen som gjenkjenningsimplementasjonen forventer. Googles Chirp 3-eksempler bruker dekoding med automatisk formatgjenkjenning for opptaksfiler og eksplisitt angitt dekoding for en konfigurasjon med rå lydstrøm. Den tilhørende V2-dekoderreferansen oppgir WAV PCM eller kompandert lyd, FLAC, MP3, Ogg/WebM Opus og AAC i MP4-, M4A- eller MOV-beholdere blant de støttede kodingene. Et beholdernavn erstatter ikke den faktiske kodeken og samplingskonfigurasjonen. Bevar tydelig tale og unngå kraftig klipping eller unødvendig konvertering som mister hørbare detaljer.</p><p>Chirp 3 kan automatisk identifisere og transkribere det dominerende språket, og et sett med forventede språkvarianter kan begrense valgmulighetene ved gjenkjenning. Språktilgjengeligheten varierer etter metode og egenskap. Språklisten for transkripsjon er bredere enn listen for talerdiarisering, så at et språk gjenkjennes, fastslår ikke at alle taler- eller tidsfunksjoner gjelder for det. Bruk språkvarianten som passer til opptaket, og behold navn eller faguttrykk som veksler mellom språk, for gjennomgang. En etikett for det gjenkjente språket er del av resultatet, ikke bevis på at alle uvanlige ord ble gjenkjent riktig.</p><p>Talerdiarisering grupperer tale etter stemme i et enkanalsopptak. Google gir et eksempel på satsvis transkripsjon med talerinformasjon per ord. For et intervju bør du beholde disse etikettene sammen med den gjenkjente teksten og sammenligne talerbytter med opptaket før du knytter til faktiske navn eller roller. Like stemmer, avbrytelser og overlappende tale kan gjøre tilordning vanskelig. Gjør kildeopptakets kanaloppsett og den tiltenkte kontrollen av talere tydelig i stedet for å behandle en etikett som en uavhengig bekreftet identitet.</p><p>Tidsangivelser er også metodespesifikke. Strømmegjenkjenning gir tidsstempler på ytringsnivå, mens produsentens veiledning for filgjenkjenning beskriver valgfrie tidsangivelser per ord med en mulig avveining mot transkripsjonskvaliteten. Bevar metadataene som faktisk returneres av den valgte metoden, og kontroller synkroniseringen sammen med ordlyden. En arbeidsflyt for teksting trenger begge deler: lesbar gjenkjent tekst og underlag for at en tidsgrense samsvarer med riktig lyd. Google advarer også om at den returnerte konfidensverdien per ord ikke er et reelt mål på sikkerhet, og at den derfor ikke bør brukes til å bekrefte at et ord er riktig.</p><p>Taletilpasning tilfører fraser og egennavn som sannsynligvis forekommer i opptaket. Produsenten dokumenterer en ordliste med opptil 1,000 fraser og anbefaler så få relevante oppføringer som mulig for å unngå å svekke gjenkjenningen av andre uttrykk. For en teknisk presentasjon kan du klargjøre en kort liste over faktiske produktnavn og forkortelser og deretter undersøke dem i transkripsjonen. Slik vekting hjelper gjenkjenningen med å vurdere et uttrykk; den fastslår ikke at uttrykket ble uttalt, og erstatter ikke en kontroll mot lyden.</p><p>Modellen gir automatisk tegnsetting og bruk av store bokstaver, som kan slås av i det dokumenterte grensesnittet. Google beskriver også en forhåndsfunksjon for egendefinerte instruksjoner om transkripsjonsformat, som hvordan et bestemt navn eller en dato skal skrives. Hold disse instruksjonene rettet mot formatering av den gjenkjente talen. En transkripsjon som normaliserer en dato eller skriver et merkenavn med stor forbokstav, må fortsatt bevare meningen i det som ble sagt. En oppsummering, oversettelse eller faktabasert analyse er en senere bruk av transkripsjonen, fremfor noe som fastslås av selve gjenkjenningsresultatet.</p><p>Den innebygde støyfjerningen er ment å redusere bakgrunnsmusikk og omgivelseslyder som regn eller gatestøy. Google sier uttrykkelig at den ikke kan fjerne menneskestemmer i bakgrunnen. Bevar dette skillet når du klargjør et opptak med overlappende samtaler. Kontroller støyende og stille deler mot kilden i stedet for å anta at en transkripsjon som ser renere ut, beviser at den forstyrrende lyden ble fjernet. Et nyttig resultat holder usikre passasjer gjenkjennelige slik at de kan rettes.</p><p>Ved strømmeoppgaver påvirker følsomheten for ytringsavslutning når en ytring regnes som ferdig. Produsenten beskriver innstillingene standard, short og supershort for stadig kortere forventet tale. En raskere innstilling kan avbryte en taler som tar en pause midt i en tanke. Tilpass innstillingen til naturlig diktering, en kort setning eller en svært kort kommando, og behold statusen for endelig resultat sammen med transkripsjonen. For en ferdig fil bør du kontrollere navn, mengder, nektelser og talergrenser og deretter beholde valgt modus og kildelyd slik at resultatet kan kontrolleres eller gjenbrukes.</p>",
  "aboutText": "Google Chirp 3 er en flerspråklig modell for automatisk talegjenkjenning som gjør talt lyd om til tekst. Google dokumenterer den som transkripsjonsmodellen Chirp 3 i Speech-to-Text V2-familien, med modellidentifikatoren chirp_3. Formålet er å gjenkjenne tale fra opptak eller strømming, med språkgjenkjenning og transkripsjonsspesifikke egenskaper. Den resulterende leveransen er en transkripsjon og metadataene som støttes av den valgte gjenkjenningsmetoden, fremfor generert tale eller et åpent assistentsvar.\n\nProdusenten skiller mellom strømmegjenkjenning, synkron gjenkjenning for korte klipp og satsvis gjenkjenning for lengre opptak. Velg modus etter kildelyden og det ønskede resultatet. For et kort talenotat kan et ferdig tekstsvar være tilstrekkelig. For et intervju eller en innspilt samtale kan et satsvis resultat med talerinformasjon være mer nyttig. For direkteteksting eller et grensesnitt for talekommandoer bør du holde foreløpig tekst atskilt fra det endelige gjenkjenningsresultatet og bevare lydintervallet teksten beskriver.\n\nKlargjør lyden i kodingen som gjenkjenningsimplementasjonen forventer. Googles Chirp 3-eksempler bruker dekoding med automatisk formatgjenkjenning for opptaksfiler og eksplisitt angitt dekoding for en konfigurasjon med rå lydstrøm. Den tilhørende V2-dekoderreferansen oppgir WAV PCM eller kompandert lyd, FLAC, MP3, Ogg/WebM Opus og AAC i MP4-, M4A- eller MOV-beholdere blant de støttede kodingene. Et beholdernavn erstatter ikke den faktiske kodeken og samplingskonfigurasjonen. Bevar tydelig tale og unngå kraftig klipping eller unødvendig konvertering som mister hørbare detaljer.\n\nChirp 3 kan automatisk identifisere og transkribere det dominerende språket, og et sett med forventede språkvarianter kan begrense valgmulighetene ved gjenkjenning. Språktilgjengeligheten varierer etter metode og egenskap. Språklisten for transkripsjon er bredere enn listen for talerdiarisering, så at et språk gjenkjennes, fastslår ikke at alle taler- eller tidsfunksjoner gjelder for det. Bruk språkvarianten som passer til opptaket, og behold navn eller faguttrykk som veksler mellom språk, for gjennomgang. En etikett for det gjenkjente språket er del av resultatet, ikke bevis på at alle uvanlige ord ble gjenkjent riktig.\n\nTalerdiarisering grupperer tale etter stemme i et enkanalsopptak. Google gir et eksempel på satsvis transkripsjon med talerinformasjon per ord. For et intervju bør du beholde disse etikettene sammen med den gjenkjente teksten og sammenligne talerbytter med opptaket før du knytter til faktiske navn eller roller. Like stemmer, avbrytelser og overlappende tale kan gjøre tilordning vanskelig. Gjør kildeopptakets kanaloppsett og den tiltenkte kontrollen av talere tydelig i stedet for å behandle en etikett som en uavhengig bekreftet identitet.\n\nTidsangivelser er også metodespesifikke. Strømmegjenkjenning gir tidsstempler på ytringsnivå, mens produsentens veiledning for filgjenkjenning beskriver valgfrie tidsangivelser per ord med en mulig avveining mot transkripsjonskvaliteten. Bevar metadataene som faktisk returneres av den valgte metoden, og kontroller synkroniseringen sammen med ordlyden. En arbeidsflyt for teksting trenger begge deler: lesbar gjenkjent tekst og underlag for at en tidsgrense samsvarer med riktig lyd. Google advarer også om at den returnerte konfidensverdien per ord ikke er et reelt mål på sikkerhet, og at den derfor ikke bør brukes til å bekrefte at et ord er riktig.\n\nTaletilpasning tilfører fraser og egennavn som sannsynligvis forekommer i opptaket. Produsenten dokumenterer en ordliste med opptil 1,000 fraser og anbefaler så få relevante oppføringer som mulig for å unngå å svekke gjenkjenningen av andre uttrykk. For en teknisk presentasjon kan du klargjøre en kort liste over faktiske produktnavn og forkortelser og deretter undersøke dem i transkripsjonen. Slik vekting hjelper gjenkjenningen med å vurdere et uttrykk; den fastslår ikke at uttrykket ble uttalt, og erstatter ikke en kontroll mot lyden.\n\nModellen gir automatisk tegnsetting og bruk av store bokstaver, som kan slås av i det dokumenterte grensesnittet. Google beskriver også en forhåndsfunksjon for egendefinerte instruksjoner om transkripsjonsformat, som hvordan et bestemt navn eller en dato skal skrives. Hold disse instruksjonene rettet mot formatering av den gjenkjente talen. En transkripsjon som normaliserer en dato eller skriver et merkenavn med stor forbokstav, må fortsatt bevare meningen i det som ble sagt. En oppsummering, oversettelse eller faktabasert analyse er en senere bruk av transkripsjonen, fremfor noe som fastslås av selve gjenkjenningsresultatet.\n\nDen innebygde støyfjerningen er ment å redusere bakgrunnsmusikk og omgivelseslyder som regn eller gatestøy. Google sier uttrykkelig at den ikke kan fjerne menneskestemmer i bakgrunnen. Bevar dette skillet når du klargjør et opptak med overlappende samtaler. Kontroller støyende og stille deler mot kilden i stedet for å anta at en transkripsjon som ser renere ut, beviser at den forstyrrende lyden ble fjernet. Et nyttig resultat holder usikre passasjer gjenkjennelige slik at de kan rettes.\n\nVed strømmeoppgaver påvirker følsomheten for ytringsavslutning når en ytring regnes som ferdig. Produsenten beskriver innstillingene standard, short og supershort for stadig kortere forventet tale. En raskere innstilling kan avbryte en taler som tar en pause midt i en tanke. Tilpass innstillingen til naturlig diktering, en kort setning eller en svært kort kommando, og behold statusen for endelig resultat sammen med transkripsjonen. For en ferdig fil bør du kontrollere navn, mengder, nektelser og talergrenser og deretter beholde valgt modus og kildelyd slik at resultatet kan kontrolleres eller gjenbrukes.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "471a973514d0e902e58b1b8edf28ee012e50216b5b6bfd0317321f3e54e15e32",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "nb",
  "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=\"Lukk\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/chirp-3</code><button type=\"button\" id=\"copy-id\">Kopier ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Seksjoner i modellkortet\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Inndata &amp; 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\">Gjenkjenning</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 flerspråklig talegjenkjenningsmodell for strømming, korte opptak og lengre satsvis transkripsjon. Den gir automatisk språkgjenkjenning, tegnsetting, ordforrådstilpasning og modusavhengige metadata om tid eller talere. Støyfjerningen reduserer bakgrunnsstøy, men kan ikke fjerne andre stemmer.</p><dl class=\"card-io\" data-card-io><div><dt>Godkjente inndata</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 beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.</p><div class=\"mabout\" id=\"m-about\"><p>Google Chirp 3 er en flerspråklig modell for automatisk talegjenkjenning som gjør talt lyd om til tekst. Google dokumenterer den som transkripsjonsmodellen Chirp 3 i Speech-to-Text V2-familien, med modellidentifikatoren chirp_3. Formålet er å gjenkjenne tale fra opptak eller strømming, med språkgjenkjenning og transkripsjonsspesifikke egenskaper. Den resulterende leveransen er en transkripsjon og metadataene som støttes av den valgte gjenkjenningsmetoden, fremfor generert tale eller et åpent assistentsvar.</p><p>Produsenten skiller mellom strømmegjenkjenning, synkron gjenkjenning for korte klipp og satsvis gjenkjenning for lengre opptak. Velg modus etter kildelyden og det ønskede resultatet. For et kort talenotat kan et ferdig tekstsvar være tilstrekkelig. For et intervju eller en innspilt samtale kan et satsvis resultat med talerinformasjon være mer nyttig. For direkteteksting eller et grensesnitt for talekommandoer bør du holde foreløpig tekst atskilt fra det endelige gjenkjenningsresultatet og bevare lydintervallet teksten beskriver.</p><p>Klargjør lyden i kodingen som gjenkjenningsimplementasjonen forventer. Googles Chirp 3-eksempler bruker dekoding med automatisk formatgjenkjenning for opptaksfiler og eksplisitt angitt dekoding for en konfigurasjon med rå lydstrøm. Den tilhørende V2-dekoderreferansen oppgir WAV PCM eller kompandert lyd, FLAC, MP3, Ogg/WebM Opus og AAC i MP4-, M4A- eller MOV-beholdere blant de støttede kodingene. Et beholdernavn erstatter ikke den faktiske kodeken og samplingskonfigurasjonen. Bevar tydelig tale og unngå kraftig klipping eller unødvendig konvertering som mister hørbare detaljer.</p><p>Chirp 3 kan automatisk identifisere og transkribere det dominerende språket, og et sett med forventede språkvarianter kan begrense valgmulighetene ved gjenkjenning. Språktilgjengeligheten varierer etter metode og egenskap. Språklisten for transkripsjon er bredere enn listen for talerdiarisering, så at et språk gjenkjennes, fastslår ikke at alle taler- eller tidsfunksjoner gjelder for det. Bruk språkvarianten som passer til opptaket, og behold navn eller faguttrykk som veksler mellom språk, for gjennomgang. En etikett for det gjenkjente språket er del av resultatet, ikke bevis på at alle uvanlige ord ble gjenkjent riktig.</p><p>Talerdiarisering grupperer tale etter stemme i et enkanalsopptak. Google gir et eksempel på satsvis transkripsjon med talerinformasjon per ord. For et intervju bør du beholde disse etikettene sammen med den gjenkjente teksten og sammenligne talerbytter med opptaket før du knytter til faktiske navn eller roller. Like stemmer, avbrytelser og overlappende tale kan gjøre tilordning vanskelig. Gjør kildeopptakets kanaloppsett og den tiltenkte kontrollen av talere tydelig i stedet for å behandle en etikett som en uavhengig bekreftet identitet.</p><p>Tidsangivelser er også metodespesifikke. Strømmegjenkjenning gir tidsstempler på ytringsnivå, mens produsentens veiledning for filgjenkjenning beskriver valgfrie tidsangivelser per ord med en mulig avveining mot transkripsjonskvaliteten. Bevar metadataene som faktisk returneres av den valgte metoden, og kontroller synkroniseringen sammen med ordlyden. En arbeidsflyt for teksting trenger begge deler: lesbar gjenkjent tekst og underlag for at en tidsgrense samsvarer med riktig lyd. Google advarer også om at den returnerte konfidensverdien per ord ikke er et reelt mål på sikkerhet, og at den derfor ikke bør brukes til å bekrefte at et ord er riktig.</p><p>Taletilpasning tilfører fraser og egennavn som sannsynligvis forekommer i opptaket. Produsenten dokumenterer en ordliste med opptil 1,000 fraser og anbefaler så få relevante oppføringer som mulig for å unngå å svekke gjenkjenningen av andre uttrykk. For en teknisk presentasjon kan du klargjøre en kort liste over faktiske produktnavn og forkortelser og deretter undersøke dem i transkripsjonen. Slik vekting hjelper gjenkjenningen med å vurdere et uttrykk; den fastslår ikke at uttrykket ble uttalt, og erstatter ikke en kontroll mot lyden.</p><p>Modellen gir automatisk tegnsetting og bruk av store bokstaver, som kan slås av i det dokumenterte grensesnittet. Google beskriver også en forhåndsfunksjon for egendefinerte instruksjoner om transkripsjonsformat, som hvordan et bestemt navn eller en dato skal skrives. Hold disse instruksjonene rettet mot formatering av den gjenkjente talen. En transkripsjon som normaliserer en dato eller skriver et merkenavn med stor forbokstav, må fortsatt bevare meningen i det som ble sagt. En oppsummering, oversettelse eller faktabasert analyse er en senere bruk av transkripsjonen, fremfor noe som fastslås av selve gjenkjenningsresultatet.</p><p>Den innebygde støyfjerningen er ment å redusere bakgrunnsmusikk og omgivelseslyder som regn eller gatestøy. Google sier uttrykkelig at den ikke kan fjerne menneskestemmer i bakgrunnen. Bevar dette skillet når du klargjør et opptak med overlappende samtaler. Kontroller støyende og stille deler mot kilden i stedet for å anta at en transkripsjon som ser renere ut, beviser at den forstyrrende lyden ble fjernet. Et nyttig resultat holder usikre passasjer gjenkjennelige slik at de kan rettes.</p><p>Ved strømmeoppgaver påvirker følsomheten for ytringsavslutning når en ytring regnes som ferdig. Produsenten beskriver innstillingene standard, short og supershort for stadig kortere forventet tale. En raskere innstilling kan avbryte en taler som tar en pause midt i en tanke. Tilpass innstillingen til naturlig diktering, en kort setning eller en svært kort kommando, og behold statusen for endelig resultat sammen med transkripsjonen. For en ferdig fil bør du kontrollere navn, mengder, nektelser og talergrenser og deretter beholde valgt modus og kildelyd slik at resultatet kan kontrolleres eller gjenbrukes.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tilgjengelig i Ailoot · inndata &amp; metoder</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Transkripsjon</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Inndatatyper</dt><dd><code>audio</code></dd></div><div><dt>Utdatatyper</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>Verdier &amp; grenser</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åkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</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åkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</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>Metodeparametere og livssyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Avtale</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=\"Avtale\"><span class=\"card-cell-label\">Avtale</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=\"Avtale\"><span class=\"card-cell-label\">Avtale</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=\"Avtale\"><span class=\"card-cell-label\">Avtale</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=\"Avtale\"><span class=\"card-cell-label\">Avtale</span>Eksemplet leser den faktiske PCM WAV-filen din, som må ha innhold, koder alle filens byte som base64 og sender input_audio.format som wav.</td></tr></tbody></table></div><p>Livssyklus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Eksakt task_id fra en eksisterende medieoppføring du eier</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>Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.</p><dl data-price-conditions><dt>Hurtigmodus</dt><dd>Ikke angitt <span class=\"note-s\">Når hurtigmodus er valgt</span></dd><dt>Flex-modus</dt><dd>Ikke angitt <span class=\"note-s\">Når flex-modus er valgt</span></dd><dt>Maksimal resonneringsinnsats</dt><dd>Ikke angitt <span class=\"note-s\">Når justeringen «default» brukes for maksimal resonneringsinnsats</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-satser</h4><h4>Priser etter konfigurasjon</h4><p class=\"note-s\">Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasjon</th><th>Prisplan</th><th>Faktureringsenhet</th><th>Kostnad</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasjon\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasjon</span>Grunnpriser for tokener</th><td data-cell-label=\"Prisplan\"><span class=\"card-cell-label\">Prisplan</span>Grunnsats</td><td data-cell-label=\"Faktureringsenhet\"><span class=\"card-cell-label\">Faktureringsenhet</span>—</td><td data-cell-label=\"Kostnad\"><span class=\"card-cell-label\">Kostnad</span><div><span>Inndata · Inngående tokener</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Utdata · Utgående tokener</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Inndata · Lesing fra hurtigbuffer</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Inndata · Skriving til hurtigbuffer</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Inndata · Skriving til hurtigbuffer, 1 time</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div></td></tr><tr><th data-cell-label=\"Konfigurasjon\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasjon</span>lydsekund i inndata</th><td data-cell-label=\"Prisplan\"><span class=\"card-cell-label\">Prisplan</span>—</td><td data-cell-label=\"Faktureringsenhet\"><span class=\"card-cell-label\">Faktureringsenhet</span>per sekund inndatalyd</td><td data-cell-label=\"Kostnad\"><span class=\"card-cell-label\">Kostnad</span><div><span>Inndata · lydsekund i inndata</span> <b>$0.000533333333334</b> <span class=\"price-unit\">per sekund inndatalyd</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. <a href=\"/docs/nb/billing/reserve/\">Slik fungerer reservasjon og oppgjør →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Eksempelforespørsler</h3><h4>Ailoot Ultra · Transkripsjon</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 opprinnelige resultatet</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopier 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\">Motta og lagre resultater</h3><h4>Ailoot Ultra · Transkripsjon</h4><p class=\"note-s\">Hele den opprinnelige svarkroppen, statusen og videresendte svarhoder. Denne behandleren legger ikke til noen universell JSON-struktur, noe tekstfelt eller noen oppgaveinnpakning.</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 ferdige resultater</h5><p class=\"note-s\">Behold alle fullstendige returnerte svar, filer og innholdsdeler.</p><p class=\"note-s\">Bevar hele svaret og svarhodene, alle faktiske utdata, de opprinnelige returnerte identifikatorene og alle bruksfeltene. Hent den opprinnelige operasjonen igjen uten å sende opprettelsesforespørselen på nytt.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Hvis det opprinnelige svaret må kontrolleres</h5><p class=\"note-s\">Behold den faktiske X-Client-Request-ID og hele svaret. Les de opprinnelige ressursene du eier, og deres eksakte signerte innholdsadresser; send aldri en usikker opprettelse på nytt.</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>Feil og neste trinn</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Svar</th><th>Vilkår</th><th>Neste trinn</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=\"Vilkår\"><span class=\"card-cell-label\">Vilkår</span>JSON-kroppen eller den eksplisitte kanoniske modell-ID-en er ugyldig.</td><td data-cell-label=\"Neste trinn\"><span class=\"card-cell-label\">Neste trinn</span>Behold svaret og korriger det angitte forespørselsfeltet.</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=\"Vilkår\"><span class=\"card-cell-label\">Vilkår</span>Ailoot API-nøkkelen er ugyldig.</td><td data-cell-label=\"Neste trinn\"><span class=\"card-cell-label\">Neste trinn</span>Bruk den autoriserte Ailoot API-nøkkelen din.</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=\"Vilkår\"><span class=\"card-cell-label\">Vilkår</span>Nøkkelgruppen gir ikke tilgang til denne metoden.</td><td data-cell-label=\"Neste trinn\"><span class=\"card-cell-label\">Neste trinn</span>Behold de returnerte feildetaljene.</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=\"Vilkår\"><span class=\"card-cell-label\">Vilkår</span>Den valgte metoden har ingen godkjent rute.</td><td data-cell-label=\"Neste trinn\"><span class=\"card-cell-label\">Neste trinn</span>Behold de returnerte feildetaljene.</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=\"Vilkår\"><span class=\"card-cell-label\">Vilkår</span>Den godtatte tariffen kan ikke hente den nødvendige inndatamengden eller grensen.</td><td data-cell-label=\"Neste trinn\"><span class=\"card-cell-label\">Neste trinn</span>Behold svaret; bruk inndatarepresentasjonen som den godtatte tariffen krever.</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=\"Vilkår\"><span class=\"card-cell-label\">Vilkår</span>Nødvendig lagring, rute, metodepris eller reservasjon er utilgjengelig.</td><td data-cell-label=\"Neste trinn\"><span class=\"card-cell-label\">Neste trinn</span>Behold hele det opprinnelige svaret. En usikker reservasjon gir ikke tillatelse til å sende inn på nytt.</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=\"Vilkår\"><span class=\"card-cell-label\">Vilkår</span>Det opprinnelige resultatet, forbruket eller oppgjøret må kontrolleres.</td><td data-cell-label=\"Neste trinn\"><span class=\"card-cell-label\">Neste trinn</span>Behold den faktiske forespørsels-ID-en og det opprinnelige svaret. Les den eksisterende oppføringen du eier; ikke send opprettelsen på nytt.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliaser</h3><h4>Modellaliaser</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\">Bruk metodestiene som vises ovenfor.</p><h4>Tilknyttede anroper-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-kroppen eller den eksplisitte kanoniske modell-ID-en er ugyldig.",
                "http_status": 400,
                "recovery": "Behold svaret og korriger det angitte forespørselsfeltet.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ailoot API-nøkkelen er ugyldig.",
                "http_status": 401,
                "recovery": "Bruk den autoriserte Ailoot API-nøkkelen din.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Nøkkelgruppen gir ikke tilgang til denne metoden.",
                "http_status": 403,
                "recovery": "Behold de returnerte feildetaljene.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Den valgte metoden har ingen godkjent rute.",
                "http_status": 404,
                "recovery": "Behold de returnerte feildetaljene.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Den godtatte tariffen kan ikke hente den nødvendige inndatamengden eller grensen.",
                "http_status": 422,
                "recovery": "Behold svaret; bruk inndatarepresentasjonen som den godtatte tariffen krever.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Nødvendig lagring, rute, metodepris eller reservasjon er utilgjengelig.",
                "http_status": 503,
                "recovery": "Behold hele det opprinnelige svaret. En usikker reservasjon gir ikke tillatelse til å sende inn på nytt.",
                "type": null
              },
              {
                "code": null,
                "condition": "Det opprinnelige resultatet, forbruket eller oppgjøret må kontrolleres.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Behold den faktiske forespørsels-ID-en og det opprinnelige svaret. Les den eksisterende oppføringen du eier; ikke send opprettelsen på nytt.",
                "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 den faktiske X-Client-Request-ID og hele svaret. Les de opprinnelige ressursene du eier, og deres eksakte signerte innholdsadresser; send aldri en usikker opprettelse på nytt."
            },
            "outputs": {
              "all_results": "Bevar hele svaret og svarhodene, alle faktiske utdata, de opprinnelige returnerte identifikatorene og alle bruksfeltene. Hent den opprinnelige operasjonen igjen uten å sende opprettelsesforespørselen på nytt.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Hele den opprinnelige svarkroppen, statusen og videresendte svarhoder. Denne behandleren legger ikke til noen universell JSON-struktur, noe tekstfelt eller noen oppgaveinnpakning."
            },
            "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 leser den faktiske PCM WAV-filen din, som må ha innhold, koder alle filens byte 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": "Eksakt task_id fra en eksisterende medieoppføring du eier",
                "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": "Transkripsjon",
        "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": "683c43309423308ae9cb7731ed34b90f16ccf666e81900cf26cfc9446aa5f73f",
    "input_html_sha256": "632ab6a413f83d0feb730aa2fdb5080536412c9c26a4e1061cdb4696589e1037",
    "private_audit_sha256": "ea73299e027497fd32893915bb427c1ebf96595895003da35e4e09c876514577",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nb/google-chirp-3/",
    "description": "Google Chirp 3 er en flerspråklig talegjenkjenningsmodell for strømming, korte opptak og lengre satsvis transkripsjon. Den gir automatisk språkgjenkjenning, tegnsetting, ordforrådstilpasning og modusavhengige metadata om tid eller talere. Støyfjerningen reduserer bakgrunnsstøy, men kan ikke fjerne andre stemmer.",
    "locale": "nb",
    "md_url": "https://ailoot.ai/models/nb/google-chirp-3/index.md",
    "title": "Google: Chirp 3 — Ailoot",
    "url": "https://ailoot.ai/models/nb/google-chirp-3/"
  },
  "rawModel": {
    "about": "Google Chirp 3 er en flerspråklig modell for automatisk talegjenkjenning som gjør talt lyd om til tekst. Google dokumenterer den som transkripsjonsmodellen Chirp 3 i Speech-to-Text V2-familien, med modellidentifikatoren chirp_3. Formålet er å gjenkjenne tale fra opptak eller strømming, med språkgjenkjenning og transkripsjonsspesifikke egenskaper. Den resulterende leveransen er en transkripsjon og metadataene som støttes av den valgte gjenkjenningsmetoden, fremfor generert tale eller et åpent assistentsvar.\n\nProdusenten skiller mellom strømmegjenkjenning, synkron gjenkjenning for korte klipp og satsvis gjenkjenning for lengre opptak. Velg modus etter kildelyden og det ønskede resultatet. For et kort talenotat kan et ferdig tekstsvar være tilstrekkelig. For et intervju eller en innspilt samtale kan et satsvis resultat med talerinformasjon være mer nyttig. For direkteteksting eller et grensesnitt for talekommandoer bør du holde foreløpig tekst atskilt fra det endelige gjenkjenningsresultatet og bevare lydintervallet teksten beskriver.\n\nKlargjør lyden i kodingen som gjenkjenningsimplementasjonen forventer. Googles Chirp 3-eksempler bruker dekoding med automatisk formatgjenkjenning for opptaksfiler og eksplisitt angitt dekoding for en konfigurasjon med rå lydstrøm. Den tilhørende V2-dekoderreferansen oppgir WAV PCM eller kompandert lyd, FLAC, MP3, Ogg/WebM Opus og AAC i MP4-, M4A- eller MOV-beholdere blant de støttede kodingene. Et beholdernavn erstatter ikke den faktiske kodeken og samplingskonfigurasjonen. Bevar tydelig tale og unngå kraftig klipping eller unødvendig konvertering som mister hørbare detaljer.\n\nChirp 3 kan automatisk identifisere og transkribere det dominerende språket, og et sett med forventede språkvarianter kan begrense valgmulighetene ved gjenkjenning. Språktilgjengeligheten varierer etter metode og egenskap. Språklisten for transkripsjon er bredere enn listen for talerdiarisering, så at et språk gjenkjennes, fastslår ikke at alle taler- eller tidsfunksjoner gjelder for det. Bruk språkvarianten som passer til opptaket, og behold navn eller faguttrykk som veksler mellom språk, for gjennomgang. En etikett for det gjenkjente språket er del av resultatet, ikke bevis på at alle uvanlige ord ble gjenkjent riktig.\n\nTalerdiarisering grupperer tale etter stemme i et enkanalsopptak. Google gir et eksempel på satsvis transkripsjon med talerinformasjon per ord. For et intervju bør du beholde disse etikettene sammen med den gjenkjente teksten og sammenligne talerbytter med opptaket før du knytter til faktiske navn eller roller. Like stemmer, avbrytelser og overlappende tale kan gjøre tilordning vanskelig. Gjør kildeopptakets kanaloppsett og den tiltenkte kontrollen av talere tydelig i stedet for å behandle en etikett som en uavhengig bekreftet identitet.\n\nTidsangivelser er også metodespesifikke. Strømmegjenkjenning gir tidsstempler på ytringsnivå, mens produsentens veiledning for filgjenkjenning beskriver valgfrie tidsangivelser per ord med en mulig avveining mot transkripsjonskvaliteten. Bevar metadataene som faktisk returneres av den valgte metoden, og kontroller synkroniseringen sammen med ordlyden. En arbeidsflyt for teksting trenger begge deler: lesbar gjenkjent tekst og underlag for at en tidsgrense samsvarer med riktig lyd. Google advarer også om at den returnerte konfidensverdien per ord ikke er et reelt mål på sikkerhet, og at den derfor ikke bør brukes til å bekrefte at et ord er riktig.\n\nTaletilpasning tilfører fraser og egennavn som sannsynligvis forekommer i opptaket. Produsenten dokumenterer en ordliste med opptil 1,000 fraser og anbefaler så få relevante oppføringer som mulig for å unngå å svekke gjenkjenningen av andre uttrykk. For en teknisk presentasjon kan du klargjøre en kort liste over faktiske produktnavn og forkortelser og deretter undersøke dem i transkripsjonen. Slik vekting hjelper gjenkjenningen med å vurdere et uttrykk; den fastslår ikke at uttrykket ble uttalt, og erstatter ikke en kontroll mot lyden.\n\nModellen gir automatisk tegnsetting og bruk av store bokstaver, som kan slås av i det dokumenterte grensesnittet. Google beskriver også en forhåndsfunksjon for egendefinerte instruksjoner om transkripsjonsformat, som hvordan et bestemt navn eller en dato skal skrives. Hold disse instruksjonene rettet mot formatering av den gjenkjente talen. En transkripsjon som normaliserer en dato eller skriver et merkenavn med stor forbokstav, må fortsatt bevare meningen i det som ble sagt. En oppsummering, oversettelse eller faktabasert analyse er en senere bruk av transkripsjonen, fremfor noe som fastslås av selve gjenkjenningsresultatet.\n\nDen innebygde støyfjerningen er ment å redusere bakgrunnsmusikk og omgivelseslyder som regn eller gatestøy. Google sier uttrykkelig at den ikke kan fjerne menneskestemmer i bakgrunnen. Bevar dette skillet når du klargjør et opptak med overlappende samtaler. Kontroller støyende og stille deler mot kilden i stedet for å anta at en transkripsjon som ser renere ut, beviser at den forstyrrende lyden ble fjernet. Et nyttig resultat holder usikre passasjer gjenkjennelige slik at de kan rettes.\n\nVed strømmeoppgaver påvirker følsomheten for ytringsavslutning når en ytring regnes som ferdig. Produsenten beskriver innstillingene standard, short og supershort for stadig kortere forventet tale. En raskere innstilling kan avbryte en taler som tar en pause midt i en tanke. Tilpass innstillingen til naturlig diktering, en kort setning eller en svært kort kommando, og behold statusen for endelig resultat sammen med transkripsjonen. For en ferdig fil bør du kontrollere navn, mengder, nektelser og talergrenser og deretter beholde valgt modus og kildelyd slik at resultatet kan kontrolleres eller gjenbrukes.",
    "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": "Fullstendige priser for konfigurasjonen finnes i detaljene."
      }
    ],
    "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-kroppen eller den eksplisitte kanoniske modell-ID-en er ugyldig.",
                "http_status": 400,
                "recovery": "Behold svaret og korriger det angitte forespørselsfeltet.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Ailoot API-nøkkelen er ugyldig.",
                "http_status": 401,
                "recovery": "Bruk den autoriserte Ailoot API-nøkkelen din.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Nøkkelgruppen gir ikke tilgang til denne metoden.",
                "http_status": 403,
                "recovery": "Behold de returnerte feildetaljene.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Den valgte metoden har ingen godkjent rute.",
                "http_status": 404,
                "recovery": "Behold de returnerte feildetaljene.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Den godtatte tariffen kan ikke hente den nødvendige inndatamengden eller grensen.",
                "http_status": 422,
                "recovery": "Behold svaret; bruk inndatarepresentasjonen som den godtatte tariffen krever.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Nødvendig lagring, rute, metodepris eller reservasjon er utilgjengelig.",
                "http_status": 503,
                "recovery": "Behold hele det opprinnelige svaret. En usikker reservasjon gir ikke tillatelse til å sende inn på nytt.",
                "type": null
              },
              {
                "code": null,
                "condition": "Det opprinnelige resultatet, forbruket eller oppgjøret må kontrolleres.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Behold den faktiske forespørsels-ID-en og det opprinnelige svaret. Les den eksisterende oppføringen du eier; ikke send opprettelsen på nytt.",
                "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 den faktiske X-Client-Request-ID og hele svaret. Les de opprinnelige ressursene du eier, og deres eksakte signerte innholdsadresser; send aldri en usikker opprettelse på nytt."
            },
            "outputs": {
              "all_results": "Bevar hele svaret og svarhodene, alle faktiske utdata, de opprinnelige returnerte identifikatorene og alle bruksfeltene. Hent den opprinnelige operasjonen igjen uten å sende opprettelsesforespørselen på nytt.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Hele den opprinnelige svarkroppen, statusen og videresendte svarhoder. Denne behandleren legger ikke til noen universell JSON-struktur, noe tekstfelt eller noen oppgaveinnpakning."
            },
            "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 leser den faktiske PCM WAV-filen din, som må ha innhold, koder alle filens byte 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": "Eksakt task_id fra en eksisterende medieoppføring du eier",
                "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": "Transkripsjon",
        "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 flerspråklig talegjenkjenningsmodell for strømming, korte opptak og lengre satsvis transkripsjon. Den gir automatisk språkgjenkjenning, tegnsetting, ordforrådstilpasning og modusavhengige metadata om tid eller talere. Støyfjerningen reduserer bakgrunnsstøy, 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 flerspråklig talegjenkjenningsmodell for strømming, korte opptak og lengre satsvis transkripsjon. Den gir automatisk språkgjenkjenning, tegnsetting, ordforrådstilpasning og modusavhengige metadata om tid eller talere. Støyfjerningen reduserer bakgrunnsstøy, men kan ikke fjerne andre stemmer.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "cf72a97640bd9ec59f5905a419c725db6d3a67e07cdbcae5595e5b579d9234bc",
    "renderer_sha256": "c8cb5a92c10b47373d294dee7465d66796cd4710c6626fd81459dc0625fc6d26"
  },
  "sourceRevision": "b25afee4f23145e3fc9c8ac0512737b47ca55e3d2743f84919d608bfc7bc6472"
}
