Zur Navigation springen

Latenz optimieren

Dieser Leitfaden zeigt Ihnen, wie Sie die Text-to-Speech-Latenz in Ihrer Anwendung reduzieren.

Dieser Leitfaden behandelt die wichtigsten Prinzipien zur Verbesserung der Text-to-Speech-Latenz. Eine konzeptionelle Erklärung, was Latenz ist und welche Faktoren dazu beitragen, finden Sie unter Latenz verstehen.

Es gibt viele einzelne Techniken, die wir in vier Prinzipien zusammenfassen.

Vier Prinzipien

  1. Flash-Modelle verwenden
  2. Streaming nutzen
  3. Geografische Nähe berücksichtigen
  4. Geeignete Stimmen wählen

Enterprise-Kunden profitieren von höheren Parallelitätslimits und bevorzugtem Zugriff auf unsere Rendering-Warteschlange. Vertrieb kontaktieren, um mehr über unsere Enterprise- Pläne zu erfahren.

Ein Echtzeitmodell verwenden

Eleven v4 Turbo und Flash v2.5 sind für den Echtzeiteinsatz konzipiert und erreichen eine mittlere Latenz von etwa 100 ms. Flash-Modelle bieten im Vergleich zu Multilingual v2 eine leicht geringere Audioqualität.

Diese Werte schließen Netzwerkzeit und Ihre Anwendung aus. Die tatsächliche End-to-End-Latenz variiert je nach Faktoren wie Ihrem Standort und dem verwendeten Endpunkttyp. Siehe wie die Latenz gemessen wird.

Streaming nutzen

In unserer API-Referenz stehen drei Arten von Text-to-Speech-Endpunkten zur Verfügung:

  • Regulärer Endpunkt: Gibt eine vollständige Audiodatei in einer einzigen Antwort zurück.
  • Streaming-Endpunkt: Gibt Audioblöcke schrittweise über Server-sent Events zurück.
  • WebSockets-Endpunkt: Ermöglicht bidirektionales Streaming für die Audioerzeugung in Echtzeit.

Streaming

Streaming-Endpunkte geben Audio während der Echtzeiterzeugung schrittweise zurück und verkürzen so die Zeit bis zum ersten Byte. Dieser Endpunkt wird empfohlen, wenn der Eingabetext im Voraus verfügbar ist.

Streaming wird von der Text to Speech-API, der Stimmenverzerrer-API und der Audio- Isolation-API unterstützt.

WebSockets

Der Text-to-Speech-WebSocket-Endpunkt unterstützt bidirektionales Streaming und eignet sich daher ideal für Anwendungen mit Texteingaben in Echtzeit, etwa LLM-Ausgaben.

Wenn Sie auto_mode auf true setzen, werden Auslöser für die Generierung automatisch verarbeitet. Sie müssen Chunk-Strategien nicht manuell verwalten.

Wenn auto_mode deaktiviert ist, wartet das Modell auf genügend Text, um dem Chunk-Zeitplan zu entsprechen, bevor es mit der Audioerzeugung beginnt.

Wenn Sie beispielsweise einen Chunk-Zeitplan von 125 Zeichen festlegen, aber nur 50 Zeichen eintreffen, wartet das Modell, bis weitere Zeichen eingehen. Das kann die Latenz erhöhen.

Details zur Implementierung finden Sie im Leitfaden für Text-to-Speech-WebSockets.

Geeignete Stimmen wählen

Wir haben festgestellt, dass die Stimmenauswahl in einigen Fällen die Latenz beeinflussen kann. Die Reihenfolge von schnell nach langsam:

  1. Standardstimmen (früher vorgefertigte Stimmen), synthetische Stimmen und Instant Voice Clones (IVC)
  2. Professional Voice Clones (PVC)

Ausgabeformate mit höherer Audioqualität können die Latenz erhöhen. Wägen Sie Ihre Latenzanforderungen gegen die benötigte Audiotreue ab.

Wir arbeiten aktiv daran, die PVC-Latenz für Flash v2.5 zu optimieren.

Geografische Nähe berücksichtigen

Wir stellen unsere Modelle aus mehreren Regionen bereit, um die Latenz basierend auf Ihrem geografischen Standort zu optimieren.

Bei Verwendung von Flash-Modellen mit WebSockets können Sie beispielsweise abhängig von Ihrem Standort mit folgenden TTFB-Latenzen rechnen:

RegionTTFB
Nordamerika100–150 ms
Europa100–150 ms
Südostasien100–150 ms
Südasien150–200 ms
Nordostasien150–200 ms

Sie können prüfen, welche Backend-Region Ihre Anfrage bedient, indem Sie den x-region-Header in der API-Antwort prüfen. Aktuell verwendete Regionen sind: USA, Niederlande und Singapur.

Enterprise-Kunden können unsere dedizierten Datenresidenzumgebungen in der EU und Indien nutzen, um Garantien zum Serverstandort sowie niedrige Latenz zu erhalten. Wenden Sie sich an Ihren Vertriebsmitarbeiter, um für unsere Datenresidenzinfrastruktur freigeschaltet zu werden.

Um das globale Routing zu deaktivieren und immer Server in den USA zu verwenden, nutzen Sie für Ihre API-Anfragen die Basis-URL api.us.elevenlabs.io:

import os
from elevenlabs.client import ElevenLabs
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
base_url="https://api.us.elevenlabs.io"
)

Die globalen Server waren zuvor über die Basis-URL api-global-preview.elevenlabs.io optional verfügbar. Dies ist nicht mehr erforderlich, da es jetzt das Standardverhalten ist. Aktualisieren Sie Ihre Anwendungen, sodass sie stattdessen einfach api.elevenlabs.io verwenden.