CoolFace
Apppublic

Nobody4591/catvsdogsoundclassification

sourceHugging Faceapache-2.0updated 4y agoView on Hugging Face
0likes
app.py36 linesDownload Raw Back to root
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)