Endpoints
Música y audio
Genera música y audio hablado con modelos de chat con salida de audio mediante chat completions, usando modalities y decodificando el audio en base64.
Pruébalo en el playgroundLos modelos de música y de salida de audio (Lyria 3, GPT Audio y otros) no tienen un endpoint propio: se llaman mediante Chat completions y se pide la salida de audio con modalities. El audio generado llega codificado en base64 dentro del mensaje del asistente.
POST https://api14.com/api/v1/chat/completions
Petición
Se aplican todos los parámetros de chat completions. Los específicos de audio:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
model | string | sí | Un id de modelo de audio, p. ej. google/lyria-3 o openai/gpt-audio. |
messages | array | sí | Describe la música o la voz que quieres. |
modalities | string[] | sí | ["text", "audio"] para recibir audio. |
audio | object | no | Opciones de salida para modelos de voz: { "voice": "alloy", "format": "wav" }. |
stream | boolean | no | Transmite fragmentos de audio como eventos enviados por el servidor donde se admita. |
Ejemplo
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "google/lyria-3",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
Una petición sin procesar:
{
"model": "google/lyria-3",
"modalities": ["text", "audio"],
"messages": [
{ "role": "user", "content": "A 30-second lo-fi hip hop loop with soft piano and vinyl crackle." }
]
}
Respuesta
{
"id": "gen-1791100000-xyz",
"object": "chat.completion",
"model": "google/lyria-3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Here is your loop.",
"audio": { "id": "audio_01", "data": "UklGRiQAAABXQVZFZm10...", "format": "wav" }
},
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 24, "completion_tokens": 1500, "total_tokens": 1524, "cost": 0.06 }
}
Decodifica choices[0].message.audio.data desde base64 y guárdalo con la extensión indicada en format.
Entrada de audio
Para enviar audio a un modelo (p. ej. "resume esta grabación"), usa una parte de contenido input_audio; consulta Visión y archivos. Para convertir voz en texto sin más, Transcripción es más sencilla y barata; para texto a voz, usa Voz.
Listar modelos de audio
curl "https://api14.com/api/v1/models?category=audio"
Precios
Los modelos de audio se facturan a su precio indicado (por token de audio, por segundo o por petición, según el modelo). El coste exacto está en usage.cost.
Errores
| Estado | Código | Cuándo |
|---|---|---|
| 402 | insufficient_balance | Tu saldo en USD es $0. |
| 403 | plan_required | Tu plan no incluye modelos de audio. |
| 404 | model_not_found | Id de modelo desconocido o desactivado. |
Consulta Errores.