From 781d19150987fa2b8198adf584b90bbae96e1772 Mon Sep 17 00:00:00 2001 From: Paul Kompfner Date: Tue, 24 Feb 2026 21:19:39 -0500 Subject: [PATCH 1/3] Remove unnecessary `_model` ivar from `GeminiTTSService`, using `_settings.model` instead --- src/pipecat/services/google/tts.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/pipecat/services/google/tts.py b/src/pipecat/services/google/tts.py index 80c71b10f..6c71977a0 100644 --- a/src/pipecat/services/google/tts.py +++ b/src/pipecat/services/google/tts.py @@ -1236,7 +1236,7 @@ class GeminiTTSService(GoogleBaseTTSService): super().__init__( sample_rate=sample_rate, settings=GeminiTTSSettings( - model=None, + model=model, language=self.language_to_service_language(params.language) if params.language else "en-US", @@ -1249,7 +1249,6 @@ class GeminiTTSService(GoogleBaseTTSService): ) self._location = location - self._model = model self._client: texttospeech_v1.TextToSpeechAsyncClient = self._create_client( credentials, credentials_path ) @@ -1327,7 +1326,7 @@ class GeminiTTSService(GoogleBaseTTSService): voice = texttospeech_v1.VoiceSelectionParams( language_code=self._settings.language, - model_name=self._model, + model_name=self._settings.model, multi_speaker_voice_config=multi_speaker_voice_config, ) else: @@ -1335,7 +1334,7 @@ class GeminiTTSService(GoogleBaseTTSService): voice = texttospeech_v1.VoiceSelectionParams( language_code=self._settings.language, name=self._settings.voice, - model_name=self._model, + model_name=self._settings.model, ) # Create streaming config From 7ee0400c4c8f81bd17046db48ef2d4d5d6d7bee6 Mon Sep 17 00:00:00 2001 From: Paul Kompfner Date: Tue, 24 Feb 2026 21:22:44 -0500 Subject: [PATCH 2/3] Remove unnecessary `_model` ivar from Hathora TTS and STT services, using `_settings.model` instead. --- src/pipecat/services/hathora/stt.py | 4 +--- src/pipecat/services/hathora/tts.py | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/pipecat/services/hathora/stt.py b/src/pipecat/services/hathora/stt.py index 84f4116f3..27f1aebfb 100644 --- a/src/pipecat/services/hathora/stt.py +++ b/src/pipecat/services/hathora/stt.py @@ -101,8 +101,6 @@ class HathoraSTTService(SegmentedSTTService): ), **kwargs, ) - - self._model = model self._api_key = api_key or os.getenv("HATHORA_API_KEY") self._base_url = base_url @@ -136,7 +134,7 @@ class HathoraSTTService(SegmentedSTTService): url = f"{self._base_url}" payload = { - "model": self._model, + "model": self._settings.model, } if self._settings.language is not None: diff --git a/src/pipecat/services/hathora/tts.py b/src/pipecat/services/hathora/tts.py index 8d6fb32cb..3fb9e747b 100644 --- a/src/pipecat/services/hathora/tts.py +++ b/src/pipecat/services/hathora/tts.py @@ -120,7 +120,6 @@ class HathoraTTSService(TTSService): ), **kwargs, ) - self._model = model self._api_key = api_key or os.getenv("HATHORA_API_KEY") self._base_url = base_url @@ -149,7 +148,7 @@ class HathoraTTSService(TTSService): url = f"{self._base_url}" - payload = {"model": self._model, "text": text} + payload = {"model": self._settings.model, "text": text} if self._settings.voice is not None: payload["voice"] = self._settings.voice From 3d8e3a4043a14891c91b11fee4a3e1e760c57bed Mon Sep 17 00:00:00 2001 From: Paul Kompfner Date: Tue, 24 Feb 2026 21:49:54 -0500 Subject: [PATCH 3/3] Remove unnecessary `_model` ivar from ElevenLabs STT services, using `_settings.model` instead. --- src/pipecat/services/elevenlabs/stt.py | 32 +++----------------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/src/pipecat/services/elevenlabs/stt.py b/src/pipecat/services/elevenlabs/stt.py index c3f4300f4..5422fb193 100644 --- a/src/pipecat/services/elevenlabs/stt.py +++ b/src/pipecat/services/elevenlabs/stt.py @@ -279,7 +279,6 @@ class ElevenLabsSTTService(SegmentedSTTService): self._api_key = api_key self._base_url = base_url self._session = aiohttp_session - self._model_id = model def can_generate_metrics(self) -> bool: """Check if the service can generate processing metrics. @@ -300,25 +299,6 @@ class ElevenLabsSTTService(SegmentedSTTService): """ return language_to_elevenlabs_language(language) - async def _update_settings(self, delta: STTSettings) -> dict[str, Any]: - """Apply a settings delta. - - Converts language to ElevenLabs format before applying and keeps - ``_model_id`` in sync with the model setting. - - Args: - delta: A :class:`STTSettings` (or ``ElevenLabsSTTSettings``) delta. - - Returns: - Dict mapping changed field names to their previous values. - """ - changed = await super()._update_settings(delta) - - if "model" in changed: - self._model_id = self._settings.model - - return changed - async def _transcribe_audio(self, audio_data: bytes) -> dict: """Upload audio data to ElevenLabs and get transcription result. @@ -344,7 +324,7 @@ class ElevenLabsSTTService(SegmentedSTTService): ) # Add required model_id, language_code, and tag_audio_events - data.add_field("model_id", self._model_id) + data.add_field("model_id", self._settings.model) data.add_field("language_code", self._settings.language) data.add_field("tag_audio_events", str(self._settings.tag_audio_events).lower()) @@ -522,7 +502,6 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService): self._api_key = api_key self._base_url = base_url - self._model_id = model self._audio_format = "" # initialized in start() self._receive_task = None @@ -540,9 +519,6 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService): async def _update_settings(self, delta: STTSettings) -> dict[str, Any]: """Apply a settings delta and reconnect if anything changed. - Converts language to ElevenLabs format before applying and keeps - ``_model_id`` in sync. - Args: delta: A :class:`STTSettings` (or ``ElevenLabsRealtimeSTTSettings``) delta. @@ -554,11 +530,9 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService): if not changed: return changed - if "model" in changed: - self._model_id = self._settings.model - await self._disconnect() await self._connect() + return changed async def start(self, frame: StartFrame): @@ -704,7 +678,7 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService): logger.debug("Connecting to ElevenLabs Realtime STT") # Build query parameters - params = [f"model_id={self._model_id}"] + params = [f"model_id={self._settings.model}"] if self._settings.language: params.append(f"language_code={self._settings.language}")