> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mka1.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Transcripción de voz a texto

> Convierte audio a texto utilizando reconocimiento de voz avanzado.

**Carga de Archivo Completo (Estándar)**
Utiliza `Content-Type: multipart/form-data` para cargar el archivo de audio completo en una sola solicitud. Tamaño máximo del archivo: 25MB.

Ejemplo:
```bash
curl -X POST "http://localhost:3000/api/v1/llm/speech/transcriptions?language=es" \
  -F "file=@audio.flac"
```

**Carga en Fragmentos (Streaming)**
Utiliza el encabezado `Transfer-Encoding: chunked` para transmitir datos de audio en fragmentos a medida que se graban. No es necesario conocer el tamaño total del archivo por adelantado. El servidor almacena los fragmentos hasta que se completan antes de procesarlos. Tamaño total máximo: 25MB.

Ejemplo:
```bash
curl -X POST "http://localhost:3000/api/v1/llm/speech/transcriptions?language=es" \
  -H "Transfer-Encoding: chunked" \
  -H "Content-Type: multipart/form-data" \
  --data-binary @audio.flac
```

**Formatos Soportados:** FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV, WebM

**Parámetros de Consulta:**
- `model` (opcional): Identificador del modelo de transcripción. Por defecto es 'auto'.
- `language` (opcional): Código de idioma ISO-639-1 o BCP-47 (por ejemplo, "es", "es-ES"). Se detecta automáticamente si no se especifica.
- `prompt` (opcional): Parámetro de solicitud heredado mantenido por compatibilidad hacia atrás.
- `temperature` (opcional): Parámetro de temperatura heredado mantenido por compatibilidad hacia atrás.
- `include_speaker_data` (opcional): Cuando es `true`, incluye datos de diarización de hablantes y requiere entrada WAV/PCM. De lo contrario, la transcripción utiliza la ruta de compatibilidad estándar.

**Respuesta:** Devuelve el texto transcrito en formato JSON.



## OpenAPI

