Skip to content

fredlarochelle/Classify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Classify : Classification musicale par apprentissage profond

Application de classification par apprentissage profond pour mon projet d'intégration au Collège de Bois-de-Boulogne à la session d'hiver 2020

Description du projet

L'idée

Le but de ce projet est de développer une application qui permet à l'utilisateur d'enregistrer ou téléverser un extrait d'une chanson et d'obtenir en retour le résultat du genre musical (pop, rock, classique, ...) de cet extrait.

L'utilité et l'inovation

En dehors du domaine de la recherche, aucune solution existe qui permet à un utilisateur d'obtenir le genre musical d'une chanson par apprentissage profond. Les solutions existantes comme Shazam compare l'empreinte du fichier audio à leur banque de données pour obtenir la classification du genre musical qui a été effectué par humain. L'approche proposée dans le cadre de ce projet permet de retirer l'humain de boucle et de permettre la classification de genre musical sans une banque de données préexistente.

Lien avec d'autres matières

État de la recherche

Technologies

Approche

Un modèle d'apprentissage profond qui classifie le genre musical sera développé à partir de la base de données FMA en utilisant la librarie Fastai pour pouvoir effectuer de l'apprentissage profond par transfert. Les différents extraits musicaux seront convertis en image sous forme de spectrogramme avec la librairie LibROSA pour diminuer la quantité de données que les réseaux de neurones profonds doivent gérer. L'entraînement sera effectué dans Google Colab pour profiter de la puissance de calcul gratuit. Le tout est stocké sur Google Drive pour avoir accès à de la persistance dans Google Colab. Une fois le modèle peaufiné, il sera exporté par une opération Pickle de la librairie Scikit-learn. En utilisant Starlette, un script en Python sera développé pour permettre le prétraitement des données et l'inférence du modèle. Ce script sera déployé dans un contenant Docker sur le nuage.

Pour l'application, elle sera développée avec Flutter. Elle va inclure un API avec Node.js pour communiquer avec une base de données MariaDB pour permettre l'identification de l'utilisateur. L'application va aussi communiquer avec le contenant Docker du modèle d'apprentissage profond pour permettre le traitement des fichiers audios.

Défi

Bâtit avec

  • Python - Langage de programmation pour l'apprentissage profond
  • Dart - Langage de programmation pour le développement mobile
  • Flutter - Kit de développement mobile
  • Node.js - Librairie Javascript
  • MariaDB - Programme de base de données
  • Docker - Déploiement de conteneur
  • Fastai - Librairie bâtit sur PyTorch pour l'apprentissage profond en Python
  • Scikit-learn - Libraire pour apprentissage machine en Python
  • Matplotlib - Libraire de traçage en Python
  • LibROSA - Libraire de traitement audio en Python
  • Augmentor - Libraire d'augmentation d'imagerie en Python
  • PIL - Libraire de manipulation d'imagerie en Python
  • Starlette - Libraire de service ASGI en Python

Outils de développement

  • Visual Studio Code - Éditeur de code
  • Android Studio - Environnement de développement Android
  • Git - Logiciel de gestion de versions décentralisé
  • Github - Service d'hébergement web pour Git
  • Google Colaboratory - Environnement de développement Jupyter en ligne avec un accès à des processeurs graphiques gratuit
  • Google One - Service de stockage nuagique
  • Clouderizer - Environnement de développement intégrer à Colab pour l'apprentissage machine
  • Trello - Service web pour la création de liste sous forme de tableau Kanban

Auteur

Licence

Ce projet est distribué sous la licence GNU General Public License v3.0 - voir le fichier LICENSE pour plus de détails

TODO

Écran vue, diagramme

About

Application de classification par apprentissage profond pour mon projet d'intégration au Collège de Bois-de-Boulogne à la session d'hiver 2020

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages