Clasificación de audio

La tarea de identificar lo que representa un audio se llama clasificación de audio . Un modelo de clasificación de audio está entrenado para reconocer varios eventos de audio. Por ejemplo, puede entrenar un modelo para que reconozca eventos que representen tres eventos diferentes: aplaudir, chasquear los dedos y escribir. TensorFlow Lite proporciona modelos optimizados previamente entrenados que puede implementar en sus aplicaciones móviles. Obtenga más información sobre la clasificación de audio usando TensorFlow aquí .

La siguiente imagen muestra el resultado del modelo de clasificación de audio en Android.

Captura de pantalla del ejemplo de Android

Empezar

Si es nuevo en TensorFlow Lite y está trabajando con Android, le recomendamos explorar las siguientes aplicaciones de ejemplo que pueden ayudarle a comenzar.

Puede aprovechar la API lista para usar de la biblioteca de tareas de TensorFlow Lite para integrar modelos de clasificación de audio en solo unas pocas líneas de código. También puede crear su propio canal de inferencia personalizado utilizando la biblioteca de soporte de TensorFlow Lite .

El siguiente ejemplo de Android demuestra la implementación utilizando la biblioteca de tareas TFLite

Ver ejemplo de Android

Ver ejemplo de iOS

Si está utilizando una plataforma que no sea Android/iOS, o si ya está familiarizado con las API de TensorFlow Lite , descargue el modelo inicial y los archivos de soporte (si corresponde).

Descargue el modelo inicial desde TensorFlow Hub

Descripcion del modelo

YAMNet es un clasificador de eventos de audio que toma formas de onda de audio como entrada y realiza predicciones independientes para cada uno de los 521 eventos de audio de la ontología AudioSet . El modelo utiliza la arquitectura MobileNet v1 y fue entrenado utilizando el corpus AudioSet. Este modelo se lanzó originalmente en TensorFlow Model Garden, donde se encuentra el código fuente del modelo, el punto de control del modelo original y documentación más detallada.

Cómo funciona

Hay dos versiones del modelo YAMNet convertido a TFLite:

  • YAMNet es el modelo de clasificación de audio original, con tamaño de entrada dinámico, adecuado para transferencia de aprendizaje, implementación web y móvil. También tiene una salida más compleja.

  • YAMNet/clasificación es una versión cuantificada con una entrada de cuadro de longitud fija más simple (15600 muestras) y devuelve un único vector de partituras para 521 clases de eventos de audio.

Entradas

El modelo acepta una matriz 1-D float32 Tensor o NumPy de longitud 15600 que contiene una forma de onda de 0,975 segundos representada como muestras mono de 16 kHz en el rango [-1.0, +1.0] .

Salidas

El modelo devuelve un tensor float32 2-D de forma (1, 521) que contiene las puntuaciones previstas para cada una de las 521 clases de la ontología AudioSet que son compatibles con YAMNet. El índice de columna (0-520) del tensor de partituras se asigna al nombre de clase AudioSet correspondiente utilizando el mapa de clases YAMNet, que está disponible como un archivo asociado yamnet_label_list.txt empaquetado en el archivo del modelo. Consulte a continuación el uso.

Usos adecuados

Se puede utilizar YAMNet.

  • como clasificador de eventos de audio independiente que proporciona una base razonable para una amplia variedad de eventos de audio.
  • como extractor de características de alto nivel: la salida integrada 1024-D de YAMNet se puede utilizar como características de entrada de otro modelo que luego se puede entrenar con una pequeña cantidad de datos para una tarea en particular. Esto permite crear rápidamente clasificadores de audio especializados sin requerir una gran cantidad de datos etiquetados y sin tener que entrenar un modelo grande de un extremo a otro.
  • como un buen comienzo: los parámetros del modelo YAMNet se pueden utilizar para inicializar parte de un modelo más grande, lo que permite un ajuste y una exploración del modelo más rápidos.

Limitaciones

  • Las salidas del clasificador de YAMNet no se han calibrado entre clases, por lo que no se pueden tratar directamente las salidas como probabilidades. Para cualquier tarea determinada, es muy probable que necesite realizar una calibración con datos específicos de la tarea que le permitan asignar umbrales y escalas de puntuación adecuados por clase.
  • YAMNet ha sido entrenado en millones de videos de YouTube y, aunque son muy diversos, aún puede haber una discrepancia de dominio entre el video promedio de YouTube y las entradas de audio esperadas para una tarea determinada. Debería esperar realizar algunos ajustes y calibraciones para que YAMNet sea utilizable en cualquier sistema que construya.

Personalización del modelo

Los modelos previamente entrenados proporcionados están entrenados para detectar 521 clases de audio diferentes. Para obtener una lista completa de clases, consulte el archivo de etiquetas en el repositorio de modelos .

Puede utilizar una técnica conocida como aprendizaje por transferencia para volver a entrenar un modelo para que reconozca clases que no están en el conjunto original. Por ejemplo, podría volver a entrenar el modelo para detectar múltiples cantos de pájaros. Para hacer esto, necesitarás un conjunto de audios de capacitación para cada uno de los nuevos sellos que desees capacitar. La forma recomendada es utilizar la biblioteca TensorFlow Lite Model Maker , que simplifica el proceso de entrenamiento de un modelo TensorFlow Lite utilizando un conjunto de datos personalizado, en unas pocas líneas de códigos. Utiliza el aprendizaje por transferencia para reducir la cantidad de datos y tiempo de capacitación necesarios. También puede aprender de Transferencia de aprendizaje para el reconocimiento de audio como ejemplo de transferencia de aprendizaje.

Más lecturas y recursos

Utilice los siguientes recursos para obtener más información sobre conceptos relacionados con la clasificación de audio: