Inhalt
Leitfaden zur Sprachsynthese (TTS)
Leitfaden zur Sprachsynthese (TTS)
POST /v1/audio/speech ist OpenAI-compatible: JSON senden und die Audiodatei als Binärdaten empfangen. Zur ElevenLabs-Familie gehören elevenlabs/eleven-v4, eleven-v4-turbo, eleven-v3, eleven-v3-conversational, eleven-multilingual-v2, eleven-flash-v2.5, eleven-flash-v2, eleven-turbo-v2.5 und eleven-turbo-v2. Die aktuelle Liste steht unter GET /v1/models?output_modalities=speech. GET /v1/models liefert standardmäßig nur Textmodelle; hängen Sie ?output_modalities=speech (oder all) an, um sie aufzulisten.
/v1/audio/speechParameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| model | string | Ja | ID des Sprachmodells, z. B. elevenlabs/eleven-flash-v2.5. |
| input | string | Ja | Zu synthetisierender Text: bis zu 4.096 Zeichen pro Anfrage (10.000 bei elevenlabs/eleven-v4 und eleven-v4-turbo). Längeren Text auf mehrere Anfragen verteilen. |
| voice | string | Ja | Zu verwendende Stimme; das Format hängt vom Modell ab. Siehe Stimmregeln unten. |
| response_format | string | Nein | mp3 (Standard) oder pcm. opus, aac, flac und wav nimmt die API an, ElevenLabs-Modelle lehnen sie derzeit aber mit 400 ab. |
| speed | number | Nein | Sprechgeschwindigkeit von 0.25 bis 4.0. Nicht jedes Modell wendet sie an. |
| instructions | string | Nein | Stilanweisungen für die Stimme. Nicht jedes Modell wendet sie an. |
| stability | number | Nein | Stabilität der Stimme, 0–1 (Standard 0,5). Niedriger klingt ausdrucksstärker, höher gleichmäßiger. Wirkt bei elevenlabs/*-Modellen, wenn die Anfrage über unsere direkte Sprachroute bedient wird; der Antwort-Header X-Voice-Settings zeigt applied oder ignored. |
| similarity_boost | number | Nein | Ähnlichkeit zur Originalstimme, 0–1 (Standard 0,75). Wird von Eleven v3 nicht verwendet. |
| style | number | Nein | Stilübertreibung, 0–1 (Standard 0). Werte über 0 erhöhen die Latenz. Wird von Eleven v4 nicht verwendet. |
| use_speaker_boost | boolean | Nein | Verstärkt die Ähnlichkeit zum ursprünglichen Sprecher (Standard true); erhöht die Latenz leicht. |
| clone_strength | number | Nein | Klon-Stärke, 0–1 (für die meisten Stimmen wird 0 empfohlen). Nur für Ihre eigenen professionellen Klonstimmen (voice_…), die für Eleven v4 trainiert wurden. |
| language_code | string | Nein | Zweibuchstabiger Sprachcode in Kleinbuchstaben (ISO 639-1), z. B. ar, ja oder en, um die Sprechsprache festzulegen. Wird von multilingual-v2-Modellen nicht verwendet. |
| audio_effects | object | Nein | Optionales Audioeffekt-Objekt: filter_preset_id (z. B. phone, old_radio), environment_id (Hallraum, z. B. small_room, hall), background_noise_id (z. B. cafe), distance (0–1), send_level (Hallanteil, 0–1) und pan (−1…1). IDs bestehen aus Kleinbuchstaben, Ziffern und Unterstrichen; keine Zusatzkosten. Hall oder ein pan ungleich 0 erzeugt Stereo und ist mit pcm-Ausgabe nicht kombinierbar. |
Die sieben Stimmeinstellungen oben sind optional; ohne sie ändert sich nichts. Ein Wert außerhalb des Bereichs ergibt 400 und wird weder gesendet noch berechnet. Der Antwort-Header X-Voice-Settings zeigt, ob Ihre Einstellungen verwendet wurden: applied = verwendet; ignored = eine Ersatzroute hat geantwortet, Ihre Einstellungen wurden nicht verwendet (das Audio wird trotzdem erzeugt); kein Header = Sie haben keine Stimmeinstellungen gesendet. Beispiel: stability 0 liest ausdrucksstärker, stability 1 gleichmäßiger.
Stimmregeln
ElevenLabs-Modelle (elevenlabs/…) akzeptieren einen dieser Stimmennamen (Groß-/Kleinschreibung egal): george, sarah, adam, alice, bella, bill, brian, callum, charlie, chris, daniel, eric, harry, jessica, laura, liam, lily, matilda, river, roger, will. Bei ElevenLabs-Modellen darf voice fehlen (Standard george). Jeder andere Wert liefert 400 invalid_voice. Ihre eigene Stimme (voice_…) ist im Abschnitt „Eigene Stimmen“ unten beschrieben.
OpenAI-style Stimmnamen wie alloy, echo oder nova funktionieren nur bei Modellen, die sie aufführen. Prüfen Sie die Stimmen auf der Modellseite.
Eigene Stimmen (Klonen) werden schrittweise freigeschaltet: siehe den Abschnitt „Eigene Stimmen“ unten (POST /v1/voices). Bis sie für Ihr Konto aktiviert sind, nutzen Sie einen der 21 Preset-Namen oben oder eine öffentliche Stimm-ID.
Integrierte Stimmen
Setzen Sie voice auf einen der Namen unten (Kleinbuchstaben). Jede Stimme hat einen kurzen Hörbeispiel-Clip, und GET /api/v1/audio/voices liefert die vollständige Liste (Geschlecht, Altersgruppe, Akzent, Stil und Vorschau-URLs).
?lang= (en, zh-TW, zh-CN; Standard: Accept-Language) bestimmt nur die Sprache von description. Die Vorschau-URLs ändern sich nicht: preview_urls.en (wie preview_url) ist der englische Clip, preview_urls.zh (wie preview_url_zh) der chinesische.
| Stimme | Beschreibung | Vorschau |
|---|---|---|
| george | Male, middle-aged, British accent. Mature and steady, suited to narration and storytelling. | |
| sarah | Female, young adult, American accent. Professional and clear, suited to broadcast-style reading. | |
| adam | Male, middle-aged, American accent. Everyday and approachable, suited to short social videos. | |
| alice | Female, middle-aged, British accent. Professional and informative, suited to explainers and teaching. | |
| bella | Female, middle-aged, American accent. Professional and informative, suited to explainers and teaching. | |
| bill | Male, senior, American accent. Crisp and direct, suited to advertising voice-overs. | |
| brian | Male, middle-aged, American accent. Polished and refined, suited to social and brand content. | |
| callum | Male, middle-aged, American accent. Expressive, suited to characters and animation. | |
| charlie | Male, young adult, Australian accent. Energetic and lively, suited to conversation. | |
| chris | Male, middle-aged, American accent. Relaxed and casual, suited to conversation. | |
| daniel | Male, middle-aged, British accent. Formal and measured, suited to news-style and educational reading. | |
| eric | Male, middle-aged, American accent. Polished and warm, suited to conversation. | |
| harry | Male, young adult, American accent. Rough and gritty, suited to character voices. | |
| jessica | Female, young adult, American accent. Bright and cute, suited to conversation. | |
| laura | Female, young adult, American accent. Playful with attitude, suited to social content. | |
| liam | Male, young adult, American accent. Confident and upbeat, suited to social content. | |
| lily | Female, middle-aged, British accent. Confident and clear, suited to explainers and teaching. | |
| matilda | Female, middle-aged, American accent. Upbeat and friendly, suited to explainers and teaching. | |
| river | Neutral voice, middle-aged, American accent. Calm and even, suited to conversation. | |
| roger | Male, middle-aged, American accent. Polished and confident, suited to conversation. | |
| will | Male, young adult, American accent. Laid-back and easygoing, suited to conversation. |
Emotions- und Aktions-Tags (Audio-Tags)
Schreiben Sie Tags in eckigen Klammern direkt in input, zum Beispiel [laughs], [whispers], [excited], [sighs], [crying], [curious] oder [softly]. Sie werden unverändert an das Modell gesendet und bestimmen, wie die folgenden Worte gesprochen werden. Lassen Sie die Tags auch bei deutschem Text auf Englisch.
curl https://api.bazaarlink.ai/v1/audio/speech \
-H "Authorization: Bearer $BAZAARLINK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"elevenlabs/eleven-v3","input":"[laughs] That was actually funny. [whispers] Do not tell anyone.","voice":"george","response_format":"mp3"}' \
--output audio-tags.mp3Unterstützt von elevenlabs/eleven-v3 und der Familie elevenlabs/eleven-v4. Andere Sprachmodelle interpretieren Tags nicht und lesen die Klammern unter Umständen vor; probieren Sie zuerst einen kurzen Satz.
Tags zählen als Zeichen von input und werden wie der übrige Text berechnet.
Ausgabeformate
Ohne response_format gilt mp3 (Content-Type audio/mpeg); pcm (audio/pcm, rohes 16-Bit-PCM) funktioniert ebenfalls. Die API nimmt opus, aac, flac und wav an, ElevenLabs-Modelle lehnen sie derzeit jedoch mit 400 ab. Speichern Sie die Datei anhand des Content-Type-Headers.
Abrechnung
Sprachsynthese wird pro Eingabezeichen berechnet. Der Zeichenpreis steht auf der Modellseite unter /models sowie unter GET /v1/models als pricing.character. Modellseiten zeigen ihn pro Million Zeichen.
Beispiele
curl https://api.bazaarlink.ai/v1/audio/speech \
-H "Authorization: Bearer $BAZAARLINK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"elevenlabs/eleven-flash-v2.5","input":"Hello from BazaarLink.","voice":"george","response_format":"mp3"}' \
--output speech.mp3Häufige Fehler
| Status | Ursache und Lösung |
|---|---|
| 400 | Ungültige Anfrage: model, input oder voice fehlt; input über 4.096 Zeichen; speed außerhalb 0.25–4.0; nicht unterstütztes response_format; Unknown voice; unknown_model (ID unter /models prüfen). |
| 401 | API-Schlüssel fehlt oder ist ungültig. Senden Sie Authorization: Bearer mit Ihrem BazaarLink-Schlüssel. |
| 402 | Guthaben reicht nicht aus. Aufladen und erneut versuchen. |
| 403 | Ein Verwaltungsschlüssel kann keine Modelle aufrufen, oder das Konto ist gesperrt. Verwenden Sie einen regulären API-Schlüssel. |
| 429 | Ratenlimit erreicht. Warten Sie gemäß Retry-After und versuchen Sie es erneut. |
| 502 | Der Modelldienst ist vorübergehend nicht verfügbar oder die Audioübertragung wurde unterbrochen. Erneut versuchen; fehlgeschlagene Anfragen werden nicht berechnet. |
Sprachsynthese
Wandelt Text mit einer Modell-ID aus /v1/models?output_modalities=speech in Audio um. Abgerechnet wird zum Preis pro Million Zeichen der Modellseite. Das komplette Audio wird gepuffert und danach als Binärdaten zurückgegeben; schrittweises Streaming wird nicht unterstützt. Routing-Steuerfelder wie provider, transforms, route, service_tier und preset werden ignoriert.
/v1/audio/speech/v1/chat/completionsaudio oder input_audio mit /v1/chat/completions und einem Audiomodell verwenden. Die konfigurierten Eingabe-/Ausgabe-Tokenpreise gelten einheitlich für alle gemeldeten Text- und Audiotokens.
curl https://api.bazaarlink.ai/v1/chat/completions \
-H "$BAZAARLINK_AUTH_HEADER" \
-H "Content-Type: application/json" \
-d '{"model":"<audio-chat-model-id>","messages":[{"role":"user","content":"Say hi."}],"stream":true,"modalities":["text","audio"],"audio":{"voice":"alloy","format":"pcm16"},"max_tokens":32}'