Clasificador de Audio (Arquitectura CNN Custom)

Este modelo es una Red Neuronal Convolucional (CNN) diseñada específicamente para la clasificación de espectrogramas de audio en 13 categorías. Se ha puesto especial énfasis en el control del sobreentrenamiento (overfitting) mediante técnicas de regularización avanzadas.

🧠 Arquitectura del Modelo

El modelo utiliza una estructura secuencial con 4 bloques convolucionales diseñados para extraer patrones jerárquicos de los espectrogramas:

  • Bloques 1 y 2: Capas de extracción de características base con BatchNormalization para estabilizar el aprendizaje.
  • Bloques 3 y 4 (Regularizados): Inclusión de L2 Regularization (0.01) para penalizar pesos excesivamente grandes y forzar la generalización.
  • Reducción de Dimensionalidad: Uso de GlobalAveragePooling2D en lugar de capas Flatten, lo que reduce drásticamente el número de parámetros y ayuda a evitar que el modelo memorice la posición exacta de los ruidos.
  • Clasificador: Una capa densa con Dropout agresivo (0.7) para asegurar que el modelo no dependa de neuronas específicas.

🚀 Especificaciones Técnicas

  • Entrada: Imágenes RGB de 128x128 píxeles.
  • Salida: Probabilidades para 13 clases (Softmax).
  • Optimizador: Adam con tasa de aprendizaje inicial de 0.0005.
  • Estrategia de Entrenamiento:
    • Early Stopping: Monitoreo de val_loss con paciencia de 8 épocas para restaurar los mejores pesos.
    • ReduceLROnPlateau: Reducción del Learning Rate (factor 0.2) cuando el error de validación se estanca.

🛠️ Inferencia rápida

Para cargar y usar el modelo en tu entorno local:

import tensorflow as tf
import numpy as np

# Carga del modelo h5
model = tf.keras.models.load_model('model.h5')

# Cargar y preparar imagen
def predict_audio(img_path):
    img = tf.keras.utils.load_img(img_path, target_size=(128, 128))
    x = tf.keras.utils.img_to_array(img)
    x = np.expand_dims(x, axis=0) # Crear batch de 1
    x = x / 255.0 
    
    preds = model.predict(x)
    return np.argmax(preds)

print(f"Clase detectada: {predict_audio('test_spectrogram.png')}")
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support