Rapports de progression du projet
Cette page contient les rapports de progression du projet. Elle sera mise à jour au fur et à mesure de leur rédaction et constitue l'espace principal de publication.
Semaine 0 : Préambule
Avant de s’intéresser à la création d’un moteur de recherche musical, il est important de se pencher sur le statut quo. En effet, il existe déjà des moteurs de suggestion musicale dans les principales applications modernes de streaming musical. Le lecteur aura sûrement déjà interagi avec certains d'ente eux.
Je m’intéresserai dans ce rapport au moteur qui est considéré comme le standard d’industrie, celui de Spotify. Il alimente un des fonctionnalités clés du client Spotify : les recommandations automatiques. Celles-ci sont utilisées pour venir artificiellement étendre une playlist crée par l’utilisateur, de la sorte que au lieu de retourner au premier morceau, l’utilisateur se voit offrir l’opportunité de profiter d’une « playlist infinie ».
Dans son état actuel, ce moteur présente un grand avantage : il est très rapide. Il est capable de générer des séries de recommandations à la volée sans que l’utilisateur ne perçoive de ralentissement de service.
Néanmoins, et c’est là que nous touchons à la problématique du projet, ce moteur se contente de générer des suggestions avec comme entrée les autres morceaux de la playlist. Les résultats sont donc acceptables, mais présentent souvent une faible diversité de genre et une déviation émotionnelle pouvant grandement varier d’un titre à l’autre.
En 2024 et 2025, des fonctionnalités ont été rajoutées par Spotify pour proposer aux utilisateurs des playlist thématiques (les "Mix"). Ceux-ci se présentent sous la forme de playlist auto-générées quand l’utilisateur recherche un mot clé spécifique qui peut servir de graine émotionnelle pour la génération. Malheureusement, il est facile de constater la nature hasardeuse et peu originale de ces "Mix". En effet, ces playlists utilisent des morceaux extraits d’autres playlists de l’utilisateur avec une identité émotionnelle plus ou moins bien identifiée, et utilisent ensuite ces morceaux comme graine de génération via les principes mentionnés précédemment.
L’objectif de ce projet de recherche est d'aller au-delà de ce genre de structure, en trouvant une façon intuitive pour l’utilisateur de passer en entrée du moteur de recherche un état émotionnel désiré et de visualiser les résultats d’une façon qui fasse du sens.
Semaine 1 : Etat des lieux des métriques existantes
Comment décrit-on un morceau de musique de façon objective ? C’est une question plus complexe qu'il n'y parait, en effet, l’essentiel de nos outils descriptifs issus de notre logos (au sens grec du terme) sont confinés à des représentations subjectives de l’espace émotionnel, induisant donc un biais lors de la transmission de l’information émotionnelle.
Par exemple, je pourrai trouver que An die Freude de Beethoven est un morceau très gai et plein d’espoir, mais il serait également acceptable de privilégier la vision mélancolique qui ressort du morceau.
La tache se complexifie d’autant plus que les perceptions elles-mêmes sont biaisées par les diverses barrières à la compréhension qui pourraient séparer les auditeurs : en admettant que l'auditeur ne comprenne pas l’anglais Suicide is painless de Johny Mandel serait un simple morceau mélancolique tel qu’il en passe des dizaines à la radio, mais l’information contenue dans les paroles, suivie du contexte associé (son utilisation en tant que générique de "M.A.S.H") en fait un morceau dont l’impact émotionnel sur l’auditeur peut grandement varier.
Plusieurs métriques quantifiées sont aujourd’hui disponibles afin de proposer une solution partielle à ce problème. Parmi celles-ci, on peut citer
-Le tempo (souvent mesuré en BPM) -La tonalité -La valence -La liveness -Le arousal (Imparfaitement traduisible en Excitation) -Le speechiness -L’intensité (Loudness)
Ces métriques présentent le double avantage de ne pas nécessiter d’intervention humaine pour leur calcul, retirant ainsi le risque de biais, et aussi de proposer une sortie quantifiée, donc exploitable dans notre contexte.
Le tempo est sans doute la plus élémentaire mais aussi une des plus importantes de ces métriques. C’est le rythme fondamental sur lequel le morceau se construit et propose déjà une information générale sur celui-ci. De façon générale, des morceaux avec une énergie plus élevée auront un BPM plus élevé, à l’opposé de morceaux plus tristes ou à l’énergie plus faible qui tendent à avoir un BPM plus faible. Un exemple êxtreme que j’aime donner pour illsutrer ce cas est Binary data XXXIV de Alfonso Peduto avec un BPM de 198. Le solo de piano souligne à quel point la rapidité du tempo donne toute son intensité au morceau.
La tonalité est un élément plus technique du morceau, qui intervient notamment lors de sa création, ou de son exploitation quand on cherche à l’associer à d’autres morceaux. En effet, la tonalité correspond à la note qui décrit le mieux le morceau.La quantification de cette information est dépendante du système musical utilisé, en effet il existe plusieurs systèmes de notation pour les notes. Les pays parlant une langue avec des racines anglo-saxonnes utilisent les lettres de l’alphabet (C D E F G A B) alors que les pays parlant une langue latine utilisent le système bien connu du Do Ré Mi fa Sol La Si (lui-même tiré d’un chant en latin, le Ut queant laxis (hymne pour saint Jean-Baptiste) que Gui d'Arezzo utilisa pour créer ledit système). Il existe beaucoup de façons plus ou moins exactes de déterminer la tonalité d’un morceau, que ce soit à l’oreille ou par ordinateur, et même là, ce n’est pas une science exacte puisqu'il y a encore des questions ouvertes dans ce domaine. La chanson Sweet Home Alabama de Lynyrd Skynyrd fait l’objet d’un débat entre musicologue depuis sa sortie, ceux-ci ne pouvant tomber d’accord sur sa tonalité.
L’intensité d’un morceau (qui est une traduction de loudness) n’est pas une simple mesure de son volume sonore, en effet, il suffirait alors d’amplifier un morceau pour fausser cette mesure. De façon générale, elle est calculée après avoir ramené l’enveloppe du morceau a un niveau permettant de le comparer avec les autres (l’enveloppe de l’enregistrement correspond grossièrement à l’espace que l’on donne à la forme d’onde pour se développer en amplitude. Réduire l’enveloppe réduit l’amplitude moyenne de la forme d’onde contenue et mène à une diminution du volume perçu). Cette mesure peut être quantifiée soit par une unité arbitraire, par souci d’interopérabilité, soit, si l’on envisage de ne travailler que sur un seul système sonore, en dB.
Nous entrons maintenant dans le domaine des métriques agrégées, qui utilisent des combinaisons de mesures et des stratégies de calcul qui mènent à des résultats beaucoup plus abstraits. Ces métriques sont parfois calculées par des algorithmes propriétaires sur lesquels on ne sait que peu de choses.
Le Speechiness détermine si le morceau est instrumental ou chanté. Plus la valeur se rapproche de 1, plus le morceau est supposé contenir de la parole humaine ininterrompue. Inversement, une valeur de 0 ou proche de zéro tendrait à indiquer un morceau purement instrumental.
Le liveness indique par une échelle de zéro à 1 à quel point il est probable que le morceau ait été enregistré lors d’une performance live de l’artiste.
La valence est une unité calculée par machine learning. D’après la documentation de l’API de Spotify, elle décrit la "positivité" générale du morceau. Plus un morceau serait joyeux, positif, plus celui-ci aurait une valence proche de 1. A l’inverse, un morceau triste aurait une valence proche de 0.
Elle est intimement liée, via le modèle circumplex de Russel, à une autre mesure nommée dans le système original Arousal mais renommée pour des raisons se passant d’explications en energy par Spotify. Le peu d’information disponible sur la façon dont Spotify calibre cette mesure en interne tend à indiquer que les deux représentent fondamentalement la même chose, c’est-à-dire la deuxième coordonnée du modèle de Russell qui représente un état d’activité et d’énergie pouvant varier entre des valeurs bornes.