Servidor API Whisper: opciones de configuración y el paso de texto
Un servidor API Whisper es un servicio HTTP que acepta audio y devuelve una transcripción. Solo maneja voz, así que cualquier cosa que quieras hacer con las palabras después necesita un modelo de texto separado.
Actualizado

Puntos clave
- Whisper es un modelo de voz a texto; un servidor lo envuelve detrás de un endpoint HTTP.
- Puedes alquilar un endpoint alojado, autoalojar un wrapper o ejecutar un binario local.
- Esta API es solo de texto: realiza el paso posterior a la transcripción, no el paso de audio.
- Las dos etapas se conectan con unas pocas líneas de Python usando el SDK de OpenAI dos veces.
La respuesta corta
Whisper es un modelo de reconocimiento de voz de código abierto que publicó OpenAI. Por sí solo es un archivo de modelo y algo de código de inferencia. Un servidor pone una interfaz HTTP delante, así que tu aplicación puede enviar un archivo de audio y obtener texto en lugar de llamar a funciones de Python directamente.
La mayoría de los servidores copian la estructura del endpoint de transcripción de OpenAI, POST /v1/audio/transcriptions, que acepta una subida multipart con el archivo de audio y un nombre de modelo. Esa estructura es por lo que la misma biblioteca de clientes puede comunicarse con un servicio alojado, un contenedor en tu propia máquina o un pequeño wrapper que escribió otra persona.
- Entrada: un archivo de audio, normalmente mp3, wav, m4a o similar.
- Salida: texto plano, o JSON con segmentos y marcas de tiempo, dependiendo del servidor.
- No incluido: resúmenes, traducción a prosa pulida, extracción de elementos de acción. Eso necesita un modelo de lenguaje.
Tres formas de obtener un servidor Whisper
1. Un endpoint alojado
OpenAI ofrece un endpoint de transcripción alojado, y otros proveedores también venden transcripción basada en Whisper. Pagas por uso, no gestionas hardware y envías tu audio a la infraestructura de otra persona. Los modelos de facturación difieren entre proveedores, y los servicios de voz suelen cobrar por la duración del audio, así que revisa sus precios actuales antes de comprometerte con un volumen.
2. Un wrapper autoalojado
Varios proyectos de código abierto envuelven Whisper o sus reimplementaciones en un servidor web que imita la ruta de transcripción de OpenAI. Lo ejecutas en Docker en una máquina con GPU, o en CPU si aceptas un procesamiento más lento. Esto te da control sobre dónde va el audio. También te hace responsable de las descargas del modelo, actualizaciones, colas y reinicios.
3. Un binario local
El proyecto whisper.cpp es un puerto en C y C++ del modelo, y su repositorio incluye un servidor HTTP de ejemplo. Se ejecuta en portátiles ordinarios y servidores pequeños, lo que lo convierte en una buena opción para un prototipo o para un solo usuario que transcribe algunas grabaciones al día. Para trabajos por lotes de cientos de horas, un servicio con GPU suele ser más práctico.
Elige basándote en tres preguntas: dónde puede viajar el audio, cuántas horas procesas por mes y quién mantendrá el servicio en funcionamiento. El paso de texto descrito a continuación funciona igual con cualquiera de los tres.
Dónde encaja una API de LLM de texto después de la transcripción
Una transcripción cruda de Whisper es un muro de texto. Tiene pocos saltos de párrafo, los nombres de los hablantes faltan a menos que añadas diarización por separado y las palabras de relleno se quedan. Whisper también comete errores con nombres de productos, jerga y nombres propios. Casi todos los proyectos reales añaden una segunda etapa que trabaja sobre el texto.
Tareas típicas de la segunda etapa:
- Corregir puntuación, dividir en párrafos, eliminar inicios falsos.
- Resumir una llamada o conferencia en unas pocas viñetas.
- Extraer datos estructurados como decisiones, nombres y fechas en JSON.
- Reescribir material hablado en un artículo, un guion o notas de programa.
- Traducir o localizar el texto limpio.
Ahí es donde encaja este servicio. Es una API de texto compatible con OpenAI con un solo modelo, uncensored, una ventana de contexto de 100.000 tokens y streaming. Una transcripción de entrevista de dos horas suele caber en una sola petición, así que puedes omitir la lógica de fragmentación que te fuerzan ventanas de contexto más pequeñas. Para material más largo, consulta la documentación de inicio rápido para detalles de la petición.
El modelo está ajustado para responder sin rechazos de contenido para uso adulto lícito. Eso importa para las tuberías de transcripción porque el audio de origen es impredecible: entrevistas, podcasts, lecturas de ficción y llamadas de soporte contienen lenguaje fuerte y temas difíciles. Un modelo que se niega a limpiar una transcripción porque el hablante juró desperdicia una ejecución de transcripción pagada. La única limitación estricta es que no se acepta nada relacionado con contenido sexual con menores de edad.
Una tubería de dos etapas en funcionamiento
El SDK de Python de OpenAI te permite crear dos clientes con diferentes URLs base. Uno apunta a tu servidor Whisper, el otro a esta API. Establece las variables de entorno para tu propio servicio de transcripción; el segundo cliente usa la URL base de este sitio.
import os
from openai import OpenAI
# Stage 1: any Whisper-compatible transcription server you run or rent.
stt = OpenAI(base_url=os.environ["STT_BASE_URL"], api_key=os.environ["STT_KEY"])
# Stage 2: the text model.
llm = OpenAI(base_url="https://api.whisperapis.com/v1", api_key=os.environ["LLM_KEY"])
with open("call.mp3", "rb") as f:
transcript = stt.audio.transcriptions.create(
model=os.environ["STT_MODEL"], # the model name your server expects
file=f,
)
resp = llm.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "Clean up this transcript: fix punctuation, keep every statement, no commentary."},
{"role": "user", "content": transcript.text},
],
temperature=0.2,
)
print(resp.choices[0].message.content)Dos detalles son fáciles de equivocarse. Primero, el nombre del modelo de transcripción es lo que tu servidor espere, por eso viene de una variable de entorno aquí. Segundo, la clave para la API de texto es separada de cualquier clave que tengas para el servicio de voz; cada una autentica solo su propio host.
Si prefieres una shell, la etapa de texto es una petición de finalización de chat simple:
curl https://api.whisperapis.com/v1/chat/completions \
-H "Authorization: Bearer $LLM_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [
{"role": "user", "content": "Summarize this transcript in five bullet points: ..."}
]
}'La autenticación usa una clave Bearer en el header Authorization, con endpoints POST /v1/chat/completions y GET /v1/models. Consigue tu clave en la página de claves de API; cuentas nuevas obtienen $0,50 gratis por 7 días sin tarjeta.
Cosas que se rompen en la práctica
Archivos de audio grandes
Muchos servidores Whisper limitan el tamaño de carga y las grabaciones largas pueden agotar el tiempo a mitad de una petición. Divide el audio en trozos de diez a treinta minutos con una herramienta como ffmpeg, transcribe cada trozo y luego une el texto. Como la API de texto acepta hasta 100.000 tokens, puedes concatenar los trozos y enviarlos como un solo prompt. El límite del cuerpo de la petición en esta API es de 8 MB, que es mucho más de lo que necesita cualquier transcripción.
Límites de tasa y concurrencia
Una clave completa permite 8 peticiones concurrentes y 300 peticiones por minuto; la clave de prueba permite 2 y 60. Si ejecutas una cola con muchos trabajadores, límita la concurrencia a la de tu clave. Superar el límite devuelve HTTP 429, con el código rate_limited para peticiones por minuto o concurrency para demasiadas a la vez. Una petición streaming mantiene su espacio hasta que termine el flujo, así que un cliente estancado puede bloquear un espacio más tiempo del que esperas. Retrocede y reintenta; si la respuesta lleva un encabezado Retry-After: 5, espera ese tiempo.
Errores de transcripción que el LLM no puede ver
Si Whisper escuchó la palabra incorrecta, el modelo de texto solo ve la palabra incorrecta. Incluso puede suavizar el error y hacerlo parecer intencional. Pon un glosario de nombres y términos en el prompt del sistema y dile al modelo que marque los pasajes inciertos en lugar de adivinar. Para material crítico, mantén la transcripción original junto a la limpia.
Relleno alucinado
Whisper a veces produce texto inventado durante el silencio o la música. Recorta el silencio antes de enviar y pide a la segunda etapa que marque las oraciones que parezcan fuera de lugar. Una temperature baja, como 0,2, mantiene la limpieza cerca del origen.
Lo que esta API no hace
No transcribe audio. No hay entrada de audio, no hay salida de voz, no generación de imágenes o video, no embeddings ni ajuste fino. Es un modelo de texto alojado detrás de un endpoint de finalización de chat, ejecutado por un proveedor independiente, y no es la API oficial de OpenAI ni de ningún otro proveedor de modelos. Si tu proyecto necesita ambas mitades, necesitas un servidor de voz para la primera y este servicio para la segunda.
Los prompts no se usan para entrenamiento. Eso es separado de lo que tu proveedor de voz hace con el audio, así que lee los términos de ese proveedor por su cuenta.
Para planificación de costos, el lado de texto se factura por token a $0,15 por millón de tokens de entrada y $0,50 por millón de tokens de salida, desde crédito prepago que no caduca. La página de precios lista tamaños de recarga y bonificaciones. Las peticiones fallidas o rechazadas no se cobran, lo que mantiene que los bucles de reintento no te cuesten dinero.
Una forma sensata de empezar
- Obtén un servidor compatible con Whisper en ejecución, alojado o local, y confirma que devuelve texto para un archivo de un minuto.
- Crea una cuenta, reclama el crédito de prueba y ejecuta el comando curl anterior con una transcripción corta.
- Conecta los dos clientes con el script de Python, usando tu propio prompt del sistema para el estilo de limpieza que quieras.
- Añade una cola solo después de que funcione el flujo de un solo archivo y dimensionala a la concurrencia de tu clave.
La mayor parte del esfuerzo va en el prompt y el manejo de audio, no en el código de unión. Empieza con una grabación que conozcas bien, compara la salida con lo que escuchaste y ajusta las instrucciones antes de escalar.
Más guías
Preguntas y respuestas
¿Es un servidor de API de Whisper lo mismo que la API de OpenAI?
No. Whisper es un modelo, y un servidor es cualquier programa que lo exponga a través de HTTP. OpenAI ofrece una versión alojada, y muchas personas ejecutan la suya propia con herramientas de código abierto que imitan la misma ruta de transcripción.
¿Puede esta API transcribir archivos de audio?
No. Solo acepta texto. Utiliza un servicio de voz o tu propio servidor Whisper para el paso de audio, y luego envía la transcripción aquí.
¿Qué nombre de modelo debo usar para el paso de texto?
Usa uncensored como el ID del modelo, con la URL base https://api.whisperapis.com/v1 y tu clave como token Bearer.
¿Qué longitud de transcripción puedo enviar?
La ventana de contexto es de 100.000 tokens, que cubren prompt y completado juntos. Eso es suficiente para muchas grabaciones de varias horas en una sola petición.
¿Necesito una tarjeta para probarlo?
No. Los nuevos usuarios pueden reclamar un crédito de prueba de $0,50 con un solo clic en la página de la clave de API después de iniciar sesión, sin necesidad de tarjeta.
Tu clave está a un formulario de distancia
Crea una cuenta, copia la clave, cambia la URL base. Esa es toda la configuración.