Deepgram: disconnect and reconnect on language change
This commit is contained in:
@@ -407,6 +407,10 @@ class STTService(AIService):
|
|||||||
async def set_model(self, model: str):
|
async def set_model(self, model: str):
|
||||||
self.set_model_name(model)
|
self.set_model_name(model)
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
async def set_language(self, language: Language):
|
||||||
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
async def run_stt(self, audio: bytes) -> AsyncGenerator[Frame, None]:
|
async def run_stt(self, audio: bytes) -> AsyncGenerator[Frame, None]:
|
||||||
"""Returns transcript as a string"""
|
"""Returns transcript as a string"""
|
||||||
@@ -419,7 +423,7 @@ class STTService(AIService):
|
|||||||
logger.debug(f"Updating STT setting {key} to: [{value}]")
|
logger.debug(f"Updating STT setting {key} to: [{value}]")
|
||||||
self._settings[key] = value
|
self._settings[key] = value
|
||||||
if key == "language":
|
if key == "language":
|
||||||
self._settings[key] = Language(value)
|
await self.set_language(value)
|
||||||
elif key == "model":
|
elif key == "model":
|
||||||
self.set_model_name(value)
|
self.set_model_name(value)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -158,6 +158,12 @@ class DeepgramSTTService(STTService):
|
|||||||
await self._disconnect()
|
await self._disconnect()
|
||||||
await self._connect()
|
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):
|
async def start(self, frame: StartFrame):
|
||||||
await super().start(frame)
|
await super().start(frame)
|
||||||
await self._connect()
|
await self._connect()
|
||||||
|
|||||||
Reference in New Issue
Block a user