import numpy as np | |
import librosa | |
import joblib | |
# Load your trained model + label encoder | |
clf = joblib.load("models/noise_classifier.pkl") | |
label_encoder = joblib.load("models/label_encoder.pkl") | |
def classify_noise(audio_path): | |
y, sr = librosa.load(audio_path, sr=None) | |
mfcc = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13) | |
feature = np.mean(mfcc.T, axis=0).reshape(1, -1) | |
probs = clf.predict_proba(feature)[0] | |
top_idx = np.argsort(probs)[::-1][:5] | |
return [(label_encoder.inverse_transform([i])[0], probs[i]) for i in top_idx] | |