Créer des paysages sonore... Un projet d'informatique de Quentin Aristote

Comment définir LE paysage sonore d’un espace ? En effet, comment définir ce qui change en permanence ?  Comment le reproduire avec suffisamment de précision pour que notre oreille le reconnaisse et dise : « Ah oui, ce son vient de là ! » ?…

Pour répondre à cette question, Quentin Aristote, élève en Master 1 d’Informatique à l’Ecole Normale Supérieure s’associe à PePaSon et propose de coder un algorithme de « deeplearning » pour apprendre à partir d’enregistrements réelles à reconstruire des paysages sonores… irréels mais similaires. 

Extrait du spectrogramme produit par l'algorithme à la fin du projet. Ca ne marche pas encore... Mais c'est une belle tentative loin d'être aléatoire !

Description du projet (Q.A) - Abstract

Version française :

Le but du projet est d’écrire un code informatique capable de générer des paysages sonores…. Une manière de la faire est de faire appel à une forme particulière d’algorithme appelée “réseau de neurone“. Ce dernier est capable, après avoir travaillé à partir d’une base de données (i.e. de paysages sonores pré-existants), d’apprendre “comment” est fait un paysage sonore et, une fois bien entrainée, devrait pouvoir produire des sons similaires à de véritables paysages sonores, totalement nouveaux.

Il existe de nombreuses manières de faire ceci… De nombreux réseaux de neurones existents déjà, travaillant avec des fichiers sonores et une multitude de bases de données sont disponibles…. La question reste à savoir : ” Quel type de paysage sonore veut-on générer ? Sur quelle durée et admettant quelles variations ? “. Ces paramètres sont déterminants dans le choix de la méthode à utiliser.

Pour commencer nous travaillerons à partir de la riche sonothèque du Muséum National d’Histoire Naturelle de Paris (France) sur des enregistrements de 30s libres de droits. Nous utiliserons un “Auto-Encoder”, i.e. un reseau de neurone compose de deux sous-réseaux, l’un travaillant à extraire les informations les plus simples possible de chaque paysage sonore (enregistrement) sous forme d’un court vecteur, l’autre travaillant à recomposer un paysage sonore à partir de la multitude de petits vecteurs extraits par le premier.

Théoriquement nous pourrions ainsi obtenir un paysage sonore “ressemblant” à ceux sur lesquels s’est entrainé l’ordinateur.

Nous n’avons néanmoins qu’un faible contrôle sur le produit fini de l’algorithme et l’ajout de contraintes se fera dans un second temps. Cela reste théoriquement complexe et nécessite des informations tierces parfois indisponibles (commentaires, meta-données…).

Un travail futur sera d’appliquer ce réseau à un environnement unique afin d’en extraire et générer les principaux aspects. Nous pourrons aussi travailler avec des données labelisées et commentées afin d’extraire et de produire des informations qualitatives sur les paysages sonores.

Mais gardons en tête… Les réseaux de neurones sont encore mal compris et échappent aux mathématiques contemporains les rendant parfois difficiles à utiliser…


English version :

The goal of the project is to design a neural network whose aim is to generate soundscapes from scratch : although we would need a database of pre-existing soundscapes to train the neural network, once it is fully trained it should be able to generate new random soundscapes that sound like real soundscapes.

They are a lot of ways to do this. Many neural network architectures working well with sound recordings currently exist and have already been extensively studied. Similarly, there are many ways to choose the training database : it could consist in very different soundscapes as well as in many soundscapes recorded in the same environment, for example. Ultimately, all these choices need to be made with what type of soundscapes we want to generate. Do we want them to be diverse or variations on the same soundscape ? Do we want them to last a few seconds or a few hours ?

For starters, I will be working with the Paris Natural History Museum soundbank, that provides open-access 30 seconds samples of many different soundscapes. I will thus try to design an Auto Encoder that is able to generate 30 seconds long soundscapes that may be very diverse. An Auto Encoder is a special kind of neural network that is actually composed of two sub-networks. The first one, the Encoder, tries to reduce the dimension of the data, i.e. extract tje main features, and thus outputs a small-dimensional vector for each soundscape. The second one, the Decoder, takes those small dimensional vectors and tries to reconstruct the original soundscapes from them. Once this network is trained, we can try to generate new soundscapes by taking a random vector and feeding it to the Decoder, hoping that the small-dimensional vector space in between the Encoder and the Decoder is a faithful representation of the space of soundscapes.

In practice, this means that we don’t get to choose what kind of soundscape the Decoder will generate, but by changing the Auto Encoder’s architecture a little bit it is theoretically possible to add a feature selector. Of course, as long as we don’t have any metadata on our recordings, it won’t be possible to choose which features this feature selector would allow us to select.

Once this first network works well, it should be possible to train it with other kind of soundbanks. For example, we’d like to focus on soundcapes recorded in a single environment. It should also be possible to work with pre-labeled data (if we get some) to control the kind of soundscapes we generate and increase the training speed.

All of this is of course only theoretical yet, and we have no guarantee it should work except the fact that it did in the past for other kinds of data : neural networks aren’t very well understood mathematically.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *