sparshmehta commited on
Commit
9e0a762
·
verified ·
1 Parent(s): 329a316

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -1
app.py CHANGED
@@ -252,6 +252,17 @@ class AudioFeatureExtractor:
252
  Overall confidence: {confidence_metrics["overall_confidence"]:.2f}
253
  """)
254
 
 
 
 
 
 
 
 
 
 
 
 
255
  # Add confidence metrics to return dictionary
256
  return {
257
  "pitch_mean": pitch_mean,
@@ -262,7 +273,7 @@ class AudioFeatureExtractor:
262
  "monotone_score": 0.0,
263
  "mean_amplitude": mean_amplitude,
264
  "amplitude_deviation": float(np.std(rms) / np.mean(rms)) if np.mean(rms) > 0 else 0,
265
- "pauses_per_minute": float(pauses_per_minute),
266
  "duration": float(len(audio) / sr),
267
  "rising_patterns": int(np.sum(np.diff(valid_f0) > 0)) if len(valid_f0) > 1 else 0,
268
  "falling_patterns": int(np.sum(np.diff(valid_f0) < 0)) if len(valid_f0) > 1 else 0,
 
252
  Overall confidence: {confidence_metrics["overall_confidence"]:.2f}
253
  """)
254
 
255
+ # Calculate pauses per minute
256
+ # Get silence frames using RMS energy
257
+ rms_db = librosa.amplitude_to_db(rms, ref=np.max)
258
+ silence_frames = rms_db < self.silence_threshold
259
+ frame_time = self.hop_length / sr
260
+ pause_analysis = self._analyze_pauses(silence_frames, frame_time)
261
+
262
+ # Calculate pauses per minute
263
+ duration_minutes = len(audio) / sr / 60
264
+ pauses_per_minute = float(pause_analysis['total_pauses'] / duration_minutes if duration_minutes > 0 else 0)
265
+
266
  # Add confidence metrics to return dictionary
267
  return {
268
  "pitch_mean": pitch_mean,
 
273
  "monotone_score": 0.0,
274
  "mean_amplitude": mean_amplitude,
275
  "amplitude_deviation": float(np.std(rms) / np.mean(rms)) if np.mean(rms) > 0 else 0,
276
+ "pauses_per_minute": pauses_per_minute,
277
  "duration": float(len(audio) / sr),
278
  "rising_patterns": int(np.sum(np.diff(valid_f0) > 0)) if len(valid_f0) > 1 else 0,
279
  "falling_patterns": int(np.sum(np.diff(valid_f0) < 0)) if len(valid_f0) > 1 else 0,