ciyidogan commited on
Commit
40f81e2
Β·
verified Β·
1 Parent(s): f451859

Update stt/stt_google.py

Browse files
Files changed (1) hide show
  1. stt/stt_google.py +32 -1
stt/stt_google.py CHANGED
@@ -316,7 +316,38 @@ class GoogleCloudSTT(STTInterface):
316
  self.audio_queue = queue.Queue(maxsize=1000) # Max size ekle
317
  self.responses_queue = queue.Queue(maxsize=100)
318
  log_debug("βœ… Created fresh queues")
319
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
320
  async def start_streaming(self, config: dict) -> None:
321
  """Initialize streaming session with clean state"""
322
  try:
 
316
  self.audio_queue = queue.Queue(maxsize=1000) # Max size ekle
317
  self.responses_queue = queue.Queue(maxsize=100)
318
  log_debug("βœ… Created fresh queues")
319
+
320
+ def _request_generator(self):
321
+ """Generate requests for the streaming recognize API"""
322
+ # First request must contain only the config
323
+ yield speech.StreamingRecognizeRequest(streaming_config=self.streaming_config)
324
+
325
+ # Subsequent requests should contain audio chunks
326
+ while not self.should_stop:
327
+ try:
328
+ # Get audio chunk from queue with timeout
329
+ audio_chunk = self.audio_queue.get(timeout=0.1)
330
+
331
+ if audio_chunk is None:
332
+ # Poison pill received
333
+ log_info("πŸ“› Poison pill received, stopping request generator")
334
+ break
335
+
336
+ # Send audio chunk
337
+ yield speech.StreamingRecognizeRequest(audio_content=audio_chunk)
338
+
339
+ self.chunk_count += 1
340
+ self.total_bytes += len(audio_chunk)
341
+
342
+ except queue.Empty:
343
+ # No audio available, continue waiting
344
+ continue
345
+ except Exception as e:
346
+ log_error(f"Error in request generator: {e}")
347
+ break
348
+
349
+ log_info(f"πŸ“Š Request generator finished. Total chunks: {self.chunk_count}, Total bytes: {self.total_bytes}")
350
+
351
  async def start_streaming(self, config: dict) -> None:
352
  """Initialize streaming session with clean state"""
353
  try: