geethareddy commited on
Commit
1a20fbb
·
verified ·
1 Parent(s): 40f86f1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -16
app.py CHANGED
@@ -160,16 +160,20 @@ def analyze_symptoms(text):
160
  return "Error: No valid transcription", 0.0
161
  with torch.no_grad():
162
  result = symptom_classifier(text)
163
- if result and isinstance(result, list) and len(result) > 0:
164
- prediction = result[0]["label"]
165
- score = result[0]["score"]
166
- if is_fallback_model:
167
- logger.warning("Using fallback model")
168
- prediction = f"{prediction} (fallback)"
169
- logger.info(f"Prediction: {prediction}, Score: {score:.4f}")
170
- return prediction, score
171
- logger.warning("No prediction returned")
172
- return "No health condition detected", 0.0
 
 
 
 
173
  except Exception as e:
174
  logger.error(f"Symptom analysis failed: {str(e)}")
175
  return f"Error: {str(e)}", 0.0
@@ -182,13 +186,11 @@ def analyze_voice(audio_file):
182
  logger.error(f"Audio file not found: {audio_file}")
183
  return "Error: Audio file not found"
184
 
185
- # Ensure temp directory is writable
186
  temp_dir = os.path.join(tempfile.gettempdir(), "gradio")
187
  if not ensure_writable_dir(temp_dir):
188
  logger.error(f"Temp directory {temp_dir} not writable")
189
  return f"Error: Temp directory {temp_dir} not writable"
190
 
191
- # Rename file to unique path
192
  unique_path = os.path.join(
193
  temp_dir,
194
  f"gradio_{datetime.now().strftime('%Y%m%d%H%M%S%f')}_{os.path.basename(audio_file)}"
@@ -198,8 +200,8 @@ def analyze_voice(audio_file):
198
  audio_file = unique_path
199
  logger.debug(f"Moved to: {audio_file}")
200
  except Exception as e:
201
- logger.error(f"Failed to rename audio file: {str(e)}")
202
- return f"Error: Failed to rename audio file: {str(e)}"
203
 
204
  file_hash = compute_file_hash(audio_file)
205
  logger.info(f"Processing audio, Hash: {file_hash}")
@@ -241,12 +243,12 @@ def analyze_voice(audio_file):
241
 
242
  def test_with_sample_audio():
243
  """Test with sample or synthetic audio."""
244
- sample_audio_path = os.path.join("audio_samples", "sample.wav")
245
  temp_dir = os.path.join(tempfile.gettempdir(), "audio_samples")
246
  if not ensure_writable_dir(temp_dir):
247
  logger.error(f"Temp directory {temp_dir} not writable")
248
  return f"Error: Temp directory {temp_dir} not writable"
249
 
 
250
  if not os.path.exists(sample_audio_path):
251
  logger.warning("Sample audio not found; generating synthetic audio")
252
  sr = 16000
@@ -263,7 +265,6 @@ def test_with_sample_audio():
263
  logger.error(f"Failed to write synthetic audio: {str(e)}")
264
  return f"Error: Failed to generate synthetic audio: {str(e)}"
265
 
266
- # Verify file existence
267
  if not os.path.exists(sample_audio_path):
268
  logger.error(f"Synthetic audio not created: {sample_audio_path}")
269
  return f"Error: Synthetic audio not created: {sample_audio_path}"
 
160
  return "Error: No valid transcription", 0.0
161
  with torch.no_grad():
162
  result = symptom_classifier(text)
163
+ logger.debug(f"Model output: {result}")
164
+ if not result or not isinstance(result, list) or len(result) == 0:
165
+ logger.warning("Invalid model output: empty or not a list")
166
+ return "No health condition detected", 0.0
167
+ if not isinstance(result[0], dict) or "label" not in result[0] or "score" not in result[0]:
168
+ logger.warning(f"Invalid result structure: {result[0]}")
169
+ return "No health condition detected", 0.0
170
+ prediction = result[0]["label"]
171
+ score = result[0]["score"]
172
+ if is_fallback_model:
173
+ logger.warning("Using fallback model")
174
+ prediction = f"{prediction} (fallback)"
175
+ logger.info(f"Prediction: {prediction}, Score: {score:.4f}")
176
+ return prediction, score
177
  except Exception as e:
178
  logger.error(f"Symptom analysis failed: {str(e)}")
179
  return f"Error: {str(e)}", 0.0
 
186
  logger.error(f"Audio file not found: {audio_file}")
187
  return "Error: Audio file not found"
188
 
 
189
  temp_dir = os.path.join(tempfile.gettempdir(), "gradio")
190
  if not ensure_writable_dir(temp_dir):
191
  logger.error(f"Temp directory {temp_dir} not writable")
192
  return f"Error: Temp directory {temp_dir} not writable"
193
 
 
194
  unique_path = os.path.join(
195
  temp_dir,
196
  f"gradio_{datetime.now().strftime('%Y%m%d%H%M%S%f')}_{os.path.basename(audio_file)}"
 
200
  audio_file = unique_path
201
  logger.debug(f"Moved to: {audio_file}")
202
  except Exception as e:
203
+ logger.error(f"Failed to move audio file: {str(e)}")
204
+ return f"Error: Failed to move audio file: {str(e)}"
205
 
206
  file_hash = compute_file_hash(audio_file)
207
  logger.info(f"Processing audio, Hash: {file_hash}")
 
243
 
244
  def test_with_sample_audio():
245
  """Test with sample or synthetic audio."""
 
246
  temp_dir = os.path.join(tempfile.gettempdir(), "audio_samples")
247
  if not ensure_writable_dir(temp_dir):
248
  logger.error(f"Temp directory {temp_dir} not writable")
249
  return f"Error: Temp directory {temp_dir} not writable"
250
 
251
+ sample_audio_path = os.path.join(temp_dir, "sample.wav")
252
  if not os.path.exists(sample_audio_path):
253
  logger.warning("Sample audio not found; generating synthetic audio")
254
  sr = 16000
 
265
  logger.error(f"Failed to write synthetic audio: {str(e)}")
266
  return f"Error: Failed to generate synthetic audio: {str(e)}"
267
 
 
268
  if not os.path.exists(sample_audio_path):
269
  logger.error(f"Synthetic audio not created: {sample_audio_path}")
270
  return f"Error: Synthetic audio not created: {sample_audio_path}"