UTI / app.py
chidojawbreaker's picture
Update app.py
df01bcd
raw
history blame
No virus
2.17 kB
import gradio as gr
import numpy as np
import pandas as pd
import joblib
import librosa
from sklearn.preprocessing import StandardScaler
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
dataset = pd.read_csv('125_.csv')
x = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values
encoder = preprocessing.LabelEncoder()
y = encoder.fit_transform(y)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)
sc = StandardScaler()
sc = sc.fit(x_train)
model = joblib.load('125_.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(sc.transform(features))
if prediction[0] == 1:
result = 'Normal'
else:
result = 'Infected'
return result
app = gr.Interface(fn=predictor,
inputs=gr.Audio(source="upload",type="filepath",label="Please Upload Audio file here:"),
outputs=gr.Textbox(label="Result"),title="SMART LUTS DETECTOR",description="UTI Prediction Model",examples=[["normal 6_rn.wav"],["infected 9_rn.wav"]])
app.launch()