Janiopi's picture
Create app.py
76714bb verified
# 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()