|
import gradio as gr |
|
import tensorflow as tf |
|
import librosa |
|
import numpy as np |
|
|
|
|
|
labels = ['down', 'go', 'left', 'no', 'off', 'on', 'right', 'stop', 'up', 'yes'] |
|
|
|
def classify_audio(audio_file): |
|
|
|
model = tf.keras.models.load_model('my_model.h5') |
|
|
|
|
|
audio, sr = librosa.load(audio_file, sr=8000) |
|
mfccs = librosa.feature.mfcc(y=audio, sr=sr, n_mfcc=40) |
|
mfccs_processed = np.mean(mfccs.T,axis=0) |
|
mfccs_processed = mfccs_processed.reshape(1, 40) |
|
|
|
|
|
prediction = model.predict(mfccs_processed) |
|
predicted_label_index = np.argmax(prediction) |
|
|
|
|
|
predicted_label = labels[predicted_label_index] |
|
return predicted_label |
|
|
|
iface = gr.Interface( |
|
fn=classify_audio, |
|
inputs=gr.Audio(type="filepath"), |
|
outputs="text", |
|
title="Clasificaci贸n de audio simple", |
|
description="Sube un archivo de audio para clasificarlo." |
|
) |
|
|
|
iface.launch() |