{
  "aboutHtml": "<p>Speech 02 Turbo es la edición exacta de voz de MiniMax que se selecciona mediante model: &quot;minimax/speech-02-turbo&quot;. Utiliza POST /v1/audio/speech con un cuerpo application/json que contenga model y el texto que debe pronunciarse. Su entrada es un guion escrito y su resultado es audio sintetizado. Para un anuncio, coloca en text solo las palabras que deban pronunciarse, como un breve aviso de recolección. Para una explicación de producto, divide el guion en frases completas y fija los nombres y los números del producto antes de generar audio. Mantén fuera del guion hablado las notas de producción, los nombres de archivo y las indicaciones que deban permanecer en silencio.</p><p>El campo text no debe estar en blanco y debe contener menos de 10 000 caracteres Unicode. Envía el guion hablado completo con stream:false u omite stream. Divide el material más largo en segmentos de guion independientes y completos antes de enviar cada segmento. Puedes utilizar un documento leyendo su contenido real y colocando el pasaje pertinente en text; una URL de documento no sustituye al guion.</p><p>Elige una voz mediante voice_setting.voice_id. Las categorías de voz documentadas incluyen voces del sistema y voces clonadas o diseñadas mediante texto que ya se hayan creado; utiliza un ID de voz válido para la categoría seleccionada. La voz de ejemplo es audiobook_male_1. El mismo objeto controla speed de 0.5 a 2, vol por encima de 0 y hasta 10, y pitch entero de -12 a 12. Sus valores predeterminados son 1, 1 y 0. Estos controles ajustan aspectos distintos de la interpretación hablada, por lo que debes elegirlos por separado en lugar de colocar sus nombres en el guion.</p><p>voice_setting.emotion acepta happy, sad, angry, fearful, disgusted, surprised, calm y fluent. La documentación también describe la adaptación automática de la emoción a partir del texto. Para guiones con muchos números, voice_setting.text_normalization habilita la normalización de texto en chino e inglés y tiene false como valor predeterminado. voice_setting.latex_read controla la lectura de expresiones LaTeX y también tiene false como valor predeterminado. pronunciation_dict.tone es un array de cadenas de reglas de pronunciación. El ejemplo publicado es [&quot;草地/(cao3)(di1)&quot;]; conserva la palabra, la barra y la estructura de pronunciación entre paréntesis al proporcionar una regla.</p><p>audio_setting.format acepta mp3, pcm, flac y wav, con mp3 como valor predeterminado. sample_rate acepta 8000, 16000, 22050, 24000, 32000 y 44100 Hz; su valor predeterminado es 32000. channel es 1 para mono o 2 para dos canales, con 1 como valor predeterminado. Los valores de bitrate son 32000, 64000, 128000 y 256000 bits por segundo, con 128000 como valor predeterminado, y se aplican a mp3. Selecciona la codificación que necesite el reproductor o la herramienta de edición que vaya a utilizar el resultado.</p><p>language_boost es una cadena opcional y tiene null como valor predeterminado. Sus valores permitidos son 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 y auto. &quot;Chinese,Yue&quot; es un solo valor. Es un control independiente del guion y del ID de voz. El esquema también expone timber_weights para una lista de pares voice_id y weight entero, con cada weight de 1 a 100. Conserva la grafía del parámetro timber_weights al preparar una solicitud. voice_modify.sound_effects es una cadena opcional con los valores spacious_echo, auditorium_echo, lofi_telephone y robotic.</p><p>stream tiene false como valor predeterminado. Para una respuesta completa, output_format selecciona url o hex y tiene hex como valor predeterminado. En el resultado JSON documentado, data.audio contiene la representación seleccionada: descarga la URL firmada de Ailoot completa, incluida su cadena de consulta, o decodifica todo el audio hexadecimal en bytes. Conserva el resultado original junto con data.status, base_resp, trace_id y extra_info, que incluye el formato de audio real, la frecuencia de muestreo, el número de canales, el tamaño y usage_characters.</p><p>subtitle_enable es un booleano que tiene false como valor predeterminado y se aplica a la salida sin streaming. aigc_watermark es un booleano que tiene false como valor predeterminado y controla un marcador rítmico audible al final del audio generado. Conserva todos los resultados de audio o subtítulos devueltos y comprueba la pronunciación, los números y el archivo completado antes de incorporarlo a la aplicación. Si la entrega es incierta, conserva el identificador de la solicitud original y la respuesta para comprobar el intento existente. Ailoot también guarda el audio completado en tu biblioteca multimedia. Con output_format:&quot;url&quot;, data.audio contiene un enlace firmado a ese recurso guardado; el ID del recurso aparece en su ruta /v1/media/assets/{asset_id}/content. Los enlaces firmados a archivos de Ailoot duran 24 horas desde su emisión. Utiliza la misma clave de API para GET /v1/media/assets?family=audio y sigue todos los next_cursor para localizar los registros de recursos de audio. Consulta GET /v1/media/assets/{asset_id} para cada registro seleccionado y descarga su content_url exacto, incluida la cadena de consulta. Si una solicitud de archivo devuelve 404 con el código link_expired, vuelve a leer el mismo recurso para obtener un content_url renovado. Renueva el resultado guardado en lugar de generar audio de nuevo para sustituir un enlace caducado.</p>",
  "aboutText": "Speech 02 Turbo es la edición exacta de voz de MiniMax que se selecciona mediante model: \"minimax/speech-02-turbo\". Utiliza POST /v1/audio/speech con un cuerpo application/json que contenga model y el texto que debe pronunciarse. Su entrada es un guion escrito y su resultado es audio sintetizado. Para un anuncio, coloca en text solo las palabras que deban pronunciarse, como un breve aviso de recolección. Para una explicación de producto, divide el guion en frases completas y fija los nombres y los números del producto antes de generar audio. Mantén fuera del guion hablado las notas de producción, los nombres de archivo y las indicaciones que deban permanecer en silencio.\n\nEl campo text no debe estar en blanco y debe contener menos de 10 000 caracteres Unicode. Envía el guion hablado completo con stream:false u omite stream. Divide el material más largo en segmentos de guion independientes y completos antes de enviar cada segmento. Puedes utilizar un documento leyendo su contenido real y colocando el pasaje pertinente en text; una URL de documento no sustituye al guion.\n\nElige una voz mediante voice_setting.voice_id. Las categorías de voz documentadas incluyen voces del sistema y voces clonadas o diseñadas mediante texto que ya se hayan creado; utiliza un ID de voz válido para la categoría seleccionada. La voz de ejemplo es audiobook_male_1. El mismo objeto controla speed de 0.5 a 2, vol por encima de 0 y hasta 10, y pitch entero de -12 a 12. Sus valores predeterminados son 1, 1 y 0. Estos controles ajustan aspectos distintos de la interpretación hablada, por lo que debes elegirlos por separado en lugar de colocar sus nombres en el guion.\n\nvoice_setting.emotion acepta happy, sad, angry, fearful, disgusted, surprised, calm y fluent. La documentación también describe la adaptación automática de la emoción a partir del texto. Para guiones con muchos números, voice_setting.text_normalization habilita la normalización de texto en chino e inglés y tiene false como valor predeterminado. voice_setting.latex_read controla la lectura de expresiones LaTeX y también tiene false como valor predeterminado. pronunciation_dict.tone es un array de cadenas de reglas de pronunciación. El ejemplo publicado es [\"草地/(cao3)(di1)\"]; conserva la palabra, la barra y la estructura de pronunciación entre paréntesis al proporcionar una regla.\n\naudio_setting.format acepta mp3, pcm, flac y wav, con mp3 como valor predeterminado. sample_rate acepta 8000, 16000, 22050, 24000, 32000 y 44100 Hz; su valor predeterminado es 32000. channel es 1 para mono o 2 para dos canales, con 1 como valor predeterminado. Los valores de bitrate son 32000, 64000, 128000 y 256000 bits por segundo, con 128000 como valor predeterminado, y se aplican a mp3. Selecciona la codificación que necesite el reproductor o la herramienta de edición que vaya a utilizar el resultado.\n\nlanguage_boost es una cadena opcional y tiene null como valor predeterminado. Sus valores permitidos son 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 y auto. \"Chinese,Yue\" es un solo valor. Es un control independiente del guion y del ID de voz. El esquema también expone timber_weights para una lista de pares voice_id y weight entero, con cada weight de 1 a 100. Conserva la grafía del parámetro timber_weights al preparar una solicitud. voice_modify.sound_effects es una cadena opcional con los valores spacious_echo, auditorium_echo, lofi_telephone y robotic.\n\nstream tiene false como valor predeterminado. Para una respuesta completa, output_format selecciona url o hex y tiene hex como valor predeterminado. En el resultado JSON documentado, data.audio contiene la representación seleccionada: descarga la URL firmada de Ailoot completa, incluida su cadena de consulta, o decodifica todo el audio hexadecimal en bytes. Conserva el resultado original junto con data.status, base_resp, trace_id y extra_info, que incluye el formato de audio real, la frecuencia de muestreo, el número de canales, el tamaño y usage_characters.\n\nsubtitle_enable es un booleano que tiene false como valor predeterminado y se aplica a la salida sin streaming. aigc_watermark es un booleano que tiene false como valor predeterminado y controla un marcador rítmico audible al final del audio generado. Conserva todos los resultados de audio o subtítulos devueltos y comprueba la pronunciación, los números y el archivo completado antes de incorporarlo a la aplicación. Si la entrega es incierta, conserva el identificador de la solicitud original y la respuesta para comprobar el intento existente. Ailoot también guarda el audio completado en tu biblioteca multimedia. Con output_format:\"url\", data.audio contiene un enlace firmado a ese recurso guardado; el ID del recurso aparece en su ruta /v1/media/assets/{asset_id}/content. Los enlaces firmados a archivos de Ailoot duran 24 horas desde su emisión. Utiliza la misma clave de API para GET /v1/media/assets?family=audio y sigue todos los next_cursor para localizar los registros de recursos de audio. Consulta GET /v1/media/assets/{asset_id} para cada registro seleccionado y descarga su content_url exacto, incluida la cadena de consulta. Si una solicitud de archivo devuelve 404 con el código link_expired, vuelve a leer el mismo recurso para obtener un content_url renovado. Renueva el resultado guardado en lugar de generar audio de nuevo para sustituir un enlace caducado.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "abe7c262629f9a006ee201ee51126bacb03556d54891d2295acb9bc68c451f8e",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "es-mx",
  "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=\"Cerrar\">×</button></div><div class=\"idline\"><span>MiniMax /</span><code>minimax/speech-02-turbo</code><button type=\"button\" id=\"copy-id\">Copiar ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Secciones de la ficha del modelo\"><button type=\"button\" data-card-jump=\"overview\">Inicio</button><button type=\"button\" data-card-jump=\"methods\">Entradas y métodos</button><button type=\"button\" data-card-jump=\"pricing\">Tarifas</button><button type=\"button\" data-card-jump=\"examples\">Ejemplos</button><button type=\"button\" data-card-jump=\"results\">Resultados</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Métodos de 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\">Síntesis de voz</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\">Inicio</h3><p class=\"mdesc-full\">Speech 02 Turbo es un modelo de texto a voz de MiniMax para convertir un guion terminado en audio. La edición minimax/speech-02-turbo ofrece controles de voz, interpretación y formato de audio, con una respuesta JSON completa y la opción de salida de audio mediante URL o en hexadecimal. Utilízalo para convertir en audio hablado un anuncio preparado, una explicación de producto o un guion de narración.</p><dl class=\"card-io\" data-card-io><div><dt>Entradas aceptadas</dt><dd>Texto</dd></div><div><dt>Resultados</dt><dd>Audio</dd></div></dl><details class=\"card-about\"><summary>Sobre el modelo</summary><p class=\"note-s\" data-model-method-boundary>Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.</p><div class=\"mabout\" id=\"m-about\"><p>Speech 02 Turbo es la edición exacta de voz de MiniMax que se selecciona mediante model: &quot;minimax/speech-02-turbo&quot;. Utiliza POST /v1/audio/speech con un cuerpo application/json que contenga model y el texto que debe pronunciarse. Su entrada es un guion escrito y su resultado es audio sintetizado. Para un anuncio, coloca en text solo las palabras que deban pronunciarse, como un breve aviso de recolección. Para una explicación de producto, divide el guion en frases completas y fija los nombres y los números del producto antes de generar audio. Mantén fuera del guion hablado las notas de producción, los nombres de archivo y las indicaciones que deban permanecer en silencio.</p><p>El campo text no debe estar en blanco y debe contener menos de 10 000 caracteres Unicode. Envía el guion hablado completo con stream:false u omite stream. Divide el material más largo en segmentos de guion independientes y completos antes de enviar cada segmento. Puedes utilizar un documento leyendo su contenido real y colocando el pasaje pertinente en text; una URL de documento no sustituye al guion.</p><p>Elige una voz mediante voice_setting.voice_id. Las categorías de voz documentadas incluyen voces del sistema y voces clonadas o diseñadas mediante texto que ya se hayan creado; utiliza un ID de voz válido para la categoría seleccionada. La voz de ejemplo es audiobook_male_1. El mismo objeto controla speed de 0.5 a 2, vol por encima de 0 y hasta 10, y pitch entero de -12 a 12. Sus valores predeterminados son 1, 1 y 0. Estos controles ajustan aspectos distintos de la interpretación hablada, por lo que debes elegirlos por separado en lugar de colocar sus nombres en el guion.</p><p>voice_setting.emotion acepta happy, sad, angry, fearful, disgusted, surprised, calm y fluent. La documentación también describe la adaptación automática de la emoción a partir del texto. Para guiones con muchos números, voice_setting.text_normalization habilita la normalización de texto en chino e inglés y tiene false como valor predeterminado. voice_setting.latex_read controla la lectura de expresiones LaTeX y también tiene false como valor predeterminado. pronunciation_dict.tone es un array de cadenas de reglas de pronunciación. El ejemplo publicado es [&quot;草地/(cao3)(di1)&quot;]; conserva la palabra, la barra y la estructura de pronunciación entre paréntesis al proporcionar una regla.</p><p>audio_setting.format acepta mp3, pcm, flac y wav, con mp3 como valor predeterminado. sample_rate acepta 8000, 16000, 22050, 24000, 32000 y 44100 Hz; su valor predeterminado es 32000. channel es 1 para mono o 2 para dos canales, con 1 como valor predeterminado. Los valores de bitrate son 32000, 64000, 128000 y 256000 bits por segundo, con 128000 como valor predeterminado, y se aplican a mp3. Selecciona la codificación que necesite el reproductor o la herramienta de edición que vaya a utilizar el resultado.</p><p>language_boost es una cadena opcional y tiene null como valor predeterminado. Sus valores permitidos son 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 y auto. &quot;Chinese,Yue&quot; es un solo valor. Es un control independiente del guion y del ID de voz. El esquema también expone timber_weights para una lista de pares voice_id y weight entero, con cada weight de 1 a 100. Conserva la grafía del parámetro timber_weights al preparar una solicitud. voice_modify.sound_effects es una cadena opcional con los valores spacious_echo, auditorium_echo, lofi_telephone y robotic.</p><p>stream tiene false como valor predeterminado. Para una respuesta completa, output_format selecciona url o hex y tiene hex como valor predeterminado. En el resultado JSON documentado, data.audio contiene la representación seleccionada: descarga la URL firmada de Ailoot completa, incluida su cadena de consulta, o decodifica todo el audio hexadecimal en bytes. Conserva el resultado original junto con data.status, base_resp, trace_id y extra_info, que incluye el formato de audio real, la frecuencia de muestreo, el número de canales, el tamaño y usage_characters.</p><p>subtitle_enable es un booleano que tiene false como valor predeterminado y se aplica a la salida sin streaming. aigc_watermark es un booleano que tiene false como valor predeterminado y controla un marcador rítmico audible al final del audio generado. Conserva todos los resultados de audio o subtítulos devueltos y comprueba la pronunciación, los números y el archivo completado antes de incorporarlo a la aplicación. Si la entrega es incierta, conserva el identificador de la solicitud original y la respuesta para comprobar el intento existente. Ailoot también guarda el audio completado en tu biblioteca multimedia. Con output_format:&quot;url&quot;, data.audio contiene un enlace firmado a ese recurso guardado; el ID del recurso aparece en su ruta /v1/media/assets/{asset_id}/content. Los enlaces firmados a archivos de Ailoot duran 24 horas desde su emisión. Utiliza la misma clave de API para GET /v1/media/assets?family=audio y sigue todos los next_cursor para localizar los registros de recursos de audio. Consulta GET /v1/media/assets/{asset_id} para cada registro seleccionado y descarga su content_url exacto, incluida la cadena de consulta. Si una solicitud de archivo devuelve 404 con el código link_expired, vuelve a leer el mismo recurso para obtener un content_url renovado. Renueva el resultado guardado en lugar de generar audio de nuevo para sustituir un enlace caducado.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponible en Ailoot · entradas y métodos</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>Entrada</dt><dd><code>text</code></dd></div><div><dt>Salida</dt><dd><code>audio</code></dd></div><div><dt>Formato de salida</dt><dd>mp3,pcm,flac,wav</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Campo</th><th>Tipo</th><th>Requisito</th><th>Valores y límites</th><th>Predeterminado</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obligatorio</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>minimax/speech-02-turbo</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">text</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obligatorio</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>boolean</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>false</div></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>false</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_setting</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>object</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_setting.voice_id</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_setting.speed</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>number</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>Mínimo: 0.5</div><div>Máximo: 2</div></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>1</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_setting.vol</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>number</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>Mínimo: 0</div><div>Máximo: 10</div></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>1</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_setting.pitch</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>integer</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>Mínimo: -12</div><div>Máximo: 12</div></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>0</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_setting.emotion</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>happy, sad, angry, fearful, disgusted, surprised, calm, fluent</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_setting.text_normalization</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>boolean</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>false</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_setting.latex_read</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>boolean</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>false</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">audio_setting</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>object</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">audio_setting.sample_rate</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>integer</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>8,000, 16,000, 22,050, 24,000, 32,000, 44,100</div></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>32,000</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">audio_setting.bitrate</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>integer</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>32,000, 64,000, 128,000, 256,000</div></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>128,000</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">audio_setting.format</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>mp3, pcm, flac, wav</div></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>mp3</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">audio_setting.channel</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>integer</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>1, 2</div></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>1</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">audio_setting.force_cbr</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>boolean</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>false</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">pronunciation_dict</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>object</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">pronunciation_dict.tone</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>array</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">timber_weights</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>array</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">language_boost</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</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=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_modify</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>object</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_modify.pitch</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>integer</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>-100, 100</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_modify.intensity</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>integer</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>-100, 100</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_modify.timbre</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>integer</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>-100, 100</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">voice_modify.sound_effects</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>spacious_echo, auditorium_echo, lofi_telephone, robotic</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">subtitle_enable</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>boolean</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>false</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">output_format</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>url, hex</div></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>hex</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">aigc_watermark</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>boolean</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Opcional</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>false</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Parámetros del método y ciclo de vida</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parámetro</th><th>Contrato</th></tr></thead><tbody><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>content_type</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>application/json</td></tr><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>required</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>model, text</td></tr><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>optional</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</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=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>material_types</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>text</td></tr><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>conditions</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</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>Ciclo de vida: <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\">Tarifas</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.</p><dl data-price-conditions><dt>Modo fast</dt><dd>Sin especificar <span class=\"note-s\">Cuando se selecciona el modo fast</span></dd><dt>Modo flex</dt><dd>Sin especificar <span class=\"note-s\">Cuando se selecciona el modo flex</span></dd><dt>Esfuerzo máximo de razonamiento</dt><dd>Sin especificar <span class=\"note-s\">Cuando el esfuerzo máximo de razonamiento usa el ajuste default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifas de Ailoot</h4><h4>Precios por configuración</h4><p class=\"note-s\">Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuración</th><th>Tabla de tarifas</th><th>Unidad de facturación</th><th>Cargo</th></tr></thead><tbody><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Tarifas base por token</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>Tarifa base</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>—</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Entrada · Tokens de entrada</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Salida · Tokens de salida</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Lectura de caché</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escritura en caché</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escritura en caché, 1 hora</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>carácter de entrada</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>por carácter de entrada</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Entrada · carácter de entrada</span> <b>$0.00012</b> <span class=\"price-unit\">por carácter de entrada</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserva un monto estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. <a href=\"/docs/es-mx/billing/reserve/\">Cómo funcionan la reserva y la liquidación →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Solicitudes de ejemplo</h3><h4>Ailoot Ultra · Speech</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes del código\"><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 · crea una sola vez y conserva el resultado completo</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copiar código\"><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\">Recibir y guardar resultados</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>Conserva todos los resultados completados</h5><p class=\"note-s\">Conserva todas las respuestas, archivos y partes de contenido completos recibidos.</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 es necesario revisar la respuesta original</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>Campos de respuesta</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Campo</th><th>Tipo</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">data.audio</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">extra_info</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>object</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">trace_id</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span>string</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias del modelo</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 de rutas de métodos</h4><p class=\"note-s\">Usa las rutas de método indicadas arriba.</p><h4>ID de modelo relacionados</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": "1a1b9435ee1cbc72721aa965603a97c40723f7419d6237d4f3fb5f34aac86ecb",
    "input_html_sha256": "c27a04c08667147f687f2ac00360c8e6ff4d034fea87e634315e17dfad3c325b",
    "private_audit_sha256": "b965d42b87e34bea114815142f5c78ff6f0582d0cb479c0109ee5c3229d58dd8",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/es-mx/minimax-speech-02-turbo/",
    "description": "Speech 02 Turbo es un modelo de texto a voz de MiniMax para convertir un guion terminado en audio. La edición minimax/speech-02-turbo ofrece controles de voz, interpretación y formato de audio, con una respuesta JSON completa y la opción de salida de audio mediante URL o en hexadecimal. Utilízalo para convertir en audio hablado un anuncio preparado, una explicación de producto o un guion de narración.",
    "locale": "es-mx",
    "md_url": "https://ailoot.ai/models/es-mx/minimax-speech-02-turbo/index.md",
    "title": "MiniMax: Speech 02 Turbo — Ailoot",
    "url": "https://ailoot.ai/models/es-mx/minimax-speech-02-turbo/"
  },
  "rawModel": {
    "about": "Speech 02 Turbo es la edición exacta de voz de MiniMax que se selecciona mediante model: \"minimax/speech-02-turbo\". Utiliza POST /v1/audio/speech con un cuerpo application/json que contenga model y el texto que debe pronunciarse. Su entrada es un guion escrito y su resultado es audio sintetizado. Para un anuncio, coloca en text solo las palabras que deban pronunciarse, como un breve aviso de recolección. Para una explicación de producto, divide el guion en frases completas y fija los nombres y los números del producto antes de generar audio. Mantén fuera del guion hablado las notas de producción, los nombres de archivo y las indicaciones que deban permanecer en silencio.\n\nEl campo text no debe estar en blanco y debe contener menos de 10 000 caracteres Unicode. Envía el guion hablado completo con stream:false u omite stream. Divide el material más largo en segmentos de guion independientes y completos antes de enviar cada segmento. Puedes utilizar un documento leyendo su contenido real y colocando el pasaje pertinente en text; una URL de documento no sustituye al guion.\n\nElige una voz mediante voice_setting.voice_id. Las categorías de voz documentadas incluyen voces del sistema y voces clonadas o diseñadas mediante texto que ya se hayan creado; utiliza un ID de voz válido para la categoría seleccionada. La voz de ejemplo es audiobook_male_1. El mismo objeto controla speed de 0.5 a 2, vol por encima de 0 y hasta 10, y pitch entero de -12 a 12. Sus valores predeterminados son 1, 1 y 0. Estos controles ajustan aspectos distintos de la interpretación hablada, por lo que debes elegirlos por separado en lugar de colocar sus nombres en el guion.\n\nvoice_setting.emotion acepta happy, sad, angry, fearful, disgusted, surprised, calm y fluent. La documentación también describe la adaptación automática de la emoción a partir del texto. Para guiones con muchos números, voice_setting.text_normalization habilita la normalización de texto en chino e inglés y tiene false como valor predeterminado. voice_setting.latex_read controla la lectura de expresiones LaTeX y también tiene false como valor predeterminado. pronunciation_dict.tone es un array de cadenas de reglas de pronunciación. El ejemplo publicado es [\"草地/(cao3)(di1)\"]; conserva la palabra, la barra y la estructura de pronunciación entre paréntesis al proporcionar una regla.\n\naudio_setting.format acepta mp3, pcm, flac y wav, con mp3 como valor predeterminado. sample_rate acepta 8000, 16000, 22050, 24000, 32000 y 44100 Hz; su valor predeterminado es 32000. channel es 1 para mono o 2 para dos canales, con 1 como valor predeterminado. Los valores de bitrate son 32000, 64000, 128000 y 256000 bits por segundo, con 128000 como valor predeterminado, y se aplican a mp3. Selecciona la codificación que necesite el reproductor o la herramienta de edición que vaya a utilizar el resultado.\n\nlanguage_boost es una cadena opcional y tiene null como valor predeterminado. Sus valores permitidos son 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 y auto. \"Chinese,Yue\" es un solo valor. Es un control independiente del guion y del ID de voz. El esquema también expone timber_weights para una lista de pares voice_id y weight entero, con cada weight de 1 a 100. Conserva la grafía del parámetro timber_weights al preparar una solicitud. voice_modify.sound_effects es una cadena opcional con los valores spacious_echo, auditorium_echo, lofi_telephone y robotic.\n\nstream tiene false como valor predeterminado. Para una respuesta completa, output_format selecciona url o hex y tiene hex como valor predeterminado. En el resultado JSON documentado, data.audio contiene la representación seleccionada: descarga la URL firmada de Ailoot completa, incluida su cadena de consulta, o decodifica todo el audio hexadecimal en bytes. Conserva el resultado original junto con data.status, base_resp, trace_id y extra_info, que incluye el formato de audio real, la frecuencia de muestreo, el número de canales, el tamaño y usage_characters.\n\nsubtitle_enable es un booleano que tiene false como valor predeterminado y se aplica a la salida sin streaming. aigc_watermark es un booleano que tiene false como valor predeterminado y controla un marcador rítmico audible al final del audio generado. Conserva todos los resultados de audio o subtítulos devueltos y comprueba la pronunciación, los números y el archivo completado antes de incorporarlo a la aplicación. Si la entrega es incierta, conserva el identificador de la solicitud original y la respuesta para comprobar el intento existente. Ailoot también guarda el audio completado en tu biblioteca multimedia. Con output_format:\"url\", data.audio contiene un enlace firmado a ese recurso guardado; el ID del recurso aparece en su ruta /v1/media/assets/{asset_id}/content. Los enlaces firmados a archivos de Ailoot duran 24 horas desde su emisión. Utiliza la misma clave de API para GET /v1/media/assets?family=audio y sigue todos los next_cursor para localizar los registros de recursos de audio. Consulta GET /v1/media/assets/{asset_id} para cada registro seleccionado y descarga su content_url exacto, incluida la cadena de consulta. Si una solicitud de archivo devuelve 404 con el código link_expired, vuelve a leer el mismo recurso para obtener un content_url renovado. Renueva el resultado guardado en lugar de generar audio de nuevo para sustituir un enlace caducado.",
    "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 es un modelo de texto a voz de MiniMax para convertir un guion terminado en audio. La edición minimax/speech-02-turbo ofrece controles de voz, interpretación y formato de audio, con una respuesta JSON completa y la opción de salida de audio mediante URL o en hexadecimal. Utilízalo para convertir en audio hablado un anuncio preparado, una explicación de producto o un guion de narración."
  },
  "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 es un modelo de texto a voz de MiniMax para convertir un guion terminado en audio. La edición minimax/speech-02-turbo ofrece controles de voz, interpretación y formato de audio, con una respuesta JSON completa y la opción de salida de audio mediante URL o en hexadecimal. Utilízalo para convertir en audio hablado un anuncio preparado, una explicación de producto o un guion de narración.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "06ceb410ab8e2b05300ec891e2763a59da70bbd874537518612d846252169e87",
    "renderer_sha256": "50c5984577eac7205687c05e1c36de5d3ba7a0afdff02194efad3a88143581e8"
  },
  "sourceRevision": "b188099683d93eae6eef3b95d212f6b5a068465c638d5d5bc0c3c6d181483b36"
}
