Endpoints
Voix (synthèse vocale)
POST /audio/speech : transformez du texte en audio avec les modèles de synthèse vocale (TTS), qui renvoient directement les octets du fichier audio.
Essayer dans le playgroundTransformez du texte en parole naturelle (synthèse vocale, TTS). L'endpoint suit la forme du POST /audio/speech d'OpenAI et renvoie les octets audio bruts, donc client.audio.speech.create(...) fonctionne sans modification.
POST https://api14.com/api/v1/audio/speech
Requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
model | string | oui | Un identifiant de modèle de voix, par ex. openai/gpt-4o-mini-tts. |
input | string | oui | Le texte à prononcer. |
voice | string | oui | Nom de la voix, par ex. alloy, nova, verse. Les voix varient selon le modèle (voir la page du modèle). |
response_format | string | non | mp3 (par défaut), wav, opus, aac, flac, pcm quand c'est pris en charge. |
speed | number | non | Vitesse de lecture, généralement 0.25–4.0. |
instructions | string | non | Consignes de style pour les modèles qui les acceptent (« ton calme et chaleureux »). |
Exemple
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()));
Réponse
Le corps est le fichier audio lui-même, avec un Content-Type correspondant (par ex. audio/mpeg). Enregistrez-le sur le disque ou diffusez-le vers un lecteur :
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
Les erreurs sont toujours renvoyées en JSON au format d'erreur OpenAI : vérifiez donc le code de statut avant d'écrire le fichier.
Tarifs
La voix est facturée par caractère d'entrée au prix indiqué du modèle, affiché en « $ / 1M caractères ». Un paragraphe de 1 000 caractères sur un modèle à 15 $ / 1M caractères coûte 0,015 $.
Lister les modèles de voix
curl "https://api14.com/api/v1/models?category=speech"
Erreurs
| Statut | Code | Quand |
|---|---|---|
| 400 | model_required / invalid_json | model manquant ou corps mal formé. |
| 402 | insufficient_balance | Votre solde en USD est à 0 $. |
| 403 | model_not_allowed / plan_required | La liste autorisée de la clé ou le forfait exclut le modèle. |
| 404 | model_not_found | Identifiant de modèle inconnu ou désactivé. |
| 429 | rate_limited | Requêtes par minute dépassées. |
Les voix ou formats non pris en charge sont rejetés en amont et l'erreur est transmise. Voir Erreurs.