Spaces:
Sleeping
Sleeping
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/Deteccion_sonido" | |
learner = from_pretrained_fastai(repo_id) | |
labels = learner.dls.vocab | |
def crear_espectrograma(ruta_wav): | |
sonido_espectrograma, _ = librosa.load(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 = learner.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.Audio(source="upload", type="filepath"), outputs=gr.outputs.Label(num_top_classes=3),examples=['dog00f0204f_nohash_0.wav','right0132a06d_nohash_0.wav']).launch(share=False) | |