{
  "aboutHtml": "<p>GPT Transcribe er OpenAIs tale-til-tekst-modell for ferdige lydfiler, strømmede filtranskripsjoner og bekreftede lydinnlegg i Realtime-økter. Den tar imot lyd med valgfri tekstkontekst og returnerer gjenkjent tekst. Produsenten posisjonerer den for nøyaktig transkripsjon av innspilt tale på originalspråket, inkludert fagterminologi, flerspråklige opptak og veksling mellom språk. Et nyttig resultat er en transkripsjon som forblir knyttet til opptaket, med metadata om oppdagede språk når modellen kan gi en pålitelig prediksjon.</p><h4>Klargjøring av et ferdig opptak</h4><p>OpenAIs arbeidsflyt for filtranskripsjon godtar opplastinger på opptil 25 MB. Den nåværende endepunktreferansen oppgir inndataformatene FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV og WebM og anbefaler nok filmetadata til å identifisere formatet, inkludert en passende filendelse og innholdstype. For et større opptak anbefaler veiledningen komprimering eller oppdeling i filer på 25 MB eller mindre. Unngå å kutte midt i en setning, fordi fjerning av omkringliggende tale kan redusere gjenkjenningsnøyaktigheten. Behold delene i rekkefølge og ta vare på plasseringen deres i originalopptaket.</p><p>For et møte, intervju eller en innspilt presentasjon legger du ved den faktiske lyden og angir temaet og terminologien som sannsynligvis blir brukt. Et nyttig resultat er den gjenkjente ordlyden fremfor en utledet oppsummering av diskusjonen. Behold opptaksidentifikatoren sammen med den returnerte teksten, slik at en person som kontrollerer et navn, tall eller usikkert uttrykk, kan gå tilbake til riktig kilde. Transkripsjonen kan deretter bli materiale for en separat oppsummerings-, oversettelses- eller redaksjonell arbeidsflyt.</p><h4>Kontekst, nøkkelordhint og forventede språk</h4><p>Produsenten skiller mellom tre typer veiledning. En ledetekst gir fri kontekst om opptakets tema eller situasjon. Nøkkelord angir ordrette ord eller uttrykk som forventes i talen. En languages-liste angir de forventede talespråkene. For en tospråklig produktdiskusjon beskriver du situasjonen i ledeteksten, oppgir relevante produktnavn som nøkkelord og angir de forventede språkene. Dette er gjenkjenningshint; de er ikke instruksjoner om å legge inn ord som ingen sa.</p><p>GPT Transcribe bruker flertallsfeltet languages fremfor det eldre entallsfeltet language; OpenAI sier at feltene ikke skal sendes sammen i samme forespørsel. Veiledningen godtar støttede ISO 639-1-koder, utvalgte ISO 639-3-koder og regionale språkkoder for kinesisk, mens ustøttede eller feilformede verdier avvises. Hvert nøkkelord må være på én linje og må ikke inneholde en vinkelparentes, vognretur eller et linjeskift. Et ugyldig nøkkelord eller en for lang ledetekst kan føre til at hele forespørselen avvises. Hold konteksten relevant og kontroller om navnene i hintene faktisk forekommer i lyden, fremfor å behandle hintlisten som transkripsjonen.</p><h4>JSON-utdata og prediksjoner av oppdagede språk</h4><p>Det dokumenterte filresultatet er JSON som inneholder transkripsjonen og oppdagede språk. Disse språkprediksjonene er modellens utdata, ikke en kopi av de oppgitte språkhintene. En tom språkliste er et gyldig resultat når modellen ikke kan gi en pålitelig prediksjon; det fastslår ikke at opptaket var stille eller at transkripsjonen mislyktes. Hold den gjenkjente teksten og språkmetadataene atskilt, slik at videre behandling kan bruke hver del ut fra dens betydning.</p><h4>Strømming av en filtranskripsjon</h4><p>En ferdig fil kan gi transkripsjonstekst trinnvis mens den behandles. OpenAI dokumenterer hendelsene transcript.text.delta for delvis tekst og transcript.text.done for hele filtranskripsjonen; den siste hendelsen inkluderer også oppdagede språk. Dette strømmer utdataene fra et opptak som allerede er levert. Det er nyttig for å vise fremdrift ved en lang opplasting, mens slutthendelsen fastslår teksten som skal beholdes som det fullførte resultatet.</p><h4>Bekreftede lydinnlegg i Realtime-økter</h4><p>GPT Transcribe har også en spesialisert Realtime-arbeidsflyt over WebSocket. Lyd legges til i inndatabufferen, og deretter bekrefter applikasjonen et lydinnlegg eksplisitt. Transkripsjonen begynner for dette bekreftede segmentet og kan sende delvise tekstoppdateringer før fullføringshendelsen, inkludert informasjon om oppdagede språk. Modellen bruker automatisk tidligere transkriberte innlegg som kontekst i denne produsentens øktflyt. Dette er forskjellig fra å sende direkteteksting kontinuerlig etter hvert som mikrofonlyden kommer inn; OpenAI angir GPT Live Transcribe for denne kontinuerlige arbeidsflyten.</p><p>For flere innlegg beholder du identifikatoren til inndataelementet sammen med den tilhørende transkripsjonen. OpenAI advarer om at fullføringshendelser fra ulike innlegg ikke nødvendigvis kommer i talerekkefølge, så knytt hvert sluttresultat til de bekreftede inndataene fremfor å ordne en samtale bare etter fullføringstid. Det nyttige resultatet er en ordnet transkripsjon satt sammen av de riktige sluttelementene, med foreløpig tekst behandlet som fremdrift fremfor en separat, fullført ytring.</p><h4>Spesialiserte utdata og vesentlige begrensninger</h4><p>Denne profilen gir ikke en universell kontrakt for undertekster, tidsstempler, oversettelse eller taleretiketter. OpenAIs migreringsveiledning skiller disse spesialiserte funksjonene: innebygde undertekstformater og ordtidsangivelser krever en kompatibel modell og et kompatibelt format, mens taleretiketter bruker GPT-4o Transcribe Diarize. GPT Transcribes filresultat er JSON fremfor en direkte erstatning for SRT-, VTT- eller utførlige tidsstempelsvar. Det nøyaktige modellkortet publiserer ikke et tallfestet kontekst- eller maksimalutdatabudsjett, så et tokenvindu for en chatmodell skal ikke antas for lydtranskripsjon.</p><p>Kontroller vanskelig ordforråd, tall, aksenter, bakgrunnsstøy og språkskifter mot opptaket. Kontroller at relevante hint forbedret gjenkjenningen uten å legge inn termer som ikke ble sagt, og at den endelige transkripsjonen inkluderer slutten av lyden. For et flerspråklig resultat bevarer du den uttalte ordlyden før du lager en oversatt versjon. Disse kontrollene gjør transkripsjonen nyttig som kildemateriale og holder samtidig kontekstuelle hint, oppdagede språk og den gjenkjente talen tydelig atskilt.</p>",
  "aboutText": "GPT Transcribe er OpenAIs tale-til-tekst-modell for ferdige lydfiler, strømmede filtranskripsjoner og bekreftede lydinnlegg i Realtime-økter. Den tar imot lyd med valgfri tekstkontekst og returnerer gjenkjent tekst. Produsenten posisjonerer den for nøyaktig transkripsjon av innspilt tale på originalspråket, inkludert fagterminologi, flerspråklige opptak og veksling mellom språk. Et nyttig resultat er en transkripsjon som forblir knyttet til opptaket, med metadata om oppdagede språk når modellen kan gi en pålitelig prediksjon.\n\n### Klargjøring av et ferdig opptak\n\nOpenAIs arbeidsflyt for filtranskripsjon godtar opplastinger på opptil 25 MB. Den nåværende endepunktreferansen oppgir inndataformatene FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV og WebM og anbefaler nok filmetadata til å identifisere formatet, inkludert en passende filendelse og innholdstype. For et større opptak anbefaler veiledningen komprimering eller oppdeling i filer på 25 MB eller mindre. Unngå å kutte midt i en setning, fordi fjerning av omkringliggende tale kan redusere gjenkjenningsnøyaktigheten. Behold delene i rekkefølge og ta vare på plasseringen deres i originalopptaket.\n\nFor et møte, intervju eller en innspilt presentasjon legger du ved den faktiske lyden og angir temaet og terminologien som sannsynligvis blir brukt. Et nyttig resultat er den gjenkjente ordlyden fremfor en utledet oppsummering av diskusjonen. Behold opptaksidentifikatoren sammen med den returnerte teksten, slik at en person som kontrollerer et navn, tall eller usikkert uttrykk, kan gå tilbake til riktig kilde. Transkripsjonen kan deretter bli materiale for en separat oppsummerings-, oversettelses- eller redaksjonell arbeidsflyt.\n\n### Kontekst, nøkkelordhint og forventede språk\n\nProdusenten skiller mellom tre typer veiledning. En ledetekst gir fri kontekst om opptakets tema eller situasjon. Nøkkelord angir ordrette ord eller uttrykk som forventes i talen. En languages-liste angir de forventede talespråkene. For en tospråklig produktdiskusjon beskriver du situasjonen i ledeteksten, oppgir relevante produktnavn som nøkkelord og angir de forventede språkene. Dette er gjenkjenningshint; de er ikke instruksjoner om å legge inn ord som ingen sa.\n\nGPT Transcribe bruker flertallsfeltet languages fremfor det eldre entallsfeltet language; OpenAI sier at feltene ikke skal sendes sammen i samme forespørsel. Veiledningen godtar støttede ISO 639-1-koder, utvalgte ISO 639-3-koder og regionale språkkoder for kinesisk, mens ustøttede eller feilformede verdier avvises. Hvert nøkkelord må være på én linje og må ikke inneholde en vinkelparentes, vognretur eller et linjeskift. Et ugyldig nøkkelord eller en for lang ledetekst kan føre til at hele forespørselen avvises. Hold konteksten relevant og kontroller om navnene i hintene faktisk forekommer i lyden, fremfor å behandle hintlisten som transkripsjonen.\n\n### JSON-utdata og prediksjoner av oppdagede språk\n\nDet dokumenterte filresultatet er JSON som inneholder transkripsjonen og oppdagede språk. Disse språkprediksjonene er modellens utdata, ikke en kopi av de oppgitte språkhintene. En tom språkliste er et gyldig resultat når modellen ikke kan gi en pålitelig prediksjon; det fastslår ikke at opptaket var stille eller at transkripsjonen mislyktes. Hold den gjenkjente teksten og språkmetadataene atskilt, slik at videre behandling kan bruke hver del ut fra dens betydning.\n\n### Strømming av en filtranskripsjon\n\nEn ferdig fil kan gi transkripsjonstekst trinnvis mens den behandles. OpenAI dokumenterer hendelsene transcript.text.delta for delvis tekst og transcript.text.done for hele filtranskripsjonen; den siste hendelsen inkluderer også oppdagede språk. Dette strømmer utdataene fra et opptak som allerede er levert. Det er nyttig for å vise fremdrift ved en lang opplasting, mens slutthendelsen fastslår teksten som skal beholdes som det fullførte resultatet.\n\n### Bekreftede lydinnlegg i Realtime-økter\n\nGPT Transcribe har også en spesialisert Realtime-arbeidsflyt over WebSocket. Lyd legges til i inndatabufferen, og deretter bekrefter applikasjonen et lydinnlegg eksplisitt. Transkripsjonen begynner for dette bekreftede segmentet og kan sende delvise tekstoppdateringer før fullføringshendelsen, inkludert informasjon om oppdagede språk. Modellen bruker automatisk tidligere transkriberte innlegg som kontekst i denne produsentens øktflyt. Dette er forskjellig fra å sende direkteteksting kontinuerlig etter hvert som mikrofonlyden kommer inn; OpenAI angir GPT Live Transcribe for denne kontinuerlige arbeidsflyten.\n\nFor flere innlegg beholder du identifikatoren til inndataelementet sammen med den tilhørende transkripsjonen. OpenAI advarer om at fullføringshendelser fra ulike innlegg ikke nødvendigvis kommer i talerekkefølge, så knytt hvert sluttresultat til de bekreftede inndataene fremfor å ordne en samtale bare etter fullføringstid. Det nyttige resultatet er en ordnet transkripsjon satt sammen av de riktige sluttelementene, med foreløpig tekst behandlet som fremdrift fremfor en separat, fullført ytring.\n\n### Spesialiserte utdata og vesentlige begrensninger\n\nDenne profilen gir ikke en universell kontrakt for undertekster, tidsstempler, oversettelse eller taleretiketter. OpenAIs migreringsveiledning skiller disse spesialiserte funksjonene: innebygde undertekstformater og ordtidsangivelser krever en kompatibel modell og et kompatibelt format, mens taleretiketter bruker GPT-4o Transcribe Diarize. GPT Transcribes filresultat er JSON fremfor en direkte erstatning for SRT-, VTT- eller utførlige tidsstempelsvar. Det nøyaktige modellkortet publiserer ikke et tallfestet kontekst- eller maksimalutdatabudsjett, så et tokenvindu for en chatmodell skal ikke antas for lydtranskripsjon.\n\nKontroller vanskelig ordforråd, tall, aksenter, bakgrunnsstøy og språkskifter mot opptaket. Kontroller at relevante hint forbedret gjenkjenningen uten å legge inn termer som ikke ble sagt, og at den endelige transkripsjonen inkluderer slutten av lyden. For et flerspråklig resultat bevarer du den uttalte ordlyden før du lager en oversatt versjon. Disse kontrollene gjør transkripsjonen nyttig som kildemateriale og holder samtidig kontekstuelle hint, oppdagede språk og den gjenkjente talen tydelig atskilt.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "c100b8c41d7103761e957ed852260e2e1fcece3761abb87a650e18df25953414",
    "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\">O</span><h2 id=\"sheet-title\">OpenAI: GPT Transcribe</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Lukk\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>openai/gpt-transcribe</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|openai%2Fgpt-transcribe\">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\">GPT Transcribe gjør innspilt tale til tekst på originalspråket, med kontekstuelle ledetekster, ordrette nøkkelordhint og flere språkhint. OpenAI dokumenterer transkripsjon av ferdige filer, strømmede filresultater og transkripsjon etter bekreftede lydinnlegg i Realtime.</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>GPT Transcribe er OpenAIs tale-til-tekst-modell for ferdige lydfiler, strømmede filtranskripsjoner og bekreftede lydinnlegg i Realtime-økter. Den tar imot lyd med valgfri tekstkontekst og returnerer gjenkjent tekst. Produsenten posisjonerer den for nøyaktig transkripsjon av innspilt tale på originalspråket, inkludert fagterminologi, flerspråklige opptak og veksling mellom språk. Et nyttig resultat er en transkripsjon som forblir knyttet til opptaket, med metadata om oppdagede språk når modellen kan gi en pålitelig prediksjon.</p><h4>Klargjøring av et ferdig opptak</h4><p>OpenAIs arbeidsflyt for filtranskripsjon godtar opplastinger på opptil 25 MB. Den nåværende endepunktreferansen oppgir inndataformatene FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV og WebM og anbefaler nok filmetadata til å identifisere formatet, inkludert en passende filendelse og innholdstype. For et større opptak anbefaler veiledningen komprimering eller oppdeling i filer på 25 MB eller mindre. Unngå å kutte midt i en setning, fordi fjerning av omkringliggende tale kan redusere gjenkjenningsnøyaktigheten. Behold delene i rekkefølge og ta vare på plasseringen deres i originalopptaket.</p><p>For et møte, intervju eller en innspilt presentasjon legger du ved den faktiske lyden og angir temaet og terminologien som sannsynligvis blir brukt. Et nyttig resultat er den gjenkjente ordlyden fremfor en utledet oppsummering av diskusjonen. Behold opptaksidentifikatoren sammen med den returnerte teksten, slik at en person som kontrollerer et navn, tall eller usikkert uttrykk, kan gå tilbake til riktig kilde. Transkripsjonen kan deretter bli materiale for en separat oppsummerings-, oversettelses- eller redaksjonell arbeidsflyt.</p><h4>Kontekst, nøkkelordhint og forventede språk</h4><p>Produsenten skiller mellom tre typer veiledning. En ledetekst gir fri kontekst om opptakets tema eller situasjon. Nøkkelord angir ordrette ord eller uttrykk som forventes i talen. En languages-liste angir de forventede talespråkene. For en tospråklig produktdiskusjon beskriver du situasjonen i ledeteksten, oppgir relevante produktnavn som nøkkelord og angir de forventede språkene. Dette er gjenkjenningshint; de er ikke instruksjoner om å legge inn ord som ingen sa.</p><p>GPT Transcribe bruker flertallsfeltet languages fremfor det eldre entallsfeltet language; OpenAI sier at feltene ikke skal sendes sammen i samme forespørsel. Veiledningen godtar støttede ISO 639-1-koder, utvalgte ISO 639-3-koder og regionale språkkoder for kinesisk, mens ustøttede eller feilformede verdier avvises. Hvert nøkkelord må være på én linje og må ikke inneholde en vinkelparentes, vognretur eller et linjeskift. Et ugyldig nøkkelord eller en for lang ledetekst kan føre til at hele forespørselen avvises. Hold konteksten relevant og kontroller om navnene i hintene faktisk forekommer i lyden, fremfor å behandle hintlisten som transkripsjonen.</p><h4>JSON-utdata og prediksjoner av oppdagede språk</h4><p>Det dokumenterte filresultatet er JSON som inneholder transkripsjonen og oppdagede språk. Disse språkprediksjonene er modellens utdata, ikke en kopi av de oppgitte språkhintene. En tom språkliste er et gyldig resultat når modellen ikke kan gi en pålitelig prediksjon; det fastslår ikke at opptaket var stille eller at transkripsjonen mislyktes. Hold den gjenkjente teksten og språkmetadataene atskilt, slik at videre behandling kan bruke hver del ut fra dens betydning.</p><h4>Strømming av en filtranskripsjon</h4><p>En ferdig fil kan gi transkripsjonstekst trinnvis mens den behandles. OpenAI dokumenterer hendelsene transcript.text.delta for delvis tekst og transcript.text.done for hele filtranskripsjonen; den siste hendelsen inkluderer også oppdagede språk. Dette strømmer utdataene fra et opptak som allerede er levert. Det er nyttig for å vise fremdrift ved en lang opplasting, mens slutthendelsen fastslår teksten som skal beholdes som det fullførte resultatet.</p><h4>Bekreftede lydinnlegg i Realtime-økter</h4><p>GPT Transcribe har også en spesialisert Realtime-arbeidsflyt over WebSocket. Lyd legges til i inndatabufferen, og deretter bekrefter applikasjonen et lydinnlegg eksplisitt. Transkripsjonen begynner for dette bekreftede segmentet og kan sende delvise tekstoppdateringer før fullføringshendelsen, inkludert informasjon om oppdagede språk. Modellen bruker automatisk tidligere transkriberte innlegg som kontekst i denne produsentens øktflyt. Dette er forskjellig fra å sende direkteteksting kontinuerlig etter hvert som mikrofonlyden kommer inn; OpenAI angir GPT Live Transcribe for denne kontinuerlige arbeidsflyten.</p><p>For flere innlegg beholder du identifikatoren til inndataelementet sammen med den tilhørende transkripsjonen. OpenAI advarer om at fullføringshendelser fra ulike innlegg ikke nødvendigvis kommer i talerekkefølge, så knytt hvert sluttresultat til de bekreftede inndataene fremfor å ordne en samtale bare etter fullføringstid. Det nyttige resultatet er en ordnet transkripsjon satt sammen av de riktige sluttelementene, med foreløpig tekst behandlet som fremdrift fremfor en separat, fullført ytring.</p><h4>Spesialiserte utdata og vesentlige begrensninger</h4><p>Denne profilen gir ikke en universell kontrakt for undertekster, tidsstempler, oversettelse eller taleretiketter. OpenAIs migreringsveiledning skiller disse spesialiserte funksjonene: innebygde undertekstformater og ordtidsangivelser krever en kompatibel modell og et kompatibelt format, mens taleretiketter bruker GPT-4o Transcribe Diarize. GPT Transcribes filresultat er JSON fremfor en direkte erstatning for SRT-, VTT- eller utførlige tidsstempelsvar. Det nøyaktige modellkortet publiserer ikke et tallfestet kontekst- eller maksimalutdatabudsjett, så et tokenvindu for en chatmodell skal ikke antas for lydtranskripsjon.</p><p>Kontroller vanskelig ordforråd, tall, aksenter, bakgrunnsstøy og språkskifter mot opptaket. Kontroller at relevante hint forbedret gjenkjenningen uten å legge inn termer som ikke ble sagt, og at den endelige transkripsjonen inkluderer slutten av lyden. For et flerspråklig resultat bevarer du den uttalte ordlyden før du lager en oversatt versjon. Disse kontrollene gjør transkripsjonen nyttig som kildemateriale og holder samtidig kontekstuelle hint, oppdagede språk og den gjenkjente talen tydelig atskilt.</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>openai/gpt-transcribe</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.00015</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-2158-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2158-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-2158-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2158-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;openai/gpt-transcribe&#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=openai%2Fgpt-transcribe&amp;route=Ultra&amp;caller=openai%2Fgpt-transcribe&amp;fmt=transcriptions\"><code>openai/gpt-transcribe</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=openai%2Fgpt-transcribe&amp;route=Ultra&amp;caller=openai%2Fgpt-transcribe&amp;fmt=transcriptions\"><code>openai/gpt-transcribe</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "openai/gpt-transcribe",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|openai%2Fgpt-transcribe",
      "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": [
                  "openai/gpt-transcribe"
                ],
                "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": [
                    "openai/gpt-transcribe"
                  ],
                  "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": "openai/gpt-transcribe"
              },
              "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.00015",
                "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.00015",
                "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': 'openai/gpt-transcribe', '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.00015
          }
        },
        "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.00015",
                "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.00015",
                "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": "openai/gpt-transcribe",
        "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.00015",
            "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.00015",
            "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": "openai/gpt-transcribe",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "7474305116a4a2e39538cb39beeb9f653c65e6ef672fe402085c1d56ba93c8b5",
    "input_html_sha256": "9509400d93cdbeb84b8c315cfc6652cf4526b4f66b2dd28111769683c16a74f0",
    "private_audit_sha256": "6ff80661537035b438c5e32cb96454a89064064d07a6c84178077ac7c1a1da84",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nb/openai-gpt-transcribe/",
    "description": "GPT Transcribe gjør innspilt tale til tekst på originalspråket, med kontekstuelle ledetekster, ordrette nøkkelordhint og flere språkhint. OpenAI dokumenterer transkripsjon av ferdige filer, strømmede filresultater og transkripsjon etter bekreftede lydinnlegg i Realtime.",
    "locale": "nb",
    "md_url": "https://ailoot.ai/models/nb/openai-gpt-transcribe/index.md",
    "title": "OpenAI: GPT Transcribe — Ailoot",
    "url": "https://ailoot.ai/models/nb/openai-gpt-transcribe/"
  },
  "rawModel": {
    "about": "GPT Transcribe er OpenAIs tale-til-tekst-modell for ferdige lydfiler, strømmede filtranskripsjoner og bekreftede lydinnlegg i Realtime-økter. Den tar imot lyd med valgfri tekstkontekst og returnerer gjenkjent tekst. Produsenten posisjonerer den for nøyaktig transkripsjon av innspilt tale på originalspråket, inkludert fagterminologi, flerspråklige opptak og veksling mellom språk. Et nyttig resultat er en transkripsjon som forblir knyttet til opptaket, med metadata om oppdagede språk når modellen kan gi en pålitelig prediksjon.\n\n### Klargjøring av et ferdig opptak\n\nOpenAIs arbeidsflyt for filtranskripsjon godtar opplastinger på opptil 25 MB. Den nåværende endepunktreferansen oppgir inndataformatene FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV og WebM og anbefaler nok filmetadata til å identifisere formatet, inkludert en passende filendelse og innholdstype. For et større opptak anbefaler veiledningen komprimering eller oppdeling i filer på 25 MB eller mindre. Unngå å kutte midt i en setning, fordi fjerning av omkringliggende tale kan redusere gjenkjenningsnøyaktigheten. Behold delene i rekkefølge og ta vare på plasseringen deres i originalopptaket.\n\nFor et møte, intervju eller en innspilt presentasjon legger du ved den faktiske lyden og angir temaet og terminologien som sannsynligvis blir brukt. Et nyttig resultat er den gjenkjente ordlyden fremfor en utledet oppsummering av diskusjonen. Behold opptaksidentifikatoren sammen med den returnerte teksten, slik at en person som kontrollerer et navn, tall eller usikkert uttrykk, kan gå tilbake til riktig kilde. Transkripsjonen kan deretter bli materiale for en separat oppsummerings-, oversettelses- eller redaksjonell arbeidsflyt.\n\n### Kontekst, nøkkelordhint og forventede språk\n\nProdusenten skiller mellom tre typer veiledning. En ledetekst gir fri kontekst om opptakets tema eller situasjon. Nøkkelord angir ordrette ord eller uttrykk som forventes i talen. En languages-liste angir de forventede talespråkene. For en tospråklig produktdiskusjon beskriver du situasjonen i ledeteksten, oppgir relevante produktnavn som nøkkelord og angir de forventede språkene. Dette er gjenkjenningshint; de er ikke instruksjoner om å legge inn ord som ingen sa.\n\nGPT Transcribe bruker flertallsfeltet languages fremfor det eldre entallsfeltet language; OpenAI sier at feltene ikke skal sendes sammen i samme forespørsel. Veiledningen godtar støttede ISO 639-1-koder, utvalgte ISO 639-3-koder og regionale språkkoder for kinesisk, mens ustøttede eller feilformede verdier avvises. Hvert nøkkelord må være på én linje og må ikke inneholde en vinkelparentes, vognretur eller et linjeskift. Et ugyldig nøkkelord eller en for lang ledetekst kan føre til at hele forespørselen avvises. Hold konteksten relevant og kontroller om navnene i hintene faktisk forekommer i lyden, fremfor å behandle hintlisten som transkripsjonen.\n\n### JSON-utdata og prediksjoner av oppdagede språk\n\nDet dokumenterte filresultatet er JSON som inneholder transkripsjonen og oppdagede språk. Disse språkprediksjonene er modellens utdata, ikke en kopi av de oppgitte språkhintene. En tom språkliste er et gyldig resultat når modellen ikke kan gi en pålitelig prediksjon; det fastslår ikke at opptaket var stille eller at transkripsjonen mislyktes. Hold den gjenkjente teksten og språkmetadataene atskilt, slik at videre behandling kan bruke hver del ut fra dens betydning.\n\n### Strømming av en filtranskripsjon\n\nEn ferdig fil kan gi transkripsjonstekst trinnvis mens den behandles. OpenAI dokumenterer hendelsene transcript.text.delta for delvis tekst og transcript.text.done for hele filtranskripsjonen; den siste hendelsen inkluderer også oppdagede språk. Dette strømmer utdataene fra et opptak som allerede er levert. Det er nyttig for å vise fremdrift ved en lang opplasting, mens slutthendelsen fastslår teksten som skal beholdes som det fullførte resultatet.\n\n### Bekreftede lydinnlegg i Realtime-økter\n\nGPT Transcribe har også en spesialisert Realtime-arbeidsflyt over WebSocket. Lyd legges til i inndatabufferen, og deretter bekrefter applikasjonen et lydinnlegg eksplisitt. Transkripsjonen begynner for dette bekreftede segmentet og kan sende delvise tekstoppdateringer før fullføringshendelsen, inkludert informasjon om oppdagede språk. Modellen bruker automatisk tidligere transkriberte innlegg som kontekst i denne produsentens øktflyt. Dette er forskjellig fra å sende direkteteksting kontinuerlig etter hvert som mikrofonlyden kommer inn; OpenAI angir GPT Live Transcribe for denne kontinuerlige arbeidsflyten.\n\nFor flere innlegg beholder du identifikatoren til inndataelementet sammen med den tilhørende transkripsjonen. OpenAI advarer om at fullføringshendelser fra ulike innlegg ikke nødvendigvis kommer i talerekkefølge, så knytt hvert sluttresultat til de bekreftede inndataene fremfor å ordne en samtale bare etter fullføringstid. Det nyttige resultatet er en ordnet transkripsjon satt sammen av de riktige sluttelementene, med foreløpig tekst behandlet som fremdrift fremfor en separat, fullført ytring.\n\n### Spesialiserte utdata og vesentlige begrensninger\n\nDenne profilen gir ikke en universell kontrakt for undertekster, tidsstempler, oversettelse eller taleretiketter. OpenAIs migreringsveiledning skiller disse spesialiserte funksjonene: innebygde undertekstformater og ordtidsangivelser krever en kompatibel modell og et kompatibelt format, mens taleretiketter bruker GPT-4o Transcribe Diarize. GPT Transcribes filresultat er JSON fremfor en direkte erstatning for SRT-, VTT- eller utførlige tidsstempelsvar. Det nøyaktige modellkortet publiserer ikke et tallfestet kontekst- eller maksimalutdatabudsjett, så et tokenvindu for en chatmodell skal ikke antas for lydtranskripsjon.\n\nKontroller vanskelig ordforråd, tall, aksenter, bakgrunnsstøy og språkskifter mot opptaket. Kontroller at relevante hint forbedret gjenkjenningen uten å legge inn termer som ikke ble sagt, og at den endelige transkripsjonen inkluderer slutten av lyden. For et flerspråklig resultat bevarer du den uttalte ordlyden før du lager en oversatt versjon. Disse kontrollene gjør transkripsjonen nyttig som kildemateriale og holder samtidig kontekstuelle hint, oppdagede språk og den gjenkjente talen tydelig atskilt.",
    "alias_of": null,
    "aliases": [],
    "author": "OpenAI",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00015",
            "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.00015",
            "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": "openai/gpt-transcribe",
    "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": [
                  "openai/gpt-transcribe"
                ],
                "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": [
                    "openai/gpt-transcribe"
                  ],
                  "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": "openai/gpt-transcribe"
              },
              "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.00015",
                "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.00015",
                "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': 'openai/gpt-transcribe', '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.00015
          }
        },
        "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.00015",
                "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.00015",
                "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": "openai/gpt-transcribe",
        "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.00015",
            "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.00015",
            "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": "openai/gpt-transcribe",
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra"
      }
    ],
    "name": "OpenAI: GPT Transcribe",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "GPT Transcribe gjør innspilt tale til tekst på originalspråket, med kontekstuelle ledetekster, ordrette nøkkelordhint og flere språkhint. OpenAI dokumenterer transkripsjon av ferdige filer, strømmede filresultater og transkripsjon etter bekreftede lydinnlegg i Realtime."
  },
  "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": "GPT Transcribe gjør innspilt tale til tekst på originalspråket, med kontekstuelle ledetekster, ordrette nøkkelordhint og flere språkhint. OpenAI dokumenterer transkripsjon av ferdige filer, strømmede filresultater og transkripsjon etter bekreftede lydinnlegg i Realtime.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "da62c4e45a5f064b26aed8c3ac965e995b2858bf4453d28080f6be194c4fbdf5",
    "renderer_sha256": "c8cb5a92c10b47373d294dee7465d66796cd4710c6626fd81459dc0625fc6d26"
  },
  "sourceRevision": "3d16bf9c5dd3b0720f3a8a24bb1bccab6239546b0b402b856dc045b99f9eaef9"
}