````yaml https://apigw.mka1.com/speakeasy.json?language=es post /api/v1/llm/speech/transcriptions
openapi: 3.1.1
info:
  title: MKA1 API
  version: 1.1.0
  description: >-
    La API MKA1 es una API RESTful que proporciona acceso a la plataforma MKA1.
    Aprende cómo comenzar con la API y el SDK de TypeScript
    [aquí](https://mka1.apidocumentation.com/guides/getting-started).
  license:
    name: Propietario
servers:
  - url: https://apigw.mka1.com
    description: MKA1 API Gateway
  - url: /
    description: Relative server URL (configurable via SDK constructor)
security: []
tags:
  - name: Resource Authorization
    description: >-
      Gestiona permisos para recursos LLM. Crea recursos, otorga/revoca permisos
      y elimina recursos. Solo los propietarios de recursos pueden otorgar,
      revocar o eliminar permisos.
    x-displayName: Autorización de Recursos
  - name: Embeddings
    description: >-
      Puntos finales de la API de incrustación de texto para generar
      representaciones vectoriales del texto. Crea incrustaciones semánticas
      para búsqueda, agrupamiento y coincidencia de similitudes utilizando
      varios modelos de incrustación.
    x-displayName: Incrustaciones
  - name: Feedback
    description: >-
      API de retroalimentación del usuario para calificar y comentar sobre las
      completaciones de chat. Recopila calificaciones de pulgares arriba/abajo y
      comentarios detallados para mejorar las respuestas del modelo y rastrear
      la satisfacción del usuario.
    x-displayName: Retroalimentación
  - name: Images
    description: >-
      Puntos finales de la API de generación de imágenes para crear imágenes a
      partir de descripciones de texto. Genera imágenes con control sobre el
      tamaño, la calidad y el estilo.
    x-displayName: Imágenes
  - name: MCP Vault
    description: >-
      API de bóveda MCP para almacenar configuraciones de servidor MCP propiedad
      del usuario y credenciales encriptadas. Los agentes hacen referencia a los
      ID de la bóveda para que los secretos se resuelvan solo en el momento de
      la ejecución de la herramienta.
    x-displayName: Bóveda MCP
  - name: Speech
    description: >-
      Puntos finales de la API de voz para el procesamiento de audio. Convierte
      texto en habla natural (TTS) o transcribe el habla a texto (STT) en
      diferentes idiomas.
    x-displayName: Discurso
  - name: Usage
    description: >-
      API de seguimiento de uso y análisis para monitorear el consumo de tokens,
      la cantidad de solicitudes y el análisis de costos. Visualiza estadísticas
      detalladas por usuario, modelo y período de tiempo.
    x-displayName: Uso
  - name: Extract
    description: >-
      API de extracción de datos estructurados para extraer información de
      archivos. Define esquemas JSON para extraer datos estructurados de
      imágenes, PDFs y documentos. Soporta plantillas de esquemas reutilizables.
    x-displayName: Extracción
  - name: Text Classification
    description: >-
      API de clasificación de texto para categorizar texto en etiquetas
      predefinidas. Utilice modelos de IA para clasificar el contenido del texto
      para análisis de sentimientos, categorización de temas y moderación de
      contenido.
    x-displayName: Clasificación de Texto
  - name: Responses
    description: >-
      API de respuestas impulsadas por agentes para crear agentes de IA con uso
      autónomo de herramientas. Crea asistentes conversacionales que pueden
      utilizar búsqueda en la web, operaciones con archivos, generación de
      imágenes, ejecución de código, simulación de uso de computadoras e
      integraciones de MCP. Soporta procesamiento en segundo plano, transmisión
      y seguimiento de estado en tiempo real.
    x-displayName: Respuestas
  - name: Files
    description: >-
      API de gestión de archivos para cargar, almacenar y gestionar archivos con
      expiración automática e integración con S3. Carga archivos que se pueden
      usar con Asistentes, Almacenes Vectoriales y otras funciones. Los archivos
      se almacenan en S3 con metadatos rastreados en PostgreSQL. Soporta la
      limpieza automática de archivos expirados.
    x-displayName: Archivos
  - name: Vector Stores
    description: >-
      API de almacenamiento de vectores para almacenar y buscar documentos
      utilizando incrustaciones. Crea almacenes de vectores, sube archivos con
      fragmentación automática y generación de incrustaciones, y realiza
      búsquedas semánticas. Los archivos se procesan de forma asincrónica
      utilizando flujos de trabajo de Temporal para durabilidad. Soporta
      limpieza automática de almacenes caducados y LanceDB para almacenamiento
      eficiente de vectores.
    x-displayName: Almacenes de Vectores
  - name: Conversations
    description: >-
      API de gestión de conversaciones para almacenar y recuperar el estado de
      la conversación a través de llamadas a la API de respuesta. Crea
      conversaciones, añade elementos (mensajes de usuario, mensajes del
      asistente, mensajes del sistema) y mantiene el historial de la
      conversación. Soporta seguimiento de metadatos y gestión del estado del
      diálogo en múltiples turnos.
    x-displayName: Conversaciones
  - name: Guardrails
    description: >-
      API de salvaguardias de seguridad de IA para configurar la moderación de
      contenido y las políticas de seguridad. Configura listas de palabras
      prohibidas, detección de inyección de mensajes y prevención de filtración
      de mensajes del sistema. Las salvaguardias se aplican a todas las
      solicitudes de una cuenta y se pueden probar antes del despliegue.
    x-displayName: Barandillas
  - name: Models
    description: >-
      API de listado de modelos para descubrir modelos disponibles. Devuelve IDs
      de modelos, propiedad y metadatos para todos los modelos registrados en la
      puerta de enlace.
    x-displayName: Modelos
  - name: Skills
    description: >-
      API de habilidades para gestionar paquetes de instrucciones y archivos
      versionados siguiendo el estándar de Habilidades del Agente. Crea,
      versiona y descarga paquetes de habilidades reutilizables que incluyen
      manifiestos SKILL.md para entornos de agentes.
    x-displayName: Habilidades
  - name: Chat Completions
    description: >-
      **Obsoleto: Usa la API de Respuestas (`/api/v1/llm/responses`) en su
      lugar.** Puntos finales de completación de chat con soporte para
      transmisión, llamadas a herramientas y múltiples proveedores.
    x-deprecated: true
    x-displayName: Completaciones de Chat
  - name: Batches
    x-displayName: Lotes
  - name: Evals
    x-displayName: Evaluaciones
  - name: Fine-Tuning
    x-displayName: Ajuste fino
  - name: Memory Stores
    x-displayName: Almacenes de memoria
  - name: Prompts
    x-displayName: Sugerencias
  - name: API Key
    x-displayName: Clave de API
  - name: Organization
    x-displayName: Organización
  - name: Cluster Admin
    x-displayName: Administrador de clúster
  - name: Sessions
    description: Crear, inspeccionar, acceder y terminar sesiones de sandbox.
    x-displayName: Sesiones
  - name: Browser
    description: >-
      Conéctate a las sesiones del navegador a través del proxy del puerto de la
      puerta de enlace. Las sesiones del navegador exponen un punto final del
      Protocolo de DevTools de Chrome en el puerto 9222.
    x-displayName: Navegador
  - name: Execution
    description: >-
      Ejecutar comandos de shell y código dentro de una sesión de sandbox
      existente.
    x-displayName: Ejecución
  - name: Workspace
    description: >-
      Inspeccionar el manifiesto del espacio de trabajo, transferir archivos o
      archivos comprimidos, y descargar artefactos generados.
    x-displayName: Espacio de trabajo
  - name: Sandbox Usage
    description: >-
      Agrega estadísticas de uso de sandbox entre sesiones, ejecución y
      operaciones del espacio de trabajo.
    x-displayName: Uso de Sandbox
  - name: Sandbox Pricing
    description: >-
      Gestión de administrador de clúster de la tarjeta de tarifas de cómputo
      del entorno aislado utilizada para el gasto presupuestado.
    x-displayName: Precios de Sandbox
  - name: Agents
    description: Crea y gestiona definiciones de agentes reutilizables.
    x-displayName: Agentes
  - name: Agent Versions
    description: >-
      Inspeccionar el historial de configuración de un agente y revertir a una
      versión anterior.
    x-displayName: Versiones de Agente
  - name: Agent Runs
    description: >-
      Ejecutar agentes guardados e inspeccionar los resultados de ejecución
      persistidos.
    x-displayName: Ejecuta Agentes
  - name: Agent Schedules
    description: >-
      Crea y gestiona ejecuciones de agentes programadas o recurrentes
      guardadas.
    x-displayName: Horarios de Agentes
  - name: schema-4_other
    x-displayName: otro
  - name: Budgets
    x-displayName: Presupuestos
  - name: Settings
    x-displayName: Configuración
  - name: Deployments
    description: Servidores de inferencia de larga duración.
    x-displayName: Implementaciones
  - name: Fine-Tune Jobs
    description: Enviar, monitorear y cancelar trabajos de ajuste fino.
    x-displayName: Trabajos de ajuste fino
  - name: Container Images
    description: Imágenes de contenedor personalizadas para implementaciones y trabajos.
    x-displayName: Imágenes de contenedores
  - name: Serving Models
    description: Modelos registrados para implementación y ajuste fino.
    x-displayName: Sirviendo modelos
  - name: Volumes
    description: Almacenamiento persistente para pesos y puntos de control.
    x-displayName: Volúmenes
  - name: Secrets
    description: Credenciales inyectadas en tus cargas de trabajo.
    x-displayName: Secretos
  - name: Accelerators
    description: Tipos de aceleradores disponibles (GPU, NPU, TPU).
    x-displayName: Aceleradores
paths:
  /api/v1/llm/speech/transcriptions:
    post:
      tags:
        - Speech
      summary: Transcripción de voz a texto
      description: >-
        Convierte audio a texto utilizando reconocimiento de voz avanzado.


        **Carga de Archivo Completo (Estándar)**

        Utiliza `Content-Type: multipart/form-data` para cargar el archivo de
        audio completo en una sola solicitud. Tamaño máximo del archivo: 25MB.


        Ejemplo:

        ```bash

        curl -X POST
        "http://localhost:3000/api/v1/llm/speech/transcriptions?language=es" \
          -F "file=@audio.flac"
        ```


        **Carga en Fragmentos (Streaming)**

        Utiliza el encabezado `Transfer-Encoding: chunked` para transmitir datos
        de audio en fragmentos a medida que se graban. No es necesario conocer
        el tamaño total del archivo por adelantado. El servidor almacena los
        fragmentos hasta que se completan antes de procesarlos. Tamaño total
        máximo: 25MB.


        Ejemplo:

        ```bash

        curl -X POST
        "http://localhost:3000/api/v1/llm/speech/transcriptions?language=es" \
          -H "Transfer-Encoding: chunked" \
          -H "Content-Type: multipart/form-data" \
          --data-binary @audio.flac
        ```


        **Formatos Soportados:** FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV, WebM


        **Parámetros de Consulta:**

        - `model` (opcional): Identificador del modelo de transcripción. Por
        defecto es 'auto'.

        - `language` (opcional): Código de idioma ISO-639-1 o BCP-47 (por
        ejemplo, "es", "es-ES"). Se detecta automáticamente si no se especifica.

        - `prompt` (opcional): Parámetro de solicitud heredado mantenido por
        compatibilidad hacia atrás.

        - `temperature` (opcional): Parámetro de temperatura heredado mantenido
        por compatibilidad hacia atrás.

        - `include_speaker_data` (opcional): Cuando es `true`, incluye datos de
        diarización de hablantes y requiere entrada WAV/PCM. De lo contrario, la
        transcripción utiliza la ruta de compatibilidad estándar.


        **Respuesta:** Devuelve el texto transcrito en formato JSON.
      operationId: transcribe
      parameters:
        - name: model
          in: query
          schema:
            type: string
            default: auto
            description: >-
              Identificador del modelo de transcripción. Por defecto es 'auto',
              que selecciona el mejor modelo disponible. Se ignora cuando se
              solicita la diarización de hablantes.
            examples:
              - auto
          allowEmptyValue: true
          example: auto
        - name: language
          in: query
          schema:
            type: string
            description: >-
              El idioma del audio de entrada en formato ISO-639-1 o BCP-47 (por
              ejemplo, 'en' o 'en-US'). Si no se especifica, el servicio de
              transcripción detecta automáticamente el idioma.
            examples:
              - en
          allowEmptyValue: true
          example: en
        - name: include_speaker_data
          in: query
          schema:
            type: boolean
            default: false
            description: >-
              Si incluir datos de segmentos de oradores. Por defecto es falso.
              Cuando es verdadero, la respuesta incluye una matriz de oradores
              dividida por orador detectado.
            examples:
              - true
          allowEmptyValue: true
          example: true
        - name: prompt
          in: query
          schema:
            type: string
            description: >-
              Parámetro de solicitud legado mantenido para compatibilidad hacia
              atrás. Usado solo por la ruta de respaldo para cargas que no son
              WAV.
            examples:
              - This is a technical podcast about machine learning.
          allowEmptyValue: true
          example: This is a technical podcast about machine learning.
        - name: temperature
          in: query
          schema:
            type: number
            minimum: 0
            maximum: 1
            description: >-
              Parámetro de temperatura heredado mantenido por compatibilidad
              hacia atrás. Utilizado solo por la ruta de retroceso para cargas
              que no son WAV.
            examples:
              - 0.2
          allowEmptyValue: true
          example: 0.2
        - name: store
          in: query
          schema:
            type: boolean
            default: false
            description: >-
              Cuando es verdadero, persiste esta transcripción (el audio de
              entrada y el texto transcrito) en el historial de texto a voz. Por
              defecto es falso.
            examples:
              - true
          allowEmptyValue: true
          example: true
        - name: X-On-Behalf-Of
          in: header
          required: false
          schema:
            type: string
          description: Optional external end-user identifier forwarded by the API gateway.
      requestBody:
        required: true
        content:
          multipart/form-data:
            example:
              file: (binary)
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: >-
                    Archivo de audio para transcribir.


                    **Requisitos del archivo:**

                    - Tamaño máximo: 25MB

                    - Formatos soportados: FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG,
                    WAV, WebM

                    - La diarización de hablantes actualmente requiere entrada
                    en WAV / PCM


                    **Opciones de carga:**

                    1. Estándar: Cargar el archivo completo usando
                    multipart/form-data

                    2. En trozos: Transmitir fragmentos del archivo usando el
                    encabezado Transfer-Encoding: chunked (útil para grabación
                    en tiempo real)


                    **Nota:** Para cargas en trozos, el servidor almacena en
                    búfer todos los fragmentos antes de procesarlos. La
                    transcripción comienza solo después de recibir el archivo
                    completo.
              required:
                - file
      responses:
        '200':
          description: Está bien
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranscriptionResponse'
              example:
                text: Hello, this is a sample transcription of the audio file.
                language: en
                confidence: 0.95
                speakers:
                  - speaker: Speaker-1
                    text: Hello, this is a sample transcription of the audio file.
                    confidence: 0.95
                    offset_ms: 0
                    duration_ms: 2100
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python (SDK)
          source: |-
            from meetkai_mka1 import SDK


            with SDK(
                bearer_auth="<YOUR_BEARER_TOKEN_HERE>",
            ) as sdk:

                res = sdk.llm.speech.transcribe(file={
                    "file_name": "example.file",
                    "content": open("example.file", "rb"),
                }, model="auto", language="en", include_speaker_data=True, prompt="This is a technical podcast about machine learning.", temperature=0.2, store=True)

                # Handle response
                print(res)
        - lang: typescript
          label: Typescript (SDK)
          source: |-
            import { SDK } from "@meetkai/mka1";
            import { openAsBlob } from "node:fs";

            const sdk = new SDK({
              bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
            });

            async function run() {
              const result = await sdk.llm.speech.transcribe({
                language: "en",
                includeSpeakerData: true,
                prompt: "This is a technical podcast about machine learning.",
                temperature: 0.2,
                store: true,
                requestBody: {
                  file: await openAsBlob("example.file"),
                },
              });

              console.log(result);
            }

            run();
        - lang: csharp
          label: CSharp (SDK)
          source: |-
            using MeetKai.MKA1;
            using MeetKai.MKA1.Types.Components;
            using MeetKai.MKA1.Types.Requests;

            var sdk = new SDK(bearerAuth: "<YOUR_BEARER_TOKEN_HERE>");

            TranscribeRequest req = new TranscribeRequest() {
                Language = "en",
                IncludeSpeakerData = true,
                Prompt = "This is a technical podcast about machine learning.",
                Temperature = 0.2D,
                Store = true,
                Body = new TranscribeRequestBody() {
                    File = new TranscribeFile() {
                        FileName = "example.file",
                        Content = System.IO.File.ReadAllBytes("example.file"),
                    },
                },
            };

            var res = await sdk.Llm.Speech.TranscribeAsync(req);

            // handle response
components:
  schemas:
    TranscriptionResponse:
      type: object
      properties:
        text:
          type: string
          description: El texto transcrito del archivo de audio
        language:
          type: string
          description: >-
            El código de idioma detectado o especificado en formato ISO-639-1
            (por ejemplo, 'en', 'es', 'fr')
        confidence:
          type: number
          description: >-
            Puntuación de confianza de 0 a 1 donde 1 indica la mayor confianza
            en la precisión de la transcripción.
        speakers:
          type: array
          items:
            $ref: '#/components/schemas/SpeakerSegment'
          description: >-
            Segmentos de diarización de hablantes, devueltos solo cuando
            include_speaker_data es verdadero.
      required:
        - text
      description: >-
        Respuesta del punto final de transcripción que contiene el texto
        transcrito, el idioma detectado, la puntuación de confianza y segmentos
        de hablante opcionales.
      examples:
        - text: Hello, this is a sample transcription of the audio file.
          language: en
          confidence: 0.95
          speakers:
            - speaker: Speaker-1
              text: Hello, this is a sample transcription of the audio file.
              confidence: 0.95
              offset_ms: 0
              duration_ms: 2100
    SpeakerSegment:
      type: object
      properties:
        speaker:
          type: string
          description: >-
            Identificador de hablante detectado para este segmento, por ejemplo
            'Hablante-1'.
        text:
          type: string
          description: El texto transcrito para este segmento del hablante.
        confidence:
          type: number
          description: Puntuación de confianza de 0 a 1 para este segmento.
        offset_ms:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          description: Offset de inicio del segmento en milisegundos.
        duration_ms:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          description: Duración del segmento en milisegundos.
      required:
        - speaker
        - text
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Gateway auth: send `Authorization: Bearer <mka1-api-key>`. For
        multi-user server-side integrations, you can also send `X-On-Behalf-Of:
        <external-user-id>`.

````