Génération musicale !
mardi 9 février 2016Du War Black Atmosphérique ? C'est possible
Génération musicale !
« Mais qu'est-ce que c'est que ce titre pourri ? Rien à branler de Fan De, moi ! »
Rassure toi cher lecteur, je n'ai pas prévu de parler de l'impact de la musique dans la crise identitaire des adolescents selon les générations. Évoquons plutôt un peu une des premières grosses sorties de ce début d'année 2016. Le 29 janvier, les Américains de Dream Theater ont sorti chez Roadrunner leur onzième album : The Astonishing.
Alors, non je ne vais pas chroniquer les 34 pistes de l'album (ni même une seule d'ailleurs), déjà parce que je ne connais pas une once de ce qu'il faudrait savoir sur ce groupe pour me lancer dans un truc pareil, et aussi parce que d'autres le feront bien mieux que moi. Du coup pourquoi j'écris cet article ? Et pourquoi j'évoque cet album ? Et bien en fait c'est le pitch de l'album qui m'intéresse ici : en l'an 2285, le monde est devenu une sorte de dystopie dans laquelle la musique n'est plus jouée que par des machines. S'en suit alors une épopée qui n'aurait pas grand-chose à envier à un album de Rhapsody, mais je vais m'arrêter au contexte, et essayer de répondre aux quelques questions qu'il me fait me poser :
« Tiens, mais est-ce que des gens essaient de fabriquer des machines qui composent de la musique ? Et si oui, comment ça marche ? »
Par contre je n'ai pas prévu de parler de l'aspect philosophique du truc, de discuter du fait que ça soit bien ou mal, ou de la croyance (ou pas) qu'un ordinateur puisse atteindre le génie créatif d'un Richard Wagner, d'un Muhammed Suiçmez, ou d'un Jari Mäenpää (liste tout à fait subjective, bien évidemment). Exit aussi les logiciels permettant à un David Guetta en herbe de créer de la musique en programmant des boutons. Ici je vais plutôt faire un tour rapide de quelques travaux intéressants de chercheurs qui utilisent des méthodes à base d'apprentissage automatique sur machine.
L'apprentissage, c'est quoi ?
Depuis quelques années, l'apprentissage automatique, ou « machine learning » est un domaine de recherche en plein boom, probablement au même titre que la génétique en biologie. Du coup, il y en a partout… pour trouver automatiquement des images sur Google, pour comprendre automatiquement ce qui intéresse les gens sur Facebook, pour traduire automatiquement un Captcha en texte, pour reconnaître automatiquement une chanson sur Shazam, etc., etc.
La répétition du mot « automatiquement » n'est pas anodine. Internet est devenu énorme, et les gens n'ont plus le temps de réfléchir à des programmes informatiques ad hoc pour bosser sur des milliards d'informations. J'imagine mal l'ingénieur Google créer un programme pour détecter des chiens dans des photos en spécifiant qu'il faut trouver une queue et quatre pattes, et en prévoyant des exceptions pour quand même reconnaître les chiens handicapés qui auraient perdu une patte suite à un accident de voiture… Bref, l'idée du machine learning, c'est de montrer à un programme quelques centaines/milliers de photos de chiens, et de le laisser se débrouiller pour comprendre ce qui fait qu'il y a un chien sur l'image, histoire qu'il puisse dire si oui ou non il y aura un chien sur une nouvelle image qu'on lui présentera.
Dans ces cas-là on parle de machine learning « supervisé », c'est-à-dire qu'il y a quand même un humain en amont pour sélectionner un ensemble de photos sur lesquelles il y a effectivement des chiens. Il existe aussi des techniques dites « non supervisées » où le programme se débrouille aussi pour comprendre qu'il doit trouver quelque chose, mais je vais plutôt me concentrer sur la première catégorie.
En particulier, un truc qui explose tous les autres algorithmes en termes de capacité à classifier des informations (chien / pas chien) en ce moment est une nouvelle famille d'algorithmes qu'on appelle « deep learning ». Ça fait un buzz énorme, mais à vrai dire même ceux qui ont développé ça ne savent pas encore exactement pourquoi ça fonctionne si bien. Là où ça devient encore plus intéressant, c'est que des chercheurs ont réussi à faire plus que classifier des trucs, et ont trouvé des méthodes pour apprendre à leurs programmes à générer des trucs dans le même style que ce qu'ils ont appris au préalable. Un projet de chez Google illustre bien ça : le « deep dream », que vous pouvez d'ailleurs expérimenter à ce lien.
Je résume pour les anglophobes : les chercheurs de chez Google ont créé des programme qui apprennent les styles de peintres célèbres. Puis, ils ont montré une photo au programme, qui l'a interprétée à la manière de ce qu'aurait pu faire le peintre, et ça donne ça :
Revenons à ce qui nous intéresse. Bien évidemment, si des gens ont réussi à produire du Van Gogh-like, pourquoi ne pas essayer de produire du Hugo-like pour la littérature ou du Mozart-like pour la musique ? Eh bien des gens ont commencé à s'y attaquer.
Un exemple est l'université de Yale, aux États-Unis, où des chercheurs ont développé un logiciel du nom de Kulitta capable de composer du Bach-like, à un niveau de ressemblance qui a déjà fait croire à des gens que Bach avait vraiment composé les morceaux. Quelques extraits sont écoutables à cette page. À noter les futurs objectifs de la porteuse du projet, qui veut composer une « Symphonie Rock » basée sur Mozart et Metallica. Ça sera difficilement pire que le pseudo « Opéra Rock » qu'on nous a servi il y a quelques années…
Kulitta étant disponible en téléchargement, je l'ai installé pour faire deux-trois tests. Ainsi, si on lui donne la discographie complète de Hans Zimmer, on obtient un unique gros PoOoOoOoIiIiIiN… Bon en vrai, je n'ai pas réussi à m'en servir :(
Quelques autres pistes
Dans un autre registre, le projet Timbr porté par des chercheurs de l'université de Berkeley aux USA essaie de créer des musiques porteuses d'émotions particulières. Pour cela, les chercheurs utilisent des techniques d'analyse de sentiments sur des livres (Alice au pays des merveilles, 1984…), qu'ils retranscrivent en musique.
Un peu dans le même esprit, mais sans mettre l'accent sur l'aspect émotion, le logiciel libre Buddha Orchestra génère des musiques à partir d'images ou de photos.
Toute une autre branche de la génération de musique est basée sur ce qu'on appelle des grammaires. En gros, c'est comme pour le Français : on définit ce qui fait qu'une phrase est correcte par un ensemble de règles, puis on peut générer des phrases aléatoires qui ont du sens car elles respectent les règles mises en place (par exemple, sujet – verbe – complément). En musique, ça se traduit par des règles imposant des structures particulières pour qu'un morceau ait une certaine cohérence. Un exemple est le logiciel Impro-Visor (attention, le site pique les yeux) développé au Harvey Mudd College, toujours aux USA.
Un dernier domaine que je veux évoquer est la génération de musique basée sur des algorithmes génétiques, c'est-à-dire des programmes inspirés de la théorie de l'évolution en biologie. Dans les grandes lignes, on génère quelques centaines de suites de sons complètement aléatoires. Puis, on sélectionne dans cet ensemble un certains nombre de morceaux qui ressemblent un peu plus à de la vraie musique que les autres. On les mélange, un peu comme on prendrait des gènes de la mère et du père pour faire un enfant qui prendrait le meilleur des deux, puis on recommence jusqu'à avoir un morceau de musique écoutable. Si ça vous intéresse, j'ai trouvé un article d'un chercheur de l'université de Palacky en République Tchèque qui utilise ce genre de techniques pour créer un accompagnement rythmique.
Conclusion
Revenons aux questions à la base de cet article. On peut donc y répondre par « Oui » et par « Ça dépend ». En pratique, il semble qu'on soit encore bien loin d'un monde où les machines composeront de la musique à notre place. La plupart des expérimentations faites bossent sur des pistes en MIDI ou sur des pistes mono-instrument. Et là encore le rendu n'est pas ultra convaincant (du moins d'après mon ressenti).
En matière d'émotion, là aussi il y a un sacré boulot à faire pour arriver à quelque chose de correct. Ce qui me semble le plus abouti sur ce plan là est Timbr, mais je ne passerai clairement pas ma journée à écouter ce genre de choses.
Du coup, à quoi ça sert ? Eh bien outre l'intérêt scientifique, on peut imaginer faire des choses qu'il n'est actuellement pas possible de réaliser. Un exemple qui me vient à l'esprit serait un MMORPG (ou « Meuporg ») dans lequel la musique serait générée automatiquement en fonction de l'endroit où le joueur se trouve, et en fonction du danger environnant. Ça permettrait d'avoir des dizaines d'heures de musique, sans avoir une bande-son lassante qui tourne en boucle, et d'intensifier certains moments (d'ailleurs, ça existe très probablement déjà, vu que des expérimentations avaient déjà été faites sur The Legend of Zelda : Ocarina of Time).
En tous cas, la génération automatique de musique en tant que sujet de recherche a de beaux jours devant elle, notamment avec l'essor du deep learning. De ce que j'ai pu voir dans les différents articles que j'ai lus, certains espèrent arriver à un stade où les compositeurs pourront utiliser des machines à produire des riffs, et s'en inspirer pour leurs morceaux. De là à imaginer des festivals où on pourra voir des robots sur scène jouer leurs propres compos, il n'y a qu'un pas ! (par contre il est sacrément grand)