ciyidogan commited on
Commit
3c5e8b3
·
verified ·
1 Parent(s): 9d37ba9

Update stt_google.py

Browse files
Files changed (1) hide show
  1. stt_google.py +19 -10
stt_google.py CHANGED
@@ -137,7 +137,8 @@ class GoogleCloudSTT(STTInterface):
137
  def request_generator():
138
  """Generate streaming requests"""
139
  chunk_count = 0
140
- total_bytes = 0 # Toplam byte sayısı
 
141
 
142
  while not self.stop_event.is_set():
143
  try:
@@ -153,10 +154,18 @@ class GoogleCloudSTT(STTInterface):
153
  if chunk_count == 1:
154
  log_info(f"📤 First chunk - size: {len(chunk)} bytes")
155
  # Audio header kontrolü (WEBM magic bytes)
156
- if chunk[:4] == b'\x1a\x45\xdf\xa3':
157
- log_info("✅ Valid WEBM header detected")
158
- else:
159
- log_warning(f"⚠️ Unknown audio format, first 4 bytes: {chunk[:4].hex()}")
 
 
 
 
 
 
 
 
160
 
161
  # Her 100 chunk'ta durum raporu
162
  if chunk_count % 100 == 0:
@@ -184,7 +193,7 @@ class GoogleCloudSTT(STTInterface):
184
  )
185
 
186
  log_info("✅ Google STT streaming client created")
187
-
188
  # Response timeout kontrolü
189
  last_response_time = time.time()
190
  RESPONSE_TIMEOUT = 30 # 30 saniye içinde response gelmezse
@@ -196,7 +205,7 @@ class GoogleCloudSTT(STTInterface):
196
  for response in responses:
197
  last_response_time = time.time()
198
  response_count += 1
199
-
200
  # Response type'ı logla
201
  if response_count == 1:
202
  log_info(f"📨 First response received from Google STT")
@@ -211,7 +220,7 @@ class GoogleCloudSTT(STTInterface):
211
  if empty_response_count == 1:
212
  log_debug("📭 Received empty response (no results)")
213
  continue
214
-
215
  for i, result in enumerate(response.results):
216
  log_debug(f"📋 Result {i}: is_final={result.is_final}, alternatives={len(result.alternatives)}")
217
 
@@ -241,10 +250,10 @@ class GoogleCloudSTT(STTInterface):
241
  else:
242
  log_debug(f"📋 Result {i} has empty transcript")
243
  continue
244
-
245
  if time.time() - last_response_time > RESPONSE_TIMEOUT:
246
  log_error(f"❌ No response from Google STT for {RESPONSE_TIMEOUT} seconds")
247
-
248
  log_info(f"📊 Google STT stream ended. Total responses: {response_count}, Empty: {empty_response_count}")
249
 
250
  except Exception as e:
 
137
  def request_generator():
138
  """Generate streaming requests"""
139
  chunk_count = 0
140
+ total_bytes = 0
141
+ first_chunk_processed = False
142
 
143
  while not self.stop_event.is_set():
144
  try:
 
154
  if chunk_count == 1:
155
  log_info(f"📤 First chunk - size: {len(chunk)} bytes")
156
  # Audio header kontrolü (WEBM magic bytes)
157
+ if len(chunk) >= 4:
158
+ if chunk[:4] == b'\x1a\x45\xdf\xa3':
159
+ log_info("✅ Valid WEBM header detected")
160
+ first_chunk_processed = True
161
+ else:
162
+ log_error(f"❌ Invalid audio format, first 4 bytes: {chunk[:4].hex()}")
163
+ # Hatalı format, stream'i durdur
164
+ break
165
+
166
+ # İlk chunk geçerliyse devam et
167
+ if chunk_count == 1 and not first_chunk_processed:
168
+ break
169
 
170
  # Her 100 chunk'ta durum raporu
171
  if chunk_count % 100 == 0:
 
193
  )
194
 
195
  log_info("✅ Google STT streaming client created")
196
+
197
  # Response timeout kontrolü
198
  last_response_time = time.time()
199
  RESPONSE_TIMEOUT = 30 # 30 saniye içinde response gelmezse
 
205
  for response in responses:
206
  last_response_time = time.time()
207
  response_count += 1
208
+
209
  # Response type'ı logla
210
  if response_count == 1:
211
  log_info(f"📨 First response received from Google STT")
 
220
  if empty_response_count == 1:
221
  log_debug("📭 Received empty response (no results)")
222
  continue
223
+
224
  for i, result in enumerate(response.results):
225
  log_debug(f"📋 Result {i}: is_final={result.is_final}, alternatives={len(result.alternatives)}")
226
 
 
250
  else:
251
  log_debug(f"📋 Result {i} has empty transcript")
252
  continue
253
+
254
  if time.time() - last_response_time > RESPONSE_TIMEOUT:
255
  log_error(f"❌ No response from Google STT for {RESPONSE_TIMEOUT} seconds")
256
+
257
  log_info(f"📊 Google STT stream ended. Total responses: {response_count}, Empty: {empty_response_count}")
258
 
259
  except Exception as e: