File size: 564 Bytes
0f06115
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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]