From 2dce8419d4cac0aa3f7d755ad020d6e482177590 Mon Sep 17 00:00:00 2001 From: Christian Gick Date: Sun, 22 Feb 2026 17:26:51 +0200 Subject: [PATCH] fix(stt): set scribe_v2_realtime model with language_code for streaming STT - Add model_id="scribe_v2_realtime" (already set) + language_code from STT_LANGUAGE env (default "de") - Remove _stt_session from cleanup loop (plugin uses livekit http_context) - Remove _stt_session stub from __init__ Co-Authored-By: Claude Sonnet 4.6 --- voice.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/voice.py b/voice.py index cff974b..9984cca 100644 --- a/voice.py +++ b/voice.py @@ -231,7 +231,6 @@ class VoiceSession: self.session = None self._task = None self._http_session = None - self._stt_session = None # kept for cleanup compat self._caller_key: bytes | None = None self._caller_identity: str | None = None self._caller_all_keys: dict = {} # {index: bytes} — all caller keys by index @@ -330,7 +329,7 @@ class VoiceSession: self._task = asyncio.create_task(self._run()) async def stop(self): - for obj in [self.session, self.lk_room, self._http_session, self._stt_session]: + for obj in [self.session, self.lk_room, self._http_session]: if obj: try: if hasattr(obj, "aclose"): @@ -557,7 +556,11 @@ class VoiceSession: self._http_session = aiohttp.ClientSession() voice_id = os.environ.get("ELEVENLABS_VOICE_ID", DEFAULT_VOICE_ID) self.session = AgentSession( - stt=elevenlabs.STT(api_key=ELEVENLABS_KEY, model_id="scribe_v2_realtime"), + stt=elevenlabs.STT( + api_key=ELEVENLABS_KEY, + model_id="scribe_v2_realtime", + language_code=os.environ.get("STT_LANGUAGE", "de"), + ), llm=lk_openai.LLM(base_url=LITELLM_URL, api_key=LITELLM_KEY, model=self.model), tts=elevenlabs.TTS(voice_id=voice_id, model="eleven_multilingual_v2", api_key=ELEVENLABS_KEY, http_session=self._http_session),