From 14495c425a42c6b9ca1c9ec4a55429388d10e502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Tue, 20 Jan 2026 13:43:23 -0800 Subject: [PATCH] NVIDIASTTService: no need for additional queue and task --- changelog/3509.fixed.md | 1 + src/pipecat/services/nvidia/stt.py | 19 +------------------ 2 files changed, 2 insertions(+), 18 deletions(-) create mode 100644 changelog/3509.fixed.md diff --git a/changelog/3509.fixed.md b/changelog/3509.fixed.md new file mode 100644 index 000000000..153060b46 --- /dev/null +++ b/changelog/3509.fixed.md @@ -0,0 +1 @@ +- Optimized `NVIDIASTTService` by removing unnecessary queue and task. diff --git a/src/pipecat/services/nvidia/stt.py b/src/pipecat/services/nvidia/stt.py index 45c59de7a..7d52f5130 100644 --- a/src/pipecat/services/nvidia/stt.py +++ b/src/pipecat/services/nvidia/stt.py @@ -167,7 +167,6 @@ class NvidiaSTTService(STTService): self._queue = None self._config = None self._thread_task = None - self._response_task = None def _initialize_client(self): metadata = [ @@ -251,10 +250,6 @@ class NvidiaSTTService(STTService): if not self._thread_task: self._thread_task = self.create_task(self._thread_task_handler()) - if not self._response_task: - self._response_queue = asyncio.Queue() - self._response_task = self.create_task(self._response_task_handler()) - logger.debug(f"Initialized NvidiaSTTService with model: {self.model_name}") async def stop(self, frame: EndFrame): @@ -280,10 +275,6 @@ class NvidiaSTTService(STTService): await self.cancel_task(self._thread_task) self._thread_task = None - if self._response_task: - await self.cancel_task(self._response_task) - self._response_task = None - def _response_handler(self): responses = self._asr_service.streaming_response_generator( audio_chunks=self, @@ -292,9 +283,7 @@ class NvidiaSTTService(STTService): for response in responses: if not response.results: continue - asyncio.run_coroutine_threadsafe( - self._response_queue.put(response), self.get_event_loop() - ) + asyncio.run_coroutine_threadsafe(self._handle_response(response), self.get_event_loop()) async def _thread_task_handler(self): try: @@ -346,12 +335,6 @@ class NvidiaSTTService(STTService): ) ) - async def _response_task_handler(self): - while True: - response = await self._response_queue.get() - await self._handle_response(response) - self._response_queue.task_done() - async def run_stt(self, audio: bytes) -> AsyncGenerator[Frame, None]: """Process audio data for speech-to-text transcription.