Text-zu-Sprache
POST /v1/audio/speech
Wandeln Sie Text mit einem einzigen OpenAI-kompatiblen Endpoint in natürliche Sprache um. Senden Sie JSON und erhalten Sie Audio-Bytes zurück. Für einen Anbieterwechsel ändern Sie nur model. Nichts wird auf die Festplatte geschrieben: Das Audio wird direkt an Sie zurückgestreamt.
Beispielanfrage
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") Anfragetext
| Parameter | Typ | Beschreibung |
|---|---|---|
model* | string | Modell-ID. Eines von tts-1, tts-1-hd, seed-tts-2.0. |
input* | string | Der zu synthetisierende Text. Maximal 4096 Zeichen. |
voice | string | Stimme, in der gesprochen wird. Standard ist alloy. Siehe Stimmen weiter unten. |
response_format | string | Audio-Container: mp3 (Standard), opus, wav oder pcm. |
speed | number | Sprechgeschwindigkeit, 0.25–4.0. Standard ist 1.0. |
Unterstützte Modelle
Welches soll ich verwenden?
| Voraussetzung | Empfohlene Modelle |
|---|---|
| Am günstigsten, für die meisten Produktstimmen ausreichend | google-tts-standard |
| Vorwiegend chinesische Inhalte, oder viele Stimmoptionen gewünscht | qwen3-tts-instruct-flash seed-tts-2.0 |
| Alltägliche Produktstimme, ausgewogen zwischen Qualität und Kosten | tts-1 google-tts-neural2 |
| Beste Ausdrucksstärke: Erzählstimme, Companion-Geräte, Markenstimme | tts-1-hd google-tts-chirp3-hd |
| Modell | Preis | Am besten geeignet für |
|---|---|---|
google-tts-standard | $4 / 1M chars | Benachrichtigungen und Ansagen in großer Menge, wenn die Kosten entscheiden |
qwen3-tts-instruct-flash | $11.50 / 1M chars | Chinesische und mehrsprachige Inhalte; der Upstream meldet die berechnete Zeichenzahl |
tts-1 | $15 / 1M chars | Allgemeine Produktstimme, Ansagen, Benachrichtigungen |
google-tts-neural2 | $16 / 1M chars | Natürliche Alltagsstimme in vielen Sprachen |
tts-1-hd | $30 / 1M chars | Erzählstimme, Marketing, alles, was Nutzer eine Weile anhören |
seed-tts-2.0 | $30 / 1M chars | Chinesische und mehrsprachige Inhalte; 180+ Stimmen |
google-tts-chirp3-hd | $30 / 1M chars | Googles neueste und ausdrucksstärkste Stimmen |
Drei Modelle liegen bei $30. Sie unterscheiden sich im Stimmcharakter und in der Sprachabdeckung, nicht im Preis. Probieren Sie sie mit Ihren eigenen Texten aus, bevor Sie sich festlegen.
Ein Anbieterwechsel kostet Sie eine Zeile. Jedes Modell hier spricht dieselbe Anfrage- und Antwortform. Darunter unterscheiden sich die Anbieter erheblich (andere Authentifizierung, andere Streaming-Formate, andere Stimmbenennung). Das Gateway fängt das ab. Das Einzige, was Sie ändern, ist 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"}' Stimmen
OpenAI-Modelle akzeptieren die Standardstimmen: alloy, echo, fable, onyx, nova, shimmer.
Bei seed-tts-2.0 funktionieren dieselben sechs Namen (sie werden auf vergleichbare Stimmen abgebildet), und für volle Kontrolle können Sie auch direkt eine native BytePlus-Stimmen-ID übergeben, zum Beispiel zh_female_cancan_uranus_bigtts. Die vollständige Liste der 180+ nativen Stimmen finden Sie im BytePlus-Stimmenkatalog.
Bei qwen3-tts-instruct-flash funktionieren dieselben sechs Namen, oder Sie übergeben eine native Qwen-Stimme wie Cherry, Ethan, Nofish, Jada.
Google-Stimmen sind an ihre Preisstufe gebunden. Jedes Google-Modell deckt eine Stufe ab, und die Stufe steckt im Namen der Stimme. Wenn Sie eine native Stimmen-ID wie en-US-Neural2-C übergeben, müssen Sie das passende Modell verwenden, in diesem Beispiel google-tts-neural2. Stimmen einer anderen Stufe werden mit einem 502 abgelehnt, statt still zum falschen Tarif abgerechnet zu werden.
Audioformate
Mit response_format wählen Sie den Container. Der Standard ist mp3: mp3, opus, wav, pcm.
Nicht jeder Anbieter unterstützt jeden Container; nicht unterstützte Werte fallen auf MP3 zurück, statt fehlzuschlagen.
Abrechnung
Abgerechnet wird pro Eingabezeichen zum offiziellen Listenpreis des Anbieters, ohne Aufschlag. Ein Zeichen = ein chinesisches Schriftzeichen = ein Buchstabe = ein Satzzeichen = ein Leerzeichen. Fehlgeschlagene Anfragen werden nie berechnet.
Das zurückgelieferte Audio wird nicht separat gemessen; berechnet wird nur der Text, den Sie senden.
Limits
- Maximal 4096 Zeichen pro Anfrage. Längere Eingaben werden abgelehnt, bevor etwas berechnet wird. Teilen Sie sie clientseitig auf und fügen Sie das Audio anschließend zusammen.
- Die Sprechgeschwindigkeit steuern Sie über
speed(0.25–4.0, Standard 1.0). Werte außerhalb des Anbieterbereichs werden auf die Grenzen begrenzt, nicht abgelehnt.
Fehler
| Antwort | Beschreibung |
|---|---|
400 | Die Eingabe ist leer oder länger als 4096 Zeichen. |
401 | API-Schlüssel fehlt oder ist ungültig. |
402 | Nicht genügend Kontingent für diese Anfrage. |
502 | Das Modell ist für Ihr Konto nicht verfügbar, oder der Upstream-Anbieter ist fehlgeschlagen. Es wird nichts berechnet. |
503 | Derzeit bedient kein Channel dieses Modell. |