Text-to-Speech

POST /v1/audio/speech

Trasforma il testo in voce naturale con un unico endpoint compatibile con OpenAI. Invii JSON e ricevi indietro i byte audio. Per cambiare provider basta modificare model. Nulla viene scritto su disco: l'audio ti torna indietro direttamente in streaming.

Esempio di richiesta

curl https://synthorai.io/v1/audio/speech \
  -H "Authorization: Bearer $SYNTHORAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "Hello from Synthorai.",
    "voice": "alloy"
  }' \
  --output speech.mp3

Python (OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    api_key="$SYNTHORAI_API_KEY",
    base_url="https://synthorai.io/v1",
)

with client.audio.speech.with_streaming_response.create(
    model="tts-1",
    voice="alloy",
    input="Hello from Synthorai.",
) as response:
    response.stream_to_file("speech.mp3")

Corpo della richiesta

Parametro Tipo Descrizione
model* string ID del modello. Uno tra tts-1, tts-1-hd, seed-tts-2.0.
input* string Il testo da sintetizzare. Massimo 4096 caratteri.
voice string Voce con cui parlare. Predefinita alloy. Vedi Voci più sotto.
response_format string Contenitore audio: mp3 (predefinito), opus, wav o pcm.
speed number Velocità di lettura, 0.25-4.0. Predefinita 1.0.

Modelli supportati

Quale conviene usare?

Cosa serve Modelli consigliati
Il più economico, sufficiente per la maggior parte delle voci di prodotto google-tts-standard
Contenuti prima di tutto in cinese, oppure se vuoi molte voci tra cui scegliere qwen3-tts-instruct-flash seed-tts-2.0
Voce di prodotto quotidiana, con equilibrio tra qualità e costo tts-1 google-tts-neural2
Massima espressività: narrazione, dispositivi companion, voce del brand tts-1-hd google-tts-chirp3-hd
Modello Prezzo Ideale per
google-tts-standard $4 / 1M chars Notifiche e messaggi vocali ad alto volume, quando conta il costo
qwen3-tts-instruct-flash $11.50 / 1M chars Contenuti in cinese e multilingue; l'upstream riporta il numero di caratteri fatturati
tts-1 $15 / 1M chars Voce di prodotto generica, messaggi vocali, notifiche
google-tts-neural2 $16 / 1M chars Voce quotidiana naturale in molte lingue
tts-1-hd $30 / 1M chars Narrazione, marketing, tutto ciò che gli utenti ascoltano per un po'
seed-tts-2.0 $30 / 1M chars Contenuti in cinese e multilingue; 180+ voci
google-tts-chirp3-hd $30 / 1M chars Le voci più recenti ed espressive di Google

Tre modelli stanno a $30. Si distinguono per il carattere della voce e la copertura linguistica, non per il prezzo. Provali sui tuoi testi prima di decidere.

ℹ

Cambiare provider ti costa una riga. Ogni modello qui parla la stessa forma di richiesta e di risposta. Sotto, i provider sono profondamente diversi (autenticazione, formati di streaming, denominazione delle voci). Il gateway assorbe tutto questo, così l'unica cosa che cambi è model.

# Same request, different provider - only the model name changes.
-d '{"model": "tts-1",        "input": "...", "voice": "alloy"}'
-d '{"model": "seed-tts-2.0", "input": "...", "voice": "alloy"}'

Voci

I modelli OpenAI accettano le voci standard: alloy, echo, fable, onyx, nova, shimmer.

Per seed-tts-2.0 valgono gli stessi sei nomi (vengono mappati su voci equivalenti), e per il controllo totale puoi anche passare direttamente un ID di voce nativo BytePlus, per esempio zh_female_cancan_uranus_bigtts. L'elenco completo delle 180+ voci native si trova nel catalogo voci di BytePlus.

Per qwen3-tts-instruct-flash valgono gli stessi sei nomi, oppure passa una voce nativa Qwen come Cherry, Ethan, Nofish, Jada.

⚠

Le voci Google sono legate alla loro fascia di prezzo. Ogni modello Google copre una fascia, e la fascia fa parte del nome della voce. Se passi un id di voce nativo come en-US-Neural2-C devi usare il modello corrispondente, in quell'esempio google-tts-neural2. Le voci di un'altra fascia vengono rifiutate con un 502 anziché fatturate in silenzio alla tariffa sbagliata.

Formati audio

Usa response_format per scegliere il contenitore. Il valore predefinito è mp3: mp3, opus, wav, pcm.

Non tutti i provider supportano ogni contenitore; i valori non supportati ricadono su MP3 invece di fallire.

Fatturazione

Si paga per carattere di input al listino ufficiale del provider, senza ricarico. Un carattere = un ideogramma cinese = una lettera = un segno di punteggiatura = uno spazio. Le richieste fallite non vengono mai addebitate.

L'audio che ricevi non viene conteggiato a parte; si paga solo il testo che invii.

Limiti

  • Massimo 4096 caratteri per richiesta. Un input più lungo viene rifiutato prima che venga addebitato qualcosa. Spezzalo lato client e concatena l'audio.
  • La velocità di lettura si regola con speed (0.25-4.0, predefinito 1.0). I valori fuori dall'intervallo del provider vengono riportati entro i limiti, non rifiutati.

Errori

Risposta Descrizione
400 L'input è vuoto oppure supera i 4096 caratteri.
401 Chiave API mancante o non valida.
402 Quota insufficiente per questa richiesta.
502 Il modello non è disponibile sul tuo account, oppure il provider upstream ha restituito un errore. Non viene addebitato nulla.
503 Al momento nessun canale serve questo modello.