Claude Opus 5.5 ya está disponible en SeedRouter

Model APIs

Whisper-1

View Markdown

Envía un archivo de audio para transcribirlo o traducirlo al inglés, consulta su tarea y descarga texto, JSON o subtítulos.

Whisper-1 convierte voz grabada en texto. Usa /v1/audio/transcriptions para conservar el idioma hablado o /v1/audio/translations para producir inglés. Ambos aceptan multipart/form-data con un archivo subido. SeedRouter devuelve primero un ID de tarea; descarga el resultado elegido cuando termine. Esto difiere de una respuesta síncrona del SDK de OpenAI.

Playground y precios actuales · Primer tutorial de transcripción · OpenAPI · Markdown

Enviar una grabación

Conserva tu clave de API en el servidor. Deja que tu cliente HTTP genere el delimitador multipart; no establezcas manualmente un encabezado simple Content-Type: multipart/form-data.

curl https://api.seedrouter.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -F model=whisper-1 \
  -F [email protected] \
  -F language=en \
  -F response_format=verbose_json \
  -F 'timestamp_granularities[]=word' \
  -F 'timestamp_granularities[]=segment'

La respuesta confirma una tarea, no una transcripción terminada:

{
  "id": "task_example",
  "model": "whisper-1",
  "status": "processing",
  "created_at": 1792376116
}

Guarda el id realmente devuelto. Envía una sola vez. Una conexión perdida no permite determinar si la solicitud se aceptó; revisa tu historial de tareas antes de crear otra solicitud.

Leer el resultado

curl "https://api.seedrouter.ai/v1/tasks/$TASK_ID" \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

Consulta mientras status sea processing. Una tarea completada contiene output.url y output.format; una tarea fallida contiene error.code y error.message. Un tiempo de espera agotado en la consulta no es un estado terminal de la tarea. Solo su propietario puede leerla. Los siguientes ejemplos ilustran la estructura de la respuesta:

{
  "id": "task_example",
  "model": "whisper-1",
  "status": "completed",
  "output": {
    "format": "verbose_json",
    "url": "https://static.seedrouter.ai/media/tasks/task_example/0.json"
  }
}

Descarga output.url con una solicitud GET aparte. Lee un resultado JSON como JSON y los demás formatos como texto. Las respuestas públicas de tareas no incluyen precios ni datos de la cuenta.

Parámetros de transcripción

file y model son obligatorios. Los nueve campos siguientes componen la interfaz de solicitud compartida, incluidos file, model y stream, que se ignora explícitamente. chunking_strategy sigue siendo una carencia de compatibilidad, como se describe a continuación.

CampoTipoPredeterminadoContrato
fileCarga binariaObligatorioUn archivo de audio no vacío, no una URL ni una cadena con el nombre de archivo. Consulta los límites de archivo.
modelCadenaObligatorioExactamente whisper-1.
languageCadenaDetección automáticaIndicación del idioma de entrada, como en. No se impone una lista local de idiomas permitidos. Omítelo para detectar.
promptCadenaOmitidoContexto, ortografía o continuación en el idioma del audio. No se inventa un límite de caracteres; Whisper considera los últimos 224 tokens de su propio tokenizador. No es un prompt de instrucciones generales.
response_formatCadenajsonjson, text, srt, verbose_json o vtt.
temperatureNúmero0Rango inclusivo 0–1. Cero permite el ajuste automático de temperatura del modelo; no garantiza texto determinista.
timestamp_granularities[]Cadena repetidaMarcas por segmento cuando correspondaword, segment o ambos. Requiere response_format=verbose_json. También se acepta el nombre de campo repetido sin corchetes timestamp_granularities.
chunking_strategyauto, objeto VAD o nullOmitidoCampo del esquema de audio compartido cuya aplicabilidad a Whisper está sin resolver. Omítelo para el flujo verificado. auto explícito no superó la verificación real de compatibilidad.
streamBooleano o nullfalseSe ignora para Whisper-1. No se produce SSE ni transcripción parcial.

El objeto VAD contiene type: "server_vad" obligatorio, el entero opcional prefix_padding_ms (valor predeterminado documentado: 300), el entero opcional silence_duration_ms (valor predeterminado documentado: 200) y el número opcional threshold de 0 a 1 (valor predeterminado documentado: 0,5). No se impone ningún rango entero no documentado. Una estrategia omitida sigue omitida; estos valores del objeto no convierten auto en el valor predeterminado de la solicitud.

Para compatibilidad con SDK, el objeto VAD se puede codificar en una parte multipart JSON o como chunking_strategy[type], chunking_strategy[prefix_padding_ms], chunking_strategy[silence_duration_ms] y chunking_strategy[threshold]. No mezcles ambas codificaciones. La aceptación de estas formas de campo no demuestra que VAD funcione con este modelo.

