Lektion 3 von 5·11 Min Lesezeit

Text-to-Speech API

Die ElevenLabs Text-to-Speech API ist das Herzstück für Entwickler. Von einfachen REST-Aufrufen bis hin zu Streaming-Audio mit Sub-300ms-Latenz — hier lernen Sie alles, was Sie für die Integration brauchen.

REST API Grundlagen

Einfacher TTS-Aufruf

const response = await fetch(
  'https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM',
  {
    method: 'POST',
    headers: {
      'xi-api-key': process.env.ELEVENLABS_API_KEY,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      text: 'Willkommen bei unserem Service.',
      model_id: 'eleven_multilingual_v2',
      voice_settings: {
        stability: 0.5,
        similarity_boost: 0.75,
        style: 0.3,
        use_speaker_boost: true,
      },
    }),
  }
)
const audioBuffer = await response.arrayBuffer()

Voice Settings erklärt

ParameterBereichEffekt
stability0.0–1.0Niedrig = expressiver, Hoch = konsistenter
similarity_boost0.0–1.0Wie nah an der Originalstimme
style0.0–1.0Stärke des Sprech-Stils (erhöht Latenz)
use_speaker_boosttrue/falseOptimiert Klarheit der Stimme

Modell-Auswahl

ModellLatenzQualitätSprachenUse Case
eleven_turbo_v2_5~200 msGut32Echtzeit-Gespräche
eleven_multilingual_v2~400 msExzellent29Höchste Qualität
eleven_monolingual_v1~300 msSehr gut1 (EN)Nur Englisch

Streaming Audio

Warum Streaming?

Bei normaler API wartet der Client, bis das gesamte Audio generiert ist. Bei Streaming kommen die ersten Bytes in < 300 ms — kritisch für Echtzeit-Anwendungen.

const response = await fetch(
  'https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM/stream',
  {
    method: 'POST',
    headers: {
      'xi-api-key': process.env.ELEVENLABS_API_KEY,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      text: 'Dies wird als Stream zurückgegeben.',
      model_id: 'eleven_turbo_v2_5',
      output_format: 'mp3_44100_128',
    }),
  }
)

// Stream direkt zum Client weiterleiten
const reader = response.body.getReader()
while (true) {
  const { done, value } = await reader.read()
  if (done) break
  // Audio-Chunks verarbeiten
}

Output-Formate

FormatQualitätGrößeUse Case
mp3_44100_128HochMittelStandard
mp3_44100_64MittelKleinMobile
pcm_16000RohGroßTelefonie
pcm_44100RohSehr großPostproduction
ulaw_8000TelefonKleinTwilio/SIP

SSML-Support

Speech Synthesis Markup Language

SSML gibt Ihnen Feinsteuerung über die Sprachausgabe:

<speak>
  Willkommen bei <emphasis level="strong">DeepReshape</emphasis>.
  <break time="500ms"/>
  Ihr Termin ist am <say-as interpret-as="date">2026-03-15</say-as>.
  Das kostet <say-as interpret-as="currency">49,99 EUR</say-as>.
</speak>

Unterstützte SSML-Tags

  • <break> — Pause einfügen (time="500ms")
  • <emphasis> — Betonung (level: strong, moderate, reduced)
  • <say-as> — Interpretation: date, currency, telephone, cardinal
  • <phoneme> — Exakte Aussprache per IPA
  • <prosody> — Geschwindigkeit, Tonhöhe, Lautstärke

Latenz-Optimierung

Die Latenz-Formel

Gesamtlatenz = API-Overhead + Modell-Inferenz + Text-Länge + Netzwerk

Optimierungs-Strategien

  1. Turbo-Modell verwenden — eleven_turbo_v2_5 statt multilingual_v2
  2. Streaming aktivieren — erste Bytes in < 300 ms
  3. Text chunken — lange Texte in Sätze aufteilen und parallel senden
  4. CDN nutzen — generierte Audios cachen und über CDN ausliefern
  5. Regionale Endpoints — Server-Standort nahe am Nutzer
  6. Pre-Generation — häufige Ansagen vorab generieren und cachen

Latenz-Benchmarks

SzenarioOhne OptimierungMit Optimierung
Einzelner Satz600 ms200 ms
Absatz (500 Zeichen)1.500 ms400 ms
Volle Seite5.000 ms800 ms (Streaming)

Praxis-Tipp: Für Echtzeit-Voice-Agents verwenden Sie immer das Turbo-Modell mit Streaming. Für Offline-Produktion (Hörbücher, Podcasts) nehmen Sie das Multilingual-v2-Modell — die höhere Qualität ist die längere Wartezeit wert.