{
  "aboutHtml": "<p>MiniMax Speech 01 Turbo convertit le texte fourni en audio parlé. Son ID exact de modèle Ailoot est minimax/speech-01-turbo, et son sélecteur de synthèse documenté est speech-01-turbo. Utilisez la méthode audio_speech pour une voix off, une leçon orale, une explication de produit ou une ébauche de narration dont vous avez déjà le texte. L’entrée est le passage à lire, et le résultat est une parole synthétisée dans le format audio sélectionné.</p><p>Préparez le texte comme des mots destinés à être prononcés, avec une ponctuation qui reflète le phrasé. Pour une ébauche de narration, fournissez l’ordre définitif des phrases et l’orthographe des noms avant de choisir les réglages de voix. Gardez les indications de mise en scène distinctes du passage parlé, sauf si ces mots doivent figurer dans l’enregistrement. Écoutez les noms, les nombres et les transitions importants dans le résultat et comparez-les au texte source.</p><p>Le texte doit faire moins de 10 000 caractères. Le contrat de synthèse publié exige model et text. Pour un contenu plus long, préparez des passages dans cette limite et conservez leur ordre pour le montage. Le profil synchrone utilise une réponse complète, avec stream=false comme valeur par défaut documentée. L’API générale décrit aussi des options de flux, mais la méthode sélectionnée sur cette fiche est le flux de travail vocal synchrone.</p><p>voice_setting sélectionne un voice_id disponible et contrôle speed, vol et pitch. La plage documentée de speed va de 0,5 à 2, avec 1 par défaut. vol doit être supérieur à 0 et au plus égal à 10, avec 1 par défaut; pitch est un entier de -12 à 12, avec 0 par défaut. Mettez chaque réglage au service du passage : comparez le rythme de lecture et l’audibilité de l’enregistrement réel au lieu de supposer qu’un changement numérique produit une interprétation particulière.</p><p>Les valeurs documentées de emotion sont happy, sad, angry, fearful, disgusted, surprised, calm et fluent. Le texte peut aussi guider l’émotion du modèle. text_normalization est un paramètre booléen distinct de préparation de la lecture des nombres en chinois et en anglais, et latex_read contrôle la lecture des formules LaTeX; les deux valent false par défaut. pronunciation_dict.tone peut contenir des règles documentées de remplacement de prononciation. Vérifiez un nom ou une expression spécialisée dans l’audio obtenu avant de l’utiliser dans une narration plus longue.</p><p>audio_setting.format accepte mp3, pcm, flac ou wav, avec mp3 par défaut. sample_rate accepte 8000, 16000, 22050, 24000, 32000 ou 44100 et vaut 32000 par défaut. bitrate accepte 32000, 64000, 128000 ou 256000, vaut 128000 par défaut et s’applique au MP3. channel sélectionne 1 pour le mono ou 2 pour la stéréo, avec 1 par défaut. Gardez ces choix avec le passage source afin de pouvoir vérifier le fichier renvoyé en fonction de sa destination de montage ou de lecture.</p><p>Les paramètres supplémentaires documentés comprennent language_boost, dont les choix nommés exacts incluent English, Russian, Chinese et Chinese,Yue; choisissez une valeur réellement répertoriée pour le passage. timber_weights peut combiner des entrées voice_id existantes avec des valeurs entières de weight de 1 à 100. Les valeurs publiées de sound_effects sont spacious_echo, auditorium_echo, lofi_telephone et robotic. Ce sont des paramètres facultatifs pour façonner une voix sélectionnée; enregistrez leurs réglages réels lorsque vous comparez les lectures.</p><p>Le résultat synchrone contient la parole générée. output_format sélectionne url ou hex et vaut hex par défaut dans le schéma de synthèse. Téléchargez le fichier désigné par un résultat URL, ou décodez un résultat hex en octets audio avant la lecture. Conservez les métadonnées audio renvoyées, notamment le format, la fréquence d’échantillonnage, le nombre de canaux et la taille, avec l’enregistrement. subtitle_enable vaut false par défaut et ne s’applique qu’aux sorties sans flux lorsqu’il est activé; la source n’établit pas de format de fichier de sous-titres pour ce profil.</p><p>Enregistrez ensemble le passage source, l’ID exact du modèle, le choix de voix et l’enregistrement terminé. Examinez la lecture entière pour vérifier le texte souhaité, les pauses et les réglages d’interprétation choisis avant de l’intégrer à une vidéo, une leçon ou un guide parlé. Si la réponse est incomplète, conservez son identité de requête d’origine et les informations renvoyées pour rapprochement avant de demander un autre enregistrement. Une révision ultérieure peut modifier une phrase précise ou un réglage de voix tout en conservant le reste du script pour une comparaison claire.</p>",
  "aboutText": "MiniMax Speech 01 Turbo convertit le texte fourni en audio parlé. Son ID exact de modèle Ailoot est minimax/speech-01-turbo, et son sélecteur de synthèse documenté est speech-01-turbo. Utilisez la méthode audio_speech pour une voix off, une leçon orale, une explication de produit ou une ébauche de narration dont vous avez déjà le texte. L’entrée est le passage à lire, et le résultat est une parole synthétisée dans le format audio sélectionné.\n\nPréparez le texte comme des mots destinés à être prononcés, avec une ponctuation qui reflète le phrasé. Pour une ébauche de narration, fournissez l’ordre définitif des phrases et l’orthographe des noms avant de choisir les réglages de voix. Gardez les indications de mise en scène distinctes du passage parlé, sauf si ces mots doivent figurer dans l’enregistrement. Écoutez les noms, les nombres et les transitions importants dans le résultat et comparez-les au texte source.\n\nLe texte doit faire moins de 10 000 caractères. Le contrat de synthèse publié exige model et text. Pour un contenu plus long, préparez des passages dans cette limite et conservez leur ordre pour le montage. Le profil synchrone utilise une réponse complète, avec stream=false comme valeur par défaut documentée. L’API générale décrit aussi des options de flux, mais la méthode sélectionnée sur cette fiche est le flux de travail vocal synchrone.\n\nvoice_setting sélectionne un voice_id disponible et contrôle speed, vol et pitch. La plage documentée de speed va de 0,5 à 2, avec 1 par défaut. vol doit être supérieur à 0 et au plus égal à 10, avec 1 par défaut; pitch est un entier de -12 à 12, avec 0 par défaut. Mettez chaque réglage au service du passage : comparez le rythme de lecture et l’audibilité de l’enregistrement réel au lieu de supposer qu’un changement numérique produit une interprétation particulière.\n\nLes valeurs documentées de emotion sont happy, sad, angry, fearful, disgusted, surprised, calm et fluent. Le texte peut aussi guider l’émotion du modèle. text_normalization est un paramètre booléen distinct de préparation de la lecture des nombres en chinois et en anglais, et latex_read contrôle la lecture des formules LaTeX; les deux valent false par défaut. pronunciation_dict.tone peut contenir des règles documentées de remplacement de prononciation. Vérifiez un nom ou une expression spécialisée dans l’audio obtenu avant de l’utiliser dans une narration plus longue.\n\naudio_setting.format accepte mp3, pcm, flac ou wav, avec mp3 par défaut. sample_rate accepte 8000, 16000, 22050, 24000, 32000 ou 44100 et vaut 32000 par défaut. bitrate accepte 32000, 64000, 128000 ou 256000, vaut 128000 par défaut et s’applique au MP3. channel sélectionne 1 pour le mono ou 2 pour la stéréo, avec 1 par défaut. Gardez ces choix avec le passage source afin de pouvoir vérifier le fichier renvoyé en fonction de sa destination de montage ou de lecture.\n\nLes paramètres supplémentaires documentés comprennent language_boost, dont les choix nommés exacts incluent English, Russian, Chinese et Chinese,Yue; choisissez une valeur réellement répertoriée pour le passage. timber_weights peut combiner des entrées voice_id existantes avec des valeurs entières de weight de 1 à 100. Les valeurs publiées de sound_effects sont spacious_echo, auditorium_echo, lofi_telephone et robotic. Ce sont des paramètres facultatifs pour façonner une voix sélectionnée; enregistrez leurs réglages réels lorsque vous comparez les lectures.\n\nLe résultat synchrone contient la parole générée. output_format sélectionne url ou hex et vaut hex par défaut dans le schéma de synthèse. Téléchargez le fichier désigné par un résultat URL, ou décodez un résultat hex en octets audio avant la lecture. Conservez les métadonnées audio renvoyées, notamment le format, la fréquence d’échantillonnage, le nombre de canaux et la taille, avec l’enregistrement. subtitle_enable vaut false par défaut et ne s’applique qu’aux sorties sans flux lorsqu’il est activé; la source n’établit pas de format de fichier de sous-titres pour ce profil.\n\nEnregistrez ensemble le passage source, l’ID exact du modèle, le choix de voix et l’enregistrement terminé. Examinez la lecture entière pour vérifier le texte souhaité, les pauses et les réglages d’interprétation choisis avant de l’intégrer à une vidéo, une leçon ou un guide parlé. Si la réponse est incomplète, conservez son identité de requête d’origine et les informations renvoyées pour rapprochement avant de demander un autre enregistrement. Une révision ultérieure peut modifier une phrase précise ou un réglage de voix tout en conservant le reste du script pour une comparaison claire.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "a8bf857e7dba92c3772291c29f2cbd88bab62429600f4c5f99b749de06371cf8",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fr-ca",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">MM</span><h2 id=\"sheet-title\">MiniMax: Speech 01 Turbo</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fermer\">×</button></div><div class=\"idline\"><span>MiniMax /</span><code>minimax/speech-01-turbo</code><button type=\"button\" id=\"copy-id\">Copier l’ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Rubriques de la fiche modèle\"><button type=\"button\" data-card-jump=\"overview\">Pour commencer</button><button type=\"button\" data-card-jump=\"methods\">Entrées et méthodes</button><button type=\"button\" data-card-jump=\"pricing\">Tarifs</button><button type=\"button\" data-card-jump=\"examples\">Exemples</button><button type=\"button\" data-card-jump=\"results\">Résultats</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Méthodes API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|minimax%2Fspeech-01-turbo\">Synthèse vocale</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Pour commencer</h3><p class=\"mdesc-full\">MiniMax Speech 01 Turbo lit le texte fourni sous forme de parole générée au moyen d’une requête audio_speech synchrone. Il accepte un texte de moins de 10 000 caractères et propose des réglages de voix, de rythme et de hauteur avec une sortie MP3, PCM, FLAC ou WAV.</p><dl class=\"card-io\" data-card-io><div><dt>Entrées acceptées</dt><dd>Texte</dd></div><div><dt>Résultats</dt><dd>Audio</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>MiniMax Speech 01 Turbo convertit le texte fourni en audio parlé. Son ID exact de modèle Ailoot est minimax/speech-01-turbo, et son sélecteur de synthèse documenté est speech-01-turbo. Utilisez la méthode audio_speech pour une voix off, une leçon orale, une explication de produit ou une ébauche de narration dont vous avez déjà le texte. L’entrée est le passage à lire, et le résultat est une parole synthétisée dans le format audio sélectionné.</p><p>Préparez le texte comme des mots destinés à être prononcés, avec une ponctuation qui reflète le phrasé. Pour une ébauche de narration, fournissez l’ordre définitif des phrases et l’orthographe des noms avant de choisir les réglages de voix. Gardez les indications de mise en scène distinctes du passage parlé, sauf si ces mots doivent figurer dans l’enregistrement. Écoutez les noms, les nombres et les transitions importants dans le résultat et comparez-les au texte source.</p><p>Le texte doit faire moins de 10 000 caractères. Le contrat de synthèse publié exige model et text. Pour un contenu plus long, préparez des passages dans cette limite et conservez leur ordre pour le montage. Le profil synchrone utilise une réponse complète, avec stream=false comme valeur par défaut documentée. L’API générale décrit aussi des options de flux, mais la méthode sélectionnée sur cette fiche est le flux de travail vocal synchrone.</p><p>voice_setting sélectionne un voice_id disponible et contrôle speed, vol et pitch. La plage documentée de speed va de 0,5 à 2, avec 1 par défaut. vol doit être supérieur à 0 et au plus égal à 10, avec 1 par défaut; pitch est un entier de -12 à 12, avec 0 par défaut. Mettez chaque réglage au service du passage : comparez le rythme de lecture et l’audibilité de l’enregistrement réel au lieu de supposer qu’un changement numérique produit une interprétation particulière.</p><p>Les valeurs documentées de emotion sont happy, sad, angry, fearful, disgusted, surprised, calm et fluent. Le texte peut aussi guider l’émotion du modèle. text_normalization est un paramètre booléen distinct de préparation de la lecture des nombres en chinois et en anglais, et latex_read contrôle la lecture des formules LaTeX; les deux valent false par défaut. pronunciation_dict.tone peut contenir des règles documentées de remplacement de prononciation. Vérifiez un nom ou une expression spécialisée dans l’audio obtenu avant de l’utiliser dans une narration plus longue.</p><p>audio_setting.format accepte mp3, pcm, flac ou wav, avec mp3 par défaut. sample_rate accepte 8000, 16000, 22050, 24000, 32000 ou 44100 et vaut 32000 par défaut. bitrate accepte 32000, 64000, 128000 ou 256000, vaut 128000 par défaut et s’applique au MP3. channel sélectionne 1 pour le mono ou 2 pour la stéréo, avec 1 par défaut. Gardez ces choix avec le passage source afin de pouvoir vérifier le fichier renvoyé en fonction de sa destination de montage ou de lecture.</p><p>Les paramètres supplémentaires documentés comprennent language_boost, dont les choix nommés exacts incluent English, Russian, Chinese et Chinese,Yue; choisissez une valeur réellement répertoriée pour le passage. timber_weights peut combiner des entrées voice_id existantes avec des valeurs entières de weight de 1 à 100. Les valeurs publiées de sound_effects sont spacious_echo, auditorium_echo, lofi_telephone et robotic. Ce sont des paramètres facultatifs pour façonner une voix sélectionnée; enregistrez leurs réglages réels lorsque vous comparez les lectures.</p><p>Le résultat synchrone contient la parole générée. output_format sélectionne url ou hex et vaut hex par défaut dans le schéma de synthèse. Téléchargez le fichier désigné par un résultat URL, ou décodez un résultat hex en octets audio avant la lecture. Conservez les métadonnées audio renvoyées, notamment le format, la fréquence d’échantillonnage, le nombre de canaux et la taille, avec l’enregistrement. subtitle_enable vaut false par défaut et ne s’applique qu’aux sorties sans flux lorsqu’il est activé; la source n’établit pas de format de fichier de sous-titres pour ce profil.</p><p>Enregistrez ensemble le passage source, l’ID exact du modèle, le choix de voix et l’enregistrement terminé. Examinez la lecture entière pour vérifier le texte souhaité, les pauses et les réglages d’interprétation choisis avant de l’intégrer à une vidéo, une leçon ou un guide parlé. Si la réponse est incomplète, conservez son identité de requête d’origine et les informations renvoyées pour rapprochement avant de demander un autre enregistrement. Une révision ultérieure peut modifier une phrase précise ou un réglage de voix tout en conservant le reste du script pour une comparaison claire.</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 · Speech</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Entrée</dt><dd><code>text</code></dd></div><div><dt>Sortie</dt><dd><code>audio</code></dd></div><div><dt>Format de sortie</dt><dd>mp3,pcm,flac,wav</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>minimax/speech-01-turbo</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\">text</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></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\">stream</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>boolean</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>false</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>false</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">voice_setting</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>Facultatif</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><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">voice_setting.voice_id</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>Facultatif</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><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">voice_setting.speed</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>number</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>Minimum: 0,5</div><div>Maximum: 2</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>1</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">voice_setting.vol</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>number</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>Minimum: 0</div><div>Maximum: 10</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>1</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">voice_setting.pitch</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>Minimum: -12</div><div>Maximum: 12</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>0</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">voice_setting.emotion</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>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>happy, sad, angry, fearful, disgusted, surprised, calm, fluent</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\">voice_setting.text_normalization</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>boolean</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</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=\"known\"><span class=\"card-cell-label\">Par défaut</span>false</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">voice_setting.latex_read</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>boolean</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</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=\"known\"><span class=\"card-cell-label\">Par défaut</span>false</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">audio_setting</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>Facultatif</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><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">audio_setting.sample_rate</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>8 000, 16 000, 22 050, 24 000, 32 000, 44 100</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>32 000</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">audio_setting.bitrate</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>32 000, 64 000, 128 000, 256 000</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>128 000</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">audio_setting.format</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>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>mp3, pcm, flac, wav</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>mp3</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">audio_setting.channel</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>1, 2</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>1</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">audio_setting.force_cbr</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>boolean</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</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=\"known\"><span class=\"card-cell-label\">Par défaut</span>false</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">pronunciation_dict</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>Facultatif</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><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">pronunciation_dict.tone</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>array</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</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><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">timber_weights</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>array</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</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><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">language_boost</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>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>Chinese, Chinese,Yue, English, Arabic, Russian, Spanish, French, Portuguese, German, Turkish, Dutch, Ukrainian, Vietnamese, Indonesian, Japanese, Italian, Korean, Thai, Polish, Romanian, Greek, Czech, Finnish, Hindi, Bulgarian, Danish, Hebrew, Malay, Persian, Slovak, Swedish, Croatian, Filipino, Hungarian, Norwegian, Slovenian, Catalan, Nynorsk, Tamil, Afrikaans, auto</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\">voice_modify</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>Facultatif</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><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">voice_modify.pitch</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>-100, 100</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\">voice_modify.intensity</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>-100, 100</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\">voice_modify.timbre</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>-100, 100</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\">voice_modify.sound_effects</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>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>spacious_echo, auditorium_echo, lofi_telephone, robotic</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\">subtitle_enable</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>boolean</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</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=\"known\"><span class=\"card-cell-label\">Par défaut</span>false</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">output_format</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>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>url, hex</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>hex</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">aigc_watermark</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>boolean</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</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=\"known\"><span class=\"card-cell-label\">Par défaut</span>false</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, text</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>optional</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>stream, voice_setting, audio_setting, pronunciation_dict, timber_weights, language_boost, voice_modify, subtitle_enable, output_format, aigc_watermark</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>text</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>conditions</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>Use text, not input or contents. Fewer than 10000 Unicode characters; stream is false or omitted., PCM is raw audio with its returned sample geometry; do not invent a WAV header or bit depth.</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/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarifs</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.</p><dl data-price-conditions><dt>Mode rapide</dt><dd>Non précisé <span class=\"note-s\">Lorsque le mode rapide est sélectionné</span></dd><dt>Mode Flex</dt><dd>Non précisé <span class=\"note-s\">Lorsque le mode flex est sélectionné</span></dd><dt>Effort de raisonnement maximal</dt><dd>Non précisé <span class=\"note-s\">Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifs Ailoot</h4><h4>Prix par configuration</h4><p class=\"note-s\">Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuration</th><th>Barème tarifaire</th><th>Unité de facturation</th><th>Coût</th></tr></thead><tbody><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>Tarifs de base des jetons</th><td data-cell-label=\"Barème tarifaire\"><span class=\"card-cell-label\">Barème tarifaire</span>Tarif de base</td><td data-cell-label=\"Unité de facturation\"><span class=\"card-cell-label\">Unité de facturation</span>—</td><td data-cell-label=\"Coût\"><span class=\"card-cell-label\">Coût</span><div><span>Entrée · Jetons en entrée</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Sortie · Jetons en sortie</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Entrée · Lecture du cache</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Entrée · Écriture dans le cache</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Entrée · Écriture dans le cache, 1 h</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div></td></tr><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>caractère 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 caractère en entrée</td><td data-cell-label=\"Coût\"><span class=\"card-cell-label\">Coût</span><div><span>Entrée · caractère en entrée</span> <b>$0.00006</b> <span class=\"price-unit\">par caractère en entrée</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. <a href=\"/docs/fr-ca/billing/reserve/\">Fonctionnement de la réservation et du débit →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exemples de requêtes</h3><h4>Ailoot Ultra · Speech</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-27-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-27-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · créez une seule fois et conservez le résultat 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-27-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-27-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;minimax/speech-01-turbo&quot;, &quot;text&quot;: &quot;Hello, this is a short speech example.&quot;, &quot;stream&quot;: false, &quot;output_format&quot;: &quot;hex&quot;, &quot;audio_setting&quot;: {&quot;format&quot;: &quot;mp3&quot;, &quot;sample_rate&quot;: 32000, &quot;channel&quot;: 1}}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\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 result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\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 · Speech</h4><p class=\"note-s\">mp3,pcm,flac,wav</p><ul class=\"card-result-paths\"><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\">Retain the full JSON. Decode every hex audio byte or use the returned owned URL. Keep the actual format, sample rate, channel count and usage_characters.</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\">Preserve the original response, headers and X-Client-Request-ID. An uncertain outcome does not authorize another creation.</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\">data.audio</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">extra_info</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">trace_id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</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=minimax%2Fspeech-01-turbo&amp;route=Ultra&amp;caller=minimax%2Fspeech-01-turbo&amp;fmt=speech\"><code>minimax/speech-01-turbo</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=minimax%2Fspeech-01-turbo&amp;route=Ultra&amp;caller=minimax%2Fspeech-01-turbo&amp;fmt=speech\"><code>minimax/speech-01-turbo</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "minimax/speech-01-turbo",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "minimax/speech-01-turbo",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|minimax%2Fspeech-01-turbo",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "example_body": {
              "audio_setting": {
                "channel": 1,
                "format": "mp3",
                "sample_rate": 32000
              },
              "model": "minimax/speech-01-turbo",
              "output_format": "hex",
              "stream": false,
              "text": "Hello, this is a short speech example."
            },
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets",
                  "query": {
                    "cursor": "actual returned next_cursor, when present",
                    "family": "audio"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/audio/speech"
              },
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned content_url. Refresh an expired link by reading the same existing asset."
              },
              "status": [],
              "unknown": "Preserve the original response, headers and X-Client-Request-ID. An uncertain outcome does not authorize another creation.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Retain the full JSON. Decode every hex audio byte or use the returned owned URL. Keep the actual format, sample rate, channel count and usage_characters.",
              "family": "audio",
              "fields": [
                {
                  "name": "data.audio",
                  "type": "string"
                },
                {
                  "name": "extra_info",
                  "type": "object"
                },
                {
                  "name": "trace_id",
                  "type": "string"
                }
              ],
              "format": [
                "mp3",
                "pcm",
                "flac",
                "wav"
              ]
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "minimax/speech-01-turbo"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maxLength": 9999,
                "minLength": 1,
                "name": "text",
                "required": true,
                "type": "string"
              },
              {
                "default": false,
                "default_known": true,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "voice_setting",
                "properties": {
                  "emotion": {
                    "enum": [
                      "happy",
                      "sad",
                      "angry",
                      "fearful",
                      "disgusted",
                      "surprised",
                      "calm",
                      "fluent"
                    ],
                    "type": "string"
                  },
                  "latex_read": {
                    "default": false,
                    "type": "boolean"
                  },
                  "pitch": {
                    "default": 0,
                    "maximum": 12,
                    "minimum": -12,
                    "type": "integer"
                  },
                  "speed": {
                    "default": 1,
                    "maximum": 2,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "text_normalization": {
                    "default": false,
                    "type": "boolean"
                  },
                  "voice_id": {
                    "type": "string"
                  },
                  "vol": {
                    "default": 1,
                    "exclusiveMinimum": true,
                    "maximum": 10,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": false,
                "type": "object"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "voice_setting.voice_id",
                "required": false,
                "type": "string"
              },
              {
                "default": 1,
                "default_known": true,
                "enum_known": false,
                "maximum": 2,
                "minimum": 0.5,
                "name": "voice_setting.speed",
                "required": false,
                "type": "number"
              },
              {
                "default": 1,
                "default_known": true,
                "enum_known": false,
                "exclusiveMinimum": true,
                "maximum": 10,
                "minimum": 0,
                "name": "voice_setting.vol",
                "required": false,
                "type": "number"
              },
              {
                "default": 0,
                "default_known": true,
                "enum_known": false,
                "maximum": 12,
                "minimum": -12,
                "name": "voice_setting.pitch",
                "required": false,
                "type": "integer"
              },
              {
                "default_known": false,
                "enum": [
                  "happy",
                  "sad",
                  "angry",
                  "fearful",
                  "disgusted",
                  "surprised",
                  "calm",
                  "fluent"
                ],
                "enum_known": true,
                "name": "voice_setting.emotion",
                "required": false,
                "type": "string"
              },
              {
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "voice_setting.text_normalization",
                "required": false,
                "type": "boolean"
              },
              {
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "voice_setting.latex_read",
                "required": false,
                "type": "boolean"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "audio_setting",
                "properties": {
                  "bitrate": {
                    "default": 128000,
                    "enum": [
                      32000,
                      64000,
                      128000,
                      256000
                    ],
                    "type": "integer"
                  },
                  "channel": {
                    "default": 1,
                    "enum": [
                      1,
                      2
                    ],
                    "type": "integer"
                  },
                  "force_cbr": {
                    "default": false,
                    "type": "boolean"
                  },
                  "format": {
                    "default": "mp3",
                    "enum": [
                      "mp3",
                      "pcm",
                      "flac",
                      "wav"
                    ],
                    "type": "string"
                  },
                  "sample_rate": {
                    "default": 32000,
                    "enum": [
                      8000,
                      16000,
                      22050,
                      24000,
                      32000,
                      44100
                    ],
                    "type": "integer"
                  }
                },
                "required": false,
                "type": "object"
              },
              {
                "default": 32000,
                "default_known": true,
                "enum": [
                  8000,
                  16000,
                  22050,
                  24000,
                  32000,
                  44100
                ],
                "enum_known": true,
                "name": "audio_setting.sample_rate",
                "required": false,
                "type": "integer"
              },
              {
                "default": 128000,
                "default_known": true,
                "enum": [
                  32000,
                  64000,
                  128000,
                  256000
                ],
                "enum_known": true,
                "name": "audio_setting.bitrate",
                "required": false,
                "type": "integer"
              },
              {
                "default": "mp3",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm",
                  "flac",
                  "wav"
                ],
                "enum_known": true,
                "name": "audio_setting.format",
                "required": false,
                "type": "string"
              },
              {
                "default": 1,
                "default_known": true,
                "enum": [
                  1,
                  2
                ],
                "enum_known": true,
                "name": "audio_setting.channel",
                "required": false,
                "type": "integer"
              },
              {
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "audio_setting.force_cbr",
                "required": false,
                "type": "boolean"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "pronunciation_dict",
                "properties": {
                  "tone": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": false,
                "type": "object"
              },
              {
                "default_known": false,
                "enum_known": false,
                "items": {
                  "type": "string"
                },
                "name": "pronunciation_dict.tone",
                "required": false,
                "type": "array"
              },
              {
                "default_known": false,
                "enum_known": false,
                "items": {
                  "properties": {
                    "voice_id": {
                      "type": "string"
                    },
                    "weight": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "name": "timber_weights",
                "required": false,
                "type": "array"
              },
              {
                "default_known": false,
                "enum": [
                  "Chinese",
                  "Chinese,Yue",
                  "English",
                  "Arabic",
                  "Russian",
                  "Spanish",
                  "French",
                  "Portuguese",
                  "German",
                  "Turkish",
                  "Dutch",
                  "Ukrainian",
                  "Vietnamese",
                  "Indonesian",
                  "Japanese",
                  "Italian",
                  "Korean",
                  "Thai",
                  "Polish",
                  "Romanian",
                  "Greek",
                  "Czech",
                  "Finnish",
                  "Hindi",
                  "Bulgarian",
                  "Danish",
                  "Hebrew",
                  "Malay",
                  "Persian",
                  "Slovak",
                  "Swedish",
                  "Croatian",
                  "Filipino",
                  "Hungarian",
                  "Norwegian",
                  "Slovenian",
                  "Catalan",
                  "Nynorsk",
                  "Tamil",
                  "Afrikaans",
                  "auto"
                ],
                "enum_known": true,
                "name": "language_boost",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "voice_modify",
                "properties": {
                  "intensity": {
                    "enum": [
                      -100,
                      100
                    ],
                    "type": "integer"
                  },
                  "pitch": {
                    "enum": [
                      -100,
                      100
                    ],
                    "type": "integer"
                  },
                  "sound_effects": {
                    "enum": [
                      "spacious_echo",
                      "auditorium_echo",
                      "lofi_telephone",
                      "robotic"
                    ],
                    "type": "string"
                  },
                  "timbre": {
                    "enum": [
                      -100,
                      100
                    ],
                    "type": "integer"
                  }
                },
                "required": false,
                "type": "object"
              },
              {
                "default_known": false,
                "enum": [
                  -100,
                  100
                ],
                "enum_known": true,
                "name": "voice_modify.pitch",
                "required": false,
                "type": "integer"
              },
              {
                "default_known": false,
                "enum": [
                  -100,
                  100
                ],
                "enum_known": true,
                "name": "voice_modify.intensity",
                "required": false,
                "type": "integer"
              },
              {
                "default_known": false,
                "enum": [
                  -100,
                  100
                ],
                "enum_known": true,
                "name": "voice_modify.timbre",
                "required": false,
                "type": "integer"
              },
              {
                "default_known": false,
                "enum": [
                  "spacious_echo",
                  "auditorium_echo",
                  "lofi_telephone",
                  "robotic"
                ],
                "enum_known": true,
                "name": "voice_modify.sound_effects",
                "required": false,
                "type": "string"
              },
              {
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "subtitle_enable",
                "required": false,
                "type": "boolean"
              },
              {
                "default": "hex",
                "default_known": true,
                "enum": [
                  "url",
                  "hex"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "aigc_watermark",
                "required": false,
                "type": "boolean"
              }
            ],
            "request_schema": {
              "properties": {
                "aigc_watermark": {
                  "default": false,
                  "type": "boolean"
                },
                "audio_setting": {
                  "properties": {
                    "bitrate": {
                      "default": 128000,
                      "enum": [
                        32000,
                        64000,
                        128000,
                        256000
                      ],
                      "type": "integer"
                    },
                    "channel": {
                      "default": 1,
                      "enum": [
                        1,
                        2
                      ],
                      "type": "integer"
                    },
                    "force_cbr": {
                      "default": false,
                      "type": "boolean"
                    },
                    "format": {
                      "default": "mp3",
                      "enum": [
                        "mp3",
                        "pcm",
                        "flac",
                        "wav"
                      ],
                      "type": "string"
                    },
                    "sample_rate": {
                      "default": 32000,
                      "enum": [
                        8000,
                        16000,
                        22050,
                        24000,
                        32000,
                        44100
                      ],
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "language_boost": {
                  "enum": [
                    "Chinese",
                    "Chinese,Yue",
                    "English",
                    "Arabic",
                    "Russian",
                    "Spanish",
                    "French",
                    "Portuguese",
                    "German",
                    "Turkish",
                    "Dutch",
                    "Ukrainian",
                    "Vietnamese",
                    "Indonesian",
                    "Japanese",
                    "Italian",
                    "Korean",
                    "Thai",
                    "Polish",
                    "Romanian",
                    "Greek",
                    "Czech",
                    "Finnish",
                    "Hindi",
                    "Bulgarian",
                    "Danish",
                    "Hebrew",
                    "Malay",
                    "Persian",
                    "Slovak",
                    "Swedish",
                    "Croatian",
                    "Filipino",
                    "Hungarian",
                    "Norwegian",
                    "Slovenian",
                    "Catalan",
                    "Nynorsk",
                    "Tamil",
                    "Afrikaans",
                    "auto"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "minimax/speech-01-turbo"
                  ],
                  "type": "string"
                },
                "output_format": {
                  "default": "hex",
                  "enum": [
                    "url",
                    "hex"
                  ],
                  "type": "string"
                },
                "pronunciation_dict": {
                  "properties": {
                    "tone": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "stream": {
                  "default": false,
                  "enum": [
                    false
                  ],
                  "type": "boolean"
                },
                "subtitle_enable": {
                  "default": false,
                  "type": "boolean"
                },
                "text": {
                  "maxLength": 9999,
                  "minLength": 1,
                  "type": "string"
                },
                "timber_weights": {
                  "items": {
                    "properties": {
                      "voice_id": {
                        "type": "string"
                      },
                      "weight": {
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "voice_modify": {
                  "properties": {
                    "intensity": {
                      "enum": [
                        -100,
                        100
                      ],
                      "type": "integer"
                    },
                    "pitch": {
                      "enum": [
                        -100,
                        100
                      ],
                      "type": "integer"
                    },
                    "sound_effects": {
                      "enum": [
                        "spacious_echo",
                        "auditorium_echo",
                        "lofi_telephone",
                        "robotic"
                      ],
                      "type": "string"
                    },
                    "timbre": {
                      "enum": [
                        -100,
                        100
                      ],
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "voice_setting": {
                  "properties": {
                    "emotion": {
                      "enum": [
                        "happy",
                        "sad",
                        "angry",
                        "fearful",
                        "disgusted",
                        "surprised",
                        "calm",
                        "fluent"
                      ],
                      "type": "string"
                    },
                    "latex_read": {
                      "default": false,
                      "type": "boolean"
                    },
                    "pitch": {
                      "default": 0,
                      "maximum": 12,
                      "minimum": -12,
                      "type": "integer"
                    },
                    "speed": {
                      "default": 1,
                      "maximum": 2,
                      "minimum": 0.5,
                      "type": "number"
                    },
                    "text_normalization": {
                      "default": false,
                      "type": "boolean"
                    },
                    "voice_id": {
                      "type": "string"
                    },
                    "vol": {
                      "default": 1,
                      "exclusiveMinimum": true,
                      "maximum": 10,
                      "minimum": 0,
                      "type": "number"
                    }
                  },
                  "type": "object"
                }
              },
              "required": [
                "model",
                "text"
              ],
              "type": "object"
            },
            "schema_template": {
              "body": {
                "audio_setting": {
                  "channel": 1,
                  "format": "mp3",
                  "sample_rate": 32000
                },
                "model": "minimax/speech-01-turbo",
                "output_format": "hex",
                "stream": false,
                "text": "Hello, this is a short speech example."
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Use text, not input or contents. Fewer than 10000 Unicode characters; stream is false or omitted.",
              "PCM is raw audio with its returned sample geometry; do not invent a WAV header or bit depth."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [
              "stream",
              "voice_setting",
              "audio_setting",
              "pronunciation_dict",
              "timber_weights",
              "language_boost",
              "voice_modify",
              "subtitle_enable",
              "output_format",
              "aigc_watermark"
            ],
            "required": [
              "model",
              "text"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets",
                "query": {
                  "cursor": "actual returned next_cursor, when present",
                  "family": "audio"
                }
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/audio/speech"
            },
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned content_url. Refresh an expired link by reading the same existing asset."
            },
            "status": [],
            "unknown": "Preserve the original response, headers and X-Client-Request-ID. An uncertain outcome does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "output": {
            "all_results": "Retain the full JSON. Decode every hex audio byte or use the returned owned URL. Keep the actual format, sample rate, channel count and usage_characters.",
            "family": "audio",
            "fields": [
              {
                "name": "data.audio",
                "type": "string"
              },
              {
                "name": "extra_info",
                "type": "object"
              },
              {
                "name": "trace_id",
                "type": "string"
              }
            ],
            "format": [
              "mp3",
              "pcm",
              "flac",
              "wav"
            ]
          }
        },
        "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 character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00006",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"minimax/speech-01-turbo\", \"text\": \"Hello, this is a short speech example.\", \"stream\": false, \"output_format\": \"hex\", \"audio_setting\": {\"format\": \"mp3\", \"sample_rate\": 32000, \"channel\": 1}}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "Speech",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "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",
          "cache_read_price": null,
          "cache_write_1h_price": null,
          "cache_write_price": null,
          "fast_multiplier": null,
          "flex_multiplier": null,
          "image_input_price": null,
          "image_output_price": null,
          "input_price": null,
          "intervals": null,
          "max_reasoning_effort_multiplier": null,
          "output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_character": "0.00006"
          }
        },
        "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 character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00006",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "request_model_id": "minimax/speech-01-turbo",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "unit": "per_request",
        "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.00006",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00006",
            "native_quantity": 1,
            "public_unit_label": "per input character",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_character"
          }
        ]
      }
    }
  ],
  "model_id": "minimax/speech-01-turbo",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "58ef70273078a9d0e5d29c540adffa36a83030d8aea98604948db97951608b75",
    "input_html_sha256": "868b57546c0ee35cd80e49813c96dad7a1b48c9cef7ebf9f77e606a41b05b816",
    "private_audit_sha256": "56e0d3beafef64ad0ebb7cb44fa8891903e493c342d0d78f49000709f054fe64",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fr-ca/minimax-speech-01-turbo/",
    "description": "MiniMax Speech 01 Turbo lit le texte fourni sous forme de parole générée au moyen d’une requête audio_speech synchrone. Il accepte un texte de moins de 10 000 caractères et propose des réglages de voix, de rythme et de hauteur avec une sortie MP3, PCM, FLAC ou WAV.",
    "locale": "fr-ca",
    "md_url": "https://ailoot.ai/models/fr-ca/minimax-speech-01-turbo/index.md",
    "title": "MiniMax: Speech 01 Turbo — Ailoot",
    "url": "https://ailoot.ai/models/fr-ca/minimax-speech-01-turbo/"
  },
  "rawModel": {
    "about": "MiniMax Speech 01 Turbo convertit le texte fourni en audio parlé. Son ID exact de modèle Ailoot est minimax/speech-01-turbo, et son sélecteur de synthèse documenté est speech-01-turbo. Utilisez la méthode audio_speech pour une voix off, une leçon orale, une explication de produit ou une ébauche de narration dont vous avez déjà le texte. L’entrée est le passage à lire, et le résultat est une parole synthétisée dans le format audio sélectionné.\n\nPréparez le texte comme des mots destinés à être prononcés, avec une ponctuation qui reflète le phrasé. Pour une ébauche de narration, fournissez l’ordre définitif des phrases et l’orthographe des noms avant de choisir les réglages de voix. Gardez les indications de mise en scène distinctes du passage parlé, sauf si ces mots doivent figurer dans l’enregistrement. Écoutez les noms, les nombres et les transitions importants dans le résultat et comparez-les au texte source.\n\nLe texte doit faire moins de 10 000 caractères. Le contrat de synthèse publié exige model et text. Pour un contenu plus long, préparez des passages dans cette limite et conservez leur ordre pour le montage. Le profil synchrone utilise une réponse complète, avec stream=false comme valeur par défaut documentée. L’API générale décrit aussi des options de flux, mais la méthode sélectionnée sur cette fiche est le flux de travail vocal synchrone.\n\nvoice_setting sélectionne un voice_id disponible et contrôle speed, vol et pitch. La plage documentée de speed va de 0,5 à 2, avec 1 par défaut. vol doit être supérieur à 0 et au plus égal à 10, avec 1 par défaut; pitch est un entier de -12 à 12, avec 0 par défaut. Mettez chaque réglage au service du passage : comparez le rythme de lecture et l’audibilité de l’enregistrement réel au lieu de supposer qu’un changement numérique produit une interprétation particulière.\n\nLes valeurs documentées de emotion sont happy, sad, angry, fearful, disgusted, surprised, calm et fluent. Le texte peut aussi guider l’émotion du modèle. text_normalization est un paramètre booléen distinct de préparation de la lecture des nombres en chinois et en anglais, et latex_read contrôle la lecture des formules LaTeX; les deux valent false par défaut. pronunciation_dict.tone peut contenir des règles documentées de remplacement de prononciation. Vérifiez un nom ou une expression spécialisée dans l’audio obtenu avant de l’utiliser dans une narration plus longue.\n\naudio_setting.format accepte mp3, pcm, flac ou wav, avec mp3 par défaut. sample_rate accepte 8000, 16000, 22050, 24000, 32000 ou 44100 et vaut 32000 par défaut. bitrate accepte 32000, 64000, 128000 ou 256000, vaut 128000 par défaut et s’applique au MP3. channel sélectionne 1 pour le mono ou 2 pour la stéréo, avec 1 par défaut. Gardez ces choix avec le passage source afin de pouvoir vérifier le fichier renvoyé en fonction de sa destination de montage ou de lecture.\n\nLes paramètres supplémentaires documentés comprennent language_boost, dont les choix nommés exacts incluent English, Russian, Chinese et Chinese,Yue; choisissez une valeur réellement répertoriée pour le passage. timber_weights peut combiner des entrées voice_id existantes avec des valeurs entières de weight de 1 à 100. Les valeurs publiées de sound_effects sont spacious_echo, auditorium_echo, lofi_telephone et robotic. Ce sont des paramètres facultatifs pour façonner une voix sélectionnée; enregistrez leurs réglages réels lorsque vous comparez les lectures.\n\nLe résultat synchrone contient la parole générée. output_format sélectionne url ou hex et vaut hex par défaut dans le schéma de synthèse. Téléchargez le fichier désigné par un résultat URL, ou décodez un résultat hex en octets audio avant la lecture. Conservez les métadonnées audio renvoyées, notamment le format, la fréquence d’échantillonnage, le nombre de canaux et la taille, avec l’enregistrement. subtitle_enable vaut false par défaut et ne s’applique qu’aux sorties sans flux lorsqu’il est activé; la source n’établit pas de format de fichier de sous-titres pour ce profil.\n\nEnregistrez ensemble le passage source, l’ID exact du modèle, le choix de voix et l’enregistrement terminé. Examinez la lecture entière pour vérifier le texte souhaité, les pauses et les réglages d’interprétation choisis avant de l’intégrer à une vidéo, une leçon ou un guide parlé. Si la réponse est incomplète, conservez son identité de requête d’origine et les informations renvoyées pour rapprochement avant de demander un autre enregistrement. Une révision ultérieure peut modifier une phrase précise ou un réglage de voix tout en conservant le reste du script pour une comparaison claire.",
    "alias_of": null,
    "aliases": [],
    "author": "MiniMax",
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "minimax/speech-01-turbo",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response, all actual results, original identifiers, usage and response headers.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "example_body": {
              "audio_setting": {
                "channel": 1,
                "format": "mp3",
                "sample_rate": 32000
              },
              "model": "minimax/speech-01-turbo",
              "output_format": "hex",
              "stream": false,
              "text": "Hello, this is a short speech example."
            },
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets",
                  "query": {
                    "cursor": "actual returned next_cursor, when present",
                    "family": "audio"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/audio/speech"
              },
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "owned_content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "Use the exact returned content_url. Refresh an expired link by reading the same existing asset."
              },
              "status": [],
              "unknown": "Preserve the original response, headers and X-Client-Request-ID. An uncertain outcome does not authorize another creation.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Retain the full JSON. Decode every hex audio byte or use the returned owned URL. Keep the actual format, sample rate, channel count and usage_characters.",
              "family": "audio",
              "fields": [
                {
                  "name": "data.audio",
                  "type": "string"
                },
                {
                  "name": "extra_info",
                  "type": "object"
                },
                {
                  "name": "trace_id",
                  "type": "string"
                }
              ],
              "format": [
                "mp3",
                "pcm",
                "flac",
                "wav"
              ]
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "minimax/speech-01-turbo"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "maxLength": 9999,
                "minLength": 1,
                "name": "text",
                "required": true,
                "type": "string"
              },
              {
                "default": false,
                "default_known": true,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "voice_setting",
                "properties": {
                  "emotion": {
                    "enum": [
                      "happy",
                      "sad",
                      "angry",
                      "fearful",
                      "disgusted",
                      "surprised",
                      "calm",
                      "fluent"
                    ],
                    "type": "string"
                  },
                  "latex_read": {
                    "default": false,
                    "type": "boolean"
                  },
                  "pitch": {
                    "default": 0,
                    "maximum": 12,
                    "minimum": -12,
                    "type": "integer"
                  },
                  "speed": {
                    "default": 1,
                    "maximum": 2,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "text_normalization": {
                    "default": false,
                    "type": "boolean"
                  },
                  "voice_id": {
                    "type": "string"
                  },
                  "vol": {
                    "default": 1,
                    "exclusiveMinimum": true,
                    "maximum": 10,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": false,
                "type": "object"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "voice_setting.voice_id",
                "required": false,
                "type": "string"
              },
              {
                "default": 1,
                "default_known": true,
                "enum_known": false,
                "maximum": 2,
                "minimum": 0.5,
                "name": "voice_setting.speed",
                "required": false,
                "type": "number"
              },
              {
                "default": 1,
                "default_known": true,
                "enum_known": false,
                "exclusiveMinimum": true,
                "maximum": 10,
                "minimum": 0,
                "name": "voice_setting.vol",
                "required": false,
                "type": "number"
              },
              {
                "default": 0,
                "default_known": true,
                "enum_known": false,
                "maximum": 12,
                "minimum": -12,
                "name": "voice_setting.pitch",
                "required": false,
                "type": "integer"
              },
              {
                "default_known": false,
                "enum": [
                  "happy",
                  "sad",
                  "angry",
                  "fearful",
                  "disgusted",
                  "surprised",
                  "calm",
                  "fluent"
                ],
                "enum_known": true,
                "name": "voice_setting.emotion",
                "required": false,
                "type": "string"
              },
              {
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "voice_setting.text_normalization",
                "required": false,
                "type": "boolean"
              },
              {
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "voice_setting.latex_read",
                "required": false,
                "type": "boolean"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "audio_setting",
                "properties": {
                  "bitrate": {
                    "default": 128000,
                    "enum": [
                      32000,
                      64000,
                      128000,
                      256000
                    ],
                    "type": "integer"
                  },
                  "channel": {
                    "default": 1,
                    "enum": [
                      1,
                      2
                    ],
                    "type": "integer"
                  },
                  "force_cbr": {
                    "default": false,
                    "type": "boolean"
                  },
                  "format": {
                    "default": "mp3",
                    "enum": [
                      "mp3",
                      "pcm",
                      "flac",
                      "wav"
                    ],
                    "type": "string"
                  },
                  "sample_rate": {
                    "default": 32000,
                    "enum": [
                      8000,
                      16000,
                      22050,
                      24000,
                      32000,
                      44100
                    ],
                    "type": "integer"
                  }
                },
                "required": false,
                "type": "object"
              },
              {
                "default": 32000,
                "default_known": true,
                "enum": [
                  8000,
                  16000,
                  22050,
                  24000,
                  32000,
                  44100
                ],
                "enum_known": true,
                "name": "audio_setting.sample_rate",
                "required": false,
                "type": "integer"
              },
              {
                "default": 128000,
                "default_known": true,
                "enum": [
                  32000,
                  64000,
                  128000,
                  256000
                ],
                "enum_known": true,
                "name": "audio_setting.bitrate",
                "required": false,
                "type": "integer"
              },
              {
                "default": "mp3",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm",
                  "flac",
                  "wav"
                ],
                "enum_known": true,
                "name": "audio_setting.format",
                "required": false,
                "type": "string"
              },
              {
                "default": 1,
                "default_known": true,
                "enum": [
                  1,
                  2
                ],
                "enum_known": true,
                "name": "audio_setting.channel",
                "required": false,
                "type": "integer"
              },
              {
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "audio_setting.force_cbr",
                "required": false,
                "type": "boolean"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "pronunciation_dict",
                "properties": {
                  "tone": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": false,
                "type": "object"
              },
              {
                "default_known": false,
                "enum_known": false,
                "items": {
                  "type": "string"
                },
                "name": "pronunciation_dict.tone",
                "required": false,
                "type": "array"
              },
              {
                "default_known": false,
                "enum_known": false,
                "items": {
                  "properties": {
                    "voice_id": {
                      "type": "string"
                    },
                    "weight": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "name": "timber_weights",
                "required": false,
                "type": "array"
              },
              {
                "default_known": false,
                "enum": [
                  "Chinese",
                  "Chinese,Yue",
                  "English",
                  "Arabic",
                  "Russian",
                  "Spanish",
                  "French",
                  "Portuguese",
                  "German",
                  "Turkish",
                  "Dutch",
                  "Ukrainian",
                  "Vietnamese",
                  "Indonesian",
                  "Japanese",
                  "Italian",
                  "Korean",
                  "Thai",
                  "Polish",
                  "Romanian",
                  "Greek",
                  "Czech",
                  "Finnish",
                  "Hindi",
                  "Bulgarian",
                  "Danish",
                  "Hebrew",
                  "Malay",
                  "Persian",
                  "Slovak",
                  "Swedish",
                  "Croatian",
                  "Filipino",
                  "Hungarian",
                  "Norwegian",
                  "Slovenian",
                  "Catalan",
                  "Nynorsk",
                  "Tamil",
                  "Afrikaans",
                  "auto"
                ],
                "enum_known": true,
                "name": "language_boost",
                "required": false,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "voice_modify",
                "properties": {
                  "intensity": {
                    "enum": [
                      -100,
                      100
                    ],
                    "type": "integer"
                  },
                  "pitch": {
                    "enum": [
                      -100,
                      100
                    ],
                    "type": "integer"
                  },
                  "sound_effects": {
                    "enum": [
                      "spacious_echo",
                      "auditorium_echo",
                      "lofi_telephone",
                      "robotic"
                    ],
                    "type": "string"
                  },
                  "timbre": {
                    "enum": [
                      -100,
                      100
                    ],
                    "type": "integer"
                  }
                },
                "required": false,
                "type": "object"
              },
              {
                "default_known": false,
                "enum": [
                  -100,
                  100
                ],
                "enum_known": true,
                "name": "voice_modify.pitch",
                "required": false,
                "type": "integer"
              },
              {
                "default_known": false,
                "enum": [
                  -100,
                  100
                ],
                "enum_known": true,
                "name": "voice_modify.intensity",
                "required": false,
                "type": "integer"
              },
              {
                "default_known": false,
                "enum": [
                  -100,
                  100
                ],
                "enum_known": true,
                "name": "voice_modify.timbre",
                "required": false,
                "type": "integer"
              },
              {
                "default_known": false,
                "enum": [
                  "spacious_echo",
                  "auditorium_echo",
                  "lofi_telephone",
                  "robotic"
                ],
                "enum_known": true,
                "name": "voice_modify.sound_effects",
                "required": false,
                "type": "string"
              },
              {
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "subtitle_enable",
                "required": false,
                "type": "boolean"
              },
              {
                "default": "hex",
                "default_known": true,
                "enum": [
                  "url",
                  "hex"
                ],
                "enum_known": true,
                "name": "output_format",
                "required": false,
                "type": "string"
              },
              {
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "aigc_watermark",
                "required": false,
                "type": "boolean"
              }
            ],
            "request_schema": {
              "properties": {
                "aigc_watermark": {
                  "default": false,
                  "type": "boolean"
                },
                "audio_setting": {
                  "properties": {
                    "bitrate": {
                      "default": 128000,
                      "enum": [
                        32000,
                        64000,
                        128000,
                        256000
                      ],
                      "type": "integer"
                    },
                    "channel": {
                      "default": 1,
                      "enum": [
                        1,
                        2
                      ],
                      "type": "integer"
                    },
                    "force_cbr": {
                      "default": false,
                      "type": "boolean"
                    },
                    "format": {
                      "default": "mp3",
                      "enum": [
                        "mp3",
                        "pcm",
                        "flac",
                        "wav"
                      ],
                      "type": "string"
                    },
                    "sample_rate": {
                      "default": 32000,
                      "enum": [
                        8000,
                        16000,
                        22050,
                        24000,
                        32000,
                        44100
                      ],
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "language_boost": {
                  "enum": [
                    "Chinese",
                    "Chinese,Yue",
                    "English",
                    "Arabic",
                    "Russian",
                    "Spanish",
                    "French",
                    "Portuguese",
                    "German",
                    "Turkish",
                    "Dutch",
                    "Ukrainian",
                    "Vietnamese",
                    "Indonesian",
                    "Japanese",
                    "Italian",
                    "Korean",
                    "Thai",
                    "Polish",
                    "Romanian",
                    "Greek",
                    "Czech",
                    "Finnish",
                    "Hindi",
                    "Bulgarian",
                    "Danish",
                    "Hebrew",
                    "Malay",
                    "Persian",
                    "Slovak",
                    "Swedish",
                    "Croatian",
                    "Filipino",
                    "Hungarian",
                    "Norwegian",
                    "Slovenian",
                    "Catalan",
                    "Nynorsk",
                    "Tamil",
                    "Afrikaans",
                    "auto"
                  ],
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "minimax/speech-01-turbo"
                  ],
                  "type": "string"
                },
                "output_format": {
                  "default": "hex",
                  "enum": [
                    "url",
                    "hex"
                  ],
                  "type": "string"
                },
                "pronunciation_dict": {
                  "properties": {
                    "tone": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "stream": {
                  "default": false,
                  "enum": [
                    false
                  ],
                  "type": "boolean"
                },
                "subtitle_enable": {
                  "default": false,
                  "type": "boolean"
                },
                "text": {
                  "maxLength": 9999,
                  "minLength": 1,
                  "type": "string"
                },
                "timber_weights": {
                  "items": {
                    "properties": {
                      "voice_id": {
                        "type": "string"
                      },
                      "weight": {
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                },
                "voice_modify": {
                  "properties": {
                    "intensity": {
                      "enum": [
                        -100,
                        100
                      ],
                      "type": "integer"
                    },
                    "pitch": {
                      "enum": [
                        -100,
                        100
                      ],
                      "type": "integer"
                    },
                    "sound_effects": {
                      "enum": [
                        "spacious_echo",
                        "auditorium_echo",
                        "lofi_telephone",
                        "robotic"
                      ],
                      "type": "string"
                    },
                    "timbre": {
                      "enum": [
                        -100,
                        100
                      ],
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "voice_setting": {
                  "properties": {
                    "emotion": {
                      "enum": [
                        "happy",
                        "sad",
                        "angry",
                        "fearful",
                        "disgusted",
                        "surprised",
                        "calm",
                        "fluent"
                      ],
                      "type": "string"
                    },
                    "latex_read": {
                      "default": false,
                      "type": "boolean"
                    },
                    "pitch": {
                      "default": 0,
                      "maximum": 12,
                      "minimum": -12,
                      "type": "integer"
                    },
                    "speed": {
                      "default": 1,
                      "maximum": 2,
                      "minimum": 0.5,
                      "type": "number"
                    },
                    "text_normalization": {
                      "default": false,
                      "type": "boolean"
                    },
                    "voice_id": {
                      "type": "string"
                    },
                    "vol": {
                      "default": 1,
                      "exclusiveMinimum": true,
                      "maximum": 10,
                      "minimum": 0,
                      "type": "number"
                    }
                  },
                  "type": "object"
                }
              },
              "required": [
                "model",
                "text"
              ],
              "type": "object"
            },
            "schema_template": {
              "body": {
                "audio_setting": {
                  "channel": 1,
                  "format": "mp3",
                  "sample_rate": 32000
                },
                "model": "minimax/speech-01-turbo",
                "output_format": "hex",
                "stream": false,
                "text": "Hello, this is a short speech example."
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Use text, not input or contents. Fewer than 10000 Unicode characters; stream is false or omitted.",
              "PCM is raw audio with its returned sample geometry; do not invent a WAV header or bit depth."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [
              "stream",
              "voice_setting",
              "audio_setting",
              "pronunciation_dict",
              "timber_weights",
              "language_boost",
              "voice_modify",
              "subtitle_enable",
              "output_format",
              "aigc_watermark"
            ],
            "required": [
              "model",
              "text"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets",
                "query": {
                  "cursor": "actual returned next_cursor, when present",
                  "family": "audio"
                }
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/audio/speech"
            },
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "owned_content": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}/content",
              "url_source": "Use the exact returned content_url. Refresh an expired link by reading the same existing asset."
            },
            "status": [],
            "unknown": "Preserve the original response, headers and X-Client-Request-ID. An uncertain outcome does not authorize another creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "output": {
            "all_results": "Retain the full JSON. Decode every hex audio byte or use the returned owned URL. Keep the actual format, sample rate, channel count and usage_characters.",
            "family": "audio",
            "fields": [
              {
                "name": "data.audio",
                "type": "string"
              },
              {
                "name": "extra_info",
                "type": "object"
              },
              {
                "name": "trace_id",
                "type": "string"
              }
            ],
            "format": [
              "mp3",
              "pcm",
              "flac",
              "wav"
            ]
          }
        },
        "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 character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00006",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"minimax/speech-01-turbo\", \"text\": \"Hello, this is a short speech example.\", \"stream\": false, \"output_format\": \"hex\", \"audio_setting\": {\"format\": \"mp3\", \"sample_rate\": 32000, \"channel\": 1}}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "Speech",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "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",
          "cache_read_price": null,
          "cache_write_1h_price": null,
          "cache_write_price": null,
          "fast_multiplier": null,
          "flex_multiplier": null,
          "image_input_price": null,
          "image_output_price": null,
          "input_price": null,
          "intervals": null,
          "max_reasoning_effort_multiplier": null,
          "output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_character": "0.00006"
          }
        },
        "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 character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00006",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "request_model_id": "minimax/speech-01-turbo",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "unit": "per_request",
        "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.00006",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00006",
            "native_quantity": 1,
            "public_unit_label": "per input character",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_character"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "minimax/speech-01-turbo",
        "request_model_id": "minimax/speech-01-turbo",
        "route_label": "Ultra"
      }
    ],
    "name": "MiniMax: Speech 01 Turbo",
    "price": {
      "in": "0.00006",
      "in_label": "per input character",
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": false
    },
    "short": "MiniMax Speech 01 Turbo lit le texte fourni sous forme de parole générée au moyen d’une requête audio_speech synchrone. Il accepte un texte de moins de 10 000 caractères et propose des réglages de voix, de rythme et de hauteur avec une sortie MP3, PCM, FLAC ou WAV."
  },
  "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": "MiniMax Speech 01 Turbo lit le texte fourni sous forme de parole générée au moyen d’une requête audio_speech synchrone. Il accepte un texte de moins de 10 000 caractères et propose des réglages de voix, de rythme et de hauteur avec une sortie MP3, PCM, FLAC ou WAV.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "acda43ddd08b75fb060e9befe90e9fad683c6e5f8f9e169fe8fa5653336a514b",
    "renderer_sha256": "98cb81b9c4ef4923c22e586170e7cdf67056351148a1666fb03dd6a4a26716a3"
  },
  "sourceRevision": "9456a9e7525b4fcecaa01e4db4a8fe2fb96a728aa99369ec695fd6e056c22991"
}
