From 0099f60d2931c5d63134fb54ef84823711e22cf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Tue, 27 May 2025 15:17:44 -0700 Subject: [PATCH] deepgram: fix an issue with user provided LiveOptions --- CHANGELOG.md | 3 +++ src/pipecat/services/deepgram/stt.py | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bbe20218..538b01f1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -147,6 +147,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Fixed a `DeegramSTTService` connection issue when the user provided their own + `LiveOptions`. + - Fixed a `DailyTransport` issue that would cause images needing resize to block the event loop. diff --git a/src/pipecat/services/deepgram/stt.py b/src/pipecat/services/deepgram/stt.py index 07cc6a9d2..a223da143 100644 --- a/src/pipecat/services/deepgram/stt.py +++ b/src/pipecat/services/deepgram/stt.py @@ -78,17 +78,19 @@ class DeepgramSTTService(STTService): vad_events=False, ) - merged_options = default_options + merged_options = default_options.to_dict() if live_options: - merged_options = LiveOptions(**{**default_options.to_dict(), **live_options.to_dict()}) + default_model = default_options.model + merged_options.update(live_options.to_dict()) + # NOTE(aleix): Fixes an in deepgram-sdk where `model` is initialized + # to the string "None" instead of the value `None`. + if "model" in merged_options and merged_options["model"] == "None": + merged_options["model"] = default_model - # deepgram connection requires language to be a string - if isinstance(merged_options.language, Language) and hasattr( - merged_options.language, "value" - ): - merged_options.language = merged_options.language.value + if "language" in merged_options and isinstance(merged_options["language"], Language): + merged_options["language"] = merged_options["language"].value - self._settings = merged_options.to_dict() + self._settings = merged_options self._addons = addons self._client = DeepgramClient(