{
  "aboutHtml": "<p>Google Chirp 3 est un modèle multilingue de reconnaissance automatique de la parole qui convertit l’audio parlé en texte. Google le documente comme le modèle de transcription Chirp 3 de sa famille Speech-to-Text V2, avec l’identifiant de modèle chirp_3. Il sert à reconnaître la parole enregistrée ou diffusée en streaming, avec détection de la langue et fonctions propres à la transcription. Le livrable obtenu est une transcription accompagnée des métadonnées prises en charge par la méthode de reconnaissance choisie, plutôt qu’une voix générée ou une réponse libre d’assistant.</p><p>Le fournisseur distingue la reconnaissance en streaming, la reconnaissance synchrone pour les extraits courts et la reconnaissance par lots pour les enregistrements plus longs. Choisissez le mode en fonction de l’audio source et du résultat requis. Pour une courte note vocale, une réponse textuelle complète peut suffire. Pour un entretien ou un appel enregistré, un résultat par lots avec des informations sur les locuteurs peut être plus utile. Pour des sous-titres en direct ou une interface de commande vocale, gardez le texte intermédiaire distinct du résultat de reconnaissance final et conservez l’intervalle audio qu’il décrit.</p><p>Préparez l’audio dans l’encodage attendu par l’implémentation de reconnaissance. Les exemples Chirp 3 de Google utilisent un décodage détecté automatiquement pour les fichiers enregistrés et un décodage explicite pour une configuration de streaming brut. La référence du décodeur V2 associée répertorie notamment l’audio WAV PCM ou compressé-expansé, FLAC, MP3, Ogg/WebM Opus et AAC dans des conteneurs MP4, M4A ou MOV parmi les encodages pris en charge. Un nom de conteneur ne remplace pas le codec et la configuration d’échantillonnage réels. Préservez une parole claire et évitez un écrêtage important ou des conversions inutiles qui font perdre des détails audibles.</p><p>Chirp 3 peut identifier et transcrire automatiquement la langue dominante, et un ensemble de paramètres régionaux attendus peut restreindre ses choix de reconnaissance. La disponibilité des langues varie selon la méthode et la fonction. La liste des langues de transcription est plus large que celle de la diarisation ; le fait qu’une langue soit reconnue n’établit donc pas que toutes les fonctions relatives aux locuteurs ou à l’horodatage s’y appliquent. Utilisez le paramètre régional correspondant à l’enregistrement et conservez les noms prononcés lors de changements de langue ou les termes spécialisés pour les vérifier. L’indication de la langue détectée fait partie du résultat ; elle ne prouve pas que tous les mots inhabituels ont été reconnus correctement.</p><p>La diarisation des locuteurs regroupe la parole par voix dans un enregistrement à canal unique. Google fournit un exemple de transcription par lots avec des informations de locuteur pour chaque mot. Pour un entretien, conservez ces étiquettes avec le texte reconnu et comparez les changements de locuteur à l’enregistrement avant d’y associer des noms ou des rôles réels. Des voix similaires, des interruptions et des paroles qui se chevauchent peuvent rendre l’attribution difficile. Gardez clairement définis la disposition des canaux de la source et le travail de vérification des locuteurs prévu, au lieu de traiter une étiquette comme une identité vérifiée indépendamment.</p><p>L’horodatage est également propre à chaque méthode. La reconnaissance en streaming fournit des horodatages à l’échelle des énoncés, tandis que les indications du fabricant pour la reconnaissance de fichiers décrivent un horodatage facultatif par mot, avec un compromis possible sur la qualité de transcription. Conservez les métadonnées réellement renvoyées par la méthode choisie et vérifiez l’alignement en même temps que le texte. Un processus de sous-titrage a besoin des deux : un texte reconnu lisible et des éléments montrant qu’une limite temporelle correspond au bon son. Google avertit également que la valeur de confiance renvoyée au niveau du mot n’est pas un véritable score de confiance ; elle ne doit donc pas servir à certifier qu’un mot est correct.</p><p>L’adaptation de la reconnaissance vocale fournit des expressions et des noms propres susceptibles d’apparaître dans l’enregistrement. Le fabricant documente un dictionnaire pouvant contenir jusqu’à 1 000 expressions et recommande le moins d’entrées pertinentes possible pour éviter de dégrader la reconnaissance d’autres termes. Pour une présentation technique, préparez une courte liste des vrais noms de produits et abréviations, puis vérifiez-les dans la transcription. La pondération aide la reconnaissance à envisager un terme ; elle n’établit pas que ce terme a été prononcé et ne remplace pas une vérification par rapport à l’audio.</p><p>Le modèle ajoute automatiquement la ponctuation et les majuscules, fonctions que l’interface documentée permet de désactiver. Google décrit également une fonction en préversion permettant de fournir des instructions personnalisées sur le format de transcription, par exemple la manière d’écrire un nom ou une date particuliers. Limitez ces instructions à la mise en forme de la parole reconnue. Une transcription qui normalise une date ou met une majuscule à une marque doit toujours préserver le sens des paroles. Un résumé, une traduction ou une analyse factuelle constitue un usage ultérieur de la transcription, plutôt qu’un résultat établi par la reconnaissance elle-même.</p><p>Le réducteur de bruit intégré est destiné à atténuer la musique de fond et les sons ambiants tels que la pluie ou le bruit de la rue. Google indique explicitement qu’il ne peut pas supprimer les voix humaines en arrière-plan. Préservez cette distinction lorsque vous préparez un enregistrement où des conversations se chevauchent. Vérifiez les passages bruyants et calmes par rapport à la source, au lieu de supposer qu’une transcription qui semble plus propre prouve que le son parasite a été supprimé. Un résultat utile laisse les passages incertains identifiables pour les corriger.</p><p>Pour les tâches en streaming, la sensibilité de détection de fin d’énoncé détermine quand un énoncé est considéré comme terminé. Le fabricant décrit les réglages standard, short et supershort pour des prises de parole attendues de plus en plus brèves. Un réglage plus rapide peut couper une personne qui marque une pause au milieu de sa pensée. Adaptez le réglage à une dictée naturelle, à une phrase courte ou à une commande très brève, et conservez le statut de résultat final avec la transcription. Pour un fichier terminé, vérifiez les noms, les quantités, les négations et les limites entre locuteurs, puis conservez le mode choisi et l’audio source afin de pouvoir vérifier ou réutiliser le résultat.</p>",
  "aboutText": "Google Chirp 3 est un modèle multilingue de reconnaissance automatique de la parole qui convertit l’audio parlé en texte. Google le documente comme le modèle de transcription Chirp 3 de sa famille Speech-to-Text V2, avec l’identifiant de modèle chirp_3. Il sert à reconnaître la parole enregistrée ou diffusée en streaming, avec détection de la langue et fonctions propres à la transcription. Le livrable obtenu est une transcription accompagnée des métadonnées prises en charge par la méthode de reconnaissance choisie, plutôt qu’une voix générée ou une réponse libre d’assistant.\n\nLe fournisseur distingue la reconnaissance en streaming, la reconnaissance synchrone pour les extraits courts et la reconnaissance par lots pour les enregistrements plus longs. Choisissez le mode en fonction de l’audio source et du résultat requis. Pour une courte note vocale, une réponse textuelle complète peut suffire. Pour un entretien ou un appel enregistré, un résultat par lots avec des informations sur les locuteurs peut être plus utile. Pour des sous-titres en direct ou une interface de commande vocale, gardez le texte intermédiaire distinct du résultat de reconnaissance final et conservez l’intervalle audio qu’il décrit.\n\nPréparez l’audio dans l’encodage attendu par l’implémentation de reconnaissance. Les exemples Chirp 3 de Google utilisent un décodage détecté automatiquement pour les fichiers enregistrés et un décodage explicite pour une configuration de streaming brut. La référence du décodeur V2 associée répertorie notamment l’audio WAV PCM ou compressé-expansé, FLAC, MP3, Ogg/WebM Opus et AAC dans des conteneurs MP4, M4A ou MOV parmi les encodages pris en charge. Un nom de conteneur ne remplace pas le codec et la configuration d’échantillonnage réels. Préservez une parole claire et évitez un écrêtage important ou des conversions inutiles qui font perdre des détails audibles.\n\nChirp 3 peut identifier et transcrire automatiquement la langue dominante, et un ensemble de paramètres régionaux attendus peut restreindre ses choix de reconnaissance. La disponibilité des langues varie selon la méthode et la fonction. La liste des langues de transcription est plus large que celle de la diarisation ; le fait qu’une langue soit reconnue n’établit donc pas que toutes les fonctions relatives aux locuteurs ou à l’horodatage s’y appliquent. Utilisez le paramètre régional correspondant à l’enregistrement et conservez les noms prononcés lors de changements de langue ou les termes spécialisés pour les vérifier. L’indication de la langue détectée fait partie du résultat ; elle ne prouve pas que tous les mots inhabituels ont été reconnus correctement.\n\nLa diarisation des locuteurs regroupe la parole par voix dans un enregistrement à canal unique. Google fournit un exemple de transcription par lots avec des informations de locuteur pour chaque mot. Pour un entretien, conservez ces étiquettes avec le texte reconnu et comparez les changements de locuteur à l’enregistrement avant d’y associer des noms ou des rôles réels. Des voix similaires, des interruptions et des paroles qui se chevauchent peuvent rendre l’attribution difficile. Gardez clairement définis la disposition des canaux de la source et le travail de vérification des locuteurs prévu, au lieu de traiter une étiquette comme une identité vérifiée indépendamment.\n\nL’horodatage est également propre à chaque méthode. La reconnaissance en streaming fournit des horodatages à l’échelle des énoncés, tandis que les indications du fabricant pour la reconnaissance de fichiers décrivent un horodatage facultatif par mot, avec un compromis possible sur la qualité de transcription. Conservez les métadonnées réellement renvoyées par la méthode choisie et vérifiez l’alignement en même temps que le texte. Un processus de sous-titrage a besoin des deux : un texte reconnu lisible et des éléments montrant qu’une limite temporelle correspond au bon son. Google avertit également que la valeur de confiance renvoyée au niveau du mot n’est pas un véritable score de confiance ; elle ne doit donc pas servir à certifier qu’un mot est correct.\n\nL’adaptation de la reconnaissance vocale fournit des expressions et des noms propres susceptibles d’apparaître dans l’enregistrement. Le fabricant documente un dictionnaire pouvant contenir jusqu’à 1 000 expressions et recommande le moins d’entrées pertinentes possible pour éviter de dégrader la reconnaissance d’autres termes. Pour une présentation technique, préparez une courte liste des vrais noms de produits et abréviations, puis vérifiez-les dans la transcription. La pondération aide la reconnaissance à envisager un terme ; elle n’établit pas que ce terme a été prononcé et ne remplace pas une vérification par rapport à l’audio.\n\nLe modèle ajoute automatiquement la ponctuation et les majuscules, fonctions que l’interface documentée permet de désactiver. Google décrit également une fonction en préversion permettant de fournir des instructions personnalisées sur le format de transcription, par exemple la manière d’écrire un nom ou une date particuliers. Limitez ces instructions à la mise en forme de la parole reconnue. Une transcription qui normalise une date ou met une majuscule à une marque doit toujours préserver le sens des paroles. Un résumé, une traduction ou une analyse factuelle constitue un usage ultérieur de la transcription, plutôt qu’un résultat établi par la reconnaissance elle-même.\n\nLe réducteur de bruit intégré est destiné à atténuer la musique de fond et les sons ambiants tels que la pluie ou le bruit de la rue. Google indique explicitement qu’il ne peut pas supprimer les voix humaines en arrière-plan. Préservez cette distinction lorsque vous préparez un enregistrement où des conversations se chevauchent. Vérifiez les passages bruyants et calmes par rapport à la source, au lieu de supposer qu’une transcription qui semble plus propre prouve que le son parasite a été supprimé. Un résultat utile laisse les passages incertains identifiables pour les corriger.\n\nPour les tâches en streaming, la sensibilité de détection de fin d’énoncé détermine quand un énoncé est considéré comme terminé. Le fabricant décrit les réglages standard, short et supershort pour des prises de parole attendues de plus en plus brèves. Un réglage plus rapide peut couper une personne qui marque une pause au milieu de sa pensée. Adaptez le réglage à une dictée naturelle, à une phrase courte ou à une commande très brève, et conservez le statut de résultat final avec la transcription. Pour un fichier terminé, vérifiez les noms, les quantités, les négations et les limites entre locuteurs, puis conservez le mode choisi et l’audio source afin de pouvoir vérifier ou réutiliser le résultat.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "c2bc72c3cecf53b51acf9fa86a57061fff0e08df5704806bcbcdcb0acf7fb0a2",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fr-be",
  "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=\"Fermer\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/chirp-3</code><button type=\"button\" id=\"copy-id\">Copier l’ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Rubriques de la fiche modèle\"><button type=\"button\" data-card-jump=\"overview\">Premiers pas</button><button type=\"button\" data-card-jump=\"methods\">Entrées et méthodes</button><button type=\"button\" data-card-jump=\"pricing\">Tarifs</button><button type=\"button\" data-card-jump=\"examples\">Exemples</button><button type=\"button\" data-card-jump=\"results\">Résultats</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Méthodes API\"><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\">Reconnaissance</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\">Premiers pas</h3><p class=\"mdesc-full\">Google Chirp 3 est un modèle multilingue de reconnaissance vocale pour le streaming, les enregistrements courts et la transcription par lots d’enregistrements plus longs. Il fournit la détection automatique de la langue, la ponctuation, l’adaptation du vocabulaire et des métadonnées temporelles ou de locuteur selon le mode. Son réducteur de bruit atténue le bruit de fond, mais ne peut pas supprimer les autres voix.</p><dl class=\"card-io\" data-card-io><div><dt>Entrées acceptées</dt><dd>Audio</dd></div><div><dt>Résultats</dt><dd>Texte</dd></div></dl><details class=\"card-about\"><summary>À propos du modèle</summary><p class=\"note-s\" data-model-method-boundary>Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.</p><div class=\"mabout\" id=\"m-about\"><p>Google Chirp 3 est un modèle multilingue de reconnaissance automatique de la parole qui convertit l’audio parlé en texte. Google le documente comme le modèle de transcription Chirp 3 de sa famille Speech-to-Text V2, avec l’identifiant de modèle chirp_3. Il sert à reconnaître la parole enregistrée ou diffusée en streaming, avec détection de la langue et fonctions propres à la transcription. Le livrable obtenu est une transcription accompagnée des métadonnées prises en charge par la méthode de reconnaissance choisie, plutôt qu’une voix générée ou une réponse libre d’assistant.</p><p>Le fournisseur distingue la reconnaissance en streaming, la reconnaissance synchrone pour les extraits courts et la reconnaissance par lots pour les enregistrements plus longs. Choisissez le mode en fonction de l’audio source et du résultat requis. Pour une courte note vocale, une réponse textuelle complète peut suffire. Pour un entretien ou un appel enregistré, un résultat par lots avec des informations sur les locuteurs peut être plus utile. Pour des sous-titres en direct ou une interface de commande vocale, gardez le texte intermédiaire distinct du résultat de reconnaissance final et conservez l’intervalle audio qu’il décrit.</p><p>Préparez l’audio dans l’encodage attendu par l’implémentation de reconnaissance. Les exemples Chirp 3 de Google utilisent un décodage détecté automatiquement pour les fichiers enregistrés et un décodage explicite pour une configuration de streaming brut. La référence du décodeur V2 associée répertorie notamment l’audio WAV PCM ou compressé-expansé, FLAC, MP3, Ogg/WebM Opus et AAC dans des conteneurs MP4, M4A ou MOV parmi les encodages pris en charge. Un nom de conteneur ne remplace pas le codec et la configuration d’échantillonnage réels. Préservez une parole claire et évitez un écrêtage important ou des conversions inutiles qui font perdre des détails audibles.</p><p>Chirp 3 peut identifier et transcrire automatiquement la langue dominante, et un ensemble de paramètres régionaux attendus peut restreindre ses choix de reconnaissance. La disponibilité des langues varie selon la méthode et la fonction. La liste des langues de transcription est plus large que celle de la diarisation ; le fait qu’une langue soit reconnue n’établit donc pas que toutes les fonctions relatives aux locuteurs ou à l’horodatage s’y appliquent. Utilisez le paramètre régional correspondant à l’enregistrement et conservez les noms prononcés lors de changements de langue ou les termes spécialisés pour les vérifier. L’indication de la langue détectée fait partie du résultat ; elle ne prouve pas que tous les mots inhabituels ont été reconnus correctement.</p><p>La diarisation des locuteurs regroupe la parole par voix dans un enregistrement à canal unique. Google fournit un exemple de transcription par lots avec des informations de locuteur pour chaque mot. Pour un entretien, conservez ces étiquettes avec le texte reconnu et comparez les changements de locuteur à l’enregistrement avant d’y associer des noms ou des rôles réels. Des voix similaires, des interruptions et des paroles qui se chevauchent peuvent rendre l’attribution difficile. Gardez clairement définis la disposition des canaux de la source et le travail de vérification des locuteurs prévu, au lieu de traiter une étiquette comme une identité vérifiée indépendamment.</p><p>L’horodatage est également propre à chaque méthode. La reconnaissance en streaming fournit des horodatages à l’échelle des énoncés, tandis que les indications du fabricant pour la reconnaissance de fichiers décrivent un horodatage facultatif par mot, avec un compromis possible sur la qualité de transcription. Conservez les métadonnées réellement renvoyées par la méthode choisie et vérifiez l’alignement en même temps que le texte. Un processus de sous-titrage a besoin des deux : un texte reconnu lisible et des éléments montrant qu’une limite temporelle correspond au bon son. Google avertit également que la valeur de confiance renvoyée au niveau du mot n’est pas un véritable score de confiance ; elle ne doit donc pas servir à certifier qu’un mot est correct.</p><p>L’adaptation de la reconnaissance vocale fournit des expressions et des noms propres susceptibles d’apparaître dans l’enregistrement. Le fabricant documente un dictionnaire pouvant contenir jusqu’à 1 000 expressions et recommande le moins d’entrées pertinentes possible pour éviter de dégrader la reconnaissance d’autres termes. Pour une présentation technique, préparez une courte liste des vrais noms de produits et abréviations, puis vérifiez-les dans la transcription. La pondération aide la reconnaissance à envisager un terme ; elle n’établit pas que ce terme a été prononcé et ne remplace pas une vérification par rapport à l’audio.</p><p>Le modèle ajoute automatiquement la ponctuation et les majuscules, fonctions que l’interface documentée permet de désactiver. Google décrit également une fonction en préversion permettant de fournir des instructions personnalisées sur le format de transcription, par exemple la manière d’écrire un nom ou une date particuliers. Limitez ces instructions à la mise en forme de la parole reconnue. Une transcription qui normalise une date ou met une majuscule à une marque doit toujours préserver le sens des paroles. Un résumé, une traduction ou une analyse factuelle constitue un usage ultérieur de la transcription, plutôt qu’un résultat établi par la reconnaissance elle-même.</p><p>Le réducteur de bruit intégré est destiné à atténuer la musique de fond et les sons ambiants tels que la pluie ou le bruit de la rue. Google indique explicitement qu’il ne peut pas supprimer les voix humaines en arrière-plan. Préservez cette distinction lorsque vous préparez un enregistrement où des conversations se chevauchent. Vérifiez les passages bruyants et calmes par rapport à la source, au lieu de supposer qu’une transcription qui semble plus propre prouve que le son parasite a été supprimé. Un résultat utile laisse les passages incertains identifiables pour les corriger.</p><p>Pour les tâches en streaming, la sensibilité de détection de fin d’énoncé détermine quand un énoncé est considéré comme terminé. Le fabricant décrit les réglages standard, short et supershort pour des prises de parole attendues de plus en plus brèves. Un réglage plus rapide peut couper une personne qui marque une pause au milieu de sa pensée. Adaptez le réglage à une dictée naturelle, à une phrase courte ou à une commande très brève, et conservez le statut de résultat final avec la transcription. Pour un fichier terminé, vérifiez les noms, les quantités, les négations et les limites entre locuteurs, puis conservez le mode choisi et l’audio source afin de pouvoir vérifier ou réutiliser le résultat.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponible dans Ailoot · entrées et méthodes</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Transcription audio</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Entrée</dt><dd><code>audio</code></dd></div><div><dt>Sortie</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Champ</th><th>Type</th><th>Exigence</th><th>Valeurs et limites</th><th>Par défaut</th></tr></thead><tbody><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</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=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Obligatoire</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>google/chirp-3</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</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=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Obligatoire</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Paramètres et cycle de vie de la méthode</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Paramètre</th><th>Contrat</th></tr></thead><tbody><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>content_type</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>application/json</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>required</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>model, input_audio</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>material_types</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>audio</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>material_conditions</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>L’exemple lit votre fichier PCM WAV réel et non vide, encode l’intégralité de ses octets en base64 et transmet input_audio.format avec la valeur wav.</td></tr></tbody></table></div><p>Cycle de vie : <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · task_id exact d’un enregistrement média existant dont vous êtes propriétaire</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\">Tarifs</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.</p><dl data-price-conditions><dt>Mode rapide</dt><dd>Non précisé <span class=\"note-s\">Lorsque le mode rapide est sélectionné</span></dd><dt>Mode Flex</dt><dd>Non précisé <span class=\"note-s\">Lorsque le mode flex est sélectionné</span></dd><dt>Effort de raisonnement maximal</dt><dd>Non précisé <span class=\"note-s\">Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifs Ailoot</h4><h4>Prix par configuration</h4><p class=\"note-s\">Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuration</th><th>Barème tarifaire</th><th>Unité de facturation</th><th>Coût</th></tr></thead><tbody><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>Tarifs de base des jetons</th><td data-cell-label=\"Barème tarifaire\"><span class=\"card-cell-label\">Barème tarifaire</span>Tarif de base</td><td data-cell-label=\"Unité de facturation\"><span class=\"card-cell-label\">Unité de facturation</span>—</td><td data-cell-label=\"Coût\"><span class=\"card-cell-label\">Coût</span><div><span>Entrée · Tokens en entrée</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Sortie · Tokens en sortie</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Lecture du cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache, 1 h</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>seconde d’audio en entrée</th><td data-cell-label=\"Barème tarifaire\"><span class=\"card-cell-label\">Barème tarifaire</span>—</td><td data-cell-label=\"Unité de facturation\"><span class=\"card-cell-label\">Unité de facturation</span>par seconde d’audio en entrée</td><td data-cell-label=\"Coût\"><span class=\"card-cell-label\">Coût</span><div><span>Entrée · seconde d’audio en entrée</span> <b>$0.000533333333334</b> <span class=\"price-unit\">par seconde d’audio en entrée</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. <a href=\"/docs/fr-be/billing/reserve/\">Fonctionnement de la réservation et du débit →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exemples de requêtes</h3><h4>Ailoot Ultra · Transcription audio</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes du code\"><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 · fichier WAV réel et résultat d’origine complet</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copier le code\"><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\">Recevoir et enregistrer les résultats</h3><h4>Ailoot Ultra · Transcription audio</h4><p class=\"note-s\">Corps de réponse d’origine complet, état et en-têtes transmis. Ce gestionnaire n’ajoute aucune structure JSON universelle, aucun champ de texte ni aucune enveloppe de tâche.</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>Conserver tous les résultats terminés</h5><p class=\"note-s\">Conservez chaque réponse, fichier et partie de contenu renvoyés dans leur intégralité.</p><p class=\"note-s\">Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Si la réponse d’origine doit être vérifiée</h5><p class=\"note-s\">Conservez la valeur réelle X-Client-Request-ID et la réponse complète. Consultez les ressources d’origine dont vous êtes propriétaire et leurs URL de contenu signées exactes ; ne soumettez jamais de nouveau une création incertaine.</p></div><details class=\"card-about\" data-output-fields><summary>Champs de la réponse</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Champ</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</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=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</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>Erreurs et étapes suivantes</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Réponse</th><th>Condition</th><th>Étape suivante</th></tr></thead><tbody><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Le corps JSON ou l’ID canonique explicite du modèle est invalide.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez la réponse et corrigez le champ indiqué de la requête.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>La clé API Ailoot est invalide.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Utilisez votre clé API Ailoot autorisée.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>403 · <code>permission_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Le groupe de la clé n’autorise pas cette méthode.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez les détails de l’erreur renvoyés.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>La méthode sélectionnée ne dispose d’aucune route autorisée.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez les détails de l’erreur renvoyés.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Le tarif accepté ne permet pas d’obtenir la quantité d’entrée ou la borne requise.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez la réponse ; utilisez la représentation d’entrée requise par le tarif accepté.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>503 · <code></code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Le stockage, la route, le tarif de la méthode ou la réservation requis est indisponible.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez la réponse d’origine complète. Une réservation incertaine n’autorise pas une nouvelle soumission.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>502 · <code>server_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Le résultat, la consommation ou le règlement d’origine nécessite une vérification.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez l’ID réel de la requête et la réponse d’origine. Consultez l’enregistrement existant dont vous êtes propriétaire ; ne soumettez pas de nouveau la création.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias du modèle</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>Alias des chemins de méthode</h4><p class=\"note-s\">Utilisez les chemins de méthode indiqués ci-dessus.</p><h4>ID d’appel associé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": "Le corps JSON ou l’ID canonique explicite du modèle est invalide.",
                "http_status": 400,
                "recovery": "Conservez la réponse et corrigez le champ indiqué de la requête.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "La clé API Ailoot est invalide.",
                "http_status": 401,
                "recovery": "Utilisez votre clé API Ailoot autorisée.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Le groupe de la clé n’autorise pas cette méthode.",
                "http_status": 403,
                "recovery": "Conservez les détails de l’erreur renvoyés.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "La méthode sélectionnée ne dispose d’aucune route autorisée.",
                "http_status": 404,
                "recovery": "Conservez les détails de l’erreur renvoyés.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Le tarif accepté ne permet pas d’obtenir la quantité d’entrée ou la borne requise.",
                "http_status": 422,
                "recovery": "Conservez la réponse ; utilisez la représentation d’entrée requise par le tarif accepté.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Le stockage, la route, le tarif de la méthode ou la réservation requis est indisponible.",
                "http_status": 503,
                "recovery": "Conservez la réponse d’origine complète. Une réservation incertaine n’autorise pas une nouvelle soumission.",
                "type": null
              },
              {
                "code": null,
                "condition": "Le résultat, la consommation ou le règlement d’origine nécessite une vérification.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conservez l’ID réel de la requête et la réponse d’origine. Consultez l’enregistrement existant dont vous êtes propriétaire ; ne soumettez pas de nouveau la création.",
                "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": "Conservez la valeur réelle X-Client-Request-ID et la réponse complète. Consultez les ressources d’origine dont vous êtes propriétaire et leurs URL de contenu signées exactes ; ne soumettez jamais de nouveau une création incertaine."
            },
            "outputs": {
              "all_results": "Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Corps de réponse d’origine complet, état et en-têtes transmis. Ce gestionnaire n’ajoute aucune structure JSON universelle, aucun champ de texte ni aucune enveloppe de tâche."
            },
            "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": [
              "L’exemple lit votre fichier PCM WAV réel et non vide, encode l’intégralité de ses octets en base64 et transmet input_audio.format avec la valeur 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": "task_id exact d’un enregistrement média existant dont vous êtes propriétaire",
                "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": "Transcription audio",
        "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": "b38f4c493dd86932d776630bfebaa65fe9000c88bae3038a22bb4ab751018916",
    "input_html_sha256": "feac08ec15c25c70e8bc2b6e8b7dc874abddcd6ac71fc63f91270025d2cbe2cb",
    "private_audit_sha256": "e39c9acb690ca6fe8c70a59ef8c365dded82e3c4d2fba37314078ff8ba1755d7",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fr-be/google-chirp-3/",
    "description": "Google Chirp 3 est un modèle multilingue de reconnaissance vocale pour le streaming, les enregistrements courts et la transcription par lots d’enregistrements plus longs. Il fournit la détection automatique de la langue, la ponctuation, l’adaptation du vocabulaire et des métadonnées temporelles ou de locuteur selon le mode. Son réducteur de bruit atténue le bruit de fond, mais ne peut pas supprimer les autres voix.",
    "locale": "fr-be",
    "md_url": "https://ailoot.ai/models/fr-be/google-chirp-3/index.md",
    "title": "Google: Chirp 3 — Ailoot",
    "url": "https://ailoot.ai/models/fr-be/google-chirp-3/"
  },
  "rawModel": {
    "about": "Google Chirp 3 est un modèle multilingue de reconnaissance automatique de la parole qui convertit l’audio parlé en texte. Google le documente comme le modèle de transcription Chirp 3 de sa famille Speech-to-Text V2, avec l’identifiant de modèle chirp_3. Il sert à reconnaître la parole enregistrée ou diffusée en streaming, avec détection de la langue et fonctions propres à la transcription. Le livrable obtenu est une transcription accompagnée des métadonnées prises en charge par la méthode de reconnaissance choisie, plutôt qu’une voix générée ou une réponse libre d’assistant.\n\nLe fournisseur distingue la reconnaissance en streaming, la reconnaissance synchrone pour les extraits courts et la reconnaissance par lots pour les enregistrements plus longs. Choisissez le mode en fonction de l’audio source et du résultat requis. Pour une courte note vocale, une réponse textuelle complète peut suffire. Pour un entretien ou un appel enregistré, un résultat par lots avec des informations sur les locuteurs peut être plus utile. Pour des sous-titres en direct ou une interface de commande vocale, gardez le texte intermédiaire distinct du résultat de reconnaissance final et conservez l’intervalle audio qu’il décrit.\n\nPréparez l’audio dans l’encodage attendu par l’implémentation de reconnaissance. Les exemples Chirp 3 de Google utilisent un décodage détecté automatiquement pour les fichiers enregistrés et un décodage explicite pour une configuration de streaming brut. La référence du décodeur V2 associée répertorie notamment l’audio WAV PCM ou compressé-expansé, FLAC, MP3, Ogg/WebM Opus et AAC dans des conteneurs MP4, M4A ou MOV parmi les encodages pris en charge. Un nom de conteneur ne remplace pas le codec et la configuration d’échantillonnage réels. Préservez une parole claire et évitez un écrêtage important ou des conversions inutiles qui font perdre des détails audibles.\n\nChirp 3 peut identifier et transcrire automatiquement la langue dominante, et un ensemble de paramètres régionaux attendus peut restreindre ses choix de reconnaissance. La disponibilité des langues varie selon la méthode et la fonction. La liste des langues de transcription est plus large que celle de la diarisation ; le fait qu’une langue soit reconnue n’établit donc pas que toutes les fonctions relatives aux locuteurs ou à l’horodatage s’y appliquent. Utilisez le paramètre régional correspondant à l’enregistrement et conservez les noms prononcés lors de changements de langue ou les termes spécialisés pour les vérifier. L’indication de la langue détectée fait partie du résultat ; elle ne prouve pas que tous les mots inhabituels ont été reconnus correctement.\n\nLa diarisation des locuteurs regroupe la parole par voix dans un enregistrement à canal unique. Google fournit un exemple de transcription par lots avec des informations de locuteur pour chaque mot. Pour un entretien, conservez ces étiquettes avec le texte reconnu et comparez les changements de locuteur à l’enregistrement avant d’y associer des noms ou des rôles réels. Des voix similaires, des interruptions et des paroles qui se chevauchent peuvent rendre l’attribution difficile. Gardez clairement définis la disposition des canaux de la source et le travail de vérification des locuteurs prévu, au lieu de traiter une étiquette comme une identité vérifiée indépendamment.\n\nL’horodatage est également propre à chaque méthode. La reconnaissance en streaming fournit des horodatages à l’échelle des énoncés, tandis que les indications du fabricant pour la reconnaissance de fichiers décrivent un horodatage facultatif par mot, avec un compromis possible sur la qualité de transcription. Conservez les métadonnées réellement renvoyées par la méthode choisie et vérifiez l’alignement en même temps que le texte. Un processus de sous-titrage a besoin des deux : un texte reconnu lisible et des éléments montrant qu’une limite temporelle correspond au bon son. Google avertit également que la valeur de confiance renvoyée au niveau du mot n’est pas un véritable score de confiance ; elle ne doit donc pas servir à certifier qu’un mot est correct.\n\nL’adaptation de la reconnaissance vocale fournit des expressions et des noms propres susceptibles d’apparaître dans l’enregistrement. Le fabricant documente un dictionnaire pouvant contenir jusqu’à 1 000 expressions et recommande le moins d’entrées pertinentes possible pour éviter de dégrader la reconnaissance d’autres termes. Pour une présentation technique, préparez une courte liste des vrais noms de produits et abréviations, puis vérifiez-les dans la transcription. La pondération aide la reconnaissance à envisager un terme ; elle n’établit pas que ce terme a été prononcé et ne remplace pas une vérification par rapport à l’audio.\n\nLe modèle ajoute automatiquement la ponctuation et les majuscules, fonctions que l’interface documentée permet de désactiver. Google décrit également une fonction en préversion permettant de fournir des instructions personnalisées sur le format de transcription, par exemple la manière d’écrire un nom ou une date particuliers. Limitez ces instructions à la mise en forme de la parole reconnue. Une transcription qui normalise une date ou met une majuscule à une marque doit toujours préserver le sens des paroles. Un résumé, une traduction ou une analyse factuelle constitue un usage ultérieur de la transcription, plutôt qu’un résultat établi par la reconnaissance elle-même.\n\nLe réducteur de bruit intégré est destiné à atténuer la musique de fond et les sons ambiants tels que la pluie ou le bruit de la rue. Google indique explicitement qu’il ne peut pas supprimer les voix humaines en arrière-plan. Préservez cette distinction lorsque vous préparez un enregistrement où des conversations se chevauchent. Vérifiez les passages bruyants et calmes par rapport à la source, au lieu de supposer qu’une transcription qui semble plus propre prouve que le son parasite a été supprimé. Un résultat utile laisse les passages incertains identifiables pour les corriger.\n\nPour les tâches en streaming, la sensibilité de détection de fin d’énoncé détermine quand un énoncé est considéré comme terminé. Le fabricant décrit les réglages standard, short et supershort pour des prises de parole attendues de plus en plus brèves. Un réglage plus rapide peut couper une personne qui marque une pause au milieu de sa pensée. Adaptez le réglage à une dictée naturelle, à une phrase courte ou à une commande très brève, et conservez le statut de résultat final avec la transcription. Pour un fichier terminé, vérifiez les noms, les quantités, les négations et les limites entre locuteurs, puis conservez le mode choisi et l’audio source afin de pouvoir vérifier ou réutiliser le résultat.",
    "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": "La tarification complète de la configuration figure dans les détails."
      }
    ],
    "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": "Le corps JSON ou l’ID canonique explicite du modèle est invalide.",
                "http_status": 400,
                "recovery": "Conservez la réponse et corrigez le champ indiqué de la requête.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "La clé API Ailoot est invalide.",
                "http_status": 401,
                "recovery": "Utilisez votre clé API Ailoot autorisée.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Le groupe de la clé n’autorise pas cette méthode.",
                "http_status": 403,
                "recovery": "Conservez les détails de l’erreur renvoyés.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "La méthode sélectionnée ne dispose d’aucune route autorisée.",
                "http_status": 404,
                "recovery": "Conservez les détails de l’erreur renvoyés.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Le tarif accepté ne permet pas d’obtenir la quantité d’entrée ou la borne requise.",
                "http_status": 422,
                "recovery": "Conservez la réponse ; utilisez la représentation d’entrée requise par le tarif accepté.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Le stockage, la route, le tarif de la méthode ou la réservation requis est indisponible.",
                "http_status": 503,
                "recovery": "Conservez la réponse d’origine complète. Une réservation incertaine n’autorise pas une nouvelle soumission.",
                "type": null
              },
              {
                "code": null,
                "condition": "Le résultat, la consommation ou le règlement d’origine nécessite une vérification.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conservez l’ID réel de la requête et la réponse d’origine. Consultez l’enregistrement existant dont vous êtes propriétaire ; ne soumettez pas de nouveau la création.",
                "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": "Conservez la valeur réelle X-Client-Request-ID et la réponse complète. Consultez les ressources d’origine dont vous êtes propriétaire et leurs URL de contenu signées exactes ; ne soumettez jamais de nouveau une création incertaine."
            },
            "outputs": {
              "all_results": "Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Corps de réponse d’origine complet, état et en-têtes transmis. Ce gestionnaire n’ajoute aucune structure JSON universelle, aucun champ de texte ni aucune enveloppe de tâche."
            },
            "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": [
              "L’exemple lit votre fichier PCM WAV réel et non vide, encode l’intégralité de ses octets en base64 et transmet input_audio.format avec la valeur 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": "task_id exact d’un enregistrement média existant dont vous êtes propriétaire",
                "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": "Transcription audio",
        "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 est un modèle multilingue de reconnaissance vocale pour le streaming, les enregistrements courts et la transcription par lots d’enregistrements plus longs. Il fournit la détection automatique de la langue, la ponctuation, l’adaptation du vocabulaire et des métadonnées temporelles ou de locuteur selon le mode. Son réducteur de bruit atténue le bruit de fond, mais ne peut pas supprimer les autres voix."
  },
  "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 est un modèle multilingue de reconnaissance vocale pour le streaming, les enregistrements courts et la transcription par lots d’enregistrements plus longs. Il fournit la détection automatique de la langue, la ponctuation, l’adaptation du vocabulaire et des métadonnées temporelles ou de locuteur selon le mode. Son réducteur de bruit atténue le bruit de fond, mais ne peut pas supprimer les autres voix.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "2ab2a48e9b0e594f7f5089fc204c0ff9085def6a4765b9fca07bf0b5d11d51c8",
    "renderer_sha256": "9d578ff8df69ef70403308c9943a1179a11b94114c10b333bf1c012005d4a7f4"
  },
  "sourceRevision": "ccea26a8f792508517f27e50b75a698bd3225c9c33548dfbb1a7987fe4db412d"
}
