Peter Michael Gits Claude commited on
Commit
489f3e7
Β·
1 Parent(s): f3f17e8

CRITICAL FIX: Return single value from gradio_transcribe_memory endpoint

Browse files

- Fixed gradio_transcribe_memory to return only transcription text instead of 3-tuple
- This resolves JSON parsing errors in voiceCal-ai client
- voiceCal-ai expects single string but was receiving (transcription, timing, status)
- All error cases now also return single values
- Should resolve "Starting..." UI issue in voiceCal-ai

πŸ€– Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

Files changed (1) hide show
  1. app.py +5 -5
app.py CHANGED
@@ -223,7 +223,7 @@ def gradio_transcribe_memory(audio_base64: str, language: str = "en", model_size
223
 
224
  if not audio_base64 or audio_base64 == "":
225
  logger.warning("πŸš€ MEMORY: No audio data provided")
226
- return "❌ No audio data provided", "{}", "Please provide audio data"
227
 
228
  # Decode base64 to binary audio data
229
  try:
@@ -231,7 +231,7 @@ def gradio_transcribe_memory(audio_base64: str, language: str = "en", model_size
231
  logger.info(f"πŸš€ MEMORY: Decoded audio size: {len(audio_binary)} bytes")
232
  except Exception as decode_error:
233
  logger.error(f"πŸš€ MEMORY: Base64 decode error: {decode_error}")
234
- return f"❌ Invalid base64 audio data: {decode_error}", "{}", "Base64 decode failed"
235
 
236
  # Save to temporary file for Whisper processing (still needed for torchaudio.load)
237
  with tempfile.NamedTemporaryFile(suffix='.webm', delete=False) as tmp_file:
@@ -249,9 +249,9 @@ def gradio_transcribe_memory(audio_base64: str, language: str = "en", model_size
249
  logger.info(f"πŸš€ MEMORY: Status: {status}")
250
 
251
  if status == "success":
252
- return f"βœ… {transcription}", json.dumps(timing, indent=2), f"Status: {status}"
253
  else:
254
- return f"❌ Transcription failed", json.dumps(timing, indent=2), f"Status: {status}"
255
 
256
  finally:
257
  # Clean up temp file
@@ -262,7 +262,7 @@ def gradio_transcribe_memory(audio_base64: str, language: str = "en", model_size
262
  except Exception as e:
263
  error_msg = f"Error in gradio_transcribe_memory: {str(e)}"
264
  logger.error(f"πŸš€ MEMORY: {error_msg}")
265
- return f"❌ Error: {str(e)}", "{}", "Error occurred during in-memory transcription"
266
 
267
  # Create Gradio interface with transcription functionality
268
  with gr.Blocks(title="🎀 STT WebSocket Service v1.0.0") as demo:
 
223
 
224
  if not audio_base64 or audio_base64 == "":
225
  logger.warning("πŸš€ MEMORY: No audio data provided")
226
+ return "❌ No audio data provided"
227
 
228
  # Decode base64 to binary audio data
229
  try:
 
231
  logger.info(f"πŸš€ MEMORY: Decoded audio size: {len(audio_binary)} bytes")
232
  except Exception as decode_error:
233
  logger.error(f"πŸš€ MEMORY: Base64 decode error: {decode_error}")
234
+ return f"❌ Invalid base64 audio data: {decode_error}"
235
 
236
  # Save to temporary file for Whisper processing (still needed for torchaudio.load)
237
  with tempfile.NamedTemporaryFile(suffix='.webm', delete=False) as tmp_file:
 
249
  logger.info(f"πŸš€ MEMORY: Status: {status}")
250
 
251
  if status == "success":
252
+ return transcription # Return only transcription for voiceCal-ai compatibility
253
  else:
254
+ return "❌ Transcription failed"
255
 
256
  finally:
257
  # Clean up temp file
 
262
  except Exception as e:
263
  error_msg = f"Error in gradio_transcribe_memory: {str(e)}"
264
  logger.error(f"πŸš€ MEMORY: {error_msg}")
265
+ return f"❌ Error: {str(e)}"
266
 
267
  # Create Gradio interface with transcription functionality
268
  with gr.Blocks(title="🎀 STT WebSocket Service v1.0.0") as demo: