{
  "aboutHtml": "<p>Voxtral Mini Transcribe 2 er Mistral AIs transkripsjonsrettede Voxtral-utgave, identifisert i produsentens modellkort som voxtral-mini-2602. Den er utviklet for opptaksbasert satsvis transkripsjon fremfor den bredere spørsmålssvarrollen til den opprinnelige Voxtral Mini 3B-modellen. Inndataene er lyd, og resultatet er transkribert tekst, eventuelt beriket med taleretiketter og tidsinformasjon. Praktiske bruksområder omfatter møtetranskripsjoner, intervjuanalyse, dokumentasjon av samtaler med flere deltakere og tekst tilpasset opptatte medier.</p><p>Produsenten dokumenterer talerdiarisering og start-/sluttider slik at en transkripsjon kan vise hvem som snakket, og når. Tidsstempler på ordnivå støtter undertekster, lydsøk og kobling mellom en tekstpassasje og posisjonen i et opptak. Produsentveiledningen tillater tidsstempler på segment- eller ordnivå. For et intervju er et nyttig artefakt en sekvens av passasjer med talertilordning og tidsangivelse; for forberedelse av undertekster kan tidsangivelse for ord eller segmenter veilede et senere tekstingssteg fremfor å tvinge frem utledning av tidene fra ren transkripsjonstekst.</p><p>Konteksttilpasning tar imot opptil 100 ord eller uttrykk som veileder modellen mot ønsket skrivemåte for navn, faguttrykk og domenespesifikt ordforråd. Mistral sier at funksjonen er optimalisert for engelsk, og at støtte for andre språk er eksperimentell. Forbered en målrettet ordliste fra opptakets tema fremfor en uvedkommende ordliste. Et eget eksempel kan gi prosjektnavnene og faguttrykkene som sannsynligvis forekommer i en teknisk diskusjon, og deretter kontrollere skrivemåtene i den fullførte transkripsjonen.</p><p>Denne utgaven støtter tretten språk: engelsk, kinesisk, hindi, spansk, arabisk, fransk, portugisisk, russisk, tysk, japansk, koreansk, italiensk og nederlandsk. Produsenten dokumenterer også robusthet mot støy og opptak på opptil tre timer i én forespørsel. Dette tilhører opptaksflyten til Mini Transcribe 2; kontekst- og varighetsangivelsene til den opprinnelige 2507-modellen for lydforståelse beskriver en annen utgivelse. Automatisk språkgjenkjenning er tilgjengelig, og veiledningen sier at eksplisitt angivelse av et kjent lydspråk kan forbedre transkripsjonsnøyaktigheten.</p><p>I den dokumenterte produsentflyten kan lyd gis som en opplastet fil, en tidligere opplastet filidentifikator eller et referert opptak. Den medfølgende opplastingsdemonstrasjonen tar imot opptak i MP3, WAV, M4A, FLAC og OGG; velg ett av disse formatene for den demonstrerte opplastingsflyten. Hold opptaket dekodbart og inkluder den relevante talen. For langt materiale bevarer du identifikatoren og tidsutgangspunktet slik at senere utdrag eller redigeringer fortsatt kan spores til kilden.</p><p>Transkripsjonsreferansen returnerer teksten og det gjenkjente språket, med segmenter når det er forespurt, og dokumenterer strømmede transkripsjonshendelser separat. Diarisering er valgfritt og har false som standardverdi. Veiledningen bemerker at timestamp_granularities og en eksplisitt språkinnstilling for øyeblikket ikke er kompatible, så velg den ønskede tidsangivelsesflyten eller den manuelle språkhinten fremfor å kombinere dem. Transkripsjon med taleretiketter, ordforrådstilpasning og tidsangivelser bør velges etter det tiltenkte resultatet fremfor å antas å følge av en grunnleggende forespørsel.</p><p>Overlappende tale er en vesentlig begrensning: Mistral sier at modellen vanligvis transkriberer én taler når talere overlapper. En merket transkripsjon skal derfor ikke behandles som en uttømmende dokumentasjon av alle samtidige ytringer. For et møtereferat gjennomgår du vanskelige overlapp og viktige navn eller tall mot opptaket. Modellens formål er transkripsjon; et sammendrag, en oversettelse eller en analyse kan være en separat oppgave bygget på transkripsjonen. Voxtral Realtime har en separat ventetidsprofil for direktetranskripsjon, mens talegenerering tilhører andre modeller.</p><p>Forbered resultatet for neste bruk. En møteflyt kan bevare transkripsjonen, taleretikettene og tidsangivelsene før et separat trinn trekker ut beslutninger; en medieflyt kan bruke tidsangivelsene til å finne passasjer og lage utkast til undertekster; et opptak med mye fagterminologi kan inkludere den målrettede konteksttilpasningslisten og en gjennomgang av de resulterende skrivemåtene. Den nyttige leveransen er tekst knyttet til kildeopptaket og konfigurerte metadata, med denne nummererte transkripsjonsutgaven holdt atskilt fra den opprinnelige Mini-modellen og løpende oppdaterte latest-navn.</p>",
  "aboutText": "Voxtral Mini Transcribe 2 er Mistral AIs transkripsjonsrettede Voxtral-utgave, identifisert i produsentens modellkort som voxtral-mini-2602. Den er utviklet for opptaksbasert satsvis transkripsjon fremfor den bredere spørsmålssvarrollen til den opprinnelige Voxtral Mini 3B-modellen. Inndataene er lyd, og resultatet er transkribert tekst, eventuelt beriket med taleretiketter og tidsinformasjon. Praktiske bruksområder omfatter møtetranskripsjoner, intervjuanalyse, dokumentasjon av samtaler med flere deltakere og tekst tilpasset opptatte medier.\n\nProdusenten dokumenterer talerdiarisering og start-/sluttider slik at en transkripsjon kan vise hvem som snakket, og når. Tidsstempler på ordnivå støtter undertekster, lydsøk og kobling mellom en tekstpassasje og posisjonen i et opptak. Produsentveiledningen tillater tidsstempler på segment- eller ordnivå. For et intervju er et nyttig artefakt en sekvens av passasjer med talertilordning og tidsangivelse; for forberedelse av undertekster kan tidsangivelse for ord eller segmenter veilede et senere tekstingssteg fremfor å tvinge frem utledning av tidene fra ren transkripsjonstekst.\n\nKonteksttilpasning tar imot opptil 100 ord eller uttrykk som veileder modellen mot ønsket skrivemåte for navn, faguttrykk og domenespesifikt ordforråd. Mistral sier at funksjonen er optimalisert for engelsk, og at støtte for andre språk er eksperimentell. Forbered en målrettet ordliste fra opptakets tema fremfor en uvedkommende ordliste. Et eget eksempel kan gi prosjektnavnene og faguttrykkene som sannsynligvis forekommer i en teknisk diskusjon, og deretter kontrollere skrivemåtene i den fullførte transkripsjonen.\n\nDenne utgaven støtter tretten språk: engelsk, kinesisk, hindi, spansk, arabisk, fransk, portugisisk, russisk, tysk, japansk, koreansk, italiensk og nederlandsk. Produsenten dokumenterer også robusthet mot støy og opptak på opptil tre timer i én forespørsel. Dette tilhører opptaksflyten til Mini Transcribe 2; kontekst- og varighetsangivelsene til den opprinnelige 2507-modellen for lydforståelse beskriver en annen utgivelse. Automatisk språkgjenkjenning er tilgjengelig, og veiledningen sier at eksplisitt angivelse av et kjent lydspråk kan forbedre transkripsjonsnøyaktigheten.\n\nI den dokumenterte produsentflyten kan lyd gis som en opplastet fil, en tidligere opplastet filidentifikator eller et referert opptak. Den medfølgende opplastingsdemonstrasjonen tar imot opptak i MP3, WAV, M4A, FLAC og OGG; velg ett av disse formatene for den demonstrerte opplastingsflyten. Hold opptaket dekodbart og inkluder den relevante talen. For langt materiale bevarer du identifikatoren og tidsutgangspunktet slik at senere utdrag eller redigeringer fortsatt kan spores til kilden.\n\nTranskripsjonsreferansen returnerer teksten og det gjenkjente språket, med segmenter når det er forespurt, og dokumenterer strømmede transkripsjonshendelser separat. Diarisering er valgfritt og har false som standardverdi. Veiledningen bemerker at timestamp_granularities og en eksplisitt språkinnstilling for øyeblikket ikke er kompatible, så velg den ønskede tidsangivelsesflyten eller den manuelle språkhinten fremfor å kombinere dem. Transkripsjon med taleretiketter, ordforrådstilpasning og tidsangivelser bør velges etter det tiltenkte resultatet fremfor å antas å følge av en grunnleggende forespørsel.\n\nOverlappende tale er en vesentlig begrensning: Mistral sier at modellen vanligvis transkriberer én taler når talere overlapper. En merket transkripsjon skal derfor ikke behandles som en uttømmende dokumentasjon av alle samtidige ytringer. For et møtereferat gjennomgår du vanskelige overlapp og viktige navn eller tall mot opptaket. Modellens formål er transkripsjon; et sammendrag, en oversettelse eller en analyse kan være en separat oppgave bygget på transkripsjonen. Voxtral Realtime har en separat ventetidsprofil for direktetranskripsjon, mens talegenerering tilhører andre modeller.\n\nForbered resultatet for neste bruk. En møteflyt kan bevare transkripsjonen, taleretikettene og tidsangivelsene før et separat trinn trekker ut beslutninger; en medieflyt kan bruke tidsangivelsene til å finne passasjer og lage utkast til undertekster; et opptak med mye fagterminologi kan inkludere den målrettede konteksttilpasningslisten og en gjennomgang av de resulterende skrivemåtene. Den nyttige leveransen er tekst knyttet til kildeopptaket og konfigurerte metadata, med denne nummererte transkripsjonsutgaven holdt atskilt fra den opprinnelige Mini-modellen og løpende oppdaterte latest-navn.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "0755dc064149562acd11a7ed67864dcddb9c5f20fe42b7f1d9a47ed04cb0355d",
    "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\">•</span><h2 id=\"sheet-title\">Mistral: Voxtral Mini Transcribe</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Lukk\">×</button></div><div class=\"idline\"><span>Mistral /</span><code>mistralai/voxtral-mini-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|mistralai%2Fvoxtral-mini-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\">Voxtral Mini Transcribe 2 gjør opptak om til tekst med talerdiarisering, tidsstempler på ordnivå og ordforrådstilpasning. Mistral dokumenterer 13 språk og opptak på opptil tre timer for denne transkripsjonsrettede utgaven, forskjellig fra Voxtral 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>Voxtral Mini Transcribe 2 er Mistral AIs transkripsjonsrettede Voxtral-utgave, identifisert i produsentens modellkort som voxtral-mini-2602. Den er utviklet for opptaksbasert satsvis transkripsjon fremfor den bredere spørsmålssvarrollen til den opprinnelige Voxtral Mini 3B-modellen. Inndataene er lyd, og resultatet er transkribert tekst, eventuelt beriket med taleretiketter og tidsinformasjon. Praktiske bruksområder omfatter møtetranskripsjoner, intervjuanalyse, dokumentasjon av samtaler med flere deltakere og tekst tilpasset opptatte medier.</p><p>Produsenten dokumenterer talerdiarisering og start-/sluttider slik at en transkripsjon kan vise hvem som snakket, og når. Tidsstempler på ordnivå støtter undertekster, lydsøk og kobling mellom en tekstpassasje og posisjonen i et opptak. Produsentveiledningen tillater tidsstempler på segment- eller ordnivå. For et intervju er et nyttig artefakt en sekvens av passasjer med talertilordning og tidsangivelse; for forberedelse av undertekster kan tidsangivelse for ord eller segmenter veilede et senere tekstingssteg fremfor å tvinge frem utledning av tidene fra ren transkripsjonstekst.</p><p>Konteksttilpasning tar imot opptil 100 ord eller uttrykk som veileder modellen mot ønsket skrivemåte for navn, faguttrykk og domenespesifikt ordforråd. Mistral sier at funksjonen er optimalisert for engelsk, og at støtte for andre språk er eksperimentell. Forbered en målrettet ordliste fra opptakets tema fremfor en uvedkommende ordliste. Et eget eksempel kan gi prosjektnavnene og faguttrykkene som sannsynligvis forekommer i en teknisk diskusjon, og deretter kontrollere skrivemåtene i den fullførte transkripsjonen.</p><p>Denne utgaven støtter tretten språk: engelsk, kinesisk, hindi, spansk, arabisk, fransk, portugisisk, russisk, tysk, japansk, koreansk, italiensk og nederlandsk. Produsenten dokumenterer også robusthet mot støy og opptak på opptil tre timer i én forespørsel. Dette tilhører opptaksflyten til Mini Transcribe 2; kontekst- og varighetsangivelsene til den opprinnelige 2507-modellen for lydforståelse beskriver en annen utgivelse. Automatisk språkgjenkjenning er tilgjengelig, og veiledningen sier at eksplisitt angivelse av et kjent lydspråk kan forbedre transkripsjonsnøyaktigheten.</p><p>I den dokumenterte produsentflyten kan lyd gis som en opplastet fil, en tidligere opplastet filidentifikator eller et referert opptak. Den medfølgende opplastingsdemonstrasjonen tar imot opptak i MP3, WAV, M4A, FLAC og OGG; velg ett av disse formatene for den demonstrerte opplastingsflyten. Hold opptaket dekodbart og inkluder den relevante talen. For langt materiale bevarer du identifikatoren og tidsutgangspunktet slik at senere utdrag eller redigeringer fortsatt kan spores til kilden.</p><p>Transkripsjonsreferansen returnerer teksten og det gjenkjente språket, med segmenter når det er forespurt, og dokumenterer strømmede transkripsjonshendelser separat. Diarisering er valgfritt og har false som standardverdi. Veiledningen bemerker at timestamp_granularities og en eksplisitt språkinnstilling for øyeblikket ikke er kompatible, så velg den ønskede tidsangivelsesflyten eller den manuelle språkhinten fremfor å kombinere dem. Transkripsjon med taleretiketter, ordforrådstilpasning og tidsangivelser bør velges etter det tiltenkte resultatet fremfor å antas å følge av en grunnleggende forespørsel.</p><p>Overlappende tale er en vesentlig begrensning: Mistral sier at modellen vanligvis transkriberer én taler når talere overlapper. En merket transkripsjon skal derfor ikke behandles som en uttømmende dokumentasjon av alle samtidige ytringer. For et møtereferat gjennomgår du vanskelige overlapp og viktige navn eller tall mot opptaket. Modellens formål er transkripsjon; et sammendrag, en oversettelse eller en analyse kan være en separat oppgave bygget på transkripsjonen. Voxtral Realtime har en separat ventetidsprofil for direktetranskripsjon, mens talegenerering tilhører andre modeller.</p><p>Forbered resultatet for neste bruk. En møteflyt kan bevare transkripsjonen, taleretikettene og tidsangivelsene før et separat trinn trekker ut beslutninger; en medieflyt kan bruke tidsangivelsene til å finne passasjer og lage utkast til undertekster; et opptak med mye fagterminologi kan inkludere den målrettede konteksttilpasningslisten og en gjennomgang av de resulterende skrivemåtene. Den nyttige leveransen er tekst knyttet til kildeopptaket og konfigurerte metadata, med denne nummererte transkripsjonsutgaven holdt atskilt fra den opprinnelige Mini-modellen og løpende oppdaterte latest-navn.</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>mistralai/voxtral-mini-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.0001</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-1942-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1942-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-1942-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1942-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;mistralai/voxtral-mini-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=mistralai%2Fvoxtral-mini-transcribe&amp;route=Ultra&amp;caller=mistralai%2Fvoxtral-mini-transcribe&amp;fmt=transcriptions\"><code>mistralai/voxtral-mini-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=mistralai%2Fvoxtral-mini-transcribe&amp;route=Ultra&amp;caller=mistralai%2Fvoxtral-mini-transcribe&amp;fmt=transcriptions\"><code>mistralai/voxtral-mini-transcribe</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "mistralai/voxtral-mini-transcribe",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "mistralai/voxtral-mini-transcribe",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|mistralai%2Fvoxtral-mini-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": [
                  "mistralai/voxtral-mini-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": [
                    "mistralai/voxtral-mini-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": "mistralai/voxtral-mini-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.0001",
                "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.0001",
                "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': 'mistralai/voxtral-mini-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.0001
          }
        },
        "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.0001",
                "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.0001",
                "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": "mistralai/voxtral-mini-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.0001",
            "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.0001",
            "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": "mistralai/voxtral-mini-transcribe",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "4de7d6a85a52475a286b264ed0236084fee8760bb893d30f0e47c4a67bb6351e",
    "input_html_sha256": "2b0401f29c5d217f8d0619121b35fe3e391b91cf5c89e140455af2d797f928b7",
    "private_audit_sha256": "fdbd5a44b63a9825bc23b5149fb9634ebf13029f518ce003563690c87329cca9",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nb/mistralai-voxtral-mini-transcribe/",
    "description": "Voxtral Mini Transcribe 2 gjør opptak om til tekst med talerdiarisering, tidsstempler på ordnivå og ordforrådstilpasning. Mistral dokumenterer 13 språk og opptak på opptil tre timer for denne transkripsjonsrettede utgaven, forskjellig fra Voxtral Realtime.",
    "locale": "nb",
    "md_url": "https://ailoot.ai/models/nb/mistralai-voxtral-mini-transcribe/index.md",
    "title": "Mistral: Voxtral Mini Transcribe — Ailoot",
    "url": "https://ailoot.ai/models/nb/mistralai-voxtral-mini-transcribe/"
  },
  "rawModel": {
    "about": "Voxtral Mini Transcribe 2 er Mistral AIs transkripsjonsrettede Voxtral-utgave, identifisert i produsentens modellkort som voxtral-mini-2602. Den er utviklet for opptaksbasert satsvis transkripsjon fremfor den bredere spørsmålssvarrollen til den opprinnelige Voxtral Mini 3B-modellen. Inndataene er lyd, og resultatet er transkribert tekst, eventuelt beriket med taleretiketter og tidsinformasjon. Praktiske bruksområder omfatter møtetranskripsjoner, intervjuanalyse, dokumentasjon av samtaler med flere deltakere og tekst tilpasset opptatte medier.\n\nProdusenten dokumenterer talerdiarisering og start-/sluttider slik at en transkripsjon kan vise hvem som snakket, og når. Tidsstempler på ordnivå støtter undertekster, lydsøk og kobling mellom en tekstpassasje og posisjonen i et opptak. Produsentveiledningen tillater tidsstempler på segment- eller ordnivå. For et intervju er et nyttig artefakt en sekvens av passasjer med talertilordning og tidsangivelse; for forberedelse av undertekster kan tidsangivelse for ord eller segmenter veilede et senere tekstingssteg fremfor å tvinge frem utledning av tidene fra ren transkripsjonstekst.\n\nKonteksttilpasning tar imot opptil 100 ord eller uttrykk som veileder modellen mot ønsket skrivemåte for navn, faguttrykk og domenespesifikt ordforråd. Mistral sier at funksjonen er optimalisert for engelsk, og at støtte for andre språk er eksperimentell. Forbered en målrettet ordliste fra opptakets tema fremfor en uvedkommende ordliste. Et eget eksempel kan gi prosjektnavnene og faguttrykkene som sannsynligvis forekommer i en teknisk diskusjon, og deretter kontrollere skrivemåtene i den fullførte transkripsjonen.\n\nDenne utgaven støtter tretten språk: engelsk, kinesisk, hindi, spansk, arabisk, fransk, portugisisk, russisk, tysk, japansk, koreansk, italiensk og nederlandsk. Produsenten dokumenterer også robusthet mot støy og opptak på opptil tre timer i én forespørsel. Dette tilhører opptaksflyten til Mini Transcribe 2; kontekst- og varighetsangivelsene til den opprinnelige 2507-modellen for lydforståelse beskriver en annen utgivelse. Automatisk språkgjenkjenning er tilgjengelig, og veiledningen sier at eksplisitt angivelse av et kjent lydspråk kan forbedre transkripsjonsnøyaktigheten.\n\nI den dokumenterte produsentflyten kan lyd gis som en opplastet fil, en tidligere opplastet filidentifikator eller et referert opptak. Den medfølgende opplastingsdemonstrasjonen tar imot opptak i MP3, WAV, M4A, FLAC og OGG; velg ett av disse formatene for den demonstrerte opplastingsflyten. Hold opptaket dekodbart og inkluder den relevante talen. For langt materiale bevarer du identifikatoren og tidsutgangspunktet slik at senere utdrag eller redigeringer fortsatt kan spores til kilden.\n\nTranskripsjonsreferansen returnerer teksten og det gjenkjente språket, med segmenter når det er forespurt, og dokumenterer strømmede transkripsjonshendelser separat. Diarisering er valgfritt og har false som standardverdi. Veiledningen bemerker at timestamp_granularities og en eksplisitt språkinnstilling for øyeblikket ikke er kompatible, så velg den ønskede tidsangivelsesflyten eller den manuelle språkhinten fremfor å kombinere dem. Transkripsjon med taleretiketter, ordforrådstilpasning og tidsangivelser bør velges etter det tiltenkte resultatet fremfor å antas å følge av en grunnleggende forespørsel.\n\nOverlappende tale er en vesentlig begrensning: Mistral sier at modellen vanligvis transkriberer én taler når talere overlapper. En merket transkripsjon skal derfor ikke behandles som en uttømmende dokumentasjon av alle samtidige ytringer. For et møtereferat gjennomgår du vanskelige overlapp og viktige navn eller tall mot opptaket. Modellens formål er transkripsjon; et sammendrag, en oversettelse eller en analyse kan være en separat oppgave bygget på transkripsjonen. Voxtral Realtime har en separat ventetidsprofil for direktetranskripsjon, mens talegenerering tilhører andre modeller.\n\nForbered resultatet for neste bruk. En møteflyt kan bevare transkripsjonen, taleretikettene og tidsangivelsene før et separat trinn trekker ut beslutninger; en medieflyt kan bruke tidsangivelsene til å finne passasjer og lage utkast til undertekster; et opptak med mye fagterminologi kan inkludere den målrettede konteksttilpasningslisten og en gjennomgang av de resulterende skrivemåtene. Den nyttige leveransen er tekst knyttet til kildeopptaket og konfigurerte metadata, med denne nummererte transkripsjonsutgaven holdt atskilt fra den opprinnelige Mini-modellen og løpende oppdaterte latest-navn.",
    "alias_of": null,
    "aliases": [],
    "author": "Mistral",
    "capabilities": {
      "context_length": 16384,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0001",
            "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.0001",
            "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": "mistralai/voxtral-mini-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": [
                  "mistralai/voxtral-mini-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": [
                    "mistralai/voxtral-mini-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": "mistralai/voxtral-mini-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.0001",
                "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.0001",
                "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': 'mistralai/voxtral-mini-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.0001
          }
        },
        "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.0001",
                "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.0001",
                "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": "mistralai/voxtral-mini-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.0001",
            "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.0001",
            "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": "mistralai/voxtral-mini-transcribe",
        "request_model_id": "mistralai/voxtral-mini-transcribe",
        "route_label": "Ultra"
      }
    ],
    "name": "Mistral: Voxtral Mini Transcribe",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Voxtral Mini Transcribe 2 gjør opptak om til tekst med talerdiarisering, tidsstempler på ordnivå og ordforrådstilpasning. Mistral dokumenterer 13 språk og opptak på opptil tre timer for denne transkripsjonsrettede utgaven, forskjellig fra Voxtral 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": "Voxtral Mini Transcribe 2 gjør opptak om til tekst med talerdiarisering, tidsstempler på ordnivå og ordforrådstilpasning. Mistral dokumenterer 13 språk og opptak på opptil tre timer for denne transkripsjonsrettede utgaven, forskjellig fra Voxtral Realtime.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "9ff84505c1ab38a39edcaaa105cdc4f392c28dec6fa96d4d7d26a4eed6ac0689",
    "renderer_sha256": "c8cb5a92c10b47373d294dee7465d66796cd4710c6626fd81459dc0625fc6d26"
  },
  "sourceRevision": "09af2079285794568012c1f1812b3140241c9eaa9a2451a00dd1365e9e4ed15a"
}
