diff --git a/README.md b/README.md index 077dedf48704e2ea896c77114a9e8a31cb4e1290..d44b6f39aec7884bb135e0157846ec705307c8f0 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,59 @@ Louis De Oliveira, Guillaume Allègre Ce projet consite à générer des extraits de musique classique avec un GAN. +## __Le but__ : + +- Générer des extraits de musique classique écoutables +- Construire un modèle de GAN assez performant pour être utilisé pour d'autres tâches + +## __Difficultés rencontrées__ : + +- Instabilité de l'entraînement du GAN +- Difficultés pour trouver un dataset de fichiers midis adéquats + + +## __Implémentation__ : + +# Construction d'un dataset + +Le dataset d'entraînement pour le GAN est construit à l'aide d'un dataset +de fichiers midi de grands compositeurs classiques. +On utilise la fonction midi2img issue de ce [repo](https://github.com/mathigatti/midi2img), légérements modifiée, pour convertir +les fichiers midis en images sur lesquelles ont peut facilement entrainer un GAN +Une fois ceci fait, les images sont converties en noir et blanc, puis en array numpy (après avoir filtré les imga complètement noires). + +# entraînement du GAN + +La structure du GAN est disponible dans le notebook. +Pour aider à l'entrainement du GAN, nous faisons appel à plusieurs astuces: +- Le label smoothing qui consiste a remplacer les valeurs de vérité binaires fournies au discriminateur +par des valeurs comme 0.1 et 0.9 ou 0.2 et 0.8 pour éviter de rendre le discriminateur trop fort. + +- Le label flipping qui consiste a inverser les valeurs de vérité fournies au discriminateur pour la encore faciliter l'apprentissage du générateur. + +# écoute des morceaux générés : + +Nous utilisons la fonction img2midi issue du même repo que midi2img pour convertir les images générées par +notre GAN en fichier midis que l'on peut écouter. + + +## __Conclusion et perspectives__ : + +Les morceaux générés par le GAN ont un certains rythmes mais restent assez éloignés de la musique classique que nous voulions générer. +Voici quelques pistes d'amélioration: +- Utiliser un modèle génératif permettant d'intégrer une notion temporelle pour avoir une meilleure cohérence dans le temps des morceaux générés. +- Mieux nettoyer le dataset d'entrainement pour enlever les images majoritairement vides qui n'aident pas a générer des musiques intéressantes. +- Se renseigner sur d'autre modes de représentation de la musique que le midi. + + +## __Sources__ : + + + + + + + + + +