Endpoint
Sintesi vocale (TTS)
Trasforma il testo in audio con POST /audio/speech, che restituisce byte audio grezzi, con voci, formati, velocità, prezzi per carattere ed errori.
Provalo nel playgroundTrasforma il testo in un parlato dal suono naturale (text-to-speech, TTS). L'endpoint segue la forma di POST /audio/speech di OpenAI e restituisce byte audio grezzi, quindi client.audio.speech.create(...) funziona senza modifiche.
POST https://api14.com/api/v1/audio/speech
Richiesta
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
model | string | sì | L'id di un modello vocale, ad es. openai/gpt-4o-mini-tts. |
input | string | sì | Il testo da pronunciare. |
voice | string | sì | Nome della voce, ad es. alloy, nova, verse. Le voci variano per modello (vedi la pagina del modello). |
response_format | string | no | mp3 (predefinito), wav, opus, aac, flac, pcm dove supportato. |
speed | number | no | Velocità di riproduzione, in genere 0.25-4.0. |
instructions | string | no | Indicazioni di stile per i modelli che le accettano ("tono calmo e caldo"). |
Esempio
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()));
Risposta
Il corpo è il file audio stesso, con un Content-Type corrispondente (ad es. audio/mpeg). Salvalo su disco oppure invialo in streaming a un 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
Gli errori vengono comunque restituiti come JSON nel formato di errore di OpenAI, quindi controlla il codice di stato prima di scrivere il file.
Prezzi
La sintesi vocale è fatturata per carattere di input al prezzo indicato per il modello, mostrato come "$ / 1M caratteri". Un paragrafo di 1.000 caratteri su un modello a $15 / 1M caratteri costa $0.015.
Elencare i modelli vocali
curl "https://api14.com/api/v1/models?category=speech"
Errori
| Stato | Codice | Quando |
|---|---|---|
| 400 | model_required / invalid_json | Manca model oppure il corpo è malformato. |
| 402 | insufficient_balance | Il tuo saldo in USD è $0. |
| 403 | model_not_allowed / plan_required | La lista dei modelli consentiti della chiave o il piano escludono il modello. |
| 404 | model_not_found | Id del modello sconosciuto o disattivato. |
| 429 | rate_limited | Superato il limite di richieste al minuto. |
Le voci o i formati non supportati vengono rifiutati dall'upstream e inoltrati. Vedi Errori.