{
  "aboutHtml": "<p>Speech 02 Turbo est l’édition vocale exacte de MiniMax sélectionnée par model: &quot;minimax/speech-02-turbo&quot;. Utilisez POST /v1/audio/speech avec un corps application/json contenant model et le texte à prononcer. Son entrée est un script écrit et son résultat de l’audio synthétisé. Pour une annonce, placez dans text uniquement les mots à prononcer, comme un court avis de retrait. Pour une explication de produit, divisez le script en phrases complètes et fixez les noms de produits et les nombres avant de générer l’audio. Gardez les notes de production, les noms de fichiers et les indications qui doivent rester silencieuses en dehors du script parlé.</p><p>Le champ text doit contenir du texte qui ne se limite pas à des caractères d’espacement et compter moins de 10 000 caractères Unicode. Envoyez le script parlé complet avec stream:false, ou omettez stream. Divisez les contenus plus longs en segments de script complets et distincts avant d’envoyer chaque segment. Un document peut être utilisé en lisant son contenu réel et en plaçant le passage pertinent dans text ; une URL de document ne remplace pas le script.</p><p>Choisissez une voix via voice_setting.voice_id. Les catégories de voix documentées comprennent les voix système et les voix clonées ou conçues à partir de texte déjà créées ; utilisez un ID de voix valide pour la catégorie choisie. La voix d’exemple est audiobook_male_1. Le même objet contrôle speed de 0,5 à 2, vol au-dessus de 0 et jusqu’à 10, et pitch entier de -12 à 12. Leurs valeurs par défaut sont 1, 1 et 0. Ces paramètres règlent différents aspects de l’interprétation parlée : choisissez-les donc séparément plutôt que de placer leurs noms dans le script.</p><p>voice_setting.emotion accepte happy, sad, angry, fearful, disgusted, surprised, calm et fluent. La documentation décrit aussi une adaptation automatique de l’émotion à partir du texte. Pour les scripts riches en nombres, voice_setting.text_normalization active la normalisation de texte en chinois et en anglais et vaut false par défaut. voice_setting.latex_read contrôle la lecture des expressions LaTeX et vaut également false par défaut. pronunciation_dict.tone est un tableau de chaînes de règles de prononciation. L’exemple publié est [&quot;草地/(cao3)(di1)&quot;] ; conservez le mot, la barre oblique et la structure de prononciation entre parenthèses lorsque vous fournissez une règle.</p><p>audio_setting.format accepte mp3, pcm, flac et wav, avec mp3 par défaut. sample_rate accepte 8000, 16000, 22050, 24000, 32000 et 44100 Hz ; sa valeur par défaut est 32000. channel vaut 1 pour le mono ou 2 pour deux canaux, avec 1 par défaut. Les valeurs de bitrate sont 32000, 64000, 128000 et 256000 bits par seconde, avec 128000 par défaut, et s’appliquent au mp3. Sélectionnez l’encodage nécessaire au lecteur ou à l’outil de montage qui utilisera le résultat.</p><p>language_boost est une chaîne facultative qui vaut null par défaut. Ses valeurs autorisées sont 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 et auto. &quot;Chinese,Yue&quot; constitue une seule valeur. Ce paramètre est distinct du script et de l’ID de voix. Le schéma expose aussi timber_weights pour une liste de paires voice_id et weight entier, chaque weight allant de 1 à 100. Conservez l’orthographe du paramètre timber_weights lors de la préparation d’une requête. voice_modify.sound_effects est une chaîne facultative dont les valeurs sont spacious_echo, auditorium_echo, lofi_telephone et robotic.</p><p>stream vaut false par défaut. Pour une réponse complète, output_format sélectionne url ou hex et vaut hex par défaut. Dans le résultat JSON documenté, data.audio porte la représentation sélectionnée : téléchargez l’URL Ailoot signée complète, y compris sa chaîne de requête, ou décodez l’audio hexadécimal complet en octets. Conservez le résultat d’origine avec data.status, base_resp, trace_id et extra_info, qui comprend le format audio réel, la fréquence d’échantillonnage, le nombre de canaux, la taille et usage_characters.</p><p>subtitle_enable est un booléen qui vaut false par défaut et s’applique aux sorties sans flux. aigc_watermark est un booléen qui vaut false par défaut et contrôle un marqueur rythmique audible à la fin de l’audio généré. Conservez chaque résultat audio ou de sous-titres renvoyé et vérifiez la prononciation, les nombres et le fichier terminé avant de l’intégrer à l’application. Si la transmission est incertaine, conservez l’identifiant de la requête d’origine et la réponse pour vérifier la tentative existante. Ailoot enregistre aussi l’audio terminé dans votre médiathèque. Avec output_format:&quot;url&quot;, data.audio contient un lien signé vers cette ressource enregistrée ; l’ID de la ressource apparaît dans son chemin /v1/media/assets/{asset_id}/content. Les liens de fichiers signés Ailoot durent 24 heures à compter de leur émission. Utilisez la même clé API pour appeler GET /v1/media/assets?family=audio et suivez chaque next_cursor pour localiser les enregistrements des ressources audio. Appelez GET /v1/media/assets/{asset_id} pour chaque enregistrement sélectionné et téléchargez son content_url exact, y compris la chaîne de requête. Si une requête de fichier renvoie 404 avec le code link_expired, relisez la même ressource pour obtenir un content_url actualisé. Actualisez le résultat enregistré plutôt que de générer à nouveau de l’audio pour remplacer un lien expiré.</p>",
  "aboutText": "Speech 02 Turbo est l’édition vocale exacte de MiniMax sélectionnée par model: \"minimax/speech-02-turbo\". Utilisez POST /v1/audio/speech avec un corps application/json contenant model et le texte à prononcer. Son entrée est un script écrit et son résultat de l’audio synthétisé. Pour une annonce, placez dans text uniquement les mots à prononcer, comme un court avis de retrait. Pour une explication de produit, divisez le script en phrases complètes et fixez les noms de produits et les nombres avant de générer l’audio. Gardez les notes de production, les noms de fichiers et les indications qui doivent rester silencieuses en dehors du script parlé.\n\nLe champ text doit contenir du texte qui ne se limite pas à des caractères d’espacement et compter moins de 10 000 caractères Unicode. Envoyez le script parlé complet avec stream:false, ou omettez stream. Divisez les contenus plus longs en segments de script complets et distincts avant d’envoyer chaque segment. Un document peut être utilisé en lisant son contenu réel et en plaçant le passage pertinent dans text ; une URL de document ne remplace pas le script.\n\nChoisissez une voix via voice_setting.voice_id. Les catégories de voix documentées comprennent les voix système et les voix clonées ou conçues à partir de texte déjà créées ; utilisez un ID de voix valide pour la catégorie choisie. La voix d’exemple est audiobook_male_1. Le même objet contrôle speed de 0,5 à 2, vol au-dessus de 0 et jusqu’à 10, et pitch entier de -12 à 12. Leurs valeurs par défaut sont 1, 1 et 0. Ces paramètres règlent différents aspects de l’interprétation parlée : choisissez-les donc séparément plutôt que de placer leurs noms dans le script.\n\nvoice_setting.emotion accepte happy, sad, angry, fearful, disgusted, surprised, calm et fluent. La documentation décrit aussi une adaptation automatique de l’émotion à partir du texte. Pour les scripts riches en nombres, voice_setting.text_normalization active la normalisation de texte en chinois et en anglais et vaut false par défaut. voice_setting.latex_read contrôle la lecture des expressions LaTeX et vaut également false par défaut. pronunciation_dict.tone est un tableau de chaînes de règles de prononciation. L’exemple publié est [\"草地/(cao3)(di1)\"] ; conservez le mot, la barre oblique et la structure de prononciation entre parenthèses lorsque vous fournissez une règle.\n\naudio_setting.format accepte mp3, pcm, flac et wav, avec mp3 par défaut. sample_rate accepte 8000, 16000, 22050, 24000, 32000 et 44100 Hz ; sa valeur par défaut est 32000. channel vaut 1 pour le mono ou 2 pour deux canaux, avec 1 par défaut. Les valeurs de bitrate sont 32000, 64000, 128000 et 256000 bits par seconde, avec 128000 par défaut, et s’appliquent au mp3. Sélectionnez l’encodage nécessaire au lecteur ou à l’outil de montage qui utilisera le résultat.\n\nlanguage_boost est une chaîne facultative qui vaut null par défaut. Ses valeurs autorisées sont 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 et auto. \"Chinese,Yue\" constitue une seule valeur. Ce paramètre est distinct du script et de l’ID de voix. Le schéma expose aussi timber_weights pour une liste de paires voice_id et weight entier, chaque weight allant de 1 à 100. Conservez l’orthographe du paramètre timber_weights lors de la préparation d’une requête. voice_modify.sound_effects est une chaîne facultative dont les valeurs sont spacious_echo, auditorium_echo, lofi_telephone et robotic.\n\nstream vaut false par défaut. Pour une réponse complète, output_format sélectionne url ou hex et vaut hex par défaut. Dans le résultat JSON documenté, data.audio porte la représentation sélectionnée : téléchargez l’URL Ailoot signée complète, y compris sa chaîne de requête, ou décodez l’audio hexadécimal complet en octets. Conservez le résultat d’origine avec data.status, base_resp, trace_id et extra_info, qui comprend le format audio réel, la fréquence d’échantillonnage, le nombre de canaux, la taille et usage_characters.\n\nsubtitle_enable est un booléen qui vaut false par défaut et s’applique aux sorties sans flux. aigc_watermark est un booléen qui vaut false par défaut et contrôle un marqueur rythmique audible à la fin de l’audio généré. Conservez chaque résultat audio ou de sous-titres renvoyé et vérifiez la prononciation, les nombres et le fichier terminé avant de l’intégrer à l’application. Si la transmission est incertaine, conservez l’identifiant de la requête d’origine et la réponse pour vérifier la tentative existante. Ailoot enregistre aussi l’audio terminé dans votre médiathèque. Avec output_format:\"url\", data.audio contient un lien signé vers cette ressource enregistrée ; l’ID de la ressource apparaît dans son chemin /v1/media/assets/{asset_id}/content. Les liens de fichiers signés Ailoot durent 24 heures à compter de leur émission. Utilisez la même clé API pour appeler GET /v1/media/assets?family=audio et suivez chaque next_cursor pour localiser les enregistrements des ressources audio. Appelez GET /v1/media/assets/{asset_id} pour chaque enregistrement sélectionné et téléchargez son content_url exact, y compris la chaîne de requête. Si une requête de fichier renvoie 404 avec le code link_expired, relisez la même ressource pour obtenir un content_url actualisé. Actualisez le résultat enregistré plutôt que de générer à nouveau de l’audio pour remplacer un lien expiré.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "43df42adc7ef473c5c4535e44299326c69c2033e56ba27d97fb100533c60f282",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fr-be",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">MM</span><h2 id=\"sheet-title\">MiniMax: Speech 02 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-02-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\">Premiers pas</button><button type=\"button\" data-card-jump=\"methods\">Entrées et méthodes</button><button type=\"button\" data-card-jump=\"pricing\">Tarifs</button><button type=\"button\" data-card-jump=\"examples\">Exemples</button><button type=\"button\" data-card-jump=\"results\">Résultats</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Méthodes API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|minimax%2Fspeech-02-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\">Premiers pas</h3><p class=\"mdesc-full\">Speech 02 Turbo est un modèle de synthèse vocale de MiniMax pour transformer un script terminé en audio. L’édition minimax/speech-02-turbo expose des paramètres de voix, d’interprétation et de format audio, avec une réponse JSON complète et un choix de sortie audio par URL ou en hexadécimal. Utilisez-la pour transformer une annonce préparée, une explication de produit ou un script de narration en audio parlé.</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>Speech 02 Turbo est l’édition vocale exacte de MiniMax sélectionnée par model: &quot;minimax/speech-02-turbo&quot;. Utilisez POST /v1/audio/speech avec un corps application/json contenant model et le texte à prononcer. Son entrée est un script écrit et son résultat de l’audio synthétisé. Pour une annonce, placez dans text uniquement les mots à prononcer, comme un court avis de retrait. Pour une explication de produit, divisez le script en phrases complètes et fixez les noms de produits et les nombres avant de générer l’audio. Gardez les notes de production, les noms de fichiers et les indications qui doivent rester silencieuses en dehors du script parlé.</p><p>Le champ text doit contenir du texte qui ne se limite pas à des caractères d’espacement et compter moins de 10 000 caractères Unicode. Envoyez le script parlé complet avec stream:false, ou omettez stream. Divisez les contenus plus longs en segments de script complets et distincts avant d’envoyer chaque segment. Un document peut être utilisé en lisant son contenu réel et en plaçant le passage pertinent dans text ; une URL de document ne remplace pas le script.</p><p>Choisissez une voix via voice_setting.voice_id. Les catégories de voix documentées comprennent les voix système et les voix clonées ou conçues à partir de texte déjà créées ; utilisez un ID de voix valide pour la catégorie choisie. La voix d’exemple est audiobook_male_1. Le même objet contrôle speed de 0,5 à 2, vol au-dessus de 0 et jusqu’à 10, et pitch entier de -12 à 12. Leurs valeurs par défaut sont 1, 1 et 0. Ces paramètres règlent différents aspects de l’interprétation parlée : choisissez-les donc séparément plutôt que de placer leurs noms dans le script.</p><p>voice_setting.emotion accepte happy, sad, angry, fearful, disgusted, surprised, calm et fluent. La documentation décrit aussi une adaptation automatique de l’émotion à partir du texte. Pour les scripts riches en nombres, voice_setting.text_normalization active la normalisation de texte en chinois et en anglais et vaut false par défaut. voice_setting.latex_read contrôle la lecture des expressions LaTeX et vaut également false par défaut. pronunciation_dict.tone est un tableau de chaînes de règles de prononciation. L’exemple publié est [&quot;草地/(cao3)(di1)&quot;] ; conservez le mot, la barre oblique et la structure de prononciation entre parenthèses lorsque vous fournissez une règle.</p><p>audio_setting.format accepte mp3, pcm, flac et wav, avec mp3 par défaut. sample_rate accepte 8000, 16000, 22050, 24000, 32000 et 44100 Hz ; sa valeur par défaut est 32000. channel vaut 1 pour le mono ou 2 pour deux canaux, avec 1 par défaut. Les valeurs de bitrate sont 32000, 64000, 128000 et 256000 bits par seconde, avec 128000 par défaut, et s’appliquent au mp3. Sélectionnez l’encodage nécessaire au lecteur ou à l’outil de montage qui utilisera le résultat.</p><p>language_boost est une chaîne facultative qui vaut null par défaut. Ses valeurs autorisées sont 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 et auto. &quot;Chinese,Yue&quot; constitue une seule valeur. Ce paramètre est distinct du script et de l’ID de voix. Le schéma expose aussi timber_weights pour une liste de paires voice_id et weight entier, chaque weight allant de 1 à 100. Conservez l’orthographe du paramètre timber_weights lors de la préparation d’une requête. voice_modify.sound_effects est une chaîne facultative dont les valeurs sont spacious_echo, auditorium_echo, lofi_telephone et robotic.</p><p>stream vaut false par défaut. Pour une réponse complète, output_format sélectionne url ou hex et vaut hex par défaut. Dans le résultat JSON documenté, data.audio porte la représentation sélectionnée : téléchargez l’URL Ailoot signée complète, y compris sa chaîne de requête, ou décodez l’audio hexadécimal complet en octets. Conservez le résultat d’origine avec data.status, base_resp, trace_id et extra_info, qui comprend le format audio réel, la fréquence d’échantillonnage, le nombre de canaux, la taille et usage_characters.</p><p>subtitle_enable est un booléen qui vaut false par défaut et s’applique aux sorties sans flux. aigc_watermark est un booléen qui vaut false par défaut et contrôle un marqueur rythmique audible à la fin de l’audio généré. Conservez chaque résultat audio ou de sous-titres renvoyé et vérifiez la prononciation, les nombres et le fichier terminé avant de l’intégrer à l’application. Si la transmission est incertaine, conservez l’identifiant de la requête d’origine et la réponse pour vérifier la tentative existante. Ailoot enregistre aussi l’audio terminé dans votre médiathèque. Avec output_format:&quot;url&quot;, data.audio contient un lien signé vers cette ressource enregistrée ; l’ID de la ressource apparaît dans son chemin /v1/media/assets/{asset_id}/content. Les liens de fichiers signés Ailoot durent 24 heures à compter de leur émission. Utilisez la même clé API pour appeler GET /v1/media/assets?family=audio et suivez chaque next_cursor pour localiser les enregistrements des ressources audio. Appelez GET /v1/media/assets/{asset_id} pour chaque enregistrement sélectionné et téléchargez son content_url exact, y compris la chaîne de requête. Si une requête de fichier renvoie 404 avec le code link_expired, relisez la même ressource pour obtenir un content_url actualisé. Actualisez le résultat enregistré plutôt que de générer à nouveau de l’audio pour remplacer un lien expiré.</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-02-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 · Tokens en entrée</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Sortie · Tokens en sortie</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Lecture du cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache, 1 h</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>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.00012</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-be/billing/reserve/\">Fonctionnement de la réservation et du débit →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exemples de requêtes</h3><h4>Ailoot Ultra · 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-29-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-29-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · créer une seule fois et conserver 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-29-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-29-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-02-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-02-turbo&amp;route=Ultra&amp;caller=minimax%2Fspeech-02-turbo&amp;fmt=speech\"><code>minimax/speech-02-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-02-turbo&amp;route=Ultra&amp;caller=minimax%2Fspeech-02-turbo&amp;fmt=speech\"><code>minimax/speech-02-turbo</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "minimax/speech-02-turbo",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "minimax/speech-02-turbo",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|minimax%2Fspeech-02-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-02-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-02-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-02-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-02-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.00012",
                "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.00012",
                "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-02-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.00012"
          }
        },
        "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.00012",
                "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.00012",
                "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-02-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.00012",
            "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.00012",
            "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-02-turbo",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "c6f8e34019e2a52f6a9287b81de442db2111dae51b43030c85fc911847ff9593",
    "input_html_sha256": "858264f67991e3928f27af6349fb6913ffd4c948aa90afcb45ffeace6b14eedb",
    "private_audit_sha256": "26149d248a56995ca0e45fb56ef6b2e3d0a69363d4e5132b10d4e397d56d747e",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fr-be/minimax-speech-02-turbo/",
    "description": "Speech 02 Turbo est un modèle de synthèse vocale de MiniMax pour transformer un script terminé en audio. L’édition minimax/speech-02-turbo expose des paramètres de voix, d’interprétation et de format audio, avec une réponse JSON complète et un choix de sortie audio par URL ou en hexadécimal. Utilisez-la pour transformer une annonce préparée, une explication de produit ou un script de narration en audio parlé.",
    "locale": "fr-be",
    "md_url": "https://ailoot.ai/models/fr-be/minimax-speech-02-turbo/index.md",
    "title": "MiniMax: Speech 02 Turbo — Ailoot",
    "url": "https://ailoot.ai/models/fr-be/minimax-speech-02-turbo/"
  },
  "rawModel": {
    "about": "Speech 02 Turbo est l’édition vocale exacte de MiniMax sélectionnée par model: \"minimax/speech-02-turbo\". Utilisez POST /v1/audio/speech avec un corps application/json contenant model et le texte à prononcer. Son entrée est un script écrit et son résultat de l’audio synthétisé. Pour une annonce, placez dans text uniquement les mots à prononcer, comme un court avis de retrait. Pour une explication de produit, divisez le script en phrases complètes et fixez les noms de produits et les nombres avant de générer l’audio. Gardez les notes de production, les noms de fichiers et les indications qui doivent rester silencieuses en dehors du script parlé.\n\nLe champ text doit contenir du texte qui ne se limite pas à des caractères d’espacement et compter moins de 10 000 caractères Unicode. Envoyez le script parlé complet avec stream:false, ou omettez stream. Divisez les contenus plus longs en segments de script complets et distincts avant d’envoyer chaque segment. Un document peut être utilisé en lisant son contenu réel et en plaçant le passage pertinent dans text ; une URL de document ne remplace pas le script.\n\nChoisissez une voix via voice_setting.voice_id. Les catégories de voix documentées comprennent les voix système et les voix clonées ou conçues à partir de texte déjà créées ; utilisez un ID de voix valide pour la catégorie choisie. La voix d’exemple est audiobook_male_1. Le même objet contrôle speed de 0,5 à 2, vol au-dessus de 0 et jusqu’à 10, et pitch entier de -12 à 12. Leurs valeurs par défaut sont 1, 1 et 0. Ces paramètres règlent différents aspects de l’interprétation parlée : choisissez-les donc séparément plutôt que de placer leurs noms dans le script.\n\nvoice_setting.emotion accepte happy, sad, angry, fearful, disgusted, surprised, calm et fluent. La documentation décrit aussi une adaptation automatique de l’émotion à partir du texte. Pour les scripts riches en nombres, voice_setting.text_normalization active la normalisation de texte en chinois et en anglais et vaut false par défaut. voice_setting.latex_read contrôle la lecture des expressions LaTeX et vaut également false par défaut. pronunciation_dict.tone est un tableau de chaînes de règles de prononciation. L’exemple publié est [\"草地/(cao3)(di1)\"] ; conservez le mot, la barre oblique et la structure de prononciation entre parenthèses lorsque vous fournissez une règle.\n\naudio_setting.format accepte mp3, pcm, flac et wav, avec mp3 par défaut. sample_rate accepte 8000, 16000, 22050, 24000, 32000 et 44100 Hz ; sa valeur par défaut est 32000. channel vaut 1 pour le mono ou 2 pour deux canaux, avec 1 par défaut. Les valeurs de bitrate sont 32000, 64000, 128000 et 256000 bits par seconde, avec 128000 par défaut, et s’appliquent au mp3. Sélectionnez l’encodage nécessaire au lecteur ou à l’outil de montage qui utilisera le résultat.\n\nlanguage_boost est une chaîne facultative qui vaut null par défaut. Ses valeurs autorisées sont 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 et auto. \"Chinese,Yue\" constitue une seule valeur. Ce paramètre est distinct du script et de l’ID de voix. Le schéma expose aussi timber_weights pour une liste de paires voice_id et weight entier, chaque weight allant de 1 à 100. Conservez l’orthographe du paramètre timber_weights lors de la préparation d’une requête. voice_modify.sound_effects est une chaîne facultative dont les valeurs sont spacious_echo, auditorium_echo, lofi_telephone et robotic.\n\nstream vaut false par défaut. Pour une réponse complète, output_format sélectionne url ou hex et vaut hex par défaut. Dans le résultat JSON documenté, data.audio porte la représentation sélectionnée : téléchargez l’URL Ailoot signée complète, y compris sa chaîne de requête, ou décodez l’audio hexadécimal complet en octets. Conservez le résultat d’origine avec data.status, base_resp, trace_id et extra_info, qui comprend le format audio réel, la fréquence d’échantillonnage, le nombre de canaux, la taille et usage_characters.\n\nsubtitle_enable est un booléen qui vaut false par défaut et s’applique aux sorties sans flux. aigc_watermark est un booléen qui vaut false par défaut et contrôle un marqueur rythmique audible à la fin de l’audio généré. Conservez chaque résultat audio ou de sous-titres renvoyé et vérifiez la prononciation, les nombres et le fichier terminé avant de l’intégrer à l’application. Si la transmission est incertaine, conservez l’identifiant de la requête d’origine et la réponse pour vérifier la tentative existante. Ailoot enregistre aussi l’audio terminé dans votre médiathèque. Avec output_format:\"url\", data.audio contient un lien signé vers cette ressource enregistrée ; l’ID de la ressource apparaît dans son chemin /v1/media/assets/{asset_id}/content. Les liens de fichiers signés Ailoot durent 24 heures à compter de leur émission. Utilisez la même clé API pour appeler GET /v1/media/assets?family=audio et suivez chaque next_cursor pour localiser les enregistrements des ressources audio. Appelez GET /v1/media/assets/{asset_id} pour chaque enregistrement sélectionné et téléchargez son content_url exact, y compris la chaîne de requête. Si une requête de fichier renvoie 404 avec le code link_expired, relisez la même ressource pour obtenir un content_url actualisé. Actualisez le résultat enregistré plutôt que de générer à nouveau de l’audio pour remplacer un lien expiré.",
    "alias_of": null,
    "aliases": [],
    "author": "MiniMax",
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "minimax/speech-02-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-02-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-02-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-02-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-02-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.00012",
                "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.00012",
                "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-02-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.00012"
          }
        },
        "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.00012",
                "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.00012",
                "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-02-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.00012",
            "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.00012",
            "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-02-turbo",
        "request_model_id": "minimax/speech-02-turbo",
        "route_label": "Ultra"
      }
    ],
    "name": "MiniMax: Speech 02 Turbo",
    "price": {
      "in": "0.00012",
      "in_label": "per input character",
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": false
    },
    "short": "Speech 02 Turbo est un modèle de synthèse vocale de MiniMax pour transformer un script terminé en audio. L’édition minimax/speech-02-turbo expose des paramètres de voix, d’interprétation et de format audio, avec une réponse JSON complète et un choix de sortie audio par URL ou en hexadécimal. Utilisez-la pour transformer une annonce préparée, une explication de produit ou un script de narration en audio parlé."
  },
  "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": "Speech 02 Turbo est un modèle de synthèse vocale de MiniMax pour transformer un script terminé en audio. L’édition minimax/speech-02-turbo expose des paramètres de voix, d’interprétation et de format audio, avec une réponse JSON complète et un choix de sortie audio par URL ou en hexadécimal. Utilisez-la pour transformer une annonce préparée, une explication de produit ou un script de narration en audio parlé.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "7186e921a83cf96ea3a48f532b734d1a92a7c9fa38653491463e5844f569e671",
    "renderer_sha256": "9d578ff8df69ef70403308c9943a1179a11b94114c10b333bf1c012005d4a7f4"
  },
  "sourceRevision": "14353c0ab3e2b8446585b1f0c0ef5f723311537916b98e15262034ffd2a7de0f"
}
