{
  "aboutHtml": "<p>Google Chirp 3 is een meertalig model voor automatische spraakherkenning dat gesproken audio omzet in tekst. Google documenteert het als het transcriptiemodel Chirp 3 binnen de Speech-to-Text V2-familie, met de modelidentifier chirp_3. Het doel is het herkennen van opgenomen of gestreamde spraak, met taalherkenning en transcriptiespecifieke functies. Het resultaat is een transcript met de metadata die de gekozen herkenningsmethode ondersteunt, in plaats van gegenereerde spraak of een open antwoord van een assistent.</p><p>De maker onderscheidt streamingherkenning, synchrone herkenning voor korte clips en batchherkenning voor langere opnamen. Kies de methode op basis van de bronaudio en het vereiste resultaat. Voor een korte spraaknotitie kan een voltooid tekstantwoord volstaan. Voor een interview of opgenomen gesprek kan een batchresultaat met sprekerinformatie nuttiger zijn. Houd bij live ondertiteling of een interface voor spraakopdrachten tussentijdse tekst gescheiden van het definitieve herkenningsresultaat en bewaar het audio-interval waarop het betrekking heeft.</p><p>Bereid audio voor in de codering die de herkenningsimplementatie verwacht. Googles Chirp 3-voorbeelden gebruiken automatisch gedetecteerde decodering voor opgenomen bestanden en expliciete decodering voor een configuratie met ruwe streamingaudio. De bijbehorende V2-decoderreferentie noemt onder meer WAV PCM of gecompandeerde audio, FLAC, MP3, Ogg/WebM Opus en AAC in MP4-, M4A- of MOV-containers als ondersteunde coderingen. Een containernaam vervangt niet de werkelijke codec- en sample-instellingen. Behoud duidelijke spraak en vermijd ernstige clipping of onnodige conversie waarbij hoorbare details verloren gaan.</p><p>Chirp 3 kan de dominante taal automatisch herkennen en transcriberen; een reeks verwachte taalvarianten kan de herkenningskeuzes beperken. Taalbeschikbaarheid verschilt per methode en functie. De lijst met transcriptietalen is uitgebreider dan die voor sprekeronderscheiding; herkenning van een taal bewijst dus niet dat alle spreker- of tijdfuncties erop van toepassing zijn. Gebruik de taalvariant die bij de opname past en behoud namen uit taalwisselingen of vaktermen voor beoordeling. Een gedetecteerd taallabel is onderdeel van het resultaat, geen bewijs dat alle ongebruikelijke woorden correct zijn herkend.</p><p>Sprekeronderscheiding groepeert spraak op basis van stem in een opname met één kanaal. Google geeft een voorbeeld van batchtranscriptie met sprekerinformatie per woord. Bewaar bij een interview die labels bij de herkende tekst en vergelijk sprekerwisselingen met de opname voordat je echte namen of rollen toekent. Vergelijkbare stemmen, onderbrekingen en overlappende spraak kunnen toewijzing bemoeilijken. Maak de kanaalindeling van de bron en de beoogde sprekercontrole duidelijk, in plaats van een label als onafhankelijk geverifieerde identiteit te behandelen.</p><p>Ook tijdinformatie is methodegebonden. Streamingherkenning levert tijdstempels per uiting, terwijl de gids van de maker voor bestandsherkenning optionele woordtijden beschrijft met een mogelijke afweging ten opzichte van transcriptiekwaliteit. Bewaar de metadata die de gekozen methode werkelijk teruggeeft en controleer de uitlijning samen met de formulering. Een ondertitelingsworkflow heeft beide nodig: leesbare herkende tekst en onderbouwing dat een tijdgrens bij het juiste geluid hoort. Google waarschuwt ook dat de teruggegeven confidence-waarde per woord geen werkelijke betrouwbaarheidsscore is; gebruik die daarom niet om te certificeren dat een woord correct is.</p><p>Spraakaanpassing levert zinsdelen en eigennamen die waarschijnlijk in de opname voorkomen. De maker documenteert een woordenlijst met maximaal 1.000 zinsdelen en raadt zo weinig mogelijk relevante vermeldingen aan om de herkenning van andere termen niet te verslechteren. Bereid voor een technische presentatie een korte lijst met echte productnamen en afkortingen voor en controleer die vervolgens in het transcript. Een dergelijke weging helpt de herkenning een term mee te nemen; ze bewijst niet dat de term is uitgesproken en vervangt geen controle aan de hand van de audio.</p><p>Het model voegt automatisch interpunctie en hoofdletters toe; de gedocumenteerde interface kan die functies uitschakelen. Google beschrijft ook een previewfunctie voor eigen instructies voor transcriptieopmaak, zoals de schrijfwijze van een bepaalde naam of datum. Richt die instructies op de opmaak van de herkende spraak. Een transcript dat een datum normaliseert of een merk met hoofdletters schrijft, moet de gesproken betekenis behouden. Een samenvatting, vertaling of feitelijke analyse is een latere toepassing van het transcript, geen resultaat dat door de herkenning zelf wordt vastgesteld.</p><p>De ingebouwde ruisonderdrukking is bedoeld om achtergrondmuziek en omgevingsgeluiden zoals regen of straatlawaai te verminderen. Google stelt expliciet dat menselijke stemmen op de achtergrond niet kunnen worden verwijderd. Behoud dat onderscheid bij het voorbereiden van een opname met overlappende gesprekken. Vergelijk rumoerige en rustige passages met de bron, in plaats van aan te nemen dat een netter ogend transcript bewijst dat het storende geluid is verwijderd. Een bruikbaar resultaat houdt onzekere passages herkenbaar voor correctie.</p><p>Bij streamingtaken bepaalt de endpointing-gevoeligheid wanneer een uiting als afgerond wordt beschouwd. De maker beschrijft de instellingen standard, short en supershort voor steeds kortere verwachte spraak. Een snellere instelling kan een spreker afkappen die midden in een gedachte pauzeert. Stem de instelling af op natuurlijk dicteren, een korte zin of een zeer korte opdracht en bewaar de status van het definitieve resultaat bij het transcript. Controleer bij een afgerond bestand namen, hoeveelheden, ontkenningen en sprekergrenzen en bewaar daarna de gekozen methode en bronaudio, zodat het resultaat kan worden gecontroleerd of hergebruikt.</p>",
  "aboutText": "Google Chirp 3 is een meertalig model voor automatische spraakherkenning dat gesproken audio omzet in tekst. Google documenteert het als het transcriptiemodel Chirp 3 binnen de Speech-to-Text V2-familie, met de modelidentifier chirp_3. Het doel is het herkennen van opgenomen of gestreamde spraak, met taalherkenning en transcriptiespecifieke functies. Het resultaat is een transcript met de metadata die de gekozen herkenningsmethode ondersteunt, in plaats van gegenereerde spraak of een open antwoord van een assistent.\n\nDe maker onderscheidt streamingherkenning, synchrone herkenning voor korte clips en batchherkenning voor langere opnamen. Kies de methode op basis van de bronaudio en het vereiste resultaat. Voor een korte spraaknotitie kan een voltooid tekstantwoord volstaan. Voor een interview of opgenomen gesprek kan een batchresultaat met sprekerinformatie nuttiger zijn. Houd bij live ondertiteling of een interface voor spraakopdrachten tussentijdse tekst gescheiden van het definitieve herkenningsresultaat en bewaar het audio-interval waarop het betrekking heeft.\n\nBereid audio voor in de codering die de herkenningsimplementatie verwacht. Googles Chirp 3-voorbeelden gebruiken automatisch gedetecteerde decodering voor opgenomen bestanden en expliciete decodering voor een configuratie met ruwe streamingaudio. De bijbehorende V2-decoderreferentie noemt onder meer WAV PCM of gecompandeerde audio, FLAC, MP3, Ogg/WebM Opus en AAC in MP4-, M4A- of MOV-containers als ondersteunde coderingen. Een containernaam vervangt niet de werkelijke codec- en sample-instellingen. Behoud duidelijke spraak en vermijd ernstige clipping of onnodige conversie waarbij hoorbare details verloren gaan.\n\nChirp 3 kan de dominante taal automatisch herkennen en transcriberen; een reeks verwachte taalvarianten kan de herkenningskeuzes beperken. Taalbeschikbaarheid verschilt per methode en functie. De lijst met transcriptietalen is uitgebreider dan die voor sprekeronderscheiding; herkenning van een taal bewijst dus niet dat alle spreker- of tijdfuncties erop van toepassing zijn. Gebruik de taalvariant die bij de opname past en behoud namen uit taalwisselingen of vaktermen voor beoordeling. Een gedetecteerd taallabel is onderdeel van het resultaat, geen bewijs dat alle ongebruikelijke woorden correct zijn herkend.\n\nSprekeronderscheiding groepeert spraak op basis van stem in een opname met één kanaal. Google geeft een voorbeeld van batchtranscriptie met sprekerinformatie per woord. Bewaar bij een interview die labels bij de herkende tekst en vergelijk sprekerwisselingen met de opname voordat je echte namen of rollen toekent. Vergelijkbare stemmen, onderbrekingen en overlappende spraak kunnen toewijzing bemoeilijken. Maak de kanaalindeling van de bron en de beoogde sprekercontrole duidelijk, in plaats van een label als onafhankelijk geverifieerde identiteit te behandelen.\n\nOok tijdinformatie is methodegebonden. Streamingherkenning levert tijdstempels per uiting, terwijl de gids van de maker voor bestandsherkenning optionele woordtijden beschrijft met een mogelijke afweging ten opzichte van transcriptiekwaliteit. Bewaar de metadata die de gekozen methode werkelijk teruggeeft en controleer de uitlijning samen met de formulering. Een ondertitelingsworkflow heeft beide nodig: leesbare herkende tekst en onderbouwing dat een tijdgrens bij het juiste geluid hoort. Google waarschuwt ook dat de teruggegeven confidence-waarde per woord geen werkelijke betrouwbaarheidsscore is; gebruik die daarom niet om te certificeren dat een woord correct is.\n\nSpraakaanpassing levert zinsdelen en eigennamen die waarschijnlijk in de opname voorkomen. De maker documenteert een woordenlijst met maximaal 1.000 zinsdelen en raadt zo weinig mogelijk relevante vermeldingen aan om de herkenning van andere termen niet te verslechteren. Bereid voor een technische presentatie een korte lijst met echte productnamen en afkortingen voor en controleer die vervolgens in het transcript. Een dergelijke weging helpt de herkenning een term mee te nemen; ze bewijst niet dat de term is uitgesproken en vervangt geen controle aan de hand van de audio.\n\nHet model voegt automatisch interpunctie en hoofdletters toe; de gedocumenteerde interface kan die functies uitschakelen. Google beschrijft ook een previewfunctie voor eigen instructies voor transcriptieopmaak, zoals de schrijfwijze van een bepaalde naam of datum. Richt die instructies op de opmaak van de herkende spraak. Een transcript dat een datum normaliseert of een merk met hoofdletters schrijft, moet de gesproken betekenis behouden. Een samenvatting, vertaling of feitelijke analyse is een latere toepassing van het transcript, geen resultaat dat door de herkenning zelf wordt vastgesteld.\n\nDe ingebouwde ruisonderdrukking is bedoeld om achtergrondmuziek en omgevingsgeluiden zoals regen of straatlawaai te verminderen. Google stelt expliciet dat menselijke stemmen op de achtergrond niet kunnen worden verwijderd. Behoud dat onderscheid bij het voorbereiden van een opname met overlappende gesprekken. Vergelijk rumoerige en rustige passages met de bron, in plaats van aan te nemen dat een netter ogend transcript bewijst dat het storende geluid is verwijderd. Een bruikbaar resultaat houdt onzekere passages herkenbaar voor correctie.\n\nBij streamingtaken bepaalt de endpointing-gevoeligheid wanneer een uiting als afgerond wordt beschouwd. De maker beschrijft de instellingen standard, short en supershort voor steeds kortere verwachte spraak. Een snellere instelling kan een spreker afkappen die midden in een gedachte pauzeert. Stem de instelling af op natuurlijk dicteren, een korte zin of een zeer korte opdracht en bewaar de status van het definitieve resultaat bij het transcript. Controleer bij een afgerond bestand namen, hoeveelheden, ontkenningen en sprekergrenzen en bewaar daarna de gekozen methode en bronaudio, zodat het resultaat kan worden gecontroleerd of hergebruikt.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "f82823a5f7b4271a43064b123a71f3e516259a43ec9d37cee75c8418a2041140",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "nl",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">G</span><h2 id=\"sheet-title\">Google: Chirp 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sluiten\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/chirp-3</code><button type=\"button\" id=\"copy-id\">ID kopiëren</button></div><nav class=\"card-jump-nav\" aria-label=\"Onderdelen van de modelkaart\"><button type=\"button\" data-card-jump=\"overview\">Aan de slag</button><button type=\"button\" data-card-jump=\"methods\">Invoer en methoden</button><button type=\"button\" data-card-jump=\"pricing\">Tarieven</button><button type=\"button\" data-card-jump=\"examples\">Voorbeelden</button><button type=\"button\" data-card-jump=\"results\">Resultaten</button><button type=\"button\" data-card-jump=\"aliases\">Aliasnamen</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-methoden\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|transcriptions|/v1/audio/transcriptions|google%2Fchirp-3\">Herkenning</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\">Aan de slag</h3><p class=\"mdesc-full\">Google Chirp 3 is een meertalig spraakherkenningsmodel voor streaming, korte opnamen en batchtranscriptie van langere opnamen. Het biedt automatische taalherkenning, interpunctie, woordenschataanpassing en methodegebonden tijd- of sprekermetadata. De ruisonderdrukking vermindert achtergrondgeluid, maar kan geen andere stemmen verwijderen.</p><dl class=\"card-io\" data-card-io><div><dt>Toegestane invoer</dt><dd>Audio</dd></div><div><dt>Resultaten</dt><dd>Tekst</dd></div></dl><details class=\"card-about\"><summary>Over het model</summary><p class=\"note-s\" data-model-method-boundary>Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.</p><div class=\"mabout\" id=\"m-about\"><p>Google Chirp 3 is een meertalig model voor automatische spraakherkenning dat gesproken audio omzet in tekst. Google documenteert het als het transcriptiemodel Chirp 3 binnen de Speech-to-Text V2-familie, met de modelidentifier chirp_3. Het doel is het herkennen van opgenomen of gestreamde spraak, met taalherkenning en transcriptiespecifieke functies. Het resultaat is een transcript met de metadata die de gekozen herkenningsmethode ondersteunt, in plaats van gegenereerde spraak of een open antwoord van een assistent.</p><p>De maker onderscheidt streamingherkenning, synchrone herkenning voor korte clips en batchherkenning voor langere opnamen. Kies de methode op basis van de bronaudio en het vereiste resultaat. Voor een korte spraaknotitie kan een voltooid tekstantwoord volstaan. Voor een interview of opgenomen gesprek kan een batchresultaat met sprekerinformatie nuttiger zijn. Houd bij live ondertiteling of een interface voor spraakopdrachten tussentijdse tekst gescheiden van het definitieve herkenningsresultaat en bewaar het audio-interval waarop het betrekking heeft.</p><p>Bereid audio voor in de codering die de herkenningsimplementatie verwacht. Googles Chirp 3-voorbeelden gebruiken automatisch gedetecteerde decodering voor opgenomen bestanden en expliciete decodering voor een configuratie met ruwe streamingaudio. De bijbehorende V2-decoderreferentie noemt onder meer WAV PCM of gecompandeerde audio, FLAC, MP3, Ogg/WebM Opus en AAC in MP4-, M4A- of MOV-containers als ondersteunde coderingen. Een containernaam vervangt niet de werkelijke codec- en sample-instellingen. Behoud duidelijke spraak en vermijd ernstige clipping of onnodige conversie waarbij hoorbare details verloren gaan.</p><p>Chirp 3 kan de dominante taal automatisch herkennen en transcriberen; een reeks verwachte taalvarianten kan de herkenningskeuzes beperken. Taalbeschikbaarheid verschilt per methode en functie. De lijst met transcriptietalen is uitgebreider dan die voor sprekeronderscheiding; herkenning van een taal bewijst dus niet dat alle spreker- of tijdfuncties erop van toepassing zijn. Gebruik de taalvariant die bij de opname past en behoud namen uit taalwisselingen of vaktermen voor beoordeling. Een gedetecteerd taallabel is onderdeel van het resultaat, geen bewijs dat alle ongebruikelijke woorden correct zijn herkend.</p><p>Sprekeronderscheiding groepeert spraak op basis van stem in een opname met één kanaal. Google geeft een voorbeeld van batchtranscriptie met sprekerinformatie per woord. Bewaar bij een interview die labels bij de herkende tekst en vergelijk sprekerwisselingen met de opname voordat je echte namen of rollen toekent. Vergelijkbare stemmen, onderbrekingen en overlappende spraak kunnen toewijzing bemoeilijken. Maak de kanaalindeling van de bron en de beoogde sprekercontrole duidelijk, in plaats van een label als onafhankelijk geverifieerde identiteit te behandelen.</p><p>Ook tijdinformatie is methodegebonden. Streamingherkenning levert tijdstempels per uiting, terwijl de gids van de maker voor bestandsherkenning optionele woordtijden beschrijft met een mogelijke afweging ten opzichte van transcriptiekwaliteit. Bewaar de metadata die de gekozen methode werkelijk teruggeeft en controleer de uitlijning samen met de formulering. Een ondertitelingsworkflow heeft beide nodig: leesbare herkende tekst en onderbouwing dat een tijdgrens bij het juiste geluid hoort. Google waarschuwt ook dat de teruggegeven confidence-waarde per woord geen werkelijke betrouwbaarheidsscore is; gebruik die daarom niet om te certificeren dat een woord correct is.</p><p>Spraakaanpassing levert zinsdelen en eigennamen die waarschijnlijk in de opname voorkomen. De maker documenteert een woordenlijst met maximaal 1.000 zinsdelen en raadt zo weinig mogelijk relevante vermeldingen aan om de herkenning van andere termen niet te verslechteren. Bereid voor een technische presentatie een korte lijst met echte productnamen en afkortingen voor en controleer die vervolgens in het transcript. Een dergelijke weging helpt de herkenning een term mee te nemen; ze bewijst niet dat de term is uitgesproken en vervangt geen controle aan de hand van de audio.</p><p>Het model voegt automatisch interpunctie en hoofdletters toe; de gedocumenteerde interface kan die functies uitschakelen. Google beschrijft ook een previewfunctie voor eigen instructies voor transcriptieopmaak, zoals de schrijfwijze van een bepaalde naam of datum. Richt die instructies op de opmaak van de herkende spraak. Een transcript dat een datum normaliseert of een merk met hoofdletters schrijft, moet de gesproken betekenis behouden. Een samenvatting, vertaling of feitelijke analyse is een latere toepassing van het transcript, geen resultaat dat door de herkenning zelf wordt vastgesteld.</p><p>De ingebouwde ruisonderdrukking is bedoeld om achtergrondmuziek en omgevingsgeluiden zoals regen of straatlawaai te verminderen. Google stelt expliciet dat menselijke stemmen op de achtergrond niet kunnen worden verwijderd. Behoud dat onderscheid bij het voorbereiden van een opname met overlappende gesprekken. Vergelijk rumoerige en rustige passages met de bron, in plaats van aan te nemen dat een netter ogend transcript bewijst dat het storende geluid is verwijderd. Een bruikbaar resultaat houdt onzekere passages herkenbaar voor correctie.</p><p>Bij streamingtaken bepaalt de endpointing-gevoeligheid wanneer een uiting als afgerond wordt beschouwd. De maker beschrijft de instellingen standard, short en supershort voor steeds kortere verwachte spraak. Een snellere instelling kan een spreker afkappen die midden in een gedachte pauzeert. Stem de instelling af op natuurlijk dicteren, een korte zin of een zeer korte opdracht en bewaar de status van het definitieve resultaat bij het transcript. Controleer bij een afgerond bestand namen, hoeveelheden, ontkenningen en sprekergrenzen en bewaar daarna de gekozen methode en bronaudio, zodat het resultaat kan worden gecontroleerd of hergebruikt.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Beschikbaar in Ailoot · invoer en methoden</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Transcriptie</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Invoertypen</dt><dd><code>audio</code></dd></div><div><dt>Uitvoertypen</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Veld</th><th>Type</th><th>Vereiste</th><th>Waarden en limieten</th><th>Standaard</th></tr></thead><tbody><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</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=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>google/chirp-3</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</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=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Methodeparameters en levenscyclus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Contract</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=\"Contract\"><span class=\"card-cell-label\">Contract</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=\"Contract\"><span class=\"card-cell-label\">Contract</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=\"Contract\"><span class=\"card-cell-label\">Contract</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=\"Contract\"><span class=\"card-cell-label\">Contract</span>Het voorbeeld leest uw eigen niet-lege PCM WAV-bestand, codeert alle bestandsbytes als base64 en verstuurt input_audio.format als wav.</td></tr></tbody></table></div><p>Levenscyclus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · exacte task_id uit een bestaand mediarecord dat u bezit</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\">Tarieven</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.</p><dl data-price-conditions><dt>Snelle modus</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer de snelle modus is geselecteerd</span></dd><dt>Flexmodus</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer de modus flex is geselecteerd</span></dd><dt>Maximale redeneerinspanning</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer bij maximale redeneerinspanning de default-aanpassing wordt gebruikt</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-tarieven</h4><h4>Prijzen per configuratie</h4><p class=\"note-s\">Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuratie</th><th>Tariefstaffel</th><th>Rekeneenheid</th><th>Kosten</th></tr></thead><tbody><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Basistarieven voor tokens</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>Basistarief</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>—</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Invoer · Invoertokens</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Uitvoer · Uitvoertokens</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache lezen</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache schrijven</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache schrijven, 1 uur</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>seconde audio-invoer</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>per seconde audio-invoer</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Invoer · seconde audio-invoer</span> <b>$0.000533333333334</b> <span class=\"price-unit\">per seconde audio-invoer</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. <a href=\"/docs/nl/billing/reserve/\">Zo werken reservering en afrekening →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Voorbeeldverzoeken</h3><h4>Ailoot Ultra · Transcriptie</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-1435-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1435-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · daadwerkelijk WAV-bestand en volledig oorspronkelijk resultaat</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopiëren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1435-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1435-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;google/chirp-3&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#39;}}\nPath(&#39;request.json&#39;).write_text(json.dumps(request, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Resultaten ophalen en opslaan</h3><h4>Ailoot Ultra · Transcriptie</h4><p class=\"note-s\">Volledige oorspronkelijke antwoordbody, status en doorgestuurde headers. Deze handler voegt geen universele JSON-structuur, tekstveld of taakenvelop toe.</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>Alle voltooide resultaten bewaren</h5><p class=\"note-s\">Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.</p><p class=\"note-s\">Bewaar het volledige antwoord en de headers, alle daadwerkelijke uitvoer, de oorspronkelijk geretourneerde identificatoren en alle gebruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Als het oorspronkelijke antwoord moet worden gecontroleerd</h5><p class=\"note-s\">Bewaar de daadwerkelijke X-Client-Request-ID en het volledige antwoord. Lees de oorspronkelijke assets die u bezit en hun exacte ondertekende inhouds-URLs; dien een onzekere aanmaak nooit opnieuw in.</p></div><details class=\"card-about\" data-output-fields><summary>Antwoordvelden</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Veld</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</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=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</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>Fouten en vervolgstappen</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Antwoord</th><th>Voorwaarde</th><th>Volgende stap</th></tr></thead><tbody><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De JSON-body of expliciete canonieke model-ID is ongeldig.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Bewaar het antwoord en corrigeer het aangegeven verzoekveld.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De Ailoot API-sleutel is ongeldig.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Gebruik uw geautoriseerde Ailoot API-sleutel.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>403 · <code>permission_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De sleutelgroep laat deze methode niet toe.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Bewaar de geretourneerde foutdetails.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>De geselecteerde methode heeft geen toegelaten route.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Bewaar de geretourneerde foutdetails.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Het geaccepteerde tarief kan de vereiste invoerhoeveelheid of bovengrens niet verkrijgen.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Bewaar het antwoord; gebruik de invoerweergave die het geaccepteerde tarief vereist.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>503 · <code></code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Vereiste opslag, route, methodeprijs of reservering is niet beschikbaar.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Bewaar het volledige oorspronkelijke antwoord. Een onzekere reservering geeft geen toestemming om opnieuw in te dienen.</td></tr><tr><th data-cell-label=\"Antwoord\" scope=\"row\"><span class=\"card-cell-label\">Antwoord</span>502 · <code>server_error</code></th><td data-cell-label=\"Voorwaarde\"><span class=\"card-cell-label\">Voorwaarde</span>Het oorspronkelijke resultaat, gebruik of de afrekening moet worden gecontroleerd.</td><td data-cell-label=\"Volgende stap\"><span class=\"card-cell-label\">Volgende stap</span>Bewaar de daadwerkelijke verzoek-ID en het oorspronkelijke antwoord. Lees het bestaande record dat u bezit; dien de aanmaak niet opnieuw in.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasnamen</h3><h4>Modelaliasnamen</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=google%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</code></a></span></p><h4>Aliasnamen voor methodepaden</h4><p class=\"note-s\">Gebruik de hierboven getoonde methodepaden.</p><h4>Gerelateerde aanroeper-ID’s</h4><p class=\"note-s\"><a href=\"#m=google%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/chirp-3",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|google%2Fchirp-3",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "De JSON-body of expliciete canonieke model-ID is ongeldig.",
                "http_status": 400,
                "recovery": "Bewaar het antwoord en corrigeer het aangegeven verzoekveld.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "De Ailoot API-sleutel is ongeldig.",
                "http_status": 401,
                "recovery": "Gebruik uw geautoriseerde Ailoot API-sleutel.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "De sleutelgroep laat deze methode niet toe.",
                "http_status": 403,
                "recovery": "Bewaar de geretourneerde foutdetails.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "De geselecteerde methode heeft geen toegelaten route.",
                "http_status": 404,
                "recovery": "Bewaar de geretourneerde foutdetails.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Het geaccepteerde tarief kan de vereiste invoerhoeveelheid of bovengrens niet verkrijgen.",
                "http_status": 422,
                "recovery": "Bewaar het antwoord; gebruik de invoerweergave die het geaccepteerde tarief vereist.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Vereiste opslag, route, methodeprijs of reservering is niet beschikbaar.",
                "http_status": 503,
                "recovery": "Bewaar het volledige oorspronkelijke antwoord. Een onzekere reservering geeft geen toestemming om opnieuw in te dienen.",
                "type": null
              },
              {
                "code": null,
                "condition": "Het oorspronkelijke resultaat, gebruik of de afrekening moet worden gecontroleerd.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Bewaar de daadwerkelijke verzoek-ID en het oorspronkelijke antwoord. Lees het bestaande record dat u bezit; dien de aanmaak niet opnieuw in.",
                "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": "Bewaar de daadwerkelijke X-Client-Request-ID en het volledige antwoord. Lees de oorspronkelijke assets die u bezit en hun exacte ondertekende inhouds-URLs; dien een onzekere aanmaak nooit opnieuw in."
            },
            "outputs": {
              "all_results": "Bewaar het volledige antwoord en de headers, alle daadwerkelijke uitvoer, de oorspronkelijk geretourneerde identificatoren en alle gebruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Volledige oorspronkelijke antwoordbody, status en doorgestuurde headers. Deze handler voegt geen universele JSON-structuur, tekstveld of taakenvelop toe."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "google/chirp-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "google/chirp-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "google/chirp-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Het voorbeeld leest uw eigen niet-lege PCM WAV-bestand, codeert alle bestandsbytes als base64 en verstuurt input_audio.format als 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": "exacte task_id uit een bestaand mediarecord dat u bezit",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'google/chirp-3', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transcriptie",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.000533333333334
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "google/chirp-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "0b45255436f1131a660dfaccc8aba89e8e598d5767f30884d2a446c65183fb34",
    "input_html_sha256": "5f18100f60d54702bbf77cfbad4aa1166009076ff832d65d3962705d9d15fbbd",
    "private_audit_sha256": "08f8ee141e09953b1e2e70029845664c4e889ff698b03732a0cef64057173f70",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nl/google-chirp-3/",
    "description": "Google Chirp 3 is een meertalig spraakherkenningsmodel voor streaming, korte opnamen en batchtranscriptie van langere opnamen. Het biedt automatische taalherkenning, interpunctie, woordenschataanpassing en methodegebonden tijd- of sprekermetadata. De ruisonderdrukking vermindert achtergrondgeluid, maar kan geen andere stemmen verwijderen.",
    "locale": "nl",
    "md_url": "https://ailoot.ai/models/nl/google-chirp-3/index.md",
    "title": "Google: Chirp 3 — Ailoot",
    "url": "https://ailoot.ai/models/nl/google-chirp-3/"
  },
  "rawModel": {
    "about": "Google Chirp 3 is een meertalig model voor automatische spraakherkenning dat gesproken audio omzet in tekst. Google documenteert het als het transcriptiemodel Chirp 3 binnen de Speech-to-Text V2-familie, met de modelidentifier chirp_3. Het doel is het herkennen van opgenomen of gestreamde spraak, met taalherkenning en transcriptiespecifieke functies. Het resultaat is een transcript met de metadata die de gekozen herkenningsmethode ondersteunt, in plaats van gegenereerde spraak of een open antwoord van een assistent.\n\nDe maker onderscheidt streamingherkenning, synchrone herkenning voor korte clips en batchherkenning voor langere opnamen. Kies de methode op basis van de bronaudio en het vereiste resultaat. Voor een korte spraaknotitie kan een voltooid tekstantwoord volstaan. Voor een interview of opgenomen gesprek kan een batchresultaat met sprekerinformatie nuttiger zijn. Houd bij live ondertiteling of een interface voor spraakopdrachten tussentijdse tekst gescheiden van het definitieve herkenningsresultaat en bewaar het audio-interval waarop het betrekking heeft.\n\nBereid audio voor in de codering die de herkenningsimplementatie verwacht. Googles Chirp 3-voorbeelden gebruiken automatisch gedetecteerde decodering voor opgenomen bestanden en expliciete decodering voor een configuratie met ruwe streamingaudio. De bijbehorende V2-decoderreferentie noemt onder meer WAV PCM of gecompandeerde audio, FLAC, MP3, Ogg/WebM Opus en AAC in MP4-, M4A- of MOV-containers als ondersteunde coderingen. Een containernaam vervangt niet de werkelijke codec- en sample-instellingen. Behoud duidelijke spraak en vermijd ernstige clipping of onnodige conversie waarbij hoorbare details verloren gaan.\n\nChirp 3 kan de dominante taal automatisch herkennen en transcriberen; een reeks verwachte taalvarianten kan de herkenningskeuzes beperken. Taalbeschikbaarheid verschilt per methode en functie. De lijst met transcriptietalen is uitgebreider dan die voor sprekeronderscheiding; herkenning van een taal bewijst dus niet dat alle spreker- of tijdfuncties erop van toepassing zijn. Gebruik de taalvariant die bij de opname past en behoud namen uit taalwisselingen of vaktermen voor beoordeling. Een gedetecteerd taallabel is onderdeel van het resultaat, geen bewijs dat alle ongebruikelijke woorden correct zijn herkend.\n\nSprekeronderscheiding groepeert spraak op basis van stem in een opname met één kanaal. Google geeft een voorbeeld van batchtranscriptie met sprekerinformatie per woord. Bewaar bij een interview die labels bij de herkende tekst en vergelijk sprekerwisselingen met de opname voordat je echte namen of rollen toekent. Vergelijkbare stemmen, onderbrekingen en overlappende spraak kunnen toewijzing bemoeilijken. Maak de kanaalindeling van de bron en de beoogde sprekercontrole duidelijk, in plaats van een label als onafhankelijk geverifieerde identiteit te behandelen.\n\nOok tijdinformatie is methodegebonden. Streamingherkenning levert tijdstempels per uiting, terwijl de gids van de maker voor bestandsherkenning optionele woordtijden beschrijft met een mogelijke afweging ten opzichte van transcriptiekwaliteit. Bewaar de metadata die de gekozen methode werkelijk teruggeeft en controleer de uitlijning samen met de formulering. Een ondertitelingsworkflow heeft beide nodig: leesbare herkende tekst en onderbouwing dat een tijdgrens bij het juiste geluid hoort. Google waarschuwt ook dat de teruggegeven confidence-waarde per woord geen werkelijke betrouwbaarheidsscore is; gebruik die daarom niet om te certificeren dat een woord correct is.\n\nSpraakaanpassing levert zinsdelen en eigennamen die waarschijnlijk in de opname voorkomen. De maker documenteert een woordenlijst met maximaal 1.000 zinsdelen en raadt zo weinig mogelijk relevante vermeldingen aan om de herkenning van andere termen niet te verslechteren. Bereid voor een technische presentatie een korte lijst met echte productnamen en afkortingen voor en controleer die vervolgens in het transcript. Een dergelijke weging helpt de herkenning een term mee te nemen; ze bewijst niet dat de term is uitgesproken en vervangt geen controle aan de hand van de audio.\n\nHet model voegt automatisch interpunctie en hoofdletters toe; de gedocumenteerde interface kan die functies uitschakelen. Google beschrijft ook een previewfunctie voor eigen instructies voor transcriptieopmaak, zoals de schrijfwijze van een bepaalde naam of datum. Richt die instructies op de opmaak van de herkende spraak. Een transcript dat een datum normaliseert of een merk met hoofdletters schrijft, moet de gesproken betekenis behouden. Een samenvatting, vertaling of feitelijke analyse is een latere toepassing van het transcript, geen resultaat dat door de herkenning zelf wordt vastgesteld.\n\nDe ingebouwde ruisonderdrukking is bedoeld om achtergrondmuziek en omgevingsgeluiden zoals regen of straatlawaai te verminderen. Google stelt expliciet dat menselijke stemmen op de achtergrond niet kunnen worden verwijderd. Behoud dat onderscheid bij het voorbereiden van een opname met overlappende gesprekken. Vergelijk rumoerige en rustige passages met de bron, in plaats van aan te nemen dat een netter ogend transcript bewijst dat het storende geluid is verwijderd. Een bruikbaar resultaat houdt onzekere passages herkenbaar voor correctie.\n\nBij streamingtaken bepaalt de endpointing-gevoeligheid wanneer een uiting als afgerond wordt beschouwd. De maker beschrijft de instellingen standard, short en supershort voor steeds kortere verwachte spraak. Een snellere instelling kan een spreker afkappen die midden in een gedachte pauzeert. Stem de instelling af op natuurlijk dicteren, een korte zin of een zeer korte opdracht en bewaar de status van het definitieve resultaat bij het transcript. Controleer bij een afgerond bestand namen, hoeveelheden, ontkenningen en sprekergrenzen en bewaar daarna de gekozen methode en bronaudio, zodat het resultaat kan worden gecontroleerd of hergebruikt.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "De volledige prijsinformatie voor de configuratie vindt u bij de details."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "google/chirp-3",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "De JSON-body of expliciete canonieke model-ID is ongeldig.",
                "http_status": 400,
                "recovery": "Bewaar het antwoord en corrigeer het aangegeven verzoekveld.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "De Ailoot API-sleutel is ongeldig.",
                "http_status": 401,
                "recovery": "Gebruik uw geautoriseerde Ailoot API-sleutel.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "De sleutelgroep laat deze methode niet toe.",
                "http_status": 403,
                "recovery": "Bewaar de geretourneerde foutdetails.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "De geselecteerde methode heeft geen toegelaten route.",
                "http_status": 404,
                "recovery": "Bewaar de geretourneerde foutdetails.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Het geaccepteerde tarief kan de vereiste invoerhoeveelheid of bovengrens niet verkrijgen.",
                "http_status": 422,
                "recovery": "Bewaar het antwoord; gebruik de invoerweergave die het geaccepteerde tarief vereist.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Vereiste opslag, route, methodeprijs of reservering is niet beschikbaar.",
                "http_status": 503,
                "recovery": "Bewaar het volledige oorspronkelijke antwoord. Een onzekere reservering geeft geen toestemming om opnieuw in te dienen.",
                "type": null
              },
              {
                "code": null,
                "condition": "Het oorspronkelijke resultaat, gebruik of de afrekening moet worden gecontroleerd.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Bewaar de daadwerkelijke verzoek-ID en het oorspronkelijke antwoord. Lees het bestaande record dat u bezit; dien de aanmaak niet opnieuw in.",
                "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": "Bewaar de daadwerkelijke X-Client-Request-ID en het volledige antwoord. Lees de oorspronkelijke assets die u bezit en hun exacte ondertekende inhouds-URLs; dien een onzekere aanmaak nooit opnieuw in."
            },
            "outputs": {
              "all_results": "Bewaar het volledige antwoord en de headers, alle daadwerkelijke uitvoer, de oorspronkelijk geretourneerde identificatoren en alle gebruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Volledige oorspronkelijke antwoordbody, status en doorgestuurde headers. Deze handler voegt geen universele JSON-structuur, tekstveld of taakenvelop toe."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "google/chirp-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "google/chirp-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "google/chirp-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Het voorbeeld leest uw eigen niet-lege PCM WAV-bestand, codeert alle bestandsbytes als base64 en verstuurt input_audio.format als 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": "exacte task_id uit een bestaand mediarecord dat u bezit",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'google/chirp-3', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transcriptie",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.000533333333334
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.000533333333334",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.000533333333334",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.000533333333334",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.000533333333334",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "google/chirp-3",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Google: Chirp 3",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Google Chirp 3 is een meertalig spraakherkenningsmodel voor streaming, korte opnamen en batchtranscriptie van langere opnamen. Het biedt automatische taalherkenning, interpunctie, woordenschataanpassing en methodegebonden tijd- of sprekermetadata. De ruisonderdrukking vermindert achtergrondgeluid, maar kan geen andere stemmen verwijderen."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Google Chirp 3 is een meertalig spraakherkenningsmodel voor streaming, korte opnamen en batchtranscriptie van langere opnamen. Het biedt automatische taalherkenning, interpunctie, woordenschataanpassing en methodegebonden tijd- of sprekermetadata. De ruisonderdrukking vermindert achtergrondgeluid, maar kan geen andere stemmen verwijderen.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "736cc24362253f61b3d64c9b063c93fbaa676d3f328b009583da107040520f6b",
    "renderer_sha256": "be7649af06bb0ae446191041c6cfb8a9b83a53896c8c6e9173e76a39d513e829"
  },
  "sourceRevision": "e6dd5168f196d222262864ce9ef4079e190735bc981a8e2dd6e353e3bb46ba8a"
}
