Spaces:
Building
Building
Update stt/stt_google.py
Browse files- 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:
|