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()