{
  "aboutHtml": "<p>Microsoft AI MAI-Transcribe 2 es la edición de voz a texto para audio grabado de la familia de transcripción de segunda generación de Microsoft. Convierte contenido hablado en texto escrito en 60 idiomas, con identificación automática del idioma y compatibilidad con habla que alterna entre idiomas. El modelo añade diarización de hablantes, temporización por palabra y estilos seleccionables de transcripción. Los entregables útiles incluyen una transcripción de reunión con atribución de hablantes, un registro de entrevista con búsqueda, datos de alineación para subtítulos o dictado revisado con terminología especializada.</p><p>Prepara la grabación con el material hablado intacto. El fabricante indica entradas WAV, MP3 y FLAC. Mantén disponible el audio original para comparar palabras dudosas, nombres y números con el texto reconocido. Una grabación puede contener ruido de fondo o calidad variable del micrófono, aspectos que el modelo está diseñado para manejar, pero la revisión debe seguir centrándose en los pasajes poco claros o superpuestos. Para una entrevista, conserva la secuencia de turnos y pausas en lugar de eliminar el contexto que ayuda a interpretar una respuesta.</p><p>La detección automática del idioma resulta útil cuando el idioma no se conoce de antemano. El conjunto documentado de 60 idiomas incluye inglés, ruso, chino, japonés, coreano, árabe, francés, alemán, español, indonesio, malayo, tailandés y vietnamita. La alternancia de idiomas cubre cambios naturales entre idiomas, incluidas mezclas como Hinglish o Spanglish. La interfaz del fabricante también acepta una indicación de un solo idioma, que describe como una instrucción fuerte. Úsala únicamente cuando la grabación esté realmente en el idioma especificado, en lugar de forzar una conversación multilingüe a un idioma esperado.</p><p>La orientación por palabras clave proporciona términos específicos de dominio, abreviaturas, nombres de productos y nombres propios que de otro modo pueden ser difíciles de distinguir a partir del sonido. Prepara una lista enfocada y relacionada con la grabación, como el nombre del proyecto, una línea de productos o palabras técnicas usadas en la discusión. La guía de servicio los describe como indicaciones de reconocimiento, no como coincidencias forzadas. Para una clase técnica, incluye la escritura exacta de los instrumentos identificados y los términos especializados, y después comprueba si la transcripción los coloca donde realmente se pronunciaron. Un término proporcionado no demuestra que el hablante lo haya dicho.</p><p>Elige el estilo de salida según el entregable previsto. Verbatim, la opción predeterminada documentada, conserva muletillas, comienzos en falso y autocorrecciones. Clean elimina las disfluencias para una transcripción más legible. Un registro utilizado para examinar cómo se desarrolló una conversación puede conservar la vacilación y la corrección; una transcripción legible de una lección puede usar la redacción depurada. Mantén el audio original junto con cualquiera de los resultados. La depuración mejora la presentación del texto hablado y no debe tratarse como un resumen separado ni una nueva interpretación de lo que quiso decir el hablante.</p><p>La diarización de hablantes separa los turnos según el hablante detectado, y las marcas de tiempo por palabra proporcionan un desplazamiento y una duración para cada palabra. La interfaz de servicio también ofrece temporización por segmentos o ausencia de temporización. Los segmentos se dividen por idioma y, cuando está habilitada la diarización, por hablante. Los campos de tiempo usan milisegundos y pueden apoyar navegación, búsqueda y edición. Las etiquetas distinguen los hablantes detectados; asociar una etiqueta con el nombre de un participante es un paso separado de revisión. Para subtítulos, usa tiempos por palabra revisados para preparar grupos legibles de bloques, en lugar de asumir que el resultado del reconocimiento ya es un archivo terminado de subtítulos.</p><p>La ficha del modelo indica un tamaño máximo de archivo de 300 MB y dos horas. La referencia REST síncrona enlazada para la interfaz documentada 2025-10-15 exige, en cambio, un archivo menor de 250 MB y más corto de dos horas. Son restricciones publicadas distintas de la ficha del modelo y del servicio; prepara un archivo dentro de los límites aplicables del servicio. La guía MAI también indica que la diarización admite grabaciones más cortas que la transcripción sin diarización. Organiza el material largo con varios hablantes en secciones coherentes cuando se necesite atribución de hablantes, y conserva la posición de la sección en la grabación original para revisión posterior.</p><p>La salida documentada son datos estructurados de transcripción: el texto completo, frases y, cuando se solicita, información de hablantes y tiempos. Una frase puede incluir su texto, idioma, desplazamiento y duración; la temporización por palabra puede vincular una palabra reconocida con el audio. Para un archivo con búsqueda, conserva esas relaciones para que un término encontrado permita regresar a la grabación. Para un flujo de reuniones, una transcripción revisada se convierte en entrada para resumen posterior o extracción de acciones pendientes. El resultado del modelo de voz es el contenido reconocido, no un relato verificado de forma independiente de las decisiones de la reunión.</p><p>La diferencia entre versiones es concreta. MAI-Transcribe 1.5 cubre 43 idiomas, mientras que esta edición cubre 60 y añade los controles documentados de diarización, marcas de tiempo por palabra y estilos clean/verbatim. MAI-Transcribe 2 Streaming es un modelo separado para transcripción incremental en tiempo real con su propio conjunto de funciones; su latencia hasta el primer resultado parcial no describe esta edición para audio grabado. Contrasta la transcripción con el audio para revisar nombres, números, turnos de hablantes y pasajes con idiomas mezclados antes de utilizarla como fuente de subtítulos, citas o un documento derivado.</p>",
  "aboutText": "Microsoft AI MAI-Transcribe 2 es la edición de voz a texto para audio grabado de la familia de transcripción de segunda generación de Microsoft. Convierte contenido hablado en texto escrito en 60 idiomas, con identificación automática del idioma y compatibilidad con habla que alterna entre idiomas. El modelo añade diarización de hablantes, temporización por palabra y estilos seleccionables de transcripción. Los entregables útiles incluyen una transcripción de reunión con atribución de hablantes, un registro de entrevista con búsqueda, datos de alineación para subtítulos o dictado revisado con terminología especializada.\n\nPrepara la grabación con el material hablado intacto. El fabricante indica entradas WAV, MP3 y FLAC. Mantén disponible el audio original para comparar palabras dudosas, nombres y números con el texto reconocido. Una grabación puede contener ruido de fondo o calidad variable del micrófono, aspectos que el modelo está diseñado para manejar, pero la revisión debe seguir centrándose en los pasajes poco claros o superpuestos. Para una entrevista, conserva la secuencia de turnos y pausas en lugar de eliminar el contexto que ayuda a interpretar una respuesta.\n\nLa detección automática del idioma resulta útil cuando el idioma no se conoce de antemano. El conjunto documentado de 60 idiomas incluye inglés, ruso, chino, japonés, coreano, árabe, francés, alemán, español, indonesio, malayo, tailandés y vietnamita. La alternancia de idiomas cubre cambios naturales entre idiomas, incluidas mezclas como Hinglish o Spanglish. La interfaz del fabricante también acepta una indicación de un solo idioma, que describe como una instrucción fuerte. Úsala únicamente cuando la grabación esté realmente en el idioma especificado, en lugar de forzar una conversación multilingüe a un idioma esperado.\n\nLa orientación por palabras clave proporciona términos específicos de dominio, abreviaturas, nombres de productos y nombres propios que de otro modo pueden ser difíciles de distinguir a partir del sonido. Prepara una lista enfocada y relacionada con la grabación, como el nombre del proyecto, una línea de productos o palabras técnicas usadas en la discusión. La guía de servicio los describe como indicaciones de reconocimiento, no como coincidencias forzadas. Para una clase técnica, incluye la escritura exacta de los instrumentos identificados y los términos especializados, y después comprueba si la transcripción los coloca donde realmente se pronunciaron. Un término proporcionado no demuestra que el hablante lo haya dicho.\n\nElige el estilo de salida según el entregable previsto. Verbatim, la opción predeterminada documentada, conserva muletillas, comienzos en falso y autocorrecciones. Clean elimina las disfluencias para una transcripción más legible. Un registro utilizado para examinar cómo se desarrolló una conversación puede conservar la vacilación y la corrección; una transcripción legible de una lección puede usar la redacción depurada. Mantén el audio original junto con cualquiera de los resultados. La depuración mejora la presentación del texto hablado y no debe tratarse como un resumen separado ni una nueva interpretación de lo que quiso decir el hablante.\n\nLa diarización de hablantes separa los turnos según el hablante detectado, y las marcas de tiempo por palabra proporcionan un desplazamiento y una duración para cada palabra. La interfaz de servicio también ofrece temporización por segmentos o ausencia de temporización. Los segmentos se dividen por idioma y, cuando está habilitada la diarización, por hablante. Los campos de tiempo usan milisegundos y pueden apoyar navegación, búsqueda y edición. Las etiquetas distinguen los hablantes detectados; asociar una etiqueta con el nombre de un participante es un paso separado de revisión. Para subtítulos, usa tiempos por palabra revisados para preparar grupos legibles de bloques, en lugar de asumir que el resultado del reconocimiento ya es un archivo terminado de subtítulos.\n\nLa ficha del modelo indica un tamaño máximo de archivo de 300 MB y dos horas. La referencia REST síncrona enlazada para la interfaz documentada 2025-10-15 exige, en cambio, un archivo menor de 250 MB y más corto de dos horas. Son restricciones publicadas distintas de la ficha del modelo y del servicio; prepara un archivo dentro de los límites aplicables del servicio. La guía MAI también indica que la diarización admite grabaciones más cortas que la transcripción sin diarización. Organiza el material largo con varios hablantes en secciones coherentes cuando se necesite atribución de hablantes, y conserva la posición de la sección en la grabación original para revisión posterior.\n\nLa salida documentada son datos estructurados de transcripción: el texto completo, frases y, cuando se solicita, información de hablantes y tiempos. Una frase puede incluir su texto, idioma, desplazamiento y duración; la temporización por palabra puede vincular una palabra reconocida con el audio. Para un archivo con búsqueda, conserva esas relaciones para que un término encontrado permita regresar a la grabación. Para un flujo de reuniones, una transcripción revisada se convierte en entrada para resumen posterior o extracción de acciones pendientes. El resultado del modelo de voz es el contenido reconocido, no un relato verificado de forma independiente de las decisiones de la reunión.\n\nLa diferencia entre versiones es concreta. MAI-Transcribe 1.5 cubre 43 idiomas, mientras que esta edición cubre 60 y añade los controles documentados de diarización, marcas de tiempo por palabra y estilos clean/verbatim. MAI-Transcribe 2 Streaming es un modelo separado para transcripción incremental en tiempo real con su propio conjunto de funciones; su latencia hasta el primer resultado parcial no describe esta edición para audio grabado. Contrasta la transcripción con el audio para revisar nombres, números, turnos de hablantes y pasajes con idiomas mezclados antes de utilizarla como fuente de subtítulos, citas o un documento derivado.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "e025435a7139aee34a82f1ca14bdcfa349d0525148e6d5ca806a19df54af7f85",
    "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\">•</span><h2 id=\"sheet-title\">Microsoft AI: MAI-Transcribe 2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Cerrar\">×</button></div><div class=\"idline\"><span>Microsoft AI /</span><code>microsoft/mai-transcribe-2</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|transcriptions|/v1/audio/transcriptions|microsoft%2Fmai-transcribe-2\">Transcripción</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\">Microsoft AI MAI-Transcribe 2 convierte habla grabada en texto en 60 idiomas, con identificación automática del idioma y alternancia de idiomas. Añade diarización de hablantes, tiempos por palabra, orientación por palabras clave y estilos limpio o literal para registros de reuniones, subtítulos, audio con búsqueda y dictado especializado.</p><dl class=\"card-io\" data-card-io><div><dt>Entradas aceptadas</dt><dd>Audio</dd></div><div><dt>Resultados</dt><dd>Texto</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>Microsoft AI MAI-Transcribe 2 es la edición de voz a texto para audio grabado de la familia de transcripción de segunda generación de Microsoft. Convierte contenido hablado en texto escrito en 60 idiomas, con identificación automática del idioma y compatibilidad con habla que alterna entre idiomas. El modelo añade diarización de hablantes, temporización por palabra y estilos seleccionables de transcripción. Los entregables útiles incluyen una transcripción de reunión con atribución de hablantes, un registro de entrevista con búsqueda, datos de alineación para subtítulos o dictado revisado con terminología especializada.</p><p>Prepara la grabación con el material hablado intacto. El fabricante indica entradas WAV, MP3 y FLAC. Mantén disponible el audio original para comparar palabras dudosas, nombres y números con el texto reconocido. Una grabación puede contener ruido de fondo o calidad variable del micrófono, aspectos que el modelo está diseñado para manejar, pero la revisión debe seguir centrándose en los pasajes poco claros o superpuestos. Para una entrevista, conserva la secuencia de turnos y pausas en lugar de eliminar el contexto que ayuda a interpretar una respuesta.</p><p>La detección automática del idioma resulta útil cuando el idioma no se conoce de antemano. El conjunto documentado de 60 idiomas incluye inglés, ruso, chino, japonés, coreano, árabe, francés, alemán, español, indonesio, malayo, tailandés y vietnamita. La alternancia de idiomas cubre cambios naturales entre idiomas, incluidas mezclas como Hinglish o Spanglish. La interfaz del fabricante también acepta una indicación de un solo idioma, que describe como una instrucción fuerte. Úsala únicamente cuando la grabación esté realmente en el idioma especificado, en lugar de forzar una conversación multilingüe a un idioma esperado.</p><p>La orientación por palabras clave proporciona términos específicos de dominio, abreviaturas, nombres de productos y nombres propios que de otro modo pueden ser difíciles de distinguir a partir del sonido. Prepara una lista enfocada y relacionada con la grabación, como el nombre del proyecto, una línea de productos o palabras técnicas usadas en la discusión. La guía de servicio los describe como indicaciones de reconocimiento, no como coincidencias forzadas. Para una clase técnica, incluye la escritura exacta de los instrumentos identificados y los términos especializados, y después comprueba si la transcripción los coloca donde realmente se pronunciaron. Un término proporcionado no demuestra que el hablante lo haya dicho.</p><p>Elige el estilo de salida según el entregable previsto. Verbatim, la opción predeterminada documentada, conserva muletillas, comienzos en falso y autocorrecciones. Clean elimina las disfluencias para una transcripción más legible. Un registro utilizado para examinar cómo se desarrolló una conversación puede conservar la vacilación y la corrección; una transcripción legible de una lección puede usar la redacción depurada. Mantén el audio original junto con cualquiera de los resultados. La depuración mejora la presentación del texto hablado y no debe tratarse como un resumen separado ni una nueva interpretación de lo que quiso decir el hablante.</p><p>La diarización de hablantes separa los turnos según el hablante detectado, y las marcas de tiempo por palabra proporcionan un desplazamiento y una duración para cada palabra. La interfaz de servicio también ofrece temporización por segmentos o ausencia de temporización. Los segmentos se dividen por idioma y, cuando está habilitada la diarización, por hablante. Los campos de tiempo usan milisegundos y pueden apoyar navegación, búsqueda y edición. Las etiquetas distinguen los hablantes detectados; asociar una etiqueta con el nombre de un participante es un paso separado de revisión. Para subtítulos, usa tiempos por palabra revisados para preparar grupos legibles de bloques, en lugar de asumir que el resultado del reconocimiento ya es un archivo terminado de subtítulos.</p><p>La ficha del modelo indica un tamaño máximo de archivo de 300 MB y dos horas. La referencia REST síncrona enlazada para la interfaz documentada 2025-10-15 exige, en cambio, un archivo menor de 250 MB y más corto de dos horas. Son restricciones publicadas distintas de la ficha del modelo y del servicio; prepara un archivo dentro de los límites aplicables del servicio. La guía MAI también indica que la diarización admite grabaciones más cortas que la transcripción sin diarización. Organiza el material largo con varios hablantes en secciones coherentes cuando se necesite atribución de hablantes, y conserva la posición de la sección en la grabación original para revisión posterior.</p><p>La salida documentada son datos estructurados de transcripción: el texto completo, frases y, cuando se solicita, información de hablantes y tiempos. Una frase puede incluir su texto, idioma, desplazamiento y duración; la temporización por palabra puede vincular una palabra reconocida con el audio. Para un archivo con búsqueda, conserva esas relaciones para que un término encontrado permita regresar a la grabación. Para un flujo de reuniones, una transcripción revisada se convierte en entrada para resumen posterior o extracción de acciones pendientes. El resultado del modelo de voz es el contenido reconocido, no un relato verificado de forma independiente de las decisiones de la reunión.</p><p>La diferencia entre versiones es concreta. MAI-Transcribe 1.5 cubre 43 idiomas, mientras que esta edición cubre 60 y añade los controles documentados de diarización, marcas de tiempo por palabra y estilos clean/verbatim. MAI-Transcribe 2 Streaming es un modelo separado para transcripción incremental en tiempo real con su propio conjunto de funciones; su latencia hasta el primer resultado parcial no describe esta edición para audio grabado. Contrasta la transcripción con el audio para revisar nombres, números, turnos de hablantes y pasajes con idiomas mezclados antes de utilizarla como fuente de subtítulos, citas o un documento derivado.</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 · Transcripción</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Entrada</dt><dd><code>audio</code></dd></div><div><dt>Salida</dt><dd><code>text</code></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>microsoft/mai-transcribe-2</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\">input_audio</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>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\">language</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\">temperature</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: 1</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\">response_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>json, verbose_json</div></td><td data-cell-label=\"Predeterminado\" data-default=\"known\"><span class=\"card-cell-label\">Predeterminado</span>json</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">timestamp_granularities</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\">provider</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></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, input_audio</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>audio</td></tr><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>material_conditions</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>Lee un archivo WAV real y codifica sus bytes reales para el input_audio JSON declarado; no se anuncia una ruta multipart para esta declaración exacta que solo acepta JSON.</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/tasks/{task_id}</code> · El task_id real devuelto o el registro de la biblioteca multimedia</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarifas</h3><div class=\"card-result-process\" data-billing-basis><h5>Cómo se calcula el cargo definitivo</h5><p class=\"note-s\">Las tarifas mostradas permiten estimar el costo antes de la generación. El cargo final se calcula a partir del costo registrado para la generación original. La duración medida de la salida y las cantidades estimadas no son la cantidad facturable final.</p></div><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 estimadas para comparar</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>Cantidad prevista</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=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>—</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 · Estimación solo para comparar</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Salida · Tokens de salida · Estimación solo para comparar</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Lectura de caché · Estimación solo para comparar</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escritura en caché · Estimación solo para comparar</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escritura en caché, 1 hora · Estimación solo para comparar</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>hora de audio de entrada</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>—</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>por hora de audio de entrada</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Entrada · hora de audio de entrada · Estimación solo para comparar</span> <b>$0.2</b> <span class=\"price-unit\">por hora de audio de entrada</span></div></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Costo estimado de generación</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Cantidad prevista\"><span class=\"card-cell-label\">Cantidad prevista</span>estimación para una generación</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>Salida · Costo estimado de generación · Estimación solo para comparar</span> <b>$0.00005555555555555556</b> <span class=\"price-unit\">estimación previa a la generación</span></div><p class=\"note-s\">Esta estimación no es un cargo adicional ni una tarifa fija por la generación completada.</p></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 · Transcripción</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-1847-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1847-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · cuerpo nativo exacto y 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-1847-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1847-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual WAV recording}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nimport base64\naudio=Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4]==b&#39;RIFF&#39; and audio[8:12]==b&#39;WAVE&#39;): raise SystemExit(&#39;Supply an actual WAV audio file&#39;)\nif len(audio)&gt;26214400: raise SystemExit(&#39;Use a documented supported large-file flow&#39;)\nrequest={&#39;model&#39;: &#39;microsoft/mai-transcribe-2&#39;, &#39;input_audio&#39;: {&#39;data&#39;: &#39;${BASE64_ACTUAL_WAV_BYTES}&#39;, &#39;format&#39;: &#39;wav&#39;}}\nrequest[&#39;input_audio&#39;][&#39;data&#39;]=base64.b64encode(audio).decode(&#39;ascii&#39;)\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\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 · Transcripción</h4><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Otras consultas de contenido</summary><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-1848-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1848-panel-0\" aria-selected=\"true\" tabindex=\"0\">Consultar los archivos existentes que te pertenecen</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-1848-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1848-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><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\">Conserva la respuesta completa y los encabezados, todas las salidas reales, los identificadores originales devueltos y todos los campos de uso. Recupera la operación original sin volver a enviar la solicitud de creación.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Si es necesario revisar la respuesta original</h5><p class=\"note-s\">Conserva el X-Client-Request-ID devuelto para la conciliación. Consulta únicamente los valores reales de task_id/asset_id devueltos o la biblioteca multimedia de tu propiedad; nunca construyas una URL de tarea a partir del ID de la operación ni vuelvas a enviar la solicitud de creación.</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\">text</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">segments[]</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">words[]</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">speaker fields</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">timestamps</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></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=microsoft%2Fmai-transcribe-2&amp;route=Ultra&amp;caller=microsoft%2Fmai-transcribe-2&amp;fmt=transcriptions\"><code>microsoft/mai-transcribe-2</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=microsoft%2Fmai-transcribe-2&amp;route=Ultra&amp;caller=microsoft%2Fmai-transcribe-2&amp;fmt=transcriptions\"><code>microsoft/mai-transcribe-2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "microsoft/mai-transcribe-2",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "microsoft/mai-transcribe-2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|microsoft%2Fmai-transcribe-2",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Las tarifas mostradas permiten estimar el costo antes de la generación. El cargo final se calcula a partir del costo registrado para la generación original. La duración medida de la salida y las cantidades estimadas no son la cantidad facturable final.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conserva el X-Client-Request-ID devuelto para la conciliación. Consulta únicamente los valores reales de task_id/asset_id devueltos o la biblioteca multimedia de tu propiedad; nunca construyas una URL de tarea a partir del ID de la operación ni vuelvas a enviar la solicitud de creación."
            },
            "outputs": {
              "all_results": "Conserva la respuesta completa y los encabezados, todas las salidas reales, los identificadores originales devueltos y todos los campos de uso. Recupera la operación original sin volver a enviar la solicitud de creación.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                },
                {
                  "description": null,
                  "name": "segments[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "words[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "speaker fields",
                  "type": null
                },
                {
                  "description": null,
                  "name": "timestamps",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "microsoft/mai-transcribe-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "name": "input_audio",
                "required": true,
                "type": "object"
              },
              {
                "name": "language",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 0,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "default": "json",
                "default_known": true,
                "enum": [
                  "json",
                  "verbose_json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "items": {
                  "enum": [
                    "segment",
                    "word"
                  ],
                  "type": "string"
                },
                "name": "timestamp_granularities",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "enum": [
                        "wav",
                        "mp3",
                        "flac",
                        "m4a",
                        "ogg",
                        "webm",
                        "aac"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "language": {
                  "description": "ISO-639-1 code; omitted means auto-detection",
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "microsoft/mai-transcribe-2"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Data policy and exact provider options; order/only/ignore are not applied to STT",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "json",
                  "description": "verbose_json requires exact model/provider support",
                  "enum": [
                    "json",
                    "verbose_json"
                  ],
                  "type": "string"
                },
                "temperature": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "timestamp_granularities": {
                  "description": "Only used with supported verbose_json",
                  "items": {
                    "enum": [
                      "segment",
                      "word"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "microsoft/mai-transcribe-2"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Lee un archivo WAV real y codifica sus bytes reales para el input_audio JSON declarado; no se anuncia una ruta multipart para esta declaración exacta que solo acepta JSON."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "El task_id real devuelto o el registro de la biblioteca multimedia",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              },
              {
                "description": null,
                "name": "segments[]",
                "type": null
              },
              {
                "description": null,
                "name": "words[]",
                "type": null
              },
              {
                "description": null,
                "name": "speaker fields",
                "type": null
              },
              {
                "description": null,
                "name": "timestamps",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio hour"
            },
            "label": "input audio hour",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "stt_hour",
                "label": "input audio hour",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per input audio hour",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "stt_hour"
              }
            ]
          },
          {
            "basis": "Esta estimación no es un cargo adicional ni una tarifa fija por la generación completada.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Costo estimado de generación",
            "units": [
              {
                "amount": "0.00005555555555555556",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.00005555555555555556",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual WAV recording}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nimport base64\naudio=Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4]==b'RIFF' and audio[8:12]==b'WAVE'): raise SystemExit('Supply an actual WAV audio file')\nif len(audio)>26214400: raise SystemExit('Use a documented supported large-file flow')\nrequest={'model': 'microsoft/mai-transcribe-2', 'input_audio': {'data': '${BASE64_ACTUAL_WAV_BYTES}', 'format': 'wav'}}\nrequest['input_audio']['data']=base64.b64encode(audio).decode('ascii')\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transcripción",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio hour"
            },
            "label": "input audio hour",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "stt_hour",
                "label": "input audio hour",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per input audio hour",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "stt_hour"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.00005555555555555556",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.00005555555555555556",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "microsoft/mai-transcribe-2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.2",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "stt_hour",
            "label": "input audio hour",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "per input audio hour",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "stt_hour"
          },
          {
            "amount": "0.00005555555555555556",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.00005555555555555556",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "microsoft/mai-transcribe-2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "828bfaeb645baa656c875033499f2c56cbe2ee15a6d2e71a94b0b4e963439afb",
    "input_html_sha256": "31e58e298b3ae323a2290e8e3ac7e2eba3eb43ced79f75e6a31107a66fea0f94",
    "private_audit_sha256": "2561f039f3de6a002c2daa578e025177a30e16439a448352d65dd121895baf50",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/es-mx/microsoft-mai-transcribe-2/",
    "description": "Microsoft AI MAI-Transcribe 2 convierte habla grabada en texto en 60 idiomas, con identificación automática del idioma y alternancia de idiomas. Añade diarización de hablantes, tiempos por palabra, orientación por palabras clave y estilos limpio o literal para registros de reuniones, subtítulos, audio con búsqueda y dictado especializado.",
    "locale": "es-mx",
    "md_url": "https://ailoot.ai/models/es-mx/microsoft-mai-transcribe-2/index.md",
    "title": "Microsoft AI: MAI-Transcribe 2 — Ailoot",
    "url": "https://ailoot.ai/models/es-mx/microsoft-mai-transcribe-2/"
  },
  "rawModel": {
    "about": "Microsoft AI MAI-Transcribe 2 es la edición de voz a texto para audio grabado de la familia de transcripción de segunda generación de Microsoft. Convierte contenido hablado en texto escrito en 60 idiomas, con identificación automática del idioma y compatibilidad con habla que alterna entre idiomas. El modelo añade diarización de hablantes, temporización por palabra y estilos seleccionables de transcripción. Los entregables útiles incluyen una transcripción de reunión con atribución de hablantes, un registro de entrevista con búsqueda, datos de alineación para subtítulos o dictado revisado con terminología especializada.\n\nPrepara la grabación con el material hablado intacto. El fabricante indica entradas WAV, MP3 y FLAC. Mantén disponible el audio original para comparar palabras dudosas, nombres y números con el texto reconocido. Una grabación puede contener ruido de fondo o calidad variable del micrófono, aspectos que el modelo está diseñado para manejar, pero la revisión debe seguir centrándose en los pasajes poco claros o superpuestos. Para una entrevista, conserva la secuencia de turnos y pausas en lugar de eliminar el contexto que ayuda a interpretar una respuesta.\n\nLa detección automática del idioma resulta útil cuando el idioma no se conoce de antemano. El conjunto documentado de 60 idiomas incluye inglés, ruso, chino, japonés, coreano, árabe, francés, alemán, español, indonesio, malayo, tailandés y vietnamita. La alternancia de idiomas cubre cambios naturales entre idiomas, incluidas mezclas como Hinglish o Spanglish. La interfaz del fabricante también acepta una indicación de un solo idioma, que describe como una instrucción fuerte. Úsala únicamente cuando la grabación esté realmente en el idioma especificado, en lugar de forzar una conversación multilingüe a un idioma esperado.\n\nLa orientación por palabras clave proporciona términos específicos de dominio, abreviaturas, nombres de productos y nombres propios que de otro modo pueden ser difíciles de distinguir a partir del sonido. Prepara una lista enfocada y relacionada con la grabación, como el nombre del proyecto, una línea de productos o palabras técnicas usadas en la discusión. La guía de servicio los describe como indicaciones de reconocimiento, no como coincidencias forzadas. Para una clase técnica, incluye la escritura exacta de los instrumentos identificados y los términos especializados, y después comprueba si la transcripción los coloca donde realmente se pronunciaron. Un término proporcionado no demuestra que el hablante lo haya dicho.\n\nElige el estilo de salida según el entregable previsto. Verbatim, la opción predeterminada documentada, conserva muletillas, comienzos en falso y autocorrecciones. Clean elimina las disfluencias para una transcripción más legible. Un registro utilizado para examinar cómo se desarrolló una conversación puede conservar la vacilación y la corrección; una transcripción legible de una lección puede usar la redacción depurada. Mantén el audio original junto con cualquiera de los resultados. La depuración mejora la presentación del texto hablado y no debe tratarse como un resumen separado ni una nueva interpretación de lo que quiso decir el hablante.\n\nLa diarización de hablantes separa los turnos según el hablante detectado, y las marcas de tiempo por palabra proporcionan un desplazamiento y una duración para cada palabra. La interfaz de servicio también ofrece temporización por segmentos o ausencia de temporización. Los segmentos se dividen por idioma y, cuando está habilitada la diarización, por hablante. Los campos de tiempo usan milisegundos y pueden apoyar navegación, búsqueda y edición. Las etiquetas distinguen los hablantes detectados; asociar una etiqueta con el nombre de un participante es un paso separado de revisión. Para subtítulos, usa tiempos por palabra revisados para preparar grupos legibles de bloques, en lugar de asumir que el resultado del reconocimiento ya es un archivo terminado de subtítulos.\n\nLa ficha del modelo indica un tamaño máximo de archivo de 300 MB y dos horas. La referencia REST síncrona enlazada para la interfaz documentada 2025-10-15 exige, en cambio, un archivo menor de 250 MB y más corto de dos horas. Son restricciones publicadas distintas de la ficha del modelo y del servicio; prepara un archivo dentro de los límites aplicables del servicio. La guía MAI también indica que la diarización admite grabaciones más cortas que la transcripción sin diarización. Organiza el material largo con varios hablantes en secciones coherentes cuando se necesite atribución de hablantes, y conserva la posición de la sección en la grabación original para revisión posterior.\n\nLa salida documentada son datos estructurados de transcripción: el texto completo, frases y, cuando se solicita, información de hablantes y tiempos. Una frase puede incluir su texto, idioma, desplazamiento y duración; la temporización por palabra puede vincular una palabra reconocida con el audio. Para un archivo con búsqueda, conserva esas relaciones para que un término encontrado permita regresar a la grabación. Para un flujo de reuniones, una transcripción revisada se convierte en entrada para resumen posterior o extracción de acciones pendientes. El resultado del modelo de voz es el contenido reconocido, no un relato verificado de forma independiente de las decisiones de la reunión.\n\nLa diferencia entre versiones es concreta. MAI-Transcribe 1.5 cubre 43 idiomas, mientras que esta edición cubre 60 y añade los controles documentados de diarización, marcas de tiempo por palabra y estilos clean/verbatim. MAI-Transcribe 2 Streaming es un modelo separado para transcripción incremental en tiempo real con su propio conjunto de funciones; su latencia hasta el primer resultado parcial no describe esta edición para audio grabado. Contrasta la transcripción con el audio para revisar nombres, números, turnos de hablantes y pasajes con idiomas mezclados antes de utilizarla como fuente de subtítulos, citas o un documento derivado.",
    "alias_of": null,
    "aliases": [],
    "author": "Microsoft AI",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00005555555555555556",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.00005555555555555556",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Consulta los precios completos de la configuración en los detalles."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "microsoft/mai-transcribe-2",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Las tarifas mostradas permiten estimar el costo antes de la generación. El cargo final se calcula a partir del costo registrado para la generación original. La duración medida de la salida y las cantidades estimadas no son la cantidad facturable final.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conserva el X-Client-Request-ID devuelto para la conciliación. Consulta únicamente los valores reales de task_id/asset_id devueltos o la biblioteca multimedia de tu propiedad; nunca construyas una URL de tarea a partir del ID de la operación ni vuelvas a enviar la solicitud de creación."
            },
            "outputs": {
              "all_results": "Conserva la respuesta completa y los encabezados, todas las salidas reales, los identificadores originales devueltos y todos los campos de uso. Recupera la operación original sin volver a enviar la solicitud de creación.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                },
                {
                  "description": null,
                  "name": "segments[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "words[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "speaker fields",
                  "type": null
                },
                {
                  "description": null,
                  "name": "timestamps",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "microsoft/mai-transcribe-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "name": "input_audio",
                "required": true,
                "type": "object"
              },
              {
                "name": "language",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 0,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "default": "json",
                "default_known": true,
                "enum": [
                  "json",
                  "verbose_json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "items": {
                  "enum": [
                    "segment",
                    "word"
                  ],
                  "type": "string"
                },
                "name": "timestamp_granularities",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "enum": [
                        "wav",
                        "mp3",
                        "flac",
                        "m4a",
                        "ogg",
                        "webm",
                        "aac"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "language": {
                  "description": "ISO-639-1 code; omitted means auto-detection",
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "microsoft/mai-transcribe-2"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Data policy and exact provider options; order/only/ignore are not applied to STT",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "json",
                  "description": "verbose_json requires exact model/provider support",
                  "enum": [
                    "json",
                    "verbose_json"
                  ],
                  "type": "string"
                },
                "temperature": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "timestamp_granularities": {
                  "description": "Only used with supported verbose_json",
                  "items": {
                    "enum": [
                      "segment",
                      "word"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "microsoft/mai-transcribe-2"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Lee un archivo WAV real y codifica sus bytes reales para el input_audio JSON declarado; no se anuncia una ruta multipart para esta declaración exacta que solo acepta JSON."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "El task_id real devuelto o el registro de la biblioteca multimedia",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              },
              {
                "description": null,
                "name": "segments[]",
                "type": null
              },
              {
                "description": null,
                "name": "words[]",
                "type": null
              },
              {
                "description": null,
                "name": "speaker fields",
                "type": null
              },
              {
                "description": null,
                "name": "timestamps",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio hour"
            },
            "label": "input audio hour",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "stt_hour",
                "label": "input audio hour",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per input audio hour",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "stt_hour"
              }
            ]
          },
          {
            "basis": "Esta estimación no es un cargo adicional ni una tarifa fija por la generación completada.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Costo estimado de generación",
            "units": [
              {
                "amount": "0.00005555555555555556",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.00005555555555555556",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual WAV recording}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nimport base64\naudio=Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4]==b'RIFF' and audio[8:12]==b'WAVE'): raise SystemExit('Supply an actual WAV audio file')\nif len(audio)>26214400: raise SystemExit('Use a documented supported large-file flow')\nrequest={'model': 'microsoft/mai-transcribe-2', 'input_audio': {'data': '${BASE64_ACTUAL_WAV_BYTES}', 'format': 'wav'}}\nrequest['input_audio']['data']=base64.b64encode(audio).decode('ascii')\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transcripción",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "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": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio hour"
            },
            "label": "input audio hour",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "stt_hour",
                "label": "input audio hour",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per input audio hour",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "stt_hour"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.00005555555555555556",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.00005555555555555556",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "microsoft/mai-transcribe-2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "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": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.2",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "stt_hour",
            "label": "input audio hour",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "per input audio hour",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "stt_hour"
          },
          {
            "amount": "0.00005555555555555556",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.00005555555555555556",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "microsoft/mai-transcribe-2",
        "request_model_id": "microsoft/mai-transcribe-2",
        "route_label": "Ultra"
      }
    ],
    "name": "Microsoft AI: MAI-Transcribe 2",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 5.555555555555556e-05,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 5.555555555555556e-05,
      "varies": false
    },
    "short": "Microsoft AI MAI-Transcribe 2 convierte habla grabada en texto en 60 idiomas, con identificación automática del idioma y alternancia de idiomas. Añade diarización de hablantes, tiempos por palabra, orientación por palabras clave y estilos limpio o literal para registros de reuniones, subtítulos, audio con búsqueda y dictado especializado."
  },
  "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": "Microsoft AI MAI-Transcribe 2 convierte habla grabada en texto en 60 idiomas, con identificación automática del idioma y alternancia de idiomas. Añade diarización de hablantes, tiempos por palabra, orientación por palabras clave y estilos limpio o literal para registros de reuniones, subtítulos, audio con búsqueda y dictado especializado.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "f7dd50b041ea931c0c24856ea40b28b2c83eba0ca8ecc16cabcd4fe74901b7f4",
    "renderer_sha256": "50c5984577eac7205687c05e1c36de5d3ba7a0afdff02194efad3a88143581e8"
  },
  "sourceRevision": "b0f0978404fc42491ccd207028e58371f1ee68a590b1d7ad8fb67bb79344afbf"
}
