from huggingface_hub import from_pretrained_fastai import gradio as gr from fastai.vision.all import * from PIL import Image import numpy as np import librosa, librosa.display # repo_id = "YOUR_USERNAME/YOUR_LEARNER_NAME" repo_id = "jegilj/intel-image-classification" learner = from_pretrained_fastai(repo_id) labels = learner.dls.vocab def crear_espectrograma(ruta_wav): sonido_espectrograma, _ = librosa.load(os.path.join(BASE_FOLDER, ruta_wav)) matriz_con_float = librosa.amplitude_to_db(librosa.stft(sonido_espectrograma)) + 100 # sumo 100 para que los valores sean positivos, antes estaban entre -50 y 40 aprox matriz_con_int = matriz_con_float.astype(np.uint8) imagen = Image.fromarray(matriz_con_int) return imagen # Funcion para predecir: def predict(ruta_wav_predecir): imagen = crear_espectrograma(ruta_wav_predecir) imagen.save("imagen_pedecir.png") pred,pred_idx,probs = learn_inf.predict('imagen_pedecir.png') return {labels[i]: float(probs[i]) for i in range(len(labels))} # Creamos la interfaz y la lanzamos. gr.Interface(fn=predict, inputs=gr.inputs.Image(shape=(128, 128)), outputs=gr.outputs.Label(num_top_classes=3),examples=['dog00f0204f_nohash_0.wav','right0132a06d_nohash_0.wav']).launch(share=False)