Classification audio

La tâche d'identifier ce qu'un audio représente s'appelle la classification audio . Un modèle de classification audio est formé pour reconnaître divers événements audio. Par exemple, vous pouvez entraîner un modèle à reconnaître des événements représentant trois événements différents : applaudissements, claquements de doigts et frappe. TensorFlow Lite fournit des modèles pré-entraînés optimisés que vous pouvez déployer dans vos applications mobiles. En savoir plus sur la classification audio à l'aide de TensorFlow ici .

L'image suivante montre la sortie du modèle de classification audio sur Android.

Capture d'écran d'un exemple Android

Commencer

Si vous débutez avec TensorFlow Lite et que vous travaillez avec Android, nous vous recommandons d'explorer les exemples d'applications suivants qui peuvent vous aider à démarrer.

Vous pouvez tirer parti de l'API prête à l'emploi de la bibliothèque de tâches TensorFlow Lite pour intégrer des modèles de classification audio en quelques lignes de code seulement. Vous pouvez également créer votre propre pipeline d'inférence personnalisé à l'aide de la bibliothèque de support TensorFlow Lite .

L'exemple Android ci-dessous illustre l'implémentation à l'aide de la bibliothèque de tâches TFLite

Voir l'exemple Android

Voir l'exemple iOS

Si vous utilisez une plate-forme autre qu'Android/iOS, ou si vous connaissez déjà les API TensorFlow Lite , téléchargez le modèle de démarrage et les fichiers de support (le cas échéant).

Télécharger le modèle de démarrage à partir de TensorFlow Hub

Description du modèle

YAMNet est un classificateur d'événements audio qui prend la forme d'onde audio en entrée et fait des prédictions indépendantes pour chacun des 521 événements audio de l'ontologie AudioSet . Le modèle utilise l'architecture MobileNet v1 et a été formé à l'aide du corpus AudioSet. Ce modèle a été initialement publié dans TensorFlow Model Garden, où se trouvent le code source du modèle, le point de contrôle du modèle d'origine et une documentation plus détaillée.

Comment ça fonctionne

Il existe deux versions du modèle YAMNet converties en TFLite :

  • YAMNet est le modèle de classification audio original, avec une taille d'entrée dynamique, adapté à l'apprentissage par transfert, au déploiement Web et mobile. Il a également une sortie plus complexe.

  • YAMNet/classification est une version quantifiée avec une entrée de trame de longueur fixe plus simple (15600 échantillons) et renvoie un seul vecteur de scores pour 521 classes d'événements audio.

Contributions

Le modèle accepte un float32 1-D ou un tableau NumPy de longueur 15600 contenant une forme d'onde de 0,975 seconde représentée sous forme d'échantillons mono de 16 kHz dans la plage [-1.0, +1.0] .

Les sorties

Le modèle renvoie un float32 de forme (1, 521) contenant les scores prédits pour chacune des 521 classes de l'ontologie AudioSet prises en charge par YAMNet. L'index de colonne (0-520) du tenseur des scores est mappé au nom de classe AudioSet correspondant à l'aide de la carte de classe YAMNet, qui est disponible sous la forme d'un fichier associé yamnet_label_list.txt compressé dans le fichier de modèle. Voir ci-dessous pour l'utilisation.

Utilisations appropriées

YAMNet peut être utilisé

  • en tant que classificateur d'événements audio autonome qui fournit une base de référence raisonnable pour une grande variété d'événements audio.
  • en tant qu'extracteur de caractéristiques de haut niveau : la sortie d'intégration 1024-D de YAMNet peut être utilisée comme caractéristiques d'entrée d'un autre modèle qui peut ensuite être formé sur une petite quantité de données pour une tâche particulière. Cela permet de créer rapidement des classificateurs audio spécialisés sans nécessiter beaucoup de données étiquetées et sans avoir à former un grand modèle de bout en bout.
  • comme un démarrage à chaud : les paramètres du modèle YAMNet peuvent être utilisés pour initialiser une partie d'un modèle plus large, ce qui permet un réglage plus rapide et une exploration du modèle.

Limites

  • Les sorties du classificateur de YAMNet n'ont pas été calibrées entre les classes, vous ne pouvez donc pas traiter directement les sorties comme des probabilités. Pour une tâche donnée, vous devrez très probablement effectuer un étalonnage avec des données spécifiques à la tâche, ce qui vous permet d'attribuer des seuils de score et une mise à l'échelle appropriés par classe.
  • YAMNet a été formé sur des millions de vidéos YouTube et bien qu'elles soient très diverses, il peut toujours y avoir une incompatibilité de domaine entre la vidéo YouTube moyenne et les entrées audio attendues pour une tâche donnée. Vous devez vous attendre à effectuer un certain nombre de réglages et d'étalonnages pour rendre YAMNet utilisable dans n'importe quel système que vous construisez.

Personnalisation du modèle

Les modèles pré-formés fournis sont formés pour détecter 521 classes audio différentes. Pour une liste complète des classes, consultez le fichier labels dans le référentiel modèle .

Vous pouvez utiliser une technique connue sous le nom d'apprentissage par transfert pour réentraîner un modèle afin qu'il reconnaisse les classes qui ne se trouvent pas dans l'ensemble d'origine. Par exemple, vous pouvez réentraîner le modèle pour détecter plusieurs chants d'oiseaux. Pour ce faire, vous aurez besoin d'un ensemble d'audios de formation pour chacun des nouveaux labels que vous souhaitez former. La méthode recommandée consiste à utiliser la bibliothèque TensorFlow Lite Model Maker qui simplifie le processus de formation d'un modèle TensorFlow Lite à l'aide d'un ensemble de données personnalisé, en quelques lignes de codes. Il utilise l'apprentissage par transfert pour réduire la quantité de données et le temps de formation requis. Vous pouvez également apprendre de l'apprentissage par transfert pour la reconnaissance audio comme exemple d'apprentissage par transfert.

Lectures complémentaires et ressources

Utilisez les ressources suivantes pour en savoir plus sur les concepts liés à la classification audio :