File size: 1,224 Bytes
160b238 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import gradio as gr
import tensorflow as tf
import librosa
import numpy as np
# Diccionario de etiquetas
labels = ['down', 'go', 'left', 'no', 'off', 'on', 'right', 'stop', 'up', 'yes']
def classify_audio(audio_file):
# Carga el modelo
model = tf.keras.models.load_model('my_model.h5')
# Preprocesa el audio
audio, sr = librosa.load(audio_file, sr=8000) # Asegúrate de que la frecuencia de muestreo coincide con la del entrenamiento
mfccs = librosa.feature.mfcc(y=audio, sr=sr, n_mfcc=40) # Extrae las MFCCs
mfccs_processed = np.mean(mfccs.T,axis=0) # Calcula la media de las MFCCs
mfccs_processed = mfccs_processed.reshape(1, 40) # Redimensiona para la entrada del modelo
# Realiza la predicción
prediction = model.predict(mfccs_processed)
predicted_label_index = np.argmax(prediction) # Obtiene el índice de la etiqueta predicha
# Devuelve la etiqueta predicha
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() |