File size: 1,569 Bytes
76714bb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
36
37
38
39
40
41
42
43
44
45
46
# app.py para tu Hugging Face Space (Gradio)
from transformers import pipeline
import gradio as gr
import numpy as np

# Carga tu modelo desde Hugging Face Hub
# ¡IMPORTANTE! Reemplaza "TU_NOMBRE_DE_USUARIO/tu_modelo_de_instrumentos" con el ID de tu modelo
model_id = "Janiopi/detector_de_instrumentos_v1"
classifier = pipeline("audio-classification", model=model_id)

def classify_audio(audio_path):
    """
    Clasifica un archivo de audio para identificar instrumentos musicales.
    """
    if audio_path is None:
        return "Por favor, sube un archivo de audio."

    # El pipeline de Hugging Face maneja la carga y pre-procesamiento del audio
    # directamente desde la ruta del archivo.
    predictions = classifier(audio_path)

    # Formatea las predicciones para una mejor visualización
    results = {}
    for p in predictions:
        results[p['label']] = p['score']

    # Ordena los resultados de mayor a menor puntuación
    sorted_results = sorted(results.items(), key=lambda item: item[1], reverse=True)

    output_text = "Instrumentos detectados:\n"
    for label, score in sorted_results:
        output_text += f"- {label}: {score:.4f}\n"

    return output_text

# Crea la interfaz de Gradio
iface = gr.Interface(
    fn=classify_audio,
    inputs=gr.Audio(type="filepath", label="Sube o graba un audio"),
    outputs="text",
    title="Detector de Instrumentos Musicales",
    description="Sube un archivo de audio o graba uno para detectar instrumentos musicales como guitarra, batería y piano."
)

# Lanza la interfaz
iface.launch()