Zum Hauptinhalt springen
LiveKit Agents ist ein Framework zum Erstellen von Echtzeit-Sprach-KI. Da Venice für Chat, Transkription und Sprache vollständig OpenAI-kompatibel ist, können Sie alle drei Stufen eines Sprachagenten – Speech-to-Text (STT), das LLM und Text-to-Speech (TTS) – über das Plugin livekit-plugins-openai ansteuern, indem Sie es auf die Venice-Basis-URL verweisen.
Venice passt zur Architektur der STT-LLM-TTS-Pipeline in LiveKit Agents. Venice stellt keine OpenAI Realtime (Speech-to-Speech) WebSocket-API bereit, daher ist der Pfad RealtimeModel / multimodal nicht verfügbar. Verwenden Sie die unten gezeigte komponentisierte Pipeline – sie gibt Ihnen die volle Kontrolle über jedes Modell und hält die Inferenz auf der privaten Infrastruktur von Venice.

So wird Venice auf LiveKit Agents abgebildet

Einrichtung

Installieren Sie das Framework und die unten verwendeten Plugins:
Setzen Sie Ihren Venice API-Schlüssel und die LiveKit-Verbindungsdetails:
Das OpenAI-Plugin fällt auf OPENAI_API_KEY zurück, wenn api_key weggelassen wird. Da Sie es auf Venice verweisen, übergeben Sie api_key immer explizit (andernfalls würde der Schlüssel aus der falschen Variable gelesen). Die untenstehenden Beispiele lesen VENICE_API_KEY.

Vollständiger Sprachagent

Dies ist ein vollständiger Sprachagent, der mit Venice STT transkribiert, mit einem Venice-LLM denkt und mit Venice TTS spricht. Silero stellt eine lokale Voice-Activity-Detection bereit, damit die Batch-STT weiß, wann ein Turn abgeschlossen ist.
Führen Sie ihn im Entwicklungsmodus aus:

Konfiguration der einzelnen Komponenten

LLM

Das LLM ist die sauberste Zuordnung – Venice /chat/completions unterstützt SSE-Streaming, Tool Calling und Vision, alles wird von LiveKit direkt genutzt. venice-uncensored-1-2 hält die Inferenz privat und unzensiert und speist gleichzeitig die TTS-Pipeline; greifen Sie nur dann zu einem Modell der flash-Klasse, wenn Sie eine niedrigere Time-to-first-Token benötigen.
Übergeben Sie Venice-spezifische Optionen (Websuche, Charakter-Personas, Thinking-Steuerung) über extra_body:

Speech-to-Text

Das OpenAI-STT von LiveKit ruft /audio/transcriptions pro Sprachsegment auf und benötigt daher einen VAD (Silero oben), um zu erkennen, wann ein Turn endet. Überschreiben Sie das Standardmodell mit einem Venice-STT-Modell. nvidia/parakeet-tdt-0.6b-v3 ist die kleinste Option mit der niedrigsten Latenz; stt-xai-v1 und elevenlabs/scribe-v2 sind neuere Alternativen, wenn Sie höhere Genauigkeit wünschen.

Text-to-Speech

Das OpenAI-TTS von LiveKit ruft /audio/speech auf. Stimmen sind in Venice modellspezifisch – übergeben Sie ein model/voice-Paar aus demselben Modell. tts-kokoro hält die Sprachstufe privat und unzensiert, sodass sie die Ausgabe des LLM wortgetreu sprechen kann; fordern Sie pcm an, um einen MP3-Dekodierungsschritt zu vermeiden und ein wenig Latenz einzusparen. Schnellere, providerbasierte Stimmen (z. B. Gemini) können Inhaltsfilterung anwenden, vermeiden Sie sie daher, wenn Sie unzensierte Sprache benötigen.

Empfohlene Modelle

Modell-IDs ändern sich mit der Zeit – ermitteln Sie die aktuellen Optionen zur Laufzeit mit GET /models?type=... und GET /models/traits, anstatt sie fest zu codieren. Priorisieren Sie für Sprachagenten latenzarme Stufen (Modelle mit den Bezeichnungen flash, turbo, mini oder kleine Parameterzahlen), da die wahrgenommene Reaktionsfähigkeit von der Time-to-first-Token und der TTS-Geschwindigkeit abhängt. Gute Ausgangspunkte aus dem aktuellen Katalog:

Alle Modelle durchsuchen

Filtern Sie nach Text-, Speech-to-Text- und Text-to-Speech-Modellen mit aktuellen Preisen und Fähigkeiten.

Latenz- und Produktionstipps

Die Qualität eines Sprachagenten wird von der Turn-Taking-Latenz dominiert – der Zeit zwischen dem Ende des Satzes des Nutzers und dem Beginn der Sprache des Agenten. Kalkulieren Sie bei der reinen Venice-Pipeline in etwa: Rechnen Sie mit ~0,8–1,5 s bis zum ersten Audio – ideal für assistentenartiges, gemessenes Turn-Taking. Bei stark unterbrechbaren, überlappenden Gesprächen werden Sie die Lücke gegenüber einem nativen Speech-to-Speech-Modell spüren.

Latenz reduzieren

  • Verwenden Sie response_format="pcm" bei TTS, um den MP3-Dekodierungsschritt zu überspringen.
  • Passen Sie Silero VAD (silero.VAD.load(min_silence_duration=0.4)) an, um das Endpointing zu verkürzen, ohne die Sprache abzuschneiden.
  • Bevorzugen Sie latenzarme Stufen für STT/TTS (z. B. tts-kokoro TTS, nvidia/parakeet-tdt-0.6b-v3 STT). Behalten Sie venice-uncensored-1-2 für das LLM bei, um privat und unzensiert zu bleiben; wechseln Sie nur dann zu einem LLM der flash-Klasse, wenn Sie eine schnellere Time-to-first-Token benötigen.
  • Halten Sie Antworten knapp – der erste Satz bestimmt die wahrgenommene Reaktionsfähigkeit.

Provider mischen

LiveKit lässt Sie jede Komponente unabhängig wählen, sodass Sie Venice dort behalten können, wo Privatsphäre und unzensierte Modelle am wichtigsten sind, und einen Streaming-Anbieter dort einsetzen, wo Latenz kritisch ist. Ein gängiges Setup für hohe Interaktivität behält das Venice-LLM (und optional STT) bei und kombiniert es mit einem dedizierten Streaming-TTS:
Beginnen Sie mit einem reinen Venice-Setup für die einfachste und privateste Konfiguration. Wenn Sie eine schnelle, hochgradig konversationelle Consumer-Erfahrung entwickeln, behalten Sie das Venice-LLM bei und evaluieren Sie ein Streaming-TTS für die Sprachausgabestufe.

Einschränkungen und Hinweise

  • Keine Speech-to-Speech- / Realtime-API. Venice verfügt über keinen OpenAI Realtime WebSocket, daher sind openai.realtime.RealtimeModel und der multimodale Agentenpfad nicht verfügbar. Verwenden Sie die oben gezeigte STT-LLM-TTS-Pipeline.
  • STT ist Batch, nicht Streaming. Die Venice-Transkription funktioniert per Request/Response, daher ist ein VAD (Silero) für das Endpointing erforderlich. Dies verursacht eine geringe zusätzliche Latenz gegenüber einem Streaming-STT-Socket.
  • TTS wird vom Plugin gepuffert. Der OpenAI-TTS-Wrapper von LiveKit meldet streaming=False und verwendet daher nicht das satzweise streaming-Flag von Venice. Die Latenz ist für die meisten Agenten dennoch akzeptabel; verwenden Sie response_format="pcm", um den Dekodierungs-Overhead zu minimieren.
  • Stimme zum Modell passend wählen. TTS-voice-IDs sind nur für ihr zugehöriges model gültig. Siehe Text-to-Speech-Modelle.
  • Modelllisten nicht fest codieren. Venice-Modell-IDs werden regelmäßig veraltet und ersetzt – fragen Sie GET /models / GET /models/traits zur Laufzeit ab. Siehe Deprecations.

Verwandte Ressourcen