Endpoints
Texto para fala
Converta texto em fala natural com o endpoint POST /audio/speech do api14, compatível com a OpenAI, com vozes, formatos de áudio e preços.
Teste no playgroundTransforme texto em fala natural (text-to-speech, TTS). O endpoint segue o formato POST /audio/speech da OpenAI e retorna bytes de áudio brutos, então client.audio.speech.create(...) funciona sem alterações.
POST https://api14.com/api/v1/audio/speech
Requisição
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
model | string | sim | Um id de modelo de fala, por exemplo openai/gpt-4o-mini-tts. |
input | string | sim | O texto a ser falado. |
voice | string | sim | Nome da voz, por exemplo alloy, nova, verse. As vozes variam por modelo (veja a página do modelo). |
response_format | string | não | mp3 (padrão), wav, opus, aac, flac, pcm quando suportado. |
speed | number | não | Velocidade de reprodução, normalmente 0.25–4.0. |
instructions | string | não | Orientação de estilo para modelos que a aceitam ("tom calmo e acolhedor"). |
Exemplo
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()));
Resposta
O corpo é o próprio arquivo de áudio, com um Content-Type correspondente (por exemplo audio/mpeg). Salve-o em disco ou envie-o por streaming a um player:
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
Os erros continuam sendo retornados em JSON no formato de erro da OpenAI, então verifique o código de status antes de gravar o arquivo.
Preços
A fala é cobrada por caractere de entrada ao preço listado do modelo, exibido como "$ / 1M caracteres". Um parágrafo de 1.000 caracteres em um modelo com preço de $15 / 1M caracteres custa $0.015.
Listando modelos de fala
curl "https://api14.com/api/v1/models?category=speech"
Erros
| Status | Código | Quando |
|---|---|---|
| 400 | model_required / invalid_json | model ausente ou corpo malformado. |
| 402 | insufficient_balance | Seu saldo em USD é $0. |
| 403 | model_not_allowed / plan_required | A lista de permissões da chave ou o plano exclui o modelo. |
| 404 | model_not_found | Id de modelo desconhecido ou desativado. |
| 429 | rate_limited | Limite de requisições por minuto excedido. |
Vozes ou formatos não suportados são rejeitados pelo provedor e repassados. Veja Erros.