{
  "aboutHtml": "<p>ElevenLabs Scribe v2 Medical est l’édition de reconnaissance vocale par lots spécialisée dans les enregistrements audio médicaux et cliniques. Il s’agit d’une version de Scribe v2 affinée pour la reconnaissance des noms de médicaments, de l’anatomie, de la pathologie et de la dictée clinique, tout en conservant le processus général de transcription vocale. Elle convertit l’enregistrement fourni en brouillon de texte avec horodatage et annotations facultatives des locuteurs. Le fabricant la destine à la documentation et aux processus administratifs connexes, avec révision et correction du texte avant son utilisation.</p><p>Les entrées utiles comprennent une conversation enregistrée entre un clinicien et un patient, une dictée orale, un appel d’admission ou une discussion de coordination des soins. Conservez l’enregistrement original et suffisamment de paroles environnantes pour distinguer un terme dans son contexte. Évitez l’écrêtage et gardez séparés les canaux de locuteurs lorsqu’ils sont distincts et pertinents dans la source. L’interface commune de transcription par lots du fournisseur accepte les formats audio courants comme WAV, MP3, FLAC et M4A. L’adaptation à la terminologie médicale améliore le ciblage de la tâche; elle ne reconstitue pas une partie manifestement manquante ou inaudible de l’enregistrement.</p><p>Le fabricant documente la même prise en charge de plus de 90 langues que Scribe v2. Ses renseignements publics sur la transcription médicale indiquent que les améliorations de précision médicale ont été mesurées en anglais, en français et en allemand. Ces résultats n’établissent pas une performance équivalente pour les termes spécialisés dans chacune des langues prises en charge. Indiquez la langue connue lorsque c’est utile, conservez les noms et les termes employés lors des alternances de langue, et vérifiez le vocabulaire clinique peu courant dans l’audio réel au lieu de l’accepter parce que la phrase semble naturelle.</p><p>Le résultat de transcription contient le texte reconnu et les mots horodatés, avec des étiquettes facultatives de locuteurs et des balises d’événements audio. Les heures de début et de fin des mots permettent de retrouver dans l’enregistrement un nom de médicament, une quantité énoncée ou une correction. Un livrable de dictée utile comprend donc une transcription et un relevé aligné sur les mots. Examinez les détails sensibles dans l’ensemble de leur contexte oral, notamment les négations, l’incertitude et la différence entre ce que rapporte le patient et ce qu’affirme le clinicien.</p><p>Pour une consultation enregistrée de façon ambiante, la diarisation des locuteurs aide à organiser qui a parlé et à quel moment. Traitez une étiquette inférée comme un regroupement de paroles, puis associez-la aux rôles ou aux identités connus à l’aide du dossier de la consultation. Les voix qui se chevauchent ou les locuteurs aux voix semblables exigent une attention particulière lors de la vérification des changements de tour de parole. Si chaque canal d’enregistrement contient un seul locuteur, l’interface commune de traitement par lots propose aussi la transcription indépendante des canaux. Distinguez l’attribution par canal de la diarisation inférée à partir d’un audio mixé et conservez la disposition de la source lorsqu’elle facilite la révision du résultat.</p><p>La consigne par termes clés fournit des mots ou des expressions pertinents pour guider la reconnaissance à l’aide du contexte. Préparez un glossaire ciblé à partir de la terminologie réellement attendue dans l’enregistrement, en incluant les graphies correctes et les abréviations importantes pour la tâche de documentation. Le guide de traitement par lots du fabricant autorise jusqu’à 1 000 termes clés; ils doivent être courts et pertinents plutôt que constituer un vocabulaire exhaustif sans rapport avec la tâche. Vérifiez les termes importants à leurs repères temporels. Un terme clé fourni est un indice de reconnaissance, pas une preuve que le mot a été prononcé ni une instruction de remplacer un autre terme audible.</p><p>Le fabricant documente la détection facultative d’entités, y compris certaines catégories de renseignements sur la santé, en complément de la transcription. Ces annotations peuvent aider un processus de révision autorisé à repérer les passages pertinents à corriger ou à traiter. L’interface commune de traitement par lots propose aussi le caviardage des entités, qui masque le texte détecté avec des étiquettes de remplacement; il nécessite la détection d’entités, et la liste des entités est omise lorsque le caviardage est activé. Conservez le texte et l’horodatage retournés avec toutes les annotations présentes dans le résultat sélectionné. Une modification, un résumé ou une extraction en aval constitue une transformation distincte de la transcription et doit préserver son lien avec les mots enregistrés. Par exemple, une phrase remaniée ne doit pas effacer une correction orale ni transformer un énoncé incertain en constatation définitive.</p><p>La tâche définie de l’édition médicale est la transcription. Le fabricant exclut explicitement de son usage prévu l’interprétation de renseignements cliniques, le diagnostic, les recommandations de traitement et l’aide à la décision clinique. Pour mener à bien un processus de documentation, le professionnel de la santé concerné ou le réviseur autorisé vérifie le brouillon dans l’enregistrement et corrige les erreurs importantes. Le modèle fournit le relevé textuel qui soutient ce travail; la transcription elle-même n’établit pas l’exactitude d’un énoncé clinique et ne remplace pas la révision.</p><p>Distinguez clairement les éditions lorsque vous préparez une tâche. Scribe v2 Medical traite des enregistrements audio; Scribe v2 Realtime est le modèle distinct de transcription en direct. Une version affinée pour la médecine n’hérite pas des limites ni des capacités de synthèse vocale simplement parce que le même fabricant propose des produits vocaux. Le résultat utile est un brouillon de transcription révisé, avec un horodatage et des renseignements sur les locuteurs adaptés à l’enregistrement, qui laisse visibles les détails inaudibles ou incertains pour les corriger au lieu de les compléter discrètement avec un langage clinique plausible.</p>",
  "aboutText": "ElevenLabs Scribe v2 Medical est l’édition de reconnaissance vocale par lots spécialisée dans les enregistrements audio médicaux et cliniques. Il s’agit d’une version de Scribe v2 affinée pour la reconnaissance des noms de médicaments, de l’anatomie, de la pathologie et de la dictée clinique, tout en conservant le processus général de transcription vocale. Elle convertit l’enregistrement fourni en brouillon de texte avec horodatage et annotations facultatives des locuteurs. Le fabricant la destine à la documentation et aux processus administratifs connexes, avec révision et correction du texte avant son utilisation.\n\nLes entrées utiles comprennent une conversation enregistrée entre un clinicien et un patient, une dictée orale, un appel d’admission ou une discussion de coordination des soins. Conservez l’enregistrement original et suffisamment de paroles environnantes pour distinguer un terme dans son contexte. Évitez l’écrêtage et gardez séparés les canaux de locuteurs lorsqu’ils sont distincts et pertinents dans la source. L’interface commune de transcription par lots du fournisseur accepte les formats audio courants comme WAV, MP3, FLAC et M4A. L’adaptation à la terminologie médicale améliore le ciblage de la tâche; elle ne reconstitue pas une partie manifestement manquante ou inaudible de l’enregistrement.\n\nLe fabricant documente la même prise en charge de plus de 90 langues que Scribe v2. Ses renseignements publics sur la transcription médicale indiquent que les améliorations de précision médicale ont été mesurées en anglais, en français et en allemand. Ces résultats n’établissent pas une performance équivalente pour les termes spécialisés dans chacune des langues prises en charge. Indiquez la langue connue lorsque c’est utile, conservez les noms et les termes employés lors des alternances de langue, et vérifiez le vocabulaire clinique peu courant dans l’audio réel au lieu de l’accepter parce que la phrase semble naturelle.\n\nLe résultat de transcription contient le texte reconnu et les mots horodatés, avec des étiquettes facultatives de locuteurs et des balises d’événements audio. Les heures de début et de fin des mots permettent de retrouver dans l’enregistrement un nom de médicament, une quantité énoncée ou une correction. Un livrable de dictée utile comprend donc une transcription et un relevé aligné sur les mots. Examinez les détails sensibles dans l’ensemble de leur contexte oral, notamment les négations, l’incertitude et la différence entre ce que rapporte le patient et ce qu’affirme le clinicien.\n\nPour une consultation enregistrée de façon ambiante, la diarisation des locuteurs aide à organiser qui a parlé et à quel moment. Traitez une étiquette inférée comme un regroupement de paroles, puis associez-la aux rôles ou aux identités connus à l’aide du dossier de la consultation. Les voix qui se chevauchent ou les locuteurs aux voix semblables exigent une attention particulière lors de la vérification des changements de tour de parole. Si chaque canal d’enregistrement contient un seul locuteur, l’interface commune de traitement par lots propose aussi la transcription indépendante des canaux. Distinguez l’attribution par canal de la diarisation inférée à partir d’un audio mixé et conservez la disposition de la source lorsqu’elle facilite la révision du résultat.\n\nLa consigne par termes clés fournit des mots ou des expressions pertinents pour guider la reconnaissance à l’aide du contexte. Préparez un glossaire ciblé à partir de la terminologie réellement attendue dans l’enregistrement, en incluant les graphies correctes et les abréviations importantes pour la tâche de documentation. Le guide de traitement par lots du fabricant autorise jusqu’à 1 000 termes clés; ils doivent être courts et pertinents plutôt que constituer un vocabulaire exhaustif sans rapport avec la tâche. Vérifiez les termes importants à leurs repères temporels. Un terme clé fourni est un indice de reconnaissance, pas une preuve que le mot a été prononcé ni une instruction de remplacer un autre terme audible.\n\nLe fabricant documente la détection facultative d’entités, y compris certaines catégories de renseignements sur la santé, en complément de la transcription. Ces annotations peuvent aider un processus de révision autorisé à repérer les passages pertinents à corriger ou à traiter. L’interface commune de traitement par lots propose aussi le caviardage des entités, qui masque le texte détecté avec des étiquettes de remplacement; il nécessite la détection d’entités, et la liste des entités est omise lorsque le caviardage est activé. Conservez le texte et l’horodatage retournés avec toutes les annotations présentes dans le résultat sélectionné. Une modification, un résumé ou une extraction en aval constitue une transformation distincte de la transcription et doit préserver son lien avec les mots enregistrés. Par exemple, une phrase remaniée ne doit pas effacer une correction orale ni transformer un énoncé incertain en constatation définitive.\n\nLa tâche définie de l’édition médicale est la transcription. Le fabricant exclut explicitement de son usage prévu l’interprétation de renseignements cliniques, le diagnostic, les recommandations de traitement et l’aide à la décision clinique. Pour mener à bien un processus de documentation, le professionnel de la santé concerné ou le réviseur autorisé vérifie le brouillon dans l’enregistrement et corrige les erreurs importantes. Le modèle fournit le relevé textuel qui soutient ce travail; la transcription elle-même n’établit pas l’exactitude d’un énoncé clinique et ne remplace pas la révision.\n\nDistinguez clairement les éditions lorsque vous préparez une tâche. Scribe v2 Medical traite des enregistrements audio; Scribe v2 Realtime est le modèle distinct de transcription en direct. Une version affinée pour la médecine n’hérite pas des limites ni des capacités de synthèse vocale simplement parce que le même fabricant propose des produits vocaux. Le résultat utile est un brouillon de transcription révisé, avec un horodatage et des renseignements sur les locuteurs adaptés à l’enregistrement, qui laisse visibles les détails inaudibles ou incertains pour les corriger au lieu de les compléter discrètement avec un langage clinique plausible.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "72b57bf8a59b32ba33b6fa2a19c773f120e4da5975af69c85e28a97b02a05d05",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fr-ca",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">ElevenLabs: Scribe v2 Medical</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fermer\">×</button></div><div class=\"idline\"><span>ElevenLabs /</span><code>elevenlabs/scribe-v2-medical</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\">Pour commencer</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|elevenlabs%2Fscribe-v2-medical\">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\">Pour commencer</h3><p class=\"mdesc-full\">ElevenLabs Scribe v2 Medical transcrit les enregistrements audio cliniques avec une adaptation du vocabulaire aux noms de médicaments, à l’anatomie et à la pathologie. Il prend en charge plus de 90 langues, l’horodatage des mots, la diarisation des locuteurs et les termes clés contextuels. Il produit un brouillon de transcription à réviser pour la documentation, plutôt qu’une interprétation clinique.</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>ElevenLabs Scribe v2 Medical est l’édition de reconnaissance vocale par lots spécialisée dans les enregistrements audio médicaux et cliniques. Il s’agit d’une version de Scribe v2 affinée pour la reconnaissance des noms de médicaments, de l’anatomie, de la pathologie et de la dictée clinique, tout en conservant le processus général de transcription vocale. Elle convertit l’enregistrement fourni en brouillon de texte avec horodatage et annotations facultatives des locuteurs. Le fabricant la destine à la documentation et aux processus administratifs connexes, avec révision et correction du texte avant son utilisation.</p><p>Les entrées utiles comprennent une conversation enregistrée entre un clinicien et un patient, une dictée orale, un appel d’admission ou une discussion de coordination des soins. Conservez l’enregistrement original et suffisamment de paroles environnantes pour distinguer un terme dans son contexte. Évitez l’écrêtage et gardez séparés les canaux de locuteurs lorsqu’ils sont distincts et pertinents dans la source. L’interface commune de transcription par lots du fournisseur accepte les formats audio courants comme WAV, MP3, FLAC et M4A. L’adaptation à la terminologie médicale améliore le ciblage de la tâche; elle ne reconstitue pas une partie manifestement manquante ou inaudible de l’enregistrement.</p><p>Le fabricant documente la même prise en charge de plus de 90 langues que Scribe v2. Ses renseignements publics sur la transcription médicale indiquent que les améliorations de précision médicale ont été mesurées en anglais, en français et en allemand. Ces résultats n’établissent pas une performance équivalente pour les termes spécialisés dans chacune des langues prises en charge. Indiquez la langue connue lorsque c’est utile, conservez les noms et les termes employés lors des alternances de langue, et vérifiez le vocabulaire clinique peu courant dans l’audio réel au lieu de l’accepter parce que la phrase semble naturelle.</p><p>Le résultat de transcription contient le texte reconnu et les mots horodatés, avec des étiquettes facultatives de locuteurs et des balises d’événements audio. Les heures de début et de fin des mots permettent de retrouver dans l’enregistrement un nom de médicament, une quantité énoncée ou une correction. Un livrable de dictée utile comprend donc une transcription et un relevé aligné sur les mots. Examinez les détails sensibles dans l’ensemble de leur contexte oral, notamment les négations, l’incertitude et la différence entre ce que rapporte le patient et ce qu’affirme le clinicien.</p><p>Pour une consultation enregistrée de façon ambiante, la diarisation des locuteurs aide à organiser qui a parlé et à quel moment. Traitez une étiquette inférée comme un regroupement de paroles, puis associez-la aux rôles ou aux identités connus à l’aide du dossier de la consultation. Les voix qui se chevauchent ou les locuteurs aux voix semblables exigent une attention particulière lors de la vérification des changements de tour de parole. Si chaque canal d’enregistrement contient un seul locuteur, l’interface commune de traitement par lots propose aussi la transcription indépendante des canaux. Distinguez l’attribution par canal de la diarisation inférée à partir d’un audio mixé et conservez la disposition de la source lorsqu’elle facilite la révision du résultat.</p><p>La consigne par termes clés fournit des mots ou des expressions pertinents pour guider la reconnaissance à l’aide du contexte. Préparez un glossaire ciblé à partir de la terminologie réellement attendue dans l’enregistrement, en incluant les graphies correctes et les abréviations importantes pour la tâche de documentation. Le guide de traitement par lots du fabricant autorise jusqu’à 1 000 termes clés; ils doivent être courts et pertinents plutôt que constituer un vocabulaire exhaustif sans rapport avec la tâche. Vérifiez les termes importants à leurs repères temporels. Un terme clé fourni est un indice de reconnaissance, pas une preuve que le mot a été prononcé ni une instruction de remplacer un autre terme audible.</p><p>Le fabricant documente la détection facultative d’entités, y compris certaines catégories de renseignements sur la santé, en complément de la transcription. Ces annotations peuvent aider un processus de révision autorisé à repérer les passages pertinents à corriger ou à traiter. L’interface commune de traitement par lots propose aussi le caviardage des entités, qui masque le texte détecté avec des étiquettes de remplacement; il nécessite la détection d’entités, et la liste des entités est omise lorsque le caviardage est activé. Conservez le texte et l’horodatage retournés avec toutes les annotations présentes dans le résultat sélectionné. Une modification, un résumé ou une extraction en aval constitue une transformation distincte de la transcription et doit préserver son lien avec les mots enregistrés. Par exemple, une phrase remaniée ne doit pas effacer une correction orale ni transformer un énoncé incertain en constatation définitive.</p><p>La tâche définie de l’édition médicale est la transcription. Le fabricant exclut explicitement de son usage prévu l’interprétation de renseignements cliniques, le diagnostic, les recommandations de traitement et l’aide à la décision clinique. Pour mener à bien un processus de documentation, le professionnel de la santé concerné ou le réviseur autorisé vérifie le brouillon dans l’enregistrement et corrige les erreurs importantes. Le modèle fournit le relevé textuel qui soutient ce travail; la transcription elle-même n’établit pas l’exactitude d’un énoncé clinique et ne remplace pas la révision.</p><p>Distinguez clairement les éditions lorsque vous préparez une tâche. Scribe v2 Medical traite des enregistrements audio; Scribe v2 Realtime est le modèle distinct de transcription en direct. Une version affinée pour la médecine n’hérite pas des limites ni des capacités de synthèse vocale simplement parce que le même fabricant propose des produits vocaux. Le résultat utile est un brouillon de transcription révisé, avec un horodatage et des renseignements sur les locuteurs adaptés à l’enregistrement, qui laisse visibles les détails inaudibles ou incertains pour les corriger au lieu de les compléter discrètement avec un langage clinique plausible.</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>elevenlabs/scribe-v2-medical</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 tous les octets du fichier en base64 et envoie 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 appartenant à votre compte</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 · Jetons en entrée</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Sortie · Jetons en sortie</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Entrée · Lecture du cache</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Entrée · Écriture dans le cache</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Entrée · Écriture dans le cache, 1 h</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</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.0001222222222222</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-ca/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-1329-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1329-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · fichier WAV réel et résultat original 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-1329-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1329-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;elevenlabs/scribe-v2-medical&#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 et 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 le X-Client-Request-ID réel et la réponse complète. Consultez les ressources d’origine appartenant à votre compte et leurs URL exactes de contenu signées; 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’identifiant 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 de demande indiqué.</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 d’erreur retourné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 possède aucune route autorisée.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez les détails d’erreur retourné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 peut pas obtenir la quantité d’entrée ou la borne dont il a besoin.</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 exigée 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 n’est pas disponible.</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 d’origine, l’utilisation ou le règlement doit être vérifié.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez l’identifiant réel de demande et la réponse d’origine. Consultez l’enregistrement existant appartenant à votre compte; ne soumettez pas de nouveau la demande de 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=elevenlabs%2Fscribe-v2-medical&amp;route=Ultra&amp;caller=elevenlabs%2Fscribe-v2-medical&amp;fmt=transcriptions\"><code>elevenlabs/scribe-v2-medical</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=elevenlabs%2Fscribe-v2-medical&amp;route=Ultra&amp;caller=elevenlabs%2Fscribe-v2-medical&amp;fmt=transcriptions\"><code>elevenlabs/scribe-v2-medical</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "elevenlabs/scribe-v2-medical",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "elevenlabs/scribe-v2-medical",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|elevenlabs%2Fscribe-v2-medical",
      "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’identifiant canonique explicite du modèle est invalide.",
                "http_status": 400,
                "recovery": "Conservez la réponse et corrigez le champ de demande indiqué.",
                "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 d’erreur retournés.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "La méthode sélectionnée ne possède aucune route autorisée.",
                "http_status": 404,
                "recovery": "Conservez les détails d’erreur retournés.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Le tarif accepté ne peut pas obtenir la quantité d’entrée ou la borne dont il a besoin.",
                "http_status": 422,
                "recovery": "Conservez la réponse; utilisez la représentation d’entrée exigée 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 n’est pas disponible.",
                "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 d’origine, l’utilisation ou le règlement doit être vérifié.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conservez l’identifiant réel de demande et la réponse d’origine. Consultez l’enregistrement existant appartenant à votre compte; ne soumettez pas de nouveau la demande de 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 le X-Client-Request-ID réel et la réponse complète. Consultez les ressources d’origine appartenant à votre compte et leurs URL exactes de contenu signées; 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 et aucune enveloppe de tâche."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "elevenlabs/scribe-v2-medical"
                ],
                "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": [
                    "elevenlabs/scribe-v2-medical"
                  ],
                  "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": "elevenlabs/scribe-v2-medical"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "L’exemple lit votre fichier PCM WAV réel et non vide, encode tous les octets du fichier en base64 et envoie 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 appartenant à votre compte",
                "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.0001222222222222",
                "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.0001222222222222",
                "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': 'elevenlabs/scribe-v2-medical', '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.0001222222222222
          }
        },
        "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.0001222222222222",
                "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.0001222222222222",
                "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": "elevenlabs/scribe-v2-medical",
        "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.0001222222222222",
            "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.0001222222222222",
            "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": "elevenlabs/scribe-v2-medical",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "4320cc9b271f4f63d5815b730a56d79580cefc385fa0bef599aab47f88382b7a",
    "input_html_sha256": "31b53be28f1e783bb69f46c7c6aa389f9559037f34c5b0e03683cb4ac5784d9b",
    "private_audit_sha256": "d9e2bcac44a47032c89c2221d7ec50457f625c8b2b69bbfee837d2c510b095ac",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fr-ca/elevenlabs-scribe-v2-medical/",
    "description": "ElevenLabs Scribe v2 Medical transcrit les enregistrements audio cliniques avec une adaptation du vocabulaire aux noms de médicaments, à l’anatomie et à la pathologie. Il prend en charge plus de 90 langues, l’horodatage des mots, la diarisation des locuteurs et les termes clés contextuels. Il produit un brouillon de transcription à réviser pour la documentation, plutôt qu’une interprétation clinique.",
    "locale": "fr-ca",
    "md_url": "https://ailoot.ai/models/fr-ca/elevenlabs-scribe-v2-medical/index.md",
    "title": "ElevenLabs: Scribe v2 Medical — Ailoot",
    "url": "https://ailoot.ai/models/fr-ca/elevenlabs-scribe-v2-medical/"
  },
  "rawModel": {
    "about": "ElevenLabs Scribe v2 Medical est l’édition de reconnaissance vocale par lots spécialisée dans les enregistrements audio médicaux et cliniques. Il s’agit d’une version de Scribe v2 affinée pour la reconnaissance des noms de médicaments, de l’anatomie, de la pathologie et de la dictée clinique, tout en conservant le processus général de transcription vocale. Elle convertit l’enregistrement fourni en brouillon de texte avec horodatage et annotations facultatives des locuteurs. Le fabricant la destine à la documentation et aux processus administratifs connexes, avec révision et correction du texte avant son utilisation.\n\nLes entrées utiles comprennent une conversation enregistrée entre un clinicien et un patient, une dictée orale, un appel d’admission ou une discussion de coordination des soins. Conservez l’enregistrement original et suffisamment de paroles environnantes pour distinguer un terme dans son contexte. Évitez l’écrêtage et gardez séparés les canaux de locuteurs lorsqu’ils sont distincts et pertinents dans la source. L’interface commune de transcription par lots du fournisseur accepte les formats audio courants comme WAV, MP3, FLAC et M4A. L’adaptation à la terminologie médicale améliore le ciblage de la tâche; elle ne reconstitue pas une partie manifestement manquante ou inaudible de l’enregistrement.\n\nLe fabricant documente la même prise en charge de plus de 90 langues que Scribe v2. Ses renseignements publics sur la transcription médicale indiquent que les améliorations de précision médicale ont été mesurées en anglais, en français et en allemand. Ces résultats n’établissent pas une performance équivalente pour les termes spécialisés dans chacune des langues prises en charge. Indiquez la langue connue lorsque c’est utile, conservez les noms et les termes employés lors des alternances de langue, et vérifiez le vocabulaire clinique peu courant dans l’audio réel au lieu de l’accepter parce que la phrase semble naturelle.\n\nLe résultat de transcription contient le texte reconnu et les mots horodatés, avec des étiquettes facultatives de locuteurs et des balises d’événements audio. Les heures de début et de fin des mots permettent de retrouver dans l’enregistrement un nom de médicament, une quantité énoncée ou une correction. Un livrable de dictée utile comprend donc une transcription et un relevé aligné sur les mots. Examinez les détails sensibles dans l’ensemble de leur contexte oral, notamment les négations, l’incertitude et la différence entre ce que rapporte le patient et ce qu’affirme le clinicien.\n\nPour une consultation enregistrée de façon ambiante, la diarisation des locuteurs aide à organiser qui a parlé et à quel moment. Traitez une étiquette inférée comme un regroupement de paroles, puis associez-la aux rôles ou aux identités connus à l’aide du dossier de la consultation. Les voix qui se chevauchent ou les locuteurs aux voix semblables exigent une attention particulière lors de la vérification des changements de tour de parole. Si chaque canal d’enregistrement contient un seul locuteur, l’interface commune de traitement par lots propose aussi la transcription indépendante des canaux. Distinguez l’attribution par canal de la diarisation inférée à partir d’un audio mixé et conservez la disposition de la source lorsqu’elle facilite la révision du résultat.\n\nLa consigne par termes clés fournit des mots ou des expressions pertinents pour guider la reconnaissance à l’aide du contexte. Préparez un glossaire ciblé à partir de la terminologie réellement attendue dans l’enregistrement, en incluant les graphies correctes et les abréviations importantes pour la tâche de documentation. Le guide de traitement par lots du fabricant autorise jusqu’à 1 000 termes clés; ils doivent être courts et pertinents plutôt que constituer un vocabulaire exhaustif sans rapport avec la tâche. Vérifiez les termes importants à leurs repères temporels. Un terme clé fourni est un indice de reconnaissance, pas une preuve que le mot a été prononcé ni une instruction de remplacer un autre terme audible.\n\nLe fabricant documente la détection facultative d’entités, y compris certaines catégories de renseignements sur la santé, en complément de la transcription. Ces annotations peuvent aider un processus de révision autorisé à repérer les passages pertinents à corriger ou à traiter. L’interface commune de traitement par lots propose aussi le caviardage des entités, qui masque le texte détecté avec des étiquettes de remplacement; il nécessite la détection d’entités, et la liste des entités est omise lorsque le caviardage est activé. Conservez le texte et l’horodatage retournés avec toutes les annotations présentes dans le résultat sélectionné. Une modification, un résumé ou une extraction en aval constitue une transformation distincte de la transcription et doit préserver son lien avec les mots enregistrés. Par exemple, une phrase remaniée ne doit pas effacer une correction orale ni transformer un énoncé incertain en constatation définitive.\n\nLa tâche définie de l’édition médicale est la transcription. Le fabricant exclut explicitement de son usage prévu l’interprétation de renseignements cliniques, le diagnostic, les recommandations de traitement et l’aide à la décision clinique. Pour mener à bien un processus de documentation, le professionnel de la santé concerné ou le réviseur autorisé vérifie le brouillon dans l’enregistrement et corrige les erreurs importantes. Le modèle fournit le relevé textuel qui soutient ce travail; la transcription elle-même n’établit pas l’exactitude d’un énoncé clinique et ne remplace pas la révision.\n\nDistinguez clairement les éditions lorsque vous préparez une tâche. Scribe v2 Medical traite des enregistrements audio; Scribe v2 Realtime est le modèle distinct de transcription en direct. Une version affinée pour la médecine n’hérite pas des limites ni des capacités de synthèse vocale simplement parce que le même fabricant propose des produits vocaux. Le résultat utile est un brouillon de transcription révisé, avec un horodatage et des renseignements sur les locuteurs adaptés à l’enregistrement, qui laisse visibles les détails inaudibles ou incertains pour les corriger au lieu de les compléter discrètement avec un langage clinique plausible.",
    "alias_of": null,
    "aliases": [],
    "author": "ElevenLabs",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0001222222222222",
            "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.0001222222222222",
            "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": "elevenlabs/scribe-v2-medical",
    "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’identifiant canonique explicite du modèle est invalide.",
                "http_status": 400,
                "recovery": "Conservez la réponse et corrigez le champ de demande indiqué.",
                "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 d’erreur retournés.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "La méthode sélectionnée ne possède aucune route autorisée.",
                "http_status": 404,
                "recovery": "Conservez les détails d’erreur retournés.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Le tarif accepté ne peut pas obtenir la quantité d’entrée ou la borne dont il a besoin.",
                "http_status": 422,
                "recovery": "Conservez la réponse; utilisez la représentation d’entrée exigée 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 n’est pas disponible.",
                "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 d’origine, l’utilisation ou le règlement doit être vérifié.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conservez l’identifiant réel de demande et la réponse d’origine. Consultez l’enregistrement existant appartenant à votre compte; ne soumettez pas de nouveau la demande de 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 le X-Client-Request-ID réel et la réponse complète. Consultez les ressources d’origine appartenant à votre compte et leurs URL exactes de contenu signées; 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 et aucune enveloppe de tâche."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "elevenlabs/scribe-v2-medical"
                ],
                "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": [
                    "elevenlabs/scribe-v2-medical"
                  ],
                  "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": "elevenlabs/scribe-v2-medical"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "L’exemple lit votre fichier PCM WAV réel et non vide, encode tous les octets du fichier en base64 et envoie 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 appartenant à votre compte",
                "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.0001222222222222",
                "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.0001222222222222",
                "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': 'elevenlabs/scribe-v2-medical', '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.0001222222222222
          }
        },
        "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.0001222222222222",
                "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.0001222222222222",
                "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": "elevenlabs/scribe-v2-medical",
        "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.0001222222222222",
            "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.0001222222222222",
            "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": "elevenlabs/scribe-v2-medical",
        "request_model_id": "elevenlabs/scribe-v2-medical",
        "route_label": "Ultra"
      }
    ],
    "name": "ElevenLabs: Scribe v2 Medical",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "ElevenLabs Scribe v2 Medical transcrit les enregistrements audio cliniques avec une adaptation du vocabulaire aux noms de médicaments, à l’anatomie et à la pathologie. Il prend en charge plus de 90 langues, l’horodatage des mots, la diarisation des locuteurs et les termes clés contextuels. Il produit un brouillon de transcription à réviser pour la documentation, plutôt qu’une interprétation clinique."
  },
  "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": "ElevenLabs Scribe v2 Medical transcrit les enregistrements audio cliniques avec une adaptation du vocabulaire aux noms de médicaments, à l’anatomie et à la pathologie. Il prend en charge plus de 90 langues, l’horodatage des mots, la diarisation des locuteurs et les termes clés contextuels. Il produit un brouillon de transcription à réviser pour la documentation, plutôt qu’une interprétation clinique.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "7070b7b702621e09f272e2ff72a982e7ec77f91a875cfe6dd6179d61099ba5cf",
    "renderer_sha256": "98cb81b9c4ef4923c22e586170e7cdf67056351148a1666fb03dd6a4a26716a3"
  },
  "sourceRevision": "42661343462809f9816ddf72e0fcac6cddc16535a34352b429e372643a8ed6f4"
}