Los campos de texto opcionales se omiten, en lugar de usar la cadena multipart literal null. Los campos desconocidos o no aplicables al modelo se descartan. En particular, diarized_json, los controles de referencia de hablantes, logprobs y los eventos en tiempo real no son funciones de Whisper-1. Los campos escalares duplicados no son válidos.

Límites de archivo

Los formatos de audio documentados son FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV y WebM. El límite de carga actual es de 26.214.400 bytes (25 MiB). Las preguntas frecuentes de la API de audio de OpenAI especifican un tamaño máximo de solicitud de 25 MiB para las cargas heredadas de Whisper-1; mantén los archivos por debajo del límite para dejar espacio a los campos multipart. Los archivos deben contener audio legible y una duración positiva y medible. Una extensión por sí sola no demuestra que el audio sea válido.

No existe un límite local adicional de una hora, un requisito de frecuencia de muestreo fija ni una restricción a mono. El tamaño del archivo puede exigir dividir grabaciones largas. Revisa los límites entre las partes para evitar omitir o duplicar voz.

Traducción al inglés

curl https://api.seedrouter.ai/v1/audio/translations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -F model=whisper-1 \
  -F [email protected] \
  -F response_format=text \
  -F temperature=0

La traducción tiene cinco campos: file, model, prompt, response_format y temperature, con los mismos tipos y límites anteriores. Su prompt opcional debe estar en inglés. No se puede seleccionar el idioma de destino. language, los controles de marcas de tiempo, los controles de segmentación y otros campos exclusivos de transcripción se descartan en este endpoint. Una prueba de traducción exitosa con entrada en inglés no demuestra precisión para todos los idiomas de origen.

Campos del archivo descargado

FormatoContenido
jsonObjeto con text. La transcripción también puede incluir usage: {type: "duration", seconds: number}.
textTexto plano de la transcripción.
srtBloques de subtítulos numerados con códigos de tiempo SRT.
vttSubtítulos WebVTT.
verbose_jsontext, language y duration en segundos; segments opcional y, para transcripción, words y usage de duración.

Cada palabra tiene word, start y end. Cada segmento tiene id, seek, start, end, text, tokens, temperature, avg_logprob, compression_ratio y no_speech_prob. start y end están en segundos. Los segmentos no identifican hablantes. Puede aparecer la constante exclusiva de transcripción task: "transcribe". Los resultados de traducción omiten words y usage, exclusivos de transcripción. Las mediciones de audio y el texto transcrito no se reescriben para imitar una respuesta esperada.

Facturación

Ambas operaciones usan la duración de entrada medida. Para cada grabación, las unidades de medición de audio equivalen a round(ceil(seconds) × 1000 / 60). Multiplica esas unidades por la tarifa unitaria actual; no cuentan el texto transcrito. Por ejemplo, 15 segundos dan 250 unidades, mientras que 15,1 segundos dan 267. La página y el Playground leen la misma tarifa actual. Las solicitudes fallidas no se cobran.

Estado de verificación

Verificado el 19 de octubre de 2026. Las pruebas locales de extremo a extremo completaron los cinco formatos de salida de transcripción y una traducción verbose_json, incluidas las descargas de resultados propios y los cargos exactos en cuenta. Una transcripción solicitó correctamente marcas de tiempo de palabras y segmentos. Las cargas FLAC, OGG, M4A, MP4 y WAV de menos de un segundo o con duración fraccionaria superaron pruebas reales de compatibilidad independientes.

Se rechazó chunking_strategy=auto explícito. Tres casos enviados con WebM, MPEG más VAD y MPGA más stream=true no tuvieron éxito. Estos fallos no permiten determinar cuál de los ajustes combinados causó el rechazo. Esos formatos y opciones siguen sin verificar; el servicio no sustituye silenciosamente una estrategia solicitada explícitamente. La prueba de traducción usó entrada en inglés, por lo que la calidad de traducción entre idiomas sigue sin medirse. No tomes el esquema aceptado como prueba de que todas las combinaciones han superado una prueba real.

Errores y recuperación

Las combinaciones inválidas de archivo y parámetros se rechazan antes de crear la tarea. Los errores de API contienen un code numérico y un message legible; consulta los códigos de error. Tras la aceptación, consulta el estado terminal de la tarea. Si el envío es incierto, busca su tarea existente antes de volver a enviar. Una tarea fallida no se cobra.

Fuentes del contrato

OpenAI ha anunciado el 26 de febrero de 2027 como fecha de retirada de Whisper en su propia API. Ese anuncio no establece una fecha de retirada para este servicio. Consulta el aviso de desuso de OpenAI.