Endpoints
Voz (TTS)
Convierte texto en voz con POST /audio/speech, que devuelve bytes de audio sin procesar con el mismo formato que la API de texto a voz de OpenAI.
Pruébalo en el playgroundConvierte texto en voz con sonido natural (texto a voz, TTS). El endpoint sigue el formato de POST /audio/speech de OpenAI y devuelve bytes de audio sin procesar, así que client.audio.speech.create(...) funciona sin cambios.
POST https://api14.com/api/v1/audio/speech
Petición
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
model | string | sí | Un id de modelo de voz, p. ej. openai/gpt-4o-mini-tts. |
input | string | sí | El texto que se va a leer. |
voice | string | sí | Nombre de la voz, p. ej. alloy, nova, verse. Las voces varían según el modelo (consulta la página del modelo). |
response_format | string | no | mp3 (por defecto), wav, opus, aac, flac, pcm donde se admita. |
speed | number | no | Velocidad de reproducción, normalmente 0.25–4.0. |
instructions | string | no | Indicaciones de estilo para los modelos que las aceptan ("tono calmado y cálido"). |
Ejemplo
import { writeFile } from "node:fs/promises";
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const audio = await client.audio.speech.create({
"model": "openai/gpt-4o-mini-tts",
"input": "Hello from api14! One API for every model.",
"voice": "alloy",
"response_format": "mp3"
});
await writeFile("speech.mp3", Buffer.from(await audio.arrayBuffer()));
Respuesta
El cuerpo es el propio archivo de audio, con el Content-Type correspondiente (p. ej. audio/mpeg). Guárdalo en disco o transmítelo a un reproductor:
curl https://api14.com/api/v1/audio/speech \
-H "Authorization: Bearer sk-api14-..." \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-4o-mini-tts","input":"Hello from api14!","voice":"alloy"}' \
--output hello.mp3
Los errores se siguen devolviendo como JSON con el formato de error de OpenAI, así que comprueba el código de estado antes de escribir el archivo.
Precios
La voz se factura por carácter de entrada al precio indicado del modelo, mostrado como "$ / 1M caracteres". Un párrafo de 1.000 caracteres en un modelo con precio de $15 / 1M caracteres cuesta $0.015.
Listar modelos de voz
curl "https://api14.com/api/v1/models?category=speech"
Errores
| Estado | Código | Cuándo |
|---|---|---|
| 400 | model_required / invalid_json | Falta model o el cuerpo está mal formado. |
| 402 | insufficient_balance | Tu saldo en USD es $0. |
| 403 | model_not_allowed / plan_required | La lista de modelos permitidos de la clave o el plan excluye el modelo. |
| 404 | model_not_found | Id de modelo desconocido o desactivado. |
| 429 | rate_limited | Se superaron las peticiones por minuto. |
Las voces o formatos no admitidos se rechazan en el proveedor y se transmiten tal cual. Consulta Errores.