diff --git a/src/pipecat/services/ai_services.py b/src/pipecat/services/ai_services.py index 64d79b582..c7892b78b 100644 --- a/src/pipecat/services/ai_services.py +++ b/src/pipecat/services/ai_services.py @@ -407,6 +407,10 @@ class STTService(AIService): async def set_model(self, model: str): self.set_model_name(model) + @abstractmethod + async def set_language(self, language: Language): + pass + @abstractmethod async def run_stt(self, audio: bytes) -> AsyncGenerator[Frame, None]: """Returns transcript as a string""" @@ -419,7 +423,7 @@ class STTService(AIService): logger.debug(f"Updating STT setting {key} to: [{value}]") self._settings[key] = value if key == "language": - self._settings[key] = Language(value) + await self.set_language(value) elif key == "model": self.set_model_name(value) else: diff --git a/src/pipecat/services/deepgram.py b/src/pipecat/services/deepgram.py index 248efe3fc..d5432f4c6 100644 --- a/src/pipecat/services/deepgram.py +++ b/src/pipecat/services/deepgram.py @@ -158,6 +158,12 @@ class DeepgramSTTService(STTService): await self._disconnect() await self._connect() + async def set_language(self, language: Language): + logger.debug(f"Switching STT language to: [{language}]") + self._settings["language"] = language + await self._disconnect() + await self._connect() + async def start(self, frame: StartFrame): await super().start(frame) await self._connect()