Commit 9b04949a authored by Louis De Oliveira's avatar Louis De Oliveira
Browse files

Update README.md

parent b4d44320
......@@ -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__ :
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment