Spaces:
Sleeping
Sleeping
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() |