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

# Voz a texto

> Usa modelos Whisper para convertir archivos de audio en texto, con funciones de transcripción y traducción

## Introducción

La API de voz a texto (STT) basada en los modelos Whisper de OpenAI puede convertir archivos de audio en texto. Admite varios casos de uso:

* Transcribir archivos de audio a texto
* Traducir audio multilingüe al inglés
* Compatibilidad con múltiples formatos de entrada de audio
* Varias opciones de formato de salida

**Lista de modelos disponibles:**

* **whisper-large-v3** —— El modelo Whisper grande más reciente; admite varios idiomas. Para el reconocimiento de chino, úsalo con prompts adecuados y valores bajos de temperatura
* **whisper-1** —— Modelo Whisper original, estable y fiable; admite varios idiomas
* **distil-whisper-large-v3-en** —— Modelo destilado; mayor velocidad de procesamiento pero precisión ligeramente menor; se recomienda con valores bajos de temperatura

<Tip>
  **Recomendaciones de rendimiento:**

  * Para audio en chino, se recomienda usar el modelo `whisper-large-v3` con prompts adecuados y valores de temperatura más bajos (p. ej., 0.2) para reducir las alucinaciones
  * Para audio en inglés o un procesamiento más rápido, usa el modelo `distil-whisper-large-v3-en`
  * Formatos de audio admitidos: mp3, mp4, mpeg, mpga, m4a, wav, webm
  * Límite de tamaño de archivo: máximo 25 MB
</Tip>

## Uso de los modelos

### Transcripción de voz

Usa el endpoint `/v1/audio/transcriptions` mediante el método `client.audio.transcriptions.create()` para transcribir audio a texto en el idioma original.

### Traducción de voz

Usa el endpoint `/v1/audio/translations` mediante el método `client.audio.translations.create()` para traducir audio a texto en inglés.

### Parámetros de la solicitud

#### Parámetros de transcripción

<ParamField body="file" type="file" required>
  Objeto de archivo de audio a transcribir. Formatos admitidos: mp3, mp4, mpeg, mpga, m4a, wav, webm, máximo 25 MB
</ParamField>

<ParamField body="model" type="string" required>
  ID del modelo a usar. Opciones: `whisper-large-v3`, `whisper-1`, `distil-whisper-large-v3-en`
</ParamField>

<ParamField body="language" type="string">
  Idioma del audio de entrada en formato ISO-639-1 (p. ej., 'en', 'zh'). Especificar el idioma puede mejorar la precisión y la latencia
</ParamField>

<ParamField body="prompt" type="string">
  Prompt de texto opcional para guiar el estilo del modelo o continuar un segmento de audio previo. El prompt debe coincidir con el idioma del audio
</ParamField>

<ParamField body="response_format" type="string">
  Formato de salida de la transcripción. Opciones: `json` (predeterminado), `text`, `srt`, `verbose_json`, `vtt`
</ParamField>

<ParamField body="temperature" type="number">
  Temperatura de muestreo entre 0 y 1. Valores más altos hacen la salida más aleatoria; valores más bajos la hacen más enfocada y determinista. Por defecto 0
</ParamField>

<ParamField body="timestamp_granularities[]" type="array">
  Granularidades de las marcas temporales. Opciones: `word`, `segment`. Solo disponible cuando response\_format es verbose\_json
</ParamField>

#### Parámetros de traducción

<ParamField body="file" type="file" required>
  Objeto de archivo de audio a traducir. Mismos formatos que la transcripción
</ParamField>

<ParamField body="model" type="string" required>
  ID del modelo a usar; igual que en los parámetros de transcripción
</ParamField>

<ParamField body="prompt" type="string">
  Prompt opcional en texto inglés para guiar el estilo de la traducción
</ParamField>

<ParamField body="response_format" type="string">
  Formato de salida de la traducción; igual que en los parámetros de transcripción
</ParamField>

<ParamField body="temperature" type="number">
  Temperatura de muestreo; igual que en los parámetros de transcripción
</ParamField>

## Ejemplos de uso

<CodeGroup>
  ```shell Curl Transcription theme={null}
  curl https://aihubmix.com/v1/audio/transcriptions \
    -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
    -H "Content-Type: multipart/form-data" \
    -F file="@/path/to/file/audio.mp3" \
    -F model="whisper-large-v3" \
    -F response_format="text" \
    -F temperature="0.2"
  ```

  ```shell Curl Translation theme={null}
  curl https://aihubmix.com/v1/audio/translations \
    -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
    -H "Content-Type: multipart/form-data" \
    -F file="@/path/to/file/audio.mp3" \
    -F model="whisper-large-v3" \
    -F prompt="autocorrect, clean up the stammer, and translate to english" \
    -F response_format="text" \
    -F temperature="0.2"
  ```

  ```py Speech Transcription theme={null}
  from openai import OpenAI
  import os

  client = OpenAI(
    api_key="sk-***", # Replace with your AiHubMix API key
    base_url="https://aihubmix.com/v1"
  )

  # Open audio file
  audio_file = open("path/to/audio.mp3", "rb")

  # Transcribe audio
  transcript = client.audio.transcriptions.create(
    model="whisper-large-v3",
    file=audio_file,
    language="en",  # Specify English for better accuracy
    prompt="Please transcribe accurately with proper punctuation and grammar",
    response_format="text",
    temperature=0.2  # Lower randomness to reduce hallucinations
  )

  print(transcript)
  ```

  ```py Speech Translation theme={null}
  from openai import OpenAI
  import os

  client = OpenAI(
    api_key="sk-***", # Replace with your AiHubMix API key
    base_url="https://aihubmix.com/v1"
  )

  # Open audio file
  audio_file = open("path/to/audio.m4a", "rb")

  # Translate audio to English
  translation = client.audio.translations.create(
    model="whisper-large-v3",
    file=audio_file,
    prompt="autocorrect, clean up the stammer, and translate to english",
    response_format="text",
    temperature=0.2
  )

  print(translation)
  ```

  ```py Verbose Output Format theme={null}
  from openai import OpenAI
  import os

  client = OpenAI(
    api_key="sk-***", # Replace with your AiHubMix API key
    base_url="https://aihubmix.com/v1"
  )

  audio_file = open("path/to/audio.wav", "rb")

  # Get detailed transcription results with timestamps
  transcript = client.audio.transcriptions.create(
    model="whisper-large-v3",
    file=audio_file,
    response_format="verbose_json",
    timestamp_granularities=["word"],
    temperature=0.2
  )

  # Output results with word-level timestamps
  print(f"Text: {transcript.text}")
  print(f"Language: {transcript.language}")
  for word in transcript.words:
      print(f"'{word.word}' at {word.start}s - {word.end}s")
  ```

  ```py SRT Subtitle Format theme={null}
  from openai import OpenAI
  import os

  client = OpenAI(
    api_key="sk-***", # Replace with your AiHubMix API key
    base_url="https://aihubmix.com/v1"
  )

  audio_file = open("path/to/video_audio.mp4", "rb")

  # Generate SRT subtitle file
  srt_transcript = client.audio.transcriptions.create(
    model="whisper-large-v3",
    file=audio_file,
    response_format="srt",
    language="en",
    temperature=0.2
  )

  # Save as .srt file
  with open("subtitles.srt", "w", encoding="utf-8") as f:
      f.write(srt_transcript)

  print("SRT subtitle file generated")
  ```
</CodeGroup>

## Formatos de respuesta

### Formato JSON (predeterminado)

```json theme={null}
{
  "text": "This is the transcribed text content"
}
```

### Formato JSON detallado (verbose\_json)

```json theme={null}
{
  "task": "transcribe",
  "language": "english",
  "duration": 8.470000267028809,
  "text": "This is the transcribed text content",
  "segments": [
    {
      "id": 0,
      "seek": 0,
      "start": 0.0,
      "end": 8.470000267028809,
      "text": " This is the transcribed text content",
      "tokens": [50364, 50365, 50365, 50365],
      "temperature": 0.2,
      "avg_logprob": -0.9929364013671875,
      "compression_ratio": 0.8888888888888888,
      "no_speech_prob": 0.0963134765625
    }
  ]
}
```

### Formato de texto

```
This is the transcribed text content
```

### Formato SRT

```srt theme={null}
1
00:00:00,000 --> 00:00:08,470
This is the transcribed text content
```

### Formato VTT

```vtt theme={null}
WEBVTT

00:00:00.000 --> 00:00:08.470
This is the transcribed text content
```

## Buenas prácticas

1. **Procesamiento de audio en chino**: Usa el modelo `whisper-large-v3`, configura `language="zh"`, `temperature=0.2` y proporciona prompts adecuados en chino
2. **Procesamiento de audio en inglés**: Usa `distil-whisper-large-v3-en` para una mayor velocidad de procesamiento
3. **Gestión del ruido**: Usa prompts para indicar al modelo que ignore el ruido de fondo o que limpie tartamudeos
4. **Procesamiento de audio largo**: La API segmenta automáticamente los audios largos; se recomienda preprocesar la calidad del audio para obtener mejores resultados
5. **Requisitos de marcas temporales**: Usa el formato `verbose_json` y `timestamp_granularities` cuando necesites marcas temporales precisas
6. **Creación de subtítulos**: Usa la salida en formato `srt` o `vtt` directamente sin procesamiento adicional

***

Última actualización: 2026-06-01
