INTRODUCCIÓN A LA CLASIFICACIÓN DE SONIDOS CON TENSORFLOW

Grupo Lider en la apropiación, desarrollo, uso y difusión de tecnología, ciencia y cultura libre.

INTRODUCCIÓN A LA CLASIFICACIÓN DE SONIDOS CON TENSORFLOW

Cada día el número de aplicaciones de herramientas desarrolladas en el marco de la inteligencia computacional se incrementa, llegando a nuevos campos de aplicación. El procesamiento del sonido es un ejemplo de este avance.
Tensorflow es una de las librerías (open source) más reconocidas para machine learning  y sobre la cual se han desarrollado varias herramientas para el análisis de imágenes,  textos, el tema de interés los sonidos, entre otros. Dentro de su repositorio[1] (en la carpeta research) podemos encontrar muchas de las herramientas para tareas antes mencionadas, algunos modelos ya entrenados pueden ser utilizados una vez se descargue la respectiva carpeta y se instalen sus requerimientos. Aquí se encuentra una carpeta llamada AudioSet, que refiere a un dataset de larga escala mantenido por Google (AudioSet consiste en una ontología en expansión de 632 clases de eventos de audio y una colección de 2,084,320 clips de sonido de 10 segundos manualmente etiquetados extraídos de videos de YouTube[2]), dentro de esta carpeta encontraremos a Yamnnet, una deep net preentrenada que predice 521 clases de eventos de audio basadas en el corpus AudioSet-YouTube [1] y que está basada en un modelo de redes neuronales convolucionales nombrado MobileNet, el cual de acuerdo a su artículo es aplicado a la detección de objetos en imágenes, por lo tanto fue adaptado para la detección de audios (Las redes neuronales convolucionales a pesar de ser aplicadas principalmente en visión artificial actualmente están siendo activamente aplicadas en el análisis de audio). Yamnet ya cuenta con un script (inference.py) para analizar audios y generar las clases (etiquetas de los sonidos detectados dentro del audio) y de esta forma ya se tiene acceso a una herramienta que nos permitirá observar qué entidades aparecen dentro de un audio.

Ejemplo:

  1. Clonamos el repositorio models/tensorflow con el comando “git clone https://github.com/tensorflow/models.git”
  2. Vamos a la carpeta Yamnet con el comando “cd models/research/audioset/yamnet”
  3. Instalamos dependencias “python -m pip install –upgrade pip wheel” y “pip install numpy resampy tensorflow soundfile”
  4. Descargamos el archivo de datos “curl -O https://storage.googleapis.com/audioset/yamnet.h5”
  5. Realizamos un test de la aplicación con “python yamnet_test.py” podremos ver lo siguiente

Siempre que la salida sea Ran 4 test y Ok todo esta bien

6. Descarga un audio de la pagina “http://soundbible.com/tags-city.html” y procesalo con inference.py ejemplo: “python inference.py citytraffic.wav”

La salida anterior corresponden a las clases con más probabilidades que aparecen en el audio procesado

[1]https://github.com/tensorflow/model

[2] https://research.google.com/audioset/

[3] https://arxiv.org/pdf/1704.04861.pdf

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *