UTI / app.py
chidojawbreaker's picture
Upload app.py
d4f9e6d
raw
history blame
1.63 kB
import gradio as gr
import numpy as np
import joblib
import librosa
from sklearn.preprocessing import StandardScaler
model = joblib.load('UTI.pkl')
def predictor(audio_filename):
y, sr = librosa.load(audio_filename, mono=True, duration=5)
chroma_stft = np.mean(librosa.feature.chroma_stft(y=y, sr=sr))
rmse = np.mean(librosa.feature.rms(y=y))
spec_cent = np.mean(librosa.feature.spectral_centroid(y=y, sr=sr))
spec_bw = np.mean(librosa.feature.spectral_bandwidth(y=y, sr=sr))
rolloff = np.mean(librosa.feature.spectral_rolloff(y=y, sr=sr))
zcr = np.mean(librosa.feature.zero_crossing_rate(y))
mfcc = librosa.feature.mfcc(y=y, sr=sr)
v = []
for e in mfcc:
v.append(np.mean(e))
mfcc1 = v[0]
mfcc2 = v[1]
mfcc3 = v[2]
mfcc4 = v[3]
mfcc5 = v[4]
mfcc6 = v[5]
mfcc7 = v[6]
mfcc8 = v[7]
mfcc9 = v[8]
mfcc10 = v[9]
mfcc11 = v[10]
mfcc12 = v[11]
mfcc13 = v[12]
mfcc14 = v[13]
mfcc15 = v[14]
mfcc16 = v[15]
mfcc17 = v[16]
mfcc18 = v[17]
mfcc19 = v[18]
mfcc20 = v[19]
features = np.array([[chroma_stft,rmse,spec_cent,spec_bw,rolloff,zcr,mfcc1,mfcc2,mfcc3,mfcc4,mfcc5,mfcc6,mfcc7,mfcc8,mfcc9,mfcc10,mfcc11,mfcc12,mfcc13,mfcc14,mfcc15,mfcc16,mfcc17,mfcc18,mfcc19,mfcc20]])
prediction = model.predict(StandardScaler().fit_transform(features))
if prediction[0] == 0:
result = 'Normal'
else:
result = 'Infected'
return result
outputs = gr.outputs.Textbox()
app = gr.Interface(fn=predictor, inputs='text', outputs=outputs,description="UTI Prediction Model")
app.launch()