Hoppa till navigering

Latensoptimering

Den här guiden visar hur du minskar text-till-tal-latensen i din applikation.

Den här guiden täcker de grundläggande principerna för att förbättra text-till-tal-latensen. För en förklaring av vad latens är och vad som bidrar till den, se Förstå latens.

Det finns många enskilda tekniker, men vi delar in dem i fyra principer.

Fyra principer

  1. Använd Flash-modeller
  2. Utnyttja streaming
  3. Tänk på geografisk närhet
  4. Välj lämpliga röster

Enterprise-kunder får högre samtidighetsgränser och prioriterad åtkomst till vår renderingskö. Kontakta säljteamet om du vill veta mer om våra Enterprise- abonnemang.

Använd Flash-modeller

Flash-modeller ger slutledningshastigheter på cirka 75 ms, vilket gör dem perfekta för realtidsapplikationer. Avvägningen är en liten försämring av ljudkvaliteten jämfört med Multilingual v2.

75 ms avser endast modellens slutledningstid. Den faktiska latensen från början till slut varierar beroende på faktorer som din plats och vilken endpoint-typ du använder.

Utnyttja streaming

Det finns tre typer av text-till-tal-endpoints i vår API-referens:

  • Vanlig endpoint: Returnerar en komplett ljudfil i ett enda svar.
  • Streaming-endpoint: Returnerar ljuddelar löpande med Server-sent events.
  • WebSocket-endpoint: Möjliggör dubbelriktad streaming för ljudgenerering i realtid.

Streaming

Streaming-endpoints returnerar löpande ljud medan det genereras i realtid, vilket minskar tiden till första byte. Den här endpointen rekommenderas när inmatningstexten finns tillgänglig från början.

Streaming stöds för Text to Speech API, Voice Changer API och Audio Isolation API.

WebSockets

text-till-tal-WebSocket-endpointen har stöd för dubbelriktad streaming, vilket gör den perfekt för applikationer med textinmatning i realtid (t.ex. utdata från LLM:er).

Om du ställer in auto_mode på true hanteras genereringstriggers automatiskt, så att du slipper hantera chunk-strategier manuellt.

Om auto_mode är inaktiverat väntar modellen på tillräckligt med text för att matcha chunk-schemat innan den börjar generera ljud.

Om du till exempel anger ett chunk-schema på 125 tecken men endast 50 kommer in, väntar modellen tills ytterligare tecken anländer – vilket kan öka latensen.

Mer information om implementering finns i guiden för text-till-tal med WebSocket.

Välj lämpliga röster

Vi har sett att röstvalet i vissa fall kan påverka latensen. Här är ordningen från snabbast till långsammast:

  1. Standardröster (tidigare förskapade), syntetiska röster och Instant Voice Clones (IVC)
  2. Professional Voice Clones (PVC)

Utdataformat med högre ljudkvalitet kan öka latensen. Se till att balansera dina latenskrav med behovet av ljudåtergivning.

Vi arbetar aktivt med att optimera PVC-latensen för Flash v2.5.

Tänk på geografisk närhet

Vi tillhandahåller våra modeller från flera regioner för att optimera latensen utifrån din geografiska plats.

När du till exempel använder Flash-modeller med WebSockets kan du förvänta dig följande TTFB-latens beroende på var du befinner dig:

RegionTTFB
Nordamerika100-150ms
Europa100-150ms
Sydostasien100-150ms
Sydasien150-200ms
Nordostasien150-200ms

Du kan kontrollera vilken backend-region som hanterar din förfrågan genom att granska huvudet x-region i API-svaret. Regioner som används för närvarande är USA, Nederländerna och Singapore.

Enterprise-kunder kan använda våra dedikerade datalagringsmiljöer i EU och Indien för garantier om serverplats och låg latens. Kontakta din säljrepresentant för att komma igång med vår infrastruktur för datalagring.

Om du vill välja bort global routning och alltid använda servrar i USA använder du bas-URL:en api.us.elevenlabs.io för dina API-förfrågningar:

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

De globala servrarna krävde tidigare opt-in via bas-URL:en api-global-preview.elevenlabs.io. Detta behövs inte längre eftersom det nu är standardbeteendet. Uppdatera dina applikationer så att de i stället använder api.elevenlabs.io.