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