Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -16,11 +16,25 @@ def load_model():
|
|
16 |
|
17 |
model = load_model()
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
# Preprocess audio into a spectrogram
|
20 |
def preprocess_audio(file_path, n_mels=128, fixed_time_steps=128):
|
21 |
try:
|
22 |
y, sr = librosa.load(file_path, sr=None)
|
23 |
-
mel_spectrogram = librosa.feature.melspectrogram(y=y, sr=sr, n_mels=n_mels, fmax=sr/2)
|
24 |
log_spectrogram = librosa.power_to_db(mel_spectrogram, ref=np.max)
|
25 |
log_spectrogram = log_spectrogram / np.max(np.abs(log_spectrogram))
|
26 |
if log_spectrogram.shape[1] < fixed_time_steps:
|
@@ -64,12 +78,13 @@ if uploaded_file is not None:
|
|
64 |
st.write("Predicting...")
|
65 |
spectrogram = np.expand_dims(spectrogram, axis=0) # Add batch dimension
|
66 |
predictions = model.predict(spectrogram)
|
67 |
-
|
|
|
68 |
|
69 |
# Display the results
|
70 |
st.write("Prediction Results:")
|
71 |
-
st.write(f"Predicted Class: {
|
72 |
-
st.write(f"Raw Model Output
|
73 |
else:
|
74 |
st.write("Failed to process the audio file. Please try again with a different file.")
|
75 |
|
|
|
16 |
|
17 |
model = load_model()
|
18 |
|
19 |
+
# Map Class Labels
|
20 |
+
CLASS_LABELS = {
|
21 |
+
0: 'Air Conditioner',
|
22 |
+
1: 'Car Horn',
|
23 |
+
2: 'Children Playing',
|
24 |
+
3: 'Dog Bark',
|
25 |
+
4: 'Drilling',
|
26 |
+
5: 'Engine Idling',
|
27 |
+
6: 'Gun Shot',
|
28 |
+
7: 'Jackhammer',
|
29 |
+
8: 'Siren',
|
30 |
+
9: 'Street Music'
|
31 |
+
}
|
32 |
+
|
33 |
# Preprocess audio into a spectrogram
|
34 |
def preprocess_audio(file_path, n_mels=128, fixed_time_steps=128):
|
35 |
try:
|
36 |
y, sr = librosa.load(file_path, sr=None)
|
37 |
+
mel_spectrogram = librosa.feature.melspectrogram(y=y, sr=sr, n_mels=n_mels, fmax=sr / 2)
|
38 |
log_spectrogram = librosa.power_to_db(mel_spectrogram, ref=np.max)
|
39 |
log_spectrogram = log_spectrogram / np.max(np.abs(log_spectrogram))
|
40 |
if log_spectrogram.shape[1] < fixed_time_steps:
|
|
|
78 |
st.write("Predicting...")
|
79 |
spectrogram = np.expand_dims(spectrogram, axis=0) # Add batch dimension
|
80 |
predictions = model.predict(spectrogram)
|
81 |
+
predicted_class_index = np.argmax(predictions, axis=-1)[0]
|
82 |
+
predicted_class_label = CLASS_LABELS.get(predicted_class_index, "Unknown")
|
83 |
|
84 |
# Display the results
|
85 |
st.write("Prediction Results:")
|
86 |
+
st.write(f"**Predicted Class:** {predicted_class_label} (Index: {predicted_class_index})")
|
87 |
+
st.write(f"**Raw Model Output:** {predictions}")
|
88 |
else:
|
89 |
st.write("Failed to process the audio file. Please try again with a different file.")
|
90 |
|