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: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.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.
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 mitGET /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-kokoroTTS,nvidia/parakeet-tdt-0.6b-v3STT). Behalten Sievenice-uncensored-1-2für das LLM bei, um privat und unzensiert zu bleiben; wechseln Sie nur dann zu einem LLM derflash-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:Einschränkungen und Hinweise
- Keine Speech-to-Speech- / Realtime-API. Venice verfügt über keinen OpenAI Realtime WebSocket, daher sind
openai.realtime.RealtimeModelund 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=Falseund verwendet daher nicht das satzweisestreaming-Flag von Venice. Die Latenz ist für die meisten Agenten dennoch akzeptabel; verwenden Sieresponse_format="pcm", um den Dekodierungs-Overhead zu minimieren. - Stimme zum Modell passend wählen. TTS-
voice-IDs sind nur für ihr zugehörigesmodelgü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/traitszur Laufzeit ab. Siehe Deprecations.