¿Cuáles son algunas características comunes utilizadas en la clasificación basada en audio?

He estado trabajando en un clasificador de audio que usa la biblioteca de librosa Python, que ofrece varios métodos de extracción de funciones de audio (como se explica en el documento de librosa).

La idea es reducir las decenas de miles de puntos de datos en cada archivo de audio en un conjunto mucho más pequeño de características de número fijo. Esto permite que el clasificador (en mi caso, una red neuronal profunda) compare características, como like, independientemente de la duración de la muestra de audio. Las 5 extracciones de características que utilicé fueron:

  • Coeficientes cepstrales de frecuencia de mel (MFCC): los coeficientes que conforman colectivamente el espectro de potencia a corto plazo de un sonido
  • Espectrograma de potencia con escala Mel: la escala Mel se utiliza para proporcionar una mayor resolución para frecuencias más informativas (más bajas)
  • Cromagrama de una transformada de Fourier a corto plazo: proyectos en bins que representan los 12 semitonos (o croma) distintos de la octava musical
  • Contraste espectral basado en octavas: distribuciones de energía sonora sobre frecuencias de octavas
  • Tonnetz: estima los centroides tonales como coordenadas en un espacio de intervalo de seis dimensiones

Es importante tener en cuenta la dimensionalidad al hacer aprendizaje automático en datos de audio. A pesar de que librosa convierte las grabaciones en mono y muestras descendentes a 22050 hz (considerado un buen compromiso de calidad para el análisis de audio), aún terminará con 22050 valores de datos por cada segundo de su grabación. Si sigue la convención de la red neuronal de tener un nodo de entrada por característica, una muestra de 2 segundos requeriría 44100 nodos de entrada, luego un orden similar de magnitud de nodos ocultos, convirtiéndose rápidamente en intratable.

Lo que se necesita son algunos medios para reducir la dimensionalidad, una idea que extraerá solo la información sobresaliente de las muestras de audio. Esto se puede hacer mediante la concatenación de los resultados de las 5 extracciones enumeradas anteriormente para proporcionar un vector de características coherente de 193 valores para cada clip de audio procesado, un proceso que explica esta excelente publicación de blog.

Si desea probar el código por usted mismo (en los cuadernos Jupyter), está en Github en jaron / deep-listening

Este proyecto también tiene un informe adjunto que explica con más detalle cómo hacer una clasificación general de audio con aprendizaje profundo.

Puede hacer la transformación de Fourier con el tiempo, para obtener un espectrograma. Los espectrogramas son algo buenos para clasificar (ya que son estacionarios) y contienen información como tono y tono ya incrustados. También le da de inmediato 64 características para usar en su clasificación.