File size: 1,222 Bytes
8be1d11
 
 
 
 
 
 
 
a6813aa
8be1d11
 
 
 
 
 
 
3c8adfb
8be1d11
 
 
 
 
 
 
 
 
7446b86
8be1d11
 
e26f5f8
8be1d11
 
 
422520d
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
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)