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á capacitado para reconocer varios eventos de audio. Por ejemplo, puede entrenar a un modelo para que reconozca eventos que representan tres eventos diferentes: aplaudir, chasquear los dedos y escribir. TensorFlow Lite proporciona modelos optimizados previamente entrenados que puede implementar en sus aplicaciones móviles. Obtén más información sobre la clasificación de audio con TensorFlow aquí .

La siguiente imagen muestra la salida 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 que explore las siguientes aplicaciones de ejemplo que pueden ayudarlo 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 puedes crear tu propia canalización de inferencia personalizada con la biblioteca de compatibilidad de TensorFlow Lite .

El siguiente ejemplo de Android demuestra la implementación usando 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 de inicio y los archivos de soporte (si corresponde).

Descargar el modelo inicial de TensorFlow Hub

Descripcion del modelo

YAMNet es un clasificador de eventos de audio que toma la forma de onda de audio como entrada y hace predicciones independientes para cada uno de los 521 eventos de audio de la ontología AudioSet . El modelo usa la arquitectura MobileNet v1 y fue entrenado usando 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 convertidas 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.

  • La clasificación YAMNet es una versión cuantificada con una entrada de cuadro de longitud fija más simple (15600 muestras) y devuelve un solo vector de puntuaciones 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 de forma 2-D float32 (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 puntuaciones se asigna al nombre de la clase AudioSet correspondiente utilizando el mapa de clase 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

YAMNet se puede utilizar

  • como un clasificador de eventos de audio independiente que proporciona una línea de base razonable en una amplia variedad de eventos de audio.
  • como extractor de características de alto nivel: la salida de incrustación 1024-D de YAMNet se puede utilizar como características de entrada de otro modelo que luego se puede entrenar en 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 comienzo cálido: los parámetros del modelo YAMNet se pueden usar para inicializar parte de un modelo más grande, lo que permite un ajuste fino y una exploración del modelo más rápidos.

Limitaciones

  • Las salidas del clasificador de YAMNet no se han calibrado en todas las clases, por lo que no se pueden tratar directamente las salidas como probabilidades. Para cualquier tarea dada, es muy probable que deba realizar una calibración con datos específicos de la tarea que le permitan asignar los umbrales de puntuación y la escala adecuados por clase.
  • YAMNet ha sido capacitado en millones de videos de YouTube y, aunque estos 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. Debe esperar hacer algunos ajustes y calibraciones para que YAMNet sea utilizable en cualquier sistema que cree.

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 reconocer clases que no están en el conjunto original. Por ejemplo, puede volver a entrenar el modelo para que detecte varios cantos de pájaros. Para hacer esto, necesitará un conjunto de audios de entrenamiento para cada una de las nuevas etiquetas que desea entrenar. La forma recomendada es usar la biblioteca Model Maker de TensorFlow Lite, que simplifica el proceso de entrenamiento de un modelo de TensorFlow Lite con 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 entrenamiento necesarios. También puede aprender del aprendizaje por transferencia para el reconocimiento de audio como ejemplo de aprendizaje por transferencia.

Más lecturas y recursos

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