Ir al contenido
Zabio está en beta: los modelos, los precios y las funciones pueden cambiar. Cuéntanos qué falla en hello@zabio.ai.

Audio

Zabio transcribe audio con POST /v1/audio/transcriptions y convierte texto en voz con POST /v1/audio/speech, con el formato que los SDK de OpenAI ya envían. Cambia base_url y tu key, y deja el resto.

Para el formato exacto de cada petición y respuesta, con ejemplos en curl, Python y Node, consulta la referencia de la API. El audio dentro de una petición de chat (una parte input_audio que el modelo escucha y responde en texto) está en la página de Chat completions.

Envía un archivo de audio y recibe su texto. La key necesita el scope chat (las keys lo tienen por defecto).

Terminal window
curl https://api.zabio.ai/v1/audio/transcriptions \
-H "Authorization: Bearer insert your zabio.ai key here" \
-F file=@reunion.mp3 \
-F model=auto
{
"text": "Buenos días, empecemos por las cifras.",
"usage": {"type": "duration", "seconds": 20.4},
"zabio": {"call_id": "call_...", "vendor": "deepinfra", "model_served": "voxtral-mini-3b-2507", "cost_micros": 357, "units": {"kind": "audio_second", "seconds": 20.4, "estimated": false}}
}
Modelo Fabricante Precio por minuto Formatos Notas
gpt-transcribe OpenAI 0.0045 json, text; transmite en streaming el modelo recomendado por OpenAI; acepta varios idiomas esperados
whisper-1 OpenAI 0.006 json, text, verbose_json, srt, vtt; marcas de tiempo por palabra se retira el 2027-02-26 (fecha de OpenAI)
gpt-4o-transcribe, gpt-4o-mini-transcribe, gpt-4o-transcribe-diarize OpenAI se cobran en tokens de audio (2.50 y 1.25 por millón; unos 0.006 y 0.003 por minuto, estimación de OpenAI) json, text se retiran el 2027-02-26 (fecha de OpenAI)
whisper-large-v3 OpenAI, servido por Together AI 0.0015 json, text, verbose_json, srt, vtt; marcas de tiempo por palabra hasta 4 horas de audio
voxtral-mini-3b-2507, voxtral-small-24b-2507 Mistral AI, servidos por DeepInfra 0.001 y 0.003 json, text, verbose_json inglés, español, francés, portugués, hindi, alemán, neerlandés e italiano; hasta 30 minutos
gemini-3.5-transcribe Google se cobra en tokens de audio (2.00 por millón; unos 0.003 por minuto, estimación de Google a 25 tokens por segundo) más 12.00 por millón de tokens de salida json, text, verbose_json, srt, vtt; marcas de tiempo por palabra 85 o más idiomas; hasta 30 minutos; un prompt se convierte en vocabulario personalizado cuando no se piden marcas de tiempo
scribe-v2 ElevenLabs 0.0037 (0.22 por hora) json, text, verbose_json, srt, vtt; marcas de tiempo por palabra 90 o más idiomas; hasta 10 horas
nova-3, nova-3-multilingual Deepgram 0.0043 y 0.0052 json, text, verbose_json, srt, vtt; marcas de tiempo por palabra unos 60 idiomas, o cambio de idioma entre unos 50 con el modelo multilingüe; se cobra por segundo; prompt y temperature no se envían

Los precios son los precios de lista del proveedor en USD; la comisión del plan se aplica encima (consulta Facturación). GET /v1/models lista cada modelo de transcripción con zabio.kind: "transcription", su unidad y sus formatos, y la página de modelos indica dónde se procesa cada uno.

model: auto elige el modelo de transcripción más barato capaz de hacer lo que pide tu petición: el idioma que indicas, las marcas de tiempo y el formato. Todavía no hay un listón de calidad, así que auto, auto/cheap, auto/balanced y auto/best eligen el mismo modelo en este endpoint. Si el modelo elegido falla, Zabio prueba el siguiente del mismo proveedor, y los de otros proveedores cuando el ajuste de fallback de la key lo permite. Una llamada auto paga el precio de la elección automática de modelo (como máximo 0.00025 USD), como cualquier otra llamada auto.

Multipart form data, como OpenAI.

Campo Notas
file obligatorio; mp3, mp4, mpeg, mpga, m4a, wav, webm, flac u ogg; 25 MB como máximo
model un modelo de transcripción o auto (el valor por defecto si falta)
language código ISO 639-1 del audio; se detecta si falta
languages varios idiomas esperados, para los modelos que los aceptan (gpt-transcribe); a los demás se les envía el primero
prompt contexto para el modelo: nombres, ortografía, estilo
response_format json (por defecto), text, verbose_json, srt o vtt. Zabio genera srt y vtt a partir de las marcas de tiempo por segmento del modelo, así que un modelo que no devuelve segmentos no puede servirlos (400 unsupported_value)
timestamp_granularities segment, word; con verbose_json
stream true transmite eventos transcript.text.delta y transcript.text.done como OpenAI, con el formato json. Un modelo que no transmite responde con el texto completo en un único evento done al final
temperature de 0 a 1

json devuelve text, el language detectado cuando el modelo lo indica, usage y el objeto zabio. verbose_json añade task, duration, segments y, si se piden, words. text, srt y vtt devuelven el archivo como text/plain.

El objeto zabio incluye call_id, vendor, model_served, cost_micros (lo que te costó la llamada, comisión incluida) y units: los segundos de audio cobrados, con estimated: true cuando el proveedor no informó de la duración y Zabio la leyó de la cabecera del archivo.

Un minuto de audio al precio del modelo, más la comisión del plan. Zabio cobra el recuento de segundos o tokens del propio proveedor; cuando un proveedor no lo informa, Zabio lee la duración de la cabecera del archivo, redondeada al segundo hacia arriba, y la marca como estimated. Los modelos que se cobran en tokens de audio se cobran por los tokens que informa el proveedor. Una llamada que falla en el proveedor no se cobra. Tu propia key de OpenAI, Google, Together AI o DeepInfra sirve tus llamadas con modelo nombrado sin cargo de Zabio (las keys propias de ElevenLabs y Deepgram todavía no se aceptan); auto corre siempre con las keys de Zabio y necesita crédito.

El archivo de audio se envía al proveedor y se descarta al terminar la llamada: nunca se escribe en una base de datos ni en un log. Zabio guarda los metadatos de la llamada (modelo, proveedor, segundos, coste) como en cualquier llamada. Si la key tiene el registro de cuerpos activado, se guardan el texto de la transcripción y una referencia al medio (tipo, tamaño, segundos), cifrados y bajo la retención de tu organización, nunca el audio. Consulta Privacidad.

Se aplica el límite de peticiones por minuto de la key (el límite de tokens no cuenta el audio). Los límites de gasto, las cuotas por miembro y el saldo se aplican como en cualquier llamada. Un archivo por encima del tope devuelve 413 media_too_large; un archivo que no es audio devuelve 400 unsupported_format; un modelo nombrado en este endpoint que no es de transcripción devuelve 400 unsupported_for_model. Consulta Errores.

from openai import OpenAI
client = OpenAI(base_url="https://api.zabio.ai/v1", api_key="insert your zabio.ai key here")
with open("reunion.mp3", "rb") as f:
res = client.audio.transcriptions.create(model="auto", file=f, response_format="json")
print(res.text, res.model_extra["zabio"]["cost_micros"])

Envía texto y recibe audio. La key necesita el scope chat. Las voces son generadas por IA: díselo a tus propios usuarios donde las reproduzcas, como exigen los términos de los proveedores.

Terminal window
curl https://api.zabio.ai/v1/audio/speech \
-H "Authorization: Bearer insert your zabio.ai key here" \
-H "Content-Type: application/json" \
-d '{"model": "auto", "input": "Buenos días, empecemos por las cifras.", "response_format": "mp3"}' \
--output manana.mp3

La respuesta es el propio audio, enviado por trozos según lo produce el modelo, con el Content-Type correcto. Como el cuerpo es audio, los campos zabio llegan como cabeceras de respuesta:

Content-Type: audio/mpeg
x-zabio-call-id: call_...
x-zabio-vendor: together
x-zabio-model-served: kokoro-82m
x-zabio-cost-micros: 189
x-zabio-units: character=45
Modelo Fabricante Precio Formatos Voces Notas
kokoro-82m Hexgrad, servido por Together AI 4.00 por millón de caracteres mp3, wav, pcm 54, como af_heart, am_adam, bf_emma; el prefijo indica el idioma y el género el mp3 más barato; ocho idiomas
aura-2 Deepgram 30.00 por millón de caracteres mp3, opus, flac, wav, pcm las voces Aura-2, aura-2-thalia-en, aura-2-sirio-es y el resto, en inglés, español, neerlandés, francés, alemán, italiano y japonés 2,000 caracteres como máximo por petición
eleven-v4, eleven-v4-turbo ElevenLabs 80.00 y 40.00 por millón de caracteres mp3, opus, wav, pcm la biblioteca por defecto de ElevenLabs, por id de voz (JBFqnCBsd6RMkjVDRZzb y 18 más; consulta GET /v1/models) 90 o más idiomas; eleven-v4 acepta 10,000 caracteres como máximo, que el tope propio del endpoint de 4,096 ya respeta
gemini-3.8-flash-tts, gemini-3.8-flash-lite-tts Google se cobran en tokens: texto de entrada a 0.50 por millón, audio de salida a 9.00 y 6.00 por millón (unos 0.00225 y 0.0015 por 10 segundos de audio, estimación de Google a 25 tokens por segundo); estos precios se duplican el 2027-01-01, como indica la página de Google wav, pcm 30 voces predefinidas, Kore, Puck, Zephyr y el resto más de 130 idiomas, detectados; instructions se convierte en el estilo
gpt-4o-mini-tts OpenAI se cobra en tokens: texto de entrada a 0.60, audio de salida a 12.00 por millón mp3, opus, aac, flac, wav, pcm marin, cedar, alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer, verse acepta instructions; solo por su nombre, se apaga el 2027-01-06 (fecha de OpenAI)
tts-1, tts-1-hd OpenAI 15.00 y 30.00 por millón de caracteres mp3, opus, aac, flac, wav, pcm alloy, ash, coral, echo, fable, onyx, nova, sage, shimmer solo por su nombre, se apagan el 2027-01-06 (fecha de OpenAI)

Los precios son los precios de lista del proveedor en USD; la comisión del plan se aplica encima (consulta Facturación). GET /v1/models lista cada modelo de voz con zabio.kind: "speech", su unidad, sus formatos y sus voces en zabio.media, y la página de modelos indica dónde se procesa cada uno.

Nada se transcodifica: cada modelo devuelve los formatos que produce su proveedor, así que una petición de aac o flac la sirve Deepgram u OpenAI, y una de wav o pcm cualquiera de ellos. pcm son muestras crudas de 16 bits little-endian a 24 kHz sin cabecera, en todos los modelos. opus llega en un contenedor Ogg; el Content-Type es el del proveedor (audio/opus de OpenAI y ElevenLabs, audio/ogg de Deepgram).

model: auto elige el modelo de voz más barato que ofrece el formato que pides y, si indicas una, la voz; sin voz, cada modelo habla con la suya por defecto (la primera de su lista). Todavía no hay un listón de calidad, así que auto, auto/cheap, auto/balanced y auto/best eligen el mismo modelo en este endpoint. Si el modelo elegido falla antes del primer byte, Zabio prueba el siguiente del mismo proveedor, y los de otros proveedores cuando el ajuste de fallback de la key lo permite. Una llamada auto paga el precio de la elección automática de modelo (como máximo 0.00025 USD), como cualquier otra llamada auto. Los tres modelos de OpenAI nunca los elige auto, porque se apagan en enero.

JSON, como OpenAI.

Campo Notas
input obligatorio; el texto a decir, 4,096 caracteres como máximo
model un modelo de voz o auto (el valor por defecto si falta)
voice una voz que el modelo lista; la voz por defecto del modelo si falta. Una voz que el modelo no tiene devuelve 400 unsupported_value
response_format mp3 (por defecto), opus, aac, flac, wav o pcm. Un formato que el modelo no produce devuelve 400 unsupported_value
speed de 0.25 a 4; el valor por defecto del modelo si falta. Los modelos sin ajuste de velocidad lo ignoran
instructions indicaciones de estilo para los modelos que las aceptan (gpt-4o-mini-tts, los modelos Gemini); los demás las ignoran; 4,096 caracteres como máximo
stream_format audio (por defecto). sse no está disponible a través de Zabio y devuelve 400 unsupported_value

El audio, por trozos, con el Content-Type que devolvió el modelo. Las cabeceras llevan lo que el objeto zabio lleva en otros endpoints: x-zabio-call-id, x-zabio-vendor, x-zabio-model-served, x-zabio-cost-micros (lo que te costó la llamada, comisión incluida) y x-zabio-units (character=312 en un modelo cobrado por carácter; text_input_token=80, audio_output_token=1250 en uno cobrado en tokens).

Los caracteres de tu input al precio del modelo por millón de caracteres, más la comisión del plan; o, en los modelos Gemini y gpt-4o-mini-tts, los tokens de texto de entrada y de audio de salida que informa el proveedor. Un carácter es un punto de código Unicode. Cuando un proveedor informa de su propio recuento de caracteres (Deepgram), se cobra ese recuento. Una llamada que falla en el proveedor antes del primer byte no se cobra; un stream que se corta después del primer byte tampoco. Tu propia key de OpenAI, Google o Together AI sirve tus llamadas con modelo nombrado sin cargo de Zabio (las keys propias de ElevenLabs y Deepgram todavía no se aceptan); auto corre siempre con las keys de Zabio y necesita crédito.

El audio se te transmite y no se guarda en ningún sitio: nunca se escribe en una base de datos ni en un log. Zabio guarda los metadatos de la llamada (modelo, proveedor, caracteres o tokens, coste) como en cualquier llamada. Si la key tiene el registro de cuerpos activado, se guardan el texto de entrada y una referencia al medio (tipo, bytes, caracteres), cifrados y bajo la retención de tu organización, nunca el audio. Consulta Privacidad.

Se aplica el límite de peticiones por minuto de la key (el límite de tokens no cuenta los caracteres). Los límites de gasto, las cuotas por miembro y el saldo se aplican como en cualquier llamada. Un input por encima de 4,096 caracteres devuelve 400 invalid_value; un modelo nombrado en este endpoint que no es de voz devuelve 400 unsupported_for_model. Consulta Errores.

from openai import OpenAI
client = OpenAI(base_url="https://api.zabio.ai/v1", api_key="insert your zabio.ai key here")
with client.audio.speech.with_streaming_response.create(model="auto", input="Buenos días.", response_format="mp3") as res:
res.stream_to_file("manana.mp3")
print(res.headers["x-zabio-model-served"], res.headers["x-zabio-cost-micros"])

zabio speak -o manana.mp3 "Buenos días." escribe el archivo e imprime el modelo, el proveedor y el coste; --model, --voice, --format y --speed como arriba.