Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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":
|
| 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,
|