Nobody4591's picture
Update
1329db6
import gradio as gr
from fastai.vision.all import *
from fastai.vision.all import *
import matplotlib.pyplot as plt
from matplotlib.pyplot import specgram
import librosa
import numpy as np
import librosa.display
def is_cat(x): return x[0]=='c'
def audio_to_spectrogram(audio_file):
samples,sample_rate = librosa.load(audio_file)
fig = plt.figure(figsize=[0.72,0.72])
ax = fig.add_subplot(111)
ax.axes.get_xaxis().set_visible(False)
ax.axes.get_yaxis().set_visible(False)
ax.set_frame_on(False)
filename = Path(audio_file).name.replace('mp3','png')
S = librosa.feature.melspectrogram(y=samples,sr=sample_rate)
librosa.display.specshow(librosa.power_to_db(S,ref=np.max))
plt.savefig(filename,dpi=400,bbox_inches='tight',pad_inches=0)
plt.close('all')
return filename
categories = ('Dog','Cat')
def catvsdogsoundclassification(audio_file):
filename = audio_to_spectrogram(audio_file)
learner = load_learner('model.pkl')
pred,pred_idx,probs = learner.predict(filename)
return dict(zip(categories,map(float,probs)))
# audio_file = gr.inputs.Audio()
labeel = gr.outputs.Label()
intf = gr.Interface(fn=catvsdogsoundclassification,inputs=gr.File(),outputs=labeel)
intf.launch(inline=False,debug=True)