Le projet "soundx" est une application de traitement audio utilisant diverses bibliothèques Python pour l'analyse, la visualisation et l'apprentissage automatique.
- pyproject.toml: Fichier de configuration pour Poetry, spécifiant les dépendances et les métadonnées du projet.
- README.md: Fichier de documentation de base.
- Makefile: Définit des commandes pour synchroniser les données, entraîner et évaluer les modèles.
Le projet utilise les bibliothèques suivantes :
- pandas
- streamlit
- boto3
- matplotlib
- librosa
- python-dotenv
- tensorflow-hub
- seaborn
- datasets
- evaluate
- ipykernel
- ipywidgets
- tensorflow
- tensorflow-macos (en développement)
- sync: Synchronise les données depuis un bucket S3.
- train: Lance l'entraînement du modèle.
- eval: Évalue le modèle.
L'architecture des données du projet "soundx" est conçue pour gérer efficacement le traitement, l'analyse et l'apprentissage automatique sur des ensembles de données audio. Voici un aperçu détaillé de l'architecture des données :
-
Acquisition des Données
- Les données audio sont synchronisées depuis un bucket S3
soundx-audio-datasetvers le répertoire local [data/raw] à l'aide de la commandesyncduMakefile.
- Les données audio sont synchronisées depuis un bucket S3
-
Prétraitement des Données
- Les données brutes sont prétraitées pour les rendre compatibles avec les modèles d'apprentissage automatique. Cela peut inclure des étapes telles que la normalisation, le découpage en segments, et l'extraction de caractéristiques audio (features).
-
Stockage des Données Prétraitées
- Les données prétraitées sont stockées dans un répertoire dédié,
data/processed, pour une utilisation ultérieure dans les étapes d'entraînement et d'évaluation des modèles.
- Les données prétraitées sont stockées dans un répertoire dédié,
-
Entraînement des Modèles
- Les données prétraitées sont utilisées pour entraîner les modèles d'apprentissage automatique. Le script
src/multi_train.pyest exécuté via la commandetrainduMakefile.
- Les données prétraitées sont utilisées pour entraîner les modèles d'apprentissage automatique. Le script
-
Évaluation des Modèles
- Les modèles entraînés sont évalués à l'aide des données de test pour mesurer leur performance. Le script
src/multi_eval.pyest exécuté via la commandeevalduMakefile.
- Les modèles entraînés sont évalués à l'aide des données de test pour mesurer leur performance. Le script
- data/raw: Contient les données audio brutes synchronisées depuis le bucket S3.
- data/processed: Contient les données prétraitées prêtes pour l'entraînement et l'évaluation des modèles.
- src/multi_train.py: Script pour l'entraînement des modèles d'apprentissage automatique.
- src/multi_eval.py: Script pour l'évaluation des modèles.
- librosa: Pour le traitement audio et l'extraction de caractéristiques.
- pandas: Pour la manipulation et l'analyse des données.
- tensorflow: Pour la construction et l'entraînement des modèles d'apprentissage automatique.
- boto3: Pour l'interaction avec AWS S3.
Le projet "soundx" utilise Streamlit pour créer des interfaces utilisateur interactives pour le traitement et l'analyse des données audio. Voici un aperçu détaillé des interfaces Streamlit utilisées dans le projet :
L'interfaces Streamlit est une application multi-pages avec les sections suivantes : - Accueil: Page d'accueil de l'application. - Dataset: Page récapitulative du dataset utilisé. - Evaluation: Page d'évaluation des modèles sur chaque classe. - Model: Page de prédiction des modèles. - Train: Page d'entraînement des modèles.
Le script [multi_train.py] gère le prétraitement des données audio avant l'entraînement du modèle. Voici les étapes principales :
-
Chargement et Resampling des Fichiers Audio:
- Les fichiers audio sont chargés et resamplés à 16 kHz.
-
Extraction des Embeddings:
- Utilisation du modèle YAMNet pour extraire les embeddings des fichiers audio.
-
Création des Datasets TensorFlow:
- Les données sont transformées en datasets TensorFlow, avec des étapes de cache, de shuffle, et de batch.
Le modèle utilisé est un réseau de neurones séquentiel construit avec TensorFlow. Il se compose de couches denses et utilise une couche personnalisée pour la réduction de la moyenne.
-
Définition du Modèle:
- Le modèle est défini avec une couche d'entrée, deux couches denses, et une couche de sortie.
-
Compilation et Entraînement:
- Le modèle est compilé avec une fonction de perte
SparseCategoricalCrossentropyet l'optimiseurAdam. L'entraînement utilise un callback pour l'arrêt anticipé.
- Le modèle est compilé avec une fonction de perte
-
Conversion en TFLite:
- Le modèle entraîné est converti en format TensorFlow Lite pour une utilisation optimisée.
Les modèles et les fichiers associés sont sauvegardés localement et téléchargés sur un bucket S3.
Cette structure permet un flux de travail efficace pour le prétraitement, l'entraînement, et le déploiement des modèles d'apprentissage automatique dans le projet "soundx".
- Julien Roullé ([email protected])