# Speech to Text API para integrar tus grabaciones

> Con Speech to Text API sube audio o video: 95 MB por request o 2 GB en partes, marcas de tiempo y etiquetas opcionales de hablantes. 1 crédito por minuto.

Canonical: https://transcript1.com/es/features/speech-to-text-api
Language: es
Last updated: 2026-10-19

Con Speech to Text API conviertes un archivo de audio o video en una transcripción con marcas de tiempo e idioma por segmento. Puedes pedir identificación de hablantes. Envía hasta 95 MB en un request; para archivos de hasta 2 GB, sube las partes y retoma la transferencia si se interrumpe.

- Hasta 95 MB en un request
- Hasta 2 GB por partes, sin empezar de nuevo si se corta
- Borramos el archivo 24 horas después del estado final

## Decide cómo subir el archivo antes de escribir el cliente

### Usa el formato que ya tienes

Aceptamos MP3, WAV, M4A, FLAC, OGG, OPUS, MP4, MOV, WebM y MKV. El archivo debe contener una pista de audio.

### Un request para archivos pequeños

Envía hasta 95 MB como multipart/form-data a POST /v1/transcriptions. Es la opción directa si tu servidor ya tiene la grabación.

### Archivos grandes, parte por parte

Reserva la subida, envía las partes de unos 8 MiB y confirma al terminar. Si pierdes la conexión, continúa con lo que falta. El límite es de 2 GB.

### Revisa también la duración

La transcripción con IA admite hasta 5 horas por grabación. Si dura más, devuelve media_too_long y no pagas. El tamaño del archivo es un límite aparte.

### El texto se conserva; el archivo no

Borramos el audio o video 24 horas después de que la transcripción llegue a un estado final. La transcripción permanece hasta que la elimines.

## Transcribe un archivo con un request multipart

Pon la grabación en la parte file. Puedes añadir language, diarize, source y webhook_url como campos del formulario. Consulta el [request multipart completo](https://transcript1.com/es/docs/uploads#one-shot-upload) y configura un [webhook](https://transcript1.com/es/features/webhook-transcripcion) si quieres recibir el aviso al terminar.

Envía los bytes del archivo, no una ruta local dentro de un JSON. Deja que tu cliente HTTP genere el boundary de multipart. Un archivo vacío o con una extensión no admitida necesita una corrección, no una cadena de reintentos.

Elige cómo subirlo según su tamaño y comprueba la duración por separado. Un audio muy comprimido puede pesar menos de 95 MB y superar las 5 horas. Un video corto en alta resolución puede exceder el límite de multipart aunque tenga poco audio.

### cURL

```
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -F file=@interview.m4a \
  -F language=auto
```

## Reserva la subida de archivos grandes

Para archivos de hasta 2 GB, envía primero el nombre y el tamaño. Recibirás la lista de partes y un X-Upload-Token exclusivo de esa subida. La [guía de subida por partes](https://transcript1.com/es/docs/uploads#chunked-upload) muestra toda la secuencia.

Sigue el plan que devuelve la API: cada parte tiene un índice, una posición en bytes y un tamaño. Lee ese rango exacto; la última parte puede ser más pequeña. El token autoriza los requests PUT binarios, vence después de 1 hora y no sustituye a tu clave de API.

Usa la misma Idempotency-Key si tienes que repetir la reserva. Con la misma clave y los mismos parámetros obtienes un token nuevo para la subida existente. Así puedes continuar cuando venza el anterior, sin abrir otra reserva cada vez que se interrumpe la conexión.

### Reserva de una subida por partes

```
curl -X POST "https://api.transcript1.com/v1/transcriptions" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -H "Idempotency-Key: interview-2026-10-13" \
  -H "Content-Type: application/json" \
  -d '{"upload":{"filename":"interview.m4a","size":48210334,"mime_type":"audio/mp4"}}'
```

## Completa la subida antes de esperar la transcripción

Envía cada parte por PUT a su URL con el token de subida. Después confirma que terminaste. transcript1 comprueba las partes y pone la transcripción en cola. Los endpoints para consultar y completar la subida están en la [referencia de uploads](https://transcript1.com/es/docs/api-reference#uploads).

Para retomar una transferencia, consulta GET /v1/transcriptions/:id/upload y compara received_chunks con el plan inicial. Envía solo lo que falta. Si repites una parte, reemplazas la anterior y debes respetar su tamaño. Un 401 puede indicar que venció el token; no necesitas volver a generar el archivo.

Si falta alguna parte, la confirmación devuelve 409 upload_incomplete con sus índices. Corrige la subida y vuelve a completarla. Una vez en cola, consulta el estado o espera el webhook. En tu interfaz, distingue el progreso de la subida del progreso de la transcripción.

### Envío de una parte y confirmación final

```
curl -X PUT "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/chunks/0" \
  -H "X-Upload-Token: t1u_..." \
  -H "Content-Type: application/octet-stream" \
  --data-binary @chunk-0.bin

curl -X POST "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/complete" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY"
```

## Qué ocurre después de enviar los bytes

awaiting_upload significa que hay una reserva, no que ya estemos transcribiendo. Primero recibimos los bytes, después verificamos la subida y finalmente procesamos el audio. Si se corta la conexión tras confirmar, consulta la transcripción antes de repetir esa operación.

Cada equipo puede tener hasta 20 reservas abiertas. Si no completas una en 24 horas, la cancelamos y borramos sus partes. Cuando una transcripción llega a un estado final, el archivo se borra 24 horas después. Guarda tu original si tu aplicación necesita reproducirlo en el futuro; conservamos el texto, no un archivo de audio permanente.

Para una herramienta que usarán otras personas, consulta la guía de [audio a texto](https://transcript1.com/es/features/audio-a-texto): incluye preparación y revisión. Si integras entrevistas, la guía de [investigación](https://transcript1.com/es/use-cases/software-para-transcribir-entrevistas) explica cómo conservar participantes y referencias al audio junto con la transcripción.

## Preguntas frecuentes

### ¿Qué formatos acepta la API?

MP3, WAV, M4A, FLAC, OGG, OPUS, MP4, MOV, WebM y MKV, siempre con una pista de audio. Una extensión distinta devuelve 422 unsupported_media.

### ¿Cuánto puede pesar el archivo?

Hasta 95 MB en un request o hasta 2 GB por partes. Tu plan puede fijar un límite menor. Si lo superas, recibes 413 media_too_large.

### ¿Por cuánto tiempo guardan la grabación?

Borramos el archivo 24 horas después del estado final. Si una subida queda sin completar durante 24 horas, la cancelamos y borramos sus partes. La transcripción se guarda hasta que la elimines.

### ¿Puedo distinguir a las personas que hablan?

Sí. Envía diarize=true para obtener etiquetas como Speaker 1 y Speaker 2. Esta API de transcripción de audio y video siempre procesa los archivos con IA; no depende de subtítulos de una plataforma.

## También te puede servir

- [Identificación de hablantes](https://transcript1.com/es/features/identificar-hablantes-en-audio)
- [Audio a texto](https://transcript1.com/es/features/audio-a-texto)
- [Cómo subir archivos (documentación)](https://transcript1.com/es/docs/uploads)
- [Video a texto](https://transcript1.com/es/features/convertir-video-a-texto)
