diff --git a/voice.py b/voice.py index 15a4f39..14efb71 100644 --- a/voice.py +++ b/voice.py @@ -113,6 +113,7 @@ class VoiceSession: self.session = None self._task = None self._http_session = None + self._stt_session = None self._caller_key: bytes | None = None self._caller_identity: str | None = None self._caller_all_keys: dict = {} # {index: bytes} — all caller keys by index @@ -196,7 +197,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]: + for obj in [self.session, self.lk_room, self._http_session, self._stt_session]: if obj: try: if hasattr(obj, "aclose"): @@ -344,9 +345,10 @@ class VoiceSession: # Voice pipeline — George (British male, multilingual DE/EN) self._http_session = aiohttp.ClientSession() + self._stt_session = aiohttp.ClientSession() # separate session avoids WS/HTTP conflicts voice_id = os.environ.get("ELEVENLABS_VOICE_ID", DEFAULT_VOICE_ID) self.session = AgentSession( - stt=elevenlabs.STT(api_key=ELEVENLABS_KEY, http_session=self._http_session), + stt=elevenlabs.STT(api_key=ELEVENLABS_KEY, http_session=self._stt_session), 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),