{
  "aboutHtml": "<p>Muse Voice Transcribe 1.0 est le modèle de perception audio de Meta destiné à transcrire la parole, à détecter les limites des énoncés et à attribuer les tours de parole aux locuteurs. Il appartient à la famille de modèles Muse Spark et réunit dans un même modèle la reconnaissance vocale, la diarisation et la détection des fins de tours de parole. Il produit le texte reconnu, accompagné des informations temporelles et des indications de locuteur disponibles dans le mode choisi.</p><p>Le modèle traite l’audio par blocs de 80 millisecondes et décide s’il doit continuer à écouter ou émettre du texte. Son délai adaptatif lui permet d’attendre des données audio supplémentaires lorsqu’un mot est plus difficile à déterminer. Il produit ainsi du texte provisoire pendant que la parole arrive, puis des résultats de transcription terminés. Considérez l’hypothèse provisoire et le tour de parole terminé comme deux étapes distinctes de l’écoute.</p><p>Vous pouvez choisir parmi trois modes. Push-to-talk est le mode par défaut pour un énoncé unique et maîtrisé, par exemple une requête vocale ou un court passage dicté. Endpointing laisse le modèle détecter les limites des tours de parole et renvoyer une transcription terminée pour chaque segment détecté. Diarization attribue la parole reconnue à des étiquettes de locuteur ; ce mode vise les enregistrements à plusieurs locuteurs plutôt que les échanges de commandes vocales les plus rapides.</p><p>Pour un enregistrement, la procédure de transcription de fichier renvoie une transcription complète en une seule requête. Le résultat par défaut est un objet JSON contenant la transcription et la durée de l’audio, avec un tableau turns dans les modes Endpointing et Diarization. Chaque tour de parole peut comporter un identifiant, un début et une fin en millisecondes ainsi que son texte reconnu. Les étiquettes de locuteur sont présentes en mode Diarization. Push-to-talk produit la transcription complète sans tours de parole détectés dans ce tableau. L’interface du fabricant pour les fichiers enregistrés peut également renvoyer du texte brut ou un flux d’événements de transcription. Le texte brut conserve les tours de parole détectés sur des lignes distinctes et peut inclure les étiquettes de locuteur ; un flux d’événements se termine après son dernier événement, sans récapitulatif JSON séparé. Son mode provisoire delta renvoie le texte de façon incrémentale, tandis que l’événement de transcription finale contient la formulation complète.</p><p>Préparez un fichier RIFF/WAVE contenant un signal PCM mono à entiers de 16 bits, échantillonné à 16 ou 24 kHz. La fréquence native du modèle est de 24 kHz et l’interface accepte également 16 kHz. Convertissez les autres conteneurs ou encodages dans cette forme WAV prise en charge avant de fournir un enregistrement. Le profil de transcription de fichier autorise jusqu’à 10 minutes d’audio et un corps de requête total de 32 Mo. Conservez l’enregistrement original et toute conversion avec la transcription renvoyée, afin de pouvoir la vérifier ensuite à l’écoute.</p><p>La procédure d’audio en direct utilise du PCM brut mono, signé, de 16 bits, au format petit-boutiste, à 16 ou 24 kHz, envoyé approximativement au rythme du temps réel. Sa durée de session documentée est de 60 minutes. Meta décrit une entrée audio native dépassant une heure ; les limites documentées des fichiers et des sessions en direct restent des limites d’interface distinctes. Choisissez la procédure de fichier enregistré ou celle de direct selon que l’audio est déjà complet ou encore en cours de capture, et conservez les résultats de chaque session avec les segments d’entrée correspondants.</p><p>Muse Voice Transcribe a été entraîné sur plus de 70 langues, tandis que l’interface de reconnaissance documentée énumère 25 langues prises en charge. Elles comprennent l’anglais, le français, l’allemand, l’espagnol, l’arabe, le chinois mandarin, l’hindi, le japonais, le coréen, l’italien et le portugais. Le modèle reconnaît l’alternance entre langues au sein d’une phrase ou entre les phrases. Une indication de langue peut nommer les langues attendues dans l’audio, mais elle oriente la reconnaissance sans imposer une langue unique à la transcription.</p><p>Les indications de vocabulaire facilitent la reconnaissance des termes de produit, des sigles, des noms ou des lieux importants dans un enregistrement. Fournissez les mots réels et les graphies que vous vous attendez à entendre. La liste de mots-clés oriente la reconnaissance sans garantir une graphie exacte ; vérifiez donc les termes décisifs à partir de l’audio. Les indications de langue et les mots-clés sont choisis au début de la transcription ; adaptez-les à l’enregistrement concerné plutôt que d’en modifier le sens pendant une session.</p><p>Le modèle prend en charge la diarisation de conversations réunissant plus de 20 locuteurs. Des étiquettes comme A et B identifient les locuteurs au sein d’une transcription. Elles ne constituent pas des noms vérifiés et n’établissent pas qu’une étiquette désigne la même personne dans une autre session. Pour une tâche d’analyse d’une réunion originale, demandez des tours de parole attribués aux locuteurs, conservez l’enregistrement et utilisez les étiquettes pour organiser la discussion avant d’associer de vrais noms de participants dans la procédure qui l’entoure.</p><p>Les transcriptions provisoires en direct peuvent changer à mesure que la parole arrive. En mode cumulatif, chaque résultat provisoire remplace l’hypothèse précédente au lieu d’en ajouter une copie. Une fin de parole détectée marque une limite, tandis que le résultat du tour de parole terminé fournit le texte définitif et peut différer du dernier résultat provisoire. Conservez les tours de parole qui se chevauchent avec leurs identifiants respectifs et récupérez les résultats terminés avant de considérer la transcription comme achevée. Lorsque l’entrée en direct prend fin, signalez la fin de l’entrée et continuez à recevoir jusqu’à ce que le système producteur ait transmis tous les résultats en attente. Fermer immédiatement la connexion peut faire perdre ces résultats ; une limite de parole détectée termine un tour de parole, pas la session entière.</p><p>Le repérage temporel se fait au niveau des tours de parole. Ce profil ne fournit ni horodatages mot à mot ni scores de confiance, et la progression du traitement audio n’est pas l’horodatage d’un mot particulier. La détection d’événements sonores, la détection des émotions et la remise en forme de la transcription se situent également hors du profil de sortie documenté. Utilisez les intervalles renvoyés pour construire une chronologie des locuteurs ou vérifier des segments, et conservez les mots reconnus si une étape de révision distincte crée ensuite des notes plus lisibles.</p><p>Les livrables utiles comprennent un passage dicté complet, une transcription de requête vocale, une conversation attribuée aux locuteurs ou une chronologie des énoncés. Comparez les noms, les nombres et les termes techniques avec l’enregistrement original, préservez les associations entre le mode et les informations temporelles, et gardez les tours de parole complets à disposition pour vérification. La transcription établit ce qui a été reconnu dans l’audio ; répondre à une question orale, la traduire ou la transformer en compte rendu de réunion relève d’une étape ultérieure de l’application.</p>",
  "aboutText": "Muse Voice Transcribe 1.0 est le modèle de perception audio de Meta destiné à transcrire la parole, à détecter les limites des énoncés et à attribuer les tours de parole aux locuteurs. Il appartient à la famille de modèles Muse Spark et réunit dans un même modèle la reconnaissance vocale, la diarisation et la détection des fins de tours de parole. Il produit le texte reconnu, accompagné des informations temporelles et des indications de locuteur disponibles dans le mode choisi.\n\nLe modèle traite l’audio par blocs de 80 millisecondes et décide s’il doit continuer à écouter ou émettre du texte. Son délai adaptatif lui permet d’attendre des données audio supplémentaires lorsqu’un mot est plus difficile à déterminer. Il produit ainsi du texte provisoire pendant que la parole arrive, puis des résultats de transcription terminés. Considérez l’hypothèse provisoire et le tour de parole terminé comme deux étapes distinctes de l’écoute.\n\nVous pouvez choisir parmi trois modes. Push-to-talk est le mode par défaut pour un énoncé unique et maîtrisé, par exemple une requête vocale ou un court passage dicté. Endpointing laisse le modèle détecter les limites des tours de parole et renvoyer une transcription terminée pour chaque segment détecté. Diarization attribue la parole reconnue à des étiquettes de locuteur ; ce mode vise les enregistrements à plusieurs locuteurs plutôt que les échanges de commandes vocales les plus rapides.\n\nPour un enregistrement, la procédure de transcription de fichier renvoie une transcription complète en une seule requête. Le résultat par défaut est un objet JSON contenant la transcription et la durée de l’audio, avec un tableau turns dans les modes Endpointing et Diarization. Chaque tour de parole peut comporter un identifiant, un début et une fin en millisecondes ainsi que son texte reconnu. Les étiquettes de locuteur sont présentes en mode Diarization. Push-to-talk produit la transcription complète sans tours de parole détectés dans ce tableau. L’interface du fabricant pour les fichiers enregistrés peut également renvoyer du texte brut ou un flux d’événements de transcription. Le texte brut conserve les tours de parole détectés sur des lignes distinctes et peut inclure les étiquettes de locuteur ; un flux d’événements se termine après son dernier événement, sans récapitulatif JSON séparé. Son mode provisoire delta renvoie le texte de façon incrémentale, tandis que l’événement de transcription finale contient la formulation complète.\n\nPréparez un fichier RIFF/WAVE contenant un signal PCM mono à entiers de 16 bits, échantillonné à 16 ou 24 kHz. La fréquence native du modèle est de 24 kHz et l’interface accepte également 16 kHz. Convertissez les autres conteneurs ou encodages dans cette forme WAV prise en charge avant de fournir un enregistrement. Le profil de transcription de fichier autorise jusqu’à 10 minutes d’audio et un corps de requête total de 32 Mo. Conservez l’enregistrement original et toute conversion avec la transcription renvoyée, afin de pouvoir la vérifier ensuite à l’écoute.\n\nLa procédure d’audio en direct utilise du PCM brut mono, signé, de 16 bits, au format petit-boutiste, à 16 ou 24 kHz, envoyé approximativement au rythme du temps réel. Sa durée de session documentée est de 60 minutes. Meta décrit une entrée audio native dépassant une heure ; les limites documentées des fichiers et des sessions en direct restent des limites d’interface distinctes. Choisissez la procédure de fichier enregistré ou celle de direct selon que l’audio est déjà complet ou encore en cours de capture, et conservez les résultats de chaque session avec les segments d’entrée correspondants.\n\nMuse Voice Transcribe a été entraîné sur plus de 70 langues, tandis que l’interface de reconnaissance documentée énumère 25 langues prises en charge. Elles comprennent l’anglais, le français, l’allemand, l’espagnol, l’arabe, le chinois mandarin, l’hindi, le japonais, le coréen, l’italien et le portugais. Le modèle reconnaît l’alternance entre langues au sein d’une phrase ou entre les phrases. Une indication de langue peut nommer les langues attendues dans l’audio, mais elle oriente la reconnaissance sans imposer une langue unique à la transcription.\n\nLes indications de vocabulaire facilitent la reconnaissance des termes de produit, des sigles, des noms ou des lieux importants dans un enregistrement. Fournissez les mots réels et les graphies que vous vous attendez à entendre. La liste de mots-clés oriente la reconnaissance sans garantir une graphie exacte ; vérifiez donc les termes décisifs à partir de l’audio. Les indications de langue et les mots-clés sont choisis au début de la transcription ; adaptez-les à l’enregistrement concerné plutôt que d’en modifier le sens pendant une session.\n\nLe modèle prend en charge la diarisation de conversations réunissant plus de 20 locuteurs. Des étiquettes comme A et B identifient les locuteurs au sein d’une transcription. Elles ne constituent pas des noms vérifiés et n’établissent pas qu’une étiquette désigne la même personne dans une autre session. Pour une tâche d’analyse d’une réunion originale, demandez des tours de parole attribués aux locuteurs, conservez l’enregistrement et utilisez les étiquettes pour organiser la discussion avant d’associer de vrais noms de participants dans la procédure qui l’entoure.\n\nLes transcriptions provisoires en direct peuvent changer à mesure que la parole arrive. En mode cumulatif, chaque résultat provisoire remplace l’hypothèse précédente au lieu d’en ajouter une copie. Une fin de parole détectée marque une limite, tandis que le résultat du tour de parole terminé fournit le texte définitif et peut différer du dernier résultat provisoire. Conservez les tours de parole qui se chevauchent avec leurs identifiants respectifs et récupérez les résultats terminés avant de considérer la transcription comme achevée. Lorsque l’entrée en direct prend fin, signalez la fin de l’entrée et continuez à recevoir jusqu’à ce que le système producteur ait transmis tous les résultats en attente. Fermer immédiatement la connexion peut faire perdre ces résultats ; une limite de parole détectée termine un tour de parole, pas la session entière.\n\nLe repérage temporel se fait au niveau des tours de parole. Ce profil ne fournit ni horodatages mot à mot ni scores de confiance, et la progression du traitement audio n’est pas l’horodatage d’un mot particulier. La détection d’événements sonores, la détection des émotions et la remise en forme de la transcription se situent également hors du profil de sortie documenté. Utilisez les intervalles renvoyés pour construire une chronologie des locuteurs ou vérifier des segments, et conservez les mots reconnus si une étape de révision distincte crée ensuite des notes plus lisibles.\n\nLes livrables utiles comprennent un passage dicté complet, une transcription de requête vocale, une conversation attribuée aux locuteurs ou une chronologie des énoncés. Comparez les noms, les nombres et les termes techniques avec l’enregistrement original, préservez les associations entre le mode et les informations temporelles, et gardez les tours de parole complets à disposition pour vérification. La transcription établit ce qui a été reconnu dans l’audio ; répondre à une question orale, la traduire ou la transformer en compte rendu de réunion relève d’une étape ultérieure de l’application.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "f1df43152fc5b00a54a7a2e2aafb397972532830fc99ea78d1736b9a73d5baea",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fr-be",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">M</span><h2 id=\"sheet-title\">Meta: Muse Voice Transcribe 1.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fermer\">×</button></div><div class=\"idline\"><span>Meta /</span><code>meta/muse-voice-transcribe-1.0</code><button type=\"button\" id=\"copy-id\">Copier l’ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Rubriques de la fiche modèle\"><button type=\"button\" data-card-jump=\"overview\">Premiers pas</button><button type=\"button\" data-card-jump=\"methods\">Entrées et méthodes</button><button type=\"button\" data-card-jump=\"pricing\">Tarifs</button><button type=\"button\" data-card-jump=\"examples\">Exemples</button><button type=\"button\" data-card-jump=\"results\">Résultats</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Méthodes API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|transcriptions|/v1/audio/transcriptions|meta%2Fmuse-voice-transcribe-1.0\">Reconnaissance</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Premiers pas</h3><p class=\"mdesc-full\">Muse Voice Transcribe 1.0 est le modèle de transcription vocale de Meta destiné à la dictée, à la détection des tours de parole et aux transcriptions distinguant les locuteurs. Il prend en charge les indications de langue et de vocabulaire, l’alternance entre langues et le repérage temporel par tour de parole, avec des procédures distinctes pour les enregistrements et l’audio en direct.</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>Muse Voice Transcribe 1.0 est le modèle de perception audio de Meta destiné à transcrire la parole, à détecter les limites des énoncés et à attribuer les tours de parole aux locuteurs. Il appartient à la famille de modèles Muse Spark et réunit dans un même modèle la reconnaissance vocale, la diarisation et la détection des fins de tours de parole. Il produit le texte reconnu, accompagné des informations temporelles et des indications de locuteur disponibles dans le mode choisi.</p><p>Le modèle traite l’audio par blocs de 80 millisecondes et décide s’il doit continuer à écouter ou émettre du texte. Son délai adaptatif lui permet d’attendre des données audio supplémentaires lorsqu’un mot est plus difficile à déterminer. Il produit ainsi du texte provisoire pendant que la parole arrive, puis des résultats de transcription terminés. Considérez l’hypothèse provisoire et le tour de parole terminé comme deux étapes distinctes de l’écoute.</p><p>Vous pouvez choisir parmi trois modes. Push-to-talk est le mode par défaut pour un énoncé unique et maîtrisé, par exemple une requête vocale ou un court passage dicté. Endpointing laisse le modèle détecter les limites des tours de parole et renvoyer une transcription terminée pour chaque segment détecté. Diarization attribue la parole reconnue à des étiquettes de locuteur ; ce mode vise les enregistrements à plusieurs locuteurs plutôt que les échanges de commandes vocales les plus rapides.</p><p>Pour un enregistrement, la procédure de transcription de fichier renvoie une transcription complète en une seule requête. Le résultat par défaut est un objet JSON contenant la transcription et la durée de l’audio, avec un tableau turns dans les modes Endpointing et Diarization. Chaque tour de parole peut comporter un identifiant, un début et une fin en millisecondes ainsi que son texte reconnu. Les étiquettes de locuteur sont présentes en mode Diarization. Push-to-talk produit la transcription complète sans tours de parole détectés dans ce tableau. L’interface du fabricant pour les fichiers enregistrés peut également renvoyer du texte brut ou un flux d’événements de transcription. Le texte brut conserve les tours de parole détectés sur des lignes distinctes et peut inclure les étiquettes de locuteur ; un flux d’événements se termine après son dernier événement, sans récapitulatif JSON séparé. Son mode provisoire delta renvoie le texte de façon incrémentale, tandis que l’événement de transcription finale contient la formulation complète.</p><p>Préparez un fichier RIFF/WAVE contenant un signal PCM mono à entiers de 16 bits, échantillonné à 16 ou 24 kHz. La fréquence native du modèle est de 24 kHz et l’interface accepte également 16 kHz. Convertissez les autres conteneurs ou encodages dans cette forme WAV prise en charge avant de fournir un enregistrement. Le profil de transcription de fichier autorise jusqu’à 10 minutes d’audio et un corps de requête total de 32 Mo. Conservez l’enregistrement original et toute conversion avec la transcription renvoyée, afin de pouvoir la vérifier ensuite à l’écoute.</p><p>La procédure d’audio en direct utilise du PCM brut mono, signé, de 16 bits, au format petit-boutiste, à 16 ou 24 kHz, envoyé approximativement au rythme du temps réel. Sa durée de session documentée est de 60 minutes. Meta décrit une entrée audio native dépassant une heure ; les limites documentées des fichiers et des sessions en direct restent des limites d’interface distinctes. Choisissez la procédure de fichier enregistré ou celle de direct selon que l’audio est déjà complet ou encore en cours de capture, et conservez les résultats de chaque session avec les segments d’entrée correspondants.</p><p>Muse Voice Transcribe a été entraîné sur plus de 70 langues, tandis que l’interface de reconnaissance documentée énumère 25 langues prises en charge. Elles comprennent l’anglais, le français, l’allemand, l’espagnol, l’arabe, le chinois mandarin, l’hindi, le japonais, le coréen, l’italien et le portugais. Le modèle reconnaît l’alternance entre langues au sein d’une phrase ou entre les phrases. Une indication de langue peut nommer les langues attendues dans l’audio, mais elle oriente la reconnaissance sans imposer une langue unique à la transcription.</p><p>Les indications de vocabulaire facilitent la reconnaissance des termes de produit, des sigles, des noms ou des lieux importants dans un enregistrement. Fournissez les mots réels et les graphies que vous vous attendez à entendre. La liste de mots-clés oriente la reconnaissance sans garantir une graphie exacte ; vérifiez donc les termes décisifs à partir de l’audio. Les indications de langue et les mots-clés sont choisis au début de la transcription ; adaptez-les à l’enregistrement concerné plutôt que d’en modifier le sens pendant une session.</p><p>Le modèle prend en charge la diarisation de conversations réunissant plus de 20 locuteurs. Des étiquettes comme A et B identifient les locuteurs au sein d’une transcription. Elles ne constituent pas des noms vérifiés et n’établissent pas qu’une étiquette désigne la même personne dans une autre session. Pour une tâche d’analyse d’une réunion originale, demandez des tours de parole attribués aux locuteurs, conservez l’enregistrement et utilisez les étiquettes pour organiser la discussion avant d’associer de vrais noms de participants dans la procédure qui l’entoure.</p><p>Les transcriptions provisoires en direct peuvent changer à mesure que la parole arrive. En mode cumulatif, chaque résultat provisoire remplace l’hypothèse précédente au lieu d’en ajouter une copie. Une fin de parole détectée marque une limite, tandis que le résultat du tour de parole terminé fournit le texte définitif et peut différer du dernier résultat provisoire. Conservez les tours de parole qui se chevauchent avec leurs identifiants respectifs et récupérez les résultats terminés avant de considérer la transcription comme achevée. Lorsque l’entrée en direct prend fin, signalez la fin de l’entrée et continuez à recevoir jusqu’à ce que le système producteur ait transmis tous les résultats en attente. Fermer immédiatement la connexion peut faire perdre ces résultats ; une limite de parole détectée termine un tour de parole, pas la session entière.</p><p>Le repérage temporel se fait au niveau des tours de parole. Ce profil ne fournit ni horodatages mot à mot ni scores de confiance, et la progression du traitement audio n’est pas l’horodatage d’un mot particulier. La détection d’événements sonores, la détection des émotions et la remise en forme de la transcription se situent également hors du profil de sortie documenté. Utilisez les intervalles renvoyés pour construire une chronologie des locuteurs ou vérifier des segments, et conservez les mots reconnus si une étape de révision distincte crée ensuite des notes plus lisibles.</p><p>Les livrables utiles comprennent un passage dicté complet, une transcription de requête vocale, une conversation attribuée aux locuteurs ou une chronologie des énoncés. Comparez les noms, les nombres et les termes techniques avec l’enregistrement original, préservez les associations entre le mode et les informations temporelles, et gardez les tours de parole complets à disposition pour vérification. La transcription établit ce qui a été reconnu dans l’audio ; répondre à une question orale, la traduire ou la transformer en compte rendu de réunion relève d’une étape ultérieure de l’application.</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>meta/muse-voice-transcribe-1.0</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Obligatoire</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Paramètres et cycle de vie de la méthode</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Paramètre</th><th>Contrat</th></tr></thead><tbody><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>content_type</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>application/json</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>required</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>model, input_audio</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>material_types</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>audio</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>material_conditions</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>L’exemple lit votre fichier PCM WAV réel et non vide, encode l’intégralité de ses octets en base64 et transmet input_audio.format avec la valeur wav.</td></tr></tbody></table></div><p>Cycle de vie : <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · task_id exact d’un enregistrement média existant dont vous êtes propriétaire</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarifs</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.</p><dl data-price-conditions><dt>Mode rapide</dt><dd>Non précisé <span class=\"note-s\">Lorsque le mode rapide est sélectionné</span></dd><dt>Mode Flex</dt><dd>Non précisé <span class=\"note-s\">Lorsque le mode flex est sélectionné</span></dd><dt>Effort de raisonnement maximal</dt><dd>Non précisé <span class=\"note-s\">Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifs Ailoot</h4><h4>Prix par configuration</h4><p class=\"note-s\">Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuration</th><th>Barème tarifaire</th><th>Unité de facturation</th><th>Coût</th></tr></thead><tbody><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>Tarifs de base des jetons</th><td data-cell-label=\"Barème tarifaire\"><span class=\"card-cell-label\">Barème tarifaire</span>Tarif de base</td><td data-cell-label=\"Unité de facturation\"><span class=\"card-cell-label\">Unité de facturation</span>—</td><td data-cell-label=\"Coût\"><span class=\"card-cell-label\">Coût</span><div><span>Entrée · Tokens en entrée</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Sortie · Tokens en sortie</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Lecture du cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache, 1 h</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>seconde d’audio en entrée</th><td data-cell-label=\"Barème tarifaire\"><span class=\"card-cell-label\">Barème tarifaire</span>—</td><td data-cell-label=\"Unité de facturation\"><span class=\"card-cell-label\">Unité de facturation</span>par seconde d’audio en entrée</td><td data-cell-label=\"Coût\"><span class=\"card-cell-label\">Coût</span><div><span>Entrée · seconde d’audio en entrée</span> <b>$0.0001</b> <span class=\"price-unit\">par seconde d’audio en entrée</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. <a href=\"/docs/fr-be/billing/reserve/\">Fonctionnement de la réservation et du débit →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exemples de requêtes</h3><h4>Ailoot Ultra · Transcription audio</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes du code\"><button class=\"cg-tab\" id=\"model-code-1834-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1834-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · fichier WAV réel et résultat d’origine complet</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copier le code\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1834-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1834-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;meta/muse-voice-transcribe-1.0&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#39;}}\nPath(&#39;request.json&#39;).write_text(json.dumps(request, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Recevoir et enregistrer les résultats</h3><h4>Ailoot Ultra · Transcription audio</h4><p class=\"note-s\">Corps de réponse d’origine complet, état et en-têtes transmis. Ce gestionnaire n’ajoute aucune structure JSON universelle, aucun champ de texte ni aucune enveloppe de tâche.</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>Conserver tous les résultats terminés</h5><p class=\"note-s\">Conservez chaque réponse, fichier et partie de contenu renvoyés dans leur intégralité.</p><p class=\"note-s\">Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Si la réponse d’origine doit être vérifiée</h5><p class=\"note-s\">Conservez la valeur réelle X-Client-Request-ID et la réponse complète. Consultez les ressources d’origine dont vous êtes propriétaire et leurs URL de contenu signées exactes ; ne soumettez jamais de nouveau une création incertaine.</p></div><details class=\"card-about\" data-output-fields><summary>Champs de la réponse</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Champ</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">text (when present)</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Erreurs et étapes suivantes</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Réponse</th><th>Condition</th><th>Étape suivante</th></tr></thead><tbody><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Le corps JSON ou l’ID canonique explicite du modèle est invalide.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez la réponse et corrigez le champ indiqué de la requête.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>La clé API Ailoot est invalide.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Utilisez votre clé API Ailoot autorisée.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>403 · <code>permission_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Le groupe de la clé n’autorise pas cette méthode.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez les détails de l’erreur renvoyés.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>La méthode sélectionnée ne dispose d’aucune route autorisée.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez les détails de l’erreur renvoyés.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Le tarif accepté ne permet pas d’obtenir la quantité d’entrée ou la borne requise.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez la réponse ; utilisez la représentation d’entrée requise par le tarif accepté.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>503 · <code></code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Le stockage, la route, le tarif de la méthode ou la réservation requis est indisponible.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez la réponse d’origine complète. Une réservation incertaine n’autorise pas une nouvelle soumission.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>502 · <code>server_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Le résultat, la consommation ou le règlement d’origine nécessite une vérification.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez l’ID réel de la requête et la réponse d’origine. Consultez l’enregistrement existant dont vous êtes propriétaire ; ne soumettez pas de nouveau la création.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias du modèle</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=meta%2Fmuse-voice-transcribe-1.0&amp;route=Ultra&amp;caller=meta%2Fmuse-voice-transcribe-1.0&amp;fmt=transcriptions\"><code>meta/muse-voice-transcribe-1.0</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=meta%2Fmuse-voice-transcribe-1.0&amp;route=Ultra&amp;caller=meta%2Fmuse-voice-transcribe-1.0&amp;fmt=transcriptions\"><code>meta/muse-voice-transcribe-1.0</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "meta/muse-voice-transcribe-1.0",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|meta%2Fmuse-voice-transcribe-1.0",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "Le corps JSON ou l’ID canonique explicite du modèle est invalide.",
                "http_status": 400,
                "recovery": "Conservez la réponse et corrigez le champ indiqué de la requête.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "La clé API Ailoot est invalide.",
                "http_status": 401,
                "recovery": "Utilisez votre clé API Ailoot autorisée.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Le groupe de la clé n’autorise pas cette méthode.",
                "http_status": 403,
                "recovery": "Conservez les détails de l’erreur renvoyés.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "La méthode sélectionnée ne dispose d’aucune route autorisée.",
                "http_status": 404,
                "recovery": "Conservez les détails de l’erreur renvoyés.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Le tarif accepté ne permet pas d’obtenir la quantité d’entrée ou la borne requise.",
                "http_status": 422,
                "recovery": "Conservez la réponse ; utilisez la représentation d’entrée requise par le tarif accepté.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Le stockage, la route, le tarif de la méthode ou la réservation requis est indisponible.",
                "http_status": 503,
                "recovery": "Conservez la réponse d’origine complète. Une réservation incertaine n’autorise pas une nouvelle soumission.",
                "type": null
              },
              {
                "code": null,
                "condition": "Le résultat, la consommation ou le règlement d’origine nécessite une vérification.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conservez l’ID réel de la requête et la réponse d’origine. Consultez l’enregistrement existant dont vous êtes propriétaire ; ne soumettez pas de nouveau la création.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conservez la valeur réelle X-Client-Request-ID et la réponse complète. Consultez les ressources d’origine dont vous êtes propriétaire et leurs URL de contenu signées exactes ; ne soumettez jamais de nouveau une création incertaine."
            },
            "outputs": {
              "all_results": "Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Corps de réponse d’origine complet, état et en-têtes transmis. Ce gestionnaire n’ajoute aucune structure JSON universelle, aucun champ de texte ni aucune enveloppe de tâche."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "meta/muse-voice-transcribe-1.0"
                ],
                "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": [
                    "meta/muse-voice-transcribe-1.0"
                  ],
                  "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": "meta/muse-voice-transcribe-1.0"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "L’exemple lit votre fichier PCM WAV réel et non vide, encode l’intégralité de ses octets en base64 et transmet input_audio.format avec la valeur wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id exact d’un enregistrement média existant dont vous êtes propriétaire",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'meta/muse-voice-transcribe-1.0', '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.0001
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "meta/muse-voice-transcribe-1.0",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "604f83cc9f0bd45937cc15ae60a76a0a156864e5d56fc754688ae620af7f2269",
    "input_html_sha256": "f84bd9e76bfca05452cb31b9fcebd3980d3e7110525e1c556ad336998fad61e4",
    "private_audit_sha256": "e4b5822424073a3585c92c0547a7f117bb75abe669c22bafc4b0d397abb92745",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fr-be/meta-muse-voice-transcribe-1-0/",
    "description": "Muse Voice Transcribe 1.0 est le modèle de transcription vocale de Meta destiné à la dictée, à la détection des tours de parole et aux transcriptions distinguant les locuteurs. Il prend en charge les indications de langue et de vocabulaire, l’alternance entre langues et le repérage temporel par tour de parole, avec des procédures distinctes pour les enregistrements et l’audio en direct.",
    "locale": "fr-be",
    "md_url": "https://ailoot.ai/models/fr-be/meta-muse-voice-transcribe-1-0/index.md",
    "title": "Meta: Muse Voice Transcribe 1.0 — Ailoot",
    "url": "https://ailoot.ai/models/fr-be/meta-muse-voice-transcribe-1-0/"
  },
  "rawModel": {
    "about": "Muse Voice Transcribe 1.0 est le modèle de perception audio de Meta destiné à transcrire la parole, à détecter les limites des énoncés et à attribuer les tours de parole aux locuteurs. Il appartient à la famille de modèles Muse Spark et réunit dans un même modèle la reconnaissance vocale, la diarisation et la détection des fins de tours de parole. Il produit le texte reconnu, accompagné des informations temporelles et des indications de locuteur disponibles dans le mode choisi.\n\nLe modèle traite l’audio par blocs de 80 millisecondes et décide s’il doit continuer à écouter ou émettre du texte. Son délai adaptatif lui permet d’attendre des données audio supplémentaires lorsqu’un mot est plus difficile à déterminer. Il produit ainsi du texte provisoire pendant que la parole arrive, puis des résultats de transcription terminés. Considérez l’hypothèse provisoire et le tour de parole terminé comme deux étapes distinctes de l’écoute.\n\nVous pouvez choisir parmi trois modes. Push-to-talk est le mode par défaut pour un énoncé unique et maîtrisé, par exemple une requête vocale ou un court passage dicté. Endpointing laisse le modèle détecter les limites des tours de parole et renvoyer une transcription terminée pour chaque segment détecté. Diarization attribue la parole reconnue à des étiquettes de locuteur ; ce mode vise les enregistrements à plusieurs locuteurs plutôt que les échanges de commandes vocales les plus rapides.\n\nPour un enregistrement, la procédure de transcription de fichier renvoie une transcription complète en une seule requête. Le résultat par défaut est un objet JSON contenant la transcription et la durée de l’audio, avec un tableau turns dans les modes Endpointing et Diarization. Chaque tour de parole peut comporter un identifiant, un début et une fin en millisecondes ainsi que son texte reconnu. Les étiquettes de locuteur sont présentes en mode Diarization. Push-to-talk produit la transcription complète sans tours de parole détectés dans ce tableau. L’interface du fabricant pour les fichiers enregistrés peut également renvoyer du texte brut ou un flux d’événements de transcription. Le texte brut conserve les tours de parole détectés sur des lignes distinctes et peut inclure les étiquettes de locuteur ; un flux d’événements se termine après son dernier événement, sans récapitulatif JSON séparé. Son mode provisoire delta renvoie le texte de façon incrémentale, tandis que l’événement de transcription finale contient la formulation complète.\n\nPréparez un fichier RIFF/WAVE contenant un signal PCM mono à entiers de 16 bits, échantillonné à 16 ou 24 kHz. La fréquence native du modèle est de 24 kHz et l’interface accepte également 16 kHz. Convertissez les autres conteneurs ou encodages dans cette forme WAV prise en charge avant de fournir un enregistrement. Le profil de transcription de fichier autorise jusqu’à 10 minutes d’audio et un corps de requête total de 32 Mo. Conservez l’enregistrement original et toute conversion avec la transcription renvoyée, afin de pouvoir la vérifier ensuite à l’écoute.\n\nLa procédure d’audio en direct utilise du PCM brut mono, signé, de 16 bits, au format petit-boutiste, à 16 ou 24 kHz, envoyé approximativement au rythme du temps réel. Sa durée de session documentée est de 60 minutes. Meta décrit une entrée audio native dépassant une heure ; les limites documentées des fichiers et des sessions en direct restent des limites d’interface distinctes. Choisissez la procédure de fichier enregistré ou celle de direct selon que l’audio est déjà complet ou encore en cours de capture, et conservez les résultats de chaque session avec les segments d’entrée correspondants.\n\nMuse Voice Transcribe a été entraîné sur plus de 70 langues, tandis que l’interface de reconnaissance documentée énumère 25 langues prises en charge. Elles comprennent l’anglais, le français, l’allemand, l’espagnol, l’arabe, le chinois mandarin, l’hindi, le japonais, le coréen, l’italien et le portugais. Le modèle reconnaît l’alternance entre langues au sein d’une phrase ou entre les phrases. Une indication de langue peut nommer les langues attendues dans l’audio, mais elle oriente la reconnaissance sans imposer une langue unique à la transcription.\n\nLes indications de vocabulaire facilitent la reconnaissance des termes de produit, des sigles, des noms ou des lieux importants dans un enregistrement. Fournissez les mots réels et les graphies que vous vous attendez à entendre. La liste de mots-clés oriente la reconnaissance sans garantir une graphie exacte ; vérifiez donc les termes décisifs à partir de l’audio. Les indications de langue et les mots-clés sont choisis au début de la transcription ; adaptez-les à l’enregistrement concerné plutôt que d’en modifier le sens pendant une session.\n\nLe modèle prend en charge la diarisation de conversations réunissant plus de 20 locuteurs. Des étiquettes comme A et B identifient les locuteurs au sein d’une transcription. Elles ne constituent pas des noms vérifiés et n’établissent pas qu’une étiquette désigne la même personne dans une autre session. Pour une tâche d’analyse d’une réunion originale, demandez des tours de parole attribués aux locuteurs, conservez l’enregistrement et utilisez les étiquettes pour organiser la discussion avant d’associer de vrais noms de participants dans la procédure qui l’entoure.\n\nLes transcriptions provisoires en direct peuvent changer à mesure que la parole arrive. En mode cumulatif, chaque résultat provisoire remplace l’hypothèse précédente au lieu d’en ajouter une copie. Une fin de parole détectée marque une limite, tandis que le résultat du tour de parole terminé fournit le texte définitif et peut différer du dernier résultat provisoire. Conservez les tours de parole qui se chevauchent avec leurs identifiants respectifs et récupérez les résultats terminés avant de considérer la transcription comme achevée. Lorsque l’entrée en direct prend fin, signalez la fin de l’entrée et continuez à recevoir jusqu’à ce que le système producteur ait transmis tous les résultats en attente. Fermer immédiatement la connexion peut faire perdre ces résultats ; une limite de parole détectée termine un tour de parole, pas la session entière.\n\nLe repérage temporel se fait au niveau des tours de parole. Ce profil ne fournit ni horodatages mot à mot ni scores de confiance, et la progression du traitement audio n’est pas l’horodatage d’un mot particulier. La détection d’événements sonores, la détection des émotions et la remise en forme de la transcription se situent également hors du profil de sortie documenté. Utilisez les intervalles renvoyés pour construire une chronologie des locuteurs ou vérifier des segments, et conservez les mots reconnus si une étape de révision distincte crée ensuite des notes plus lisibles.\n\nLes livrables utiles comprennent un passage dicté complet, une transcription de requête vocale, une conversation attribuée aux locuteurs ou une chronologie des énoncés. Comparez les noms, les nombres et les termes techniques avec l’enregistrement original, préservez les associations entre le mode et les informations temporelles, et gardez les tours de parole complets à disposition pour vérification. La transcription établit ce qui a été reconnu dans l’audio ; répondre à une question orale, la traduire ou la transformer en compte rendu de réunion relève d’une étape ultérieure de l’application.",
    "alias_of": null,
    "aliases": [],
    "author": "Meta",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "La tarification complète de la configuration figure dans les détails."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "meta/muse-voice-transcribe-1.0",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "Le corps JSON ou l’ID canonique explicite du modèle est invalide.",
                "http_status": 400,
                "recovery": "Conservez la réponse et corrigez le champ indiqué de la requête.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "La clé API Ailoot est invalide.",
                "http_status": 401,
                "recovery": "Utilisez votre clé API Ailoot autorisée.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Le groupe de la clé n’autorise pas cette méthode.",
                "http_status": 403,
                "recovery": "Conservez les détails de l’erreur renvoyés.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "La méthode sélectionnée ne dispose d’aucune route autorisée.",
                "http_status": 404,
                "recovery": "Conservez les détails de l’erreur renvoyés.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Le tarif accepté ne permet pas d’obtenir la quantité d’entrée ou la borne requise.",
                "http_status": 422,
                "recovery": "Conservez la réponse ; utilisez la représentation d’entrée requise par le tarif accepté.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Le stockage, la route, le tarif de la méthode ou la réservation requis est indisponible.",
                "http_status": 503,
                "recovery": "Conservez la réponse d’origine complète. Une réservation incertaine n’autorise pas une nouvelle soumission.",
                "type": null
              },
              {
                "code": null,
                "condition": "Le résultat, la consommation ou le règlement d’origine nécessite une vérification.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conservez l’ID réel de la requête et la réponse d’origine. Consultez l’enregistrement existant dont vous êtes propriétaire ; ne soumettez pas de nouveau la création.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conservez la valeur réelle X-Client-Request-ID et la réponse complète. Consultez les ressources d’origine dont vous êtes propriétaire et leurs URL de contenu signées exactes ; ne soumettez jamais de nouveau une création incertaine."
            },
            "outputs": {
              "all_results": "Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Corps de réponse d’origine complet, état et en-têtes transmis. Ce gestionnaire n’ajoute aucune structure JSON universelle, aucun champ de texte ni aucune enveloppe de tâche."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "meta/muse-voice-transcribe-1.0"
                ],
                "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": [
                    "meta/muse-voice-transcribe-1.0"
                  ],
                  "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": "meta/muse-voice-transcribe-1.0"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "L’exemple lit votre fichier PCM WAV réel et non vide, encode l’intégralité de ses octets en base64 et transmet input_audio.format avec la valeur wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id exact d’un enregistrement média existant dont vous êtes propriétaire",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'meta/muse-voice-transcribe-1.0', '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.0001
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "meta/muse-voice-transcribe-1.0",
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra"
      }
    ],
    "name": "Meta: Muse Voice Transcribe 1.0",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Muse Voice Transcribe 1.0 est le modèle de transcription vocale de Meta destiné à la dictée, à la détection des tours de parole et aux transcriptions distinguant les locuteurs. Il prend en charge les indications de langue et de vocabulaire, l’alternance entre langues et le repérage temporel par tour de parole, avec des procédures distinctes pour les enregistrements et l’audio en direct."
  },
  "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": "Muse Voice Transcribe 1.0 est le modèle de transcription vocale de Meta destiné à la dictée, à la détection des tours de parole et aux transcriptions distinguant les locuteurs. Il prend en charge les indications de langue et de vocabulaire, l’alternance entre langues et le repérage temporel par tour de parole, avec des procédures distinctes pour les enregistrements et l’audio en direct.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "454883a394a38617ec46a7159a67e3e417a403eb8704b131fbde8f5a17ae32ce",
    "renderer_sha256": "9d578ff8df69ef70403308c9943a1179a11b94114c10b333bf1c012005d4a7f4"
  },
  "sourceRevision": "237b5fb849b32474b589e131bd853555bbda31ba4ed2ce2d5ea9470168cf7021"
}
