Nobody4591/catvsdogsoundclassification
0
1import gradio as gr2from fastai.vision.all import *3from fastai.vision.all import *4import matplotlib.pyplot as plt5from matplotlib.pyplot import specgram6import librosa7import numpy as np8import librosa.display9 10def is_cat(x): return x[0]=='c' 11 12def audio_to_spectrogram(audio_file):13 samples,sample_rate = librosa.load(audio_file)14 fig = plt.figure(figsize=[0.72,0.72])15 ax = fig.add_subplot(111)16 ax.axes.get_xaxis().set_visible(False)17 ax.axes.get_yaxis().set_visible(False)18 ax.set_frame_on(False)19 filename = Path(audio_file).name.replace('mp3','png')20 S = librosa.feature.melspectrogram(y=samples,sr=sample_rate)21 librosa.display.specshow(librosa.power_to_db(S,ref=np.max))22 plt.savefig(filename,dpi=400,bbox_inches='tight',pad_inches=0)23 plt.close('all')24 return filename25 26categories = ('Dog','Cat')27def catvsdogsoundclassification(audio_file):28 filename = audio_to_spectrogram(audio_file)29 learner = load_learner('model.pkl')30 pred,pred_idx,probs = learner.predict(filename)31 return dict(zip(categories,map(float,probs)))32 33# audio_file = gr.inputs.Audio()34labeel = gr.outputs.Label()35intf = gr.Interface(fn=catvsdogsoundclassification,inputs=gr.File(),outputs=labeel)36intf.launch(inline=False,debug=True)