NVIDIASTTService: no need for additional queue and task

This commit is contained in:
Aleix Conchillo Flaqué
2026-01-20 13:43:23 -08:00
parent 461bd0a2e0
commit 14495c425a
2 changed files with 2 additions and 18 deletions

1
changelog/3509.fixed.md Normal file
View File

@@ -0,0 +1 @@
- Optimized `NVIDIASTTService` by removing unnecessary queue and task.

View File

@@ -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.