VT2022 ASMR fiche

Authors

Florian CHAPPAZ: [mailto:florian.chappaz@etu.univ-grenoble-alpes.fr florian.chappaz@etu.univ-grenoble-alpes.fr]

Valentin DE OLIVEIRA: [mailto:valentin.de-oliveira@etu.univ-grenoble-alpes.fr valentin.de-oliveira@etu.univ-grenoble-alpes.fr]

Abstract
ASMR is a sensation caused by specific sounds or movements, described as a relaxing tingling feeling on the scalp and spine. The GitHub ambient-music-generation project uses machine learning to generate music and create similar ASMR sounds. Technologies used include Pachyderm, a data management system, and Magenta, which generates music using neural networks. The MusicTransformer, a tool provided by Magenta, is used to analyze and create new music. The process for generating ASMR sounds on the project involves converting MP3 files to WAV, then MIDI, then a format called TFRecord for training, and finally generating sounds. The generated files can be edited with music software to add effects.

Résumé
L'ASMR est une sensation causée par des sons ou des mouvements spécifiques, décrite comme un picotement agréable et relaxant sur le cuir chevelu et la colonne vertébrale. Le projet GitHub ambient-music-generation utilise l'apprentissage automatique pour générer de la musique et créer des sons ASMR similaires. Les technologies utilisées incluent Pachyderm, un système de gestion de données, et Magenta, qui génère de la musique à l'aide de réseaux de neurones. Le MusicTransformer, un outil fourni par Magenta, est utilisé pour analyser et créer de nouvelles musiques. Le processus de génération de sons ASMR sur le projet implique la conversion de fichiers MP3 en WAV, puis en MIDI, puis en un format appelé TFRecord pour l'entraînement, et enfin la génération de sons. Les fichiers générés peuvent être édités avec un logiciel de musique pour ajouter des effets. L'objectif du projet est d'utiliser l'intelligence artificielle dans l'optique de générer des effets sonores similaires à ceux que l'on peut trouver sur Internet.

Technologies utilisées
Le projet GitHub ambient-music-generation est un projet open-source qui utilise l'apprentissage automatique pour générer de la musique. On peut lui fournir en entrée un ensemble de musique sur lequel s'entraîner afin qu'il puisse générer des musiques dans un style similaire. Dans notre cas, nous avons utilisé des playlist disponible sur spotify pour générer des sons ASMR.

Le projet utilise plusieurs technologies :
 * 1)  Pachyderm : système de gestion de données en pipeline qui permet de traiter et de gérer des données massives de manière distribuée et sécurisée.
 * 2) Magenta : Le projet Magenta utilise des réseaux de neurones et d'autres techniques d'apprentissage automatique pour générer de la musique, des dessins et d'autres formes de création artistique. Il fournit également un kit de développement logiciel (SDK) qui permet aux développeurs de créer leurs propres applications d'IA pour la création artistique.
 * 3) MusicTransformer : un transformer fournit par magenta permettant de produire de la musique en analysant de la musique existante et en utilisant ce qu'il a appris pour en créer de nouvelle.

Fonctionnement du projet Github
Afin de générer des sons ASMR, il y a sur le projet github une marche à suivre pour y parvenir:


 * 1) On commence par créer un dossier dans lequel on met des fichiers au format MP3 sur lequel on veut entraîner notre IA.
 * 2) Un script est fourni nous permettant de normaliser nos fichiers. Ce script supprime tous les espaces et caractères spéciaux du nom du fichier.
 * 3) On utilise Pachyderm pour convertir nos fichier au format mp3 vers le format wav
 * 4) Une fois les fichiers wav convertis, on les convertit vers un fichier midi. La conversion vers le format midi se fait en 2 temps car on utilise une librairie Magenta pour réaliser la conversion vers le format midi. Cette fonction prend en entrée un fichier .wav et nous donne le fichier .midi correspondant.
 * 5) Il faut convertir nos fichier midi vers un format que Tensorflow peut comprendre. Dans notre cas, on va convertir les fichier midi vers un format intitulé TFRecord. C’est un format pour stocker une séquence d’enregistrements binaire.
 * 6) On peut maintenant entraîner notre modèle avec les fichier TFRecord que l’on a récupérés. Une fois le modèle entraîner on peut le sauvegarder pour éviter d'entraîner le modèle à chaque fois que l’on veut l’utiliser.
 * 7) On peut commencer la génération qui prendra plus ou moins de temps en fonction de la puissance de calcul de la machine utilisé.
 * 8) Les fichiers générés sont au format .midi, on les ouvre dans un éditeur musicale (FLStudio, GarageBand, ect.) afin d'appliquer un effet sur les notes pour rendre le résultat plus intéressant.

Réseau de neurones
Un réseau de neurones se compose de couches de neurones interconnectées. Chaque neurone est relié à plusieurs autres neurones dans les couches suivantes ou précédentes, et chacun de ces neurones peut envoyer ou recevoir des signaux de ces autres neurones. Les neurones d'une couche prennent les signaux en entrée et envoient des signaux en sortie à la couche suivante en utilisant une fonction d'activation. Pour entraîner un réseau de neurones, on lui présente des exemples d'entrée et de sortie souhaitée, et le réseau modifie les poids de chaque connexion entre neurones de manière à minimiser l'erreur entre sa sortie et la sortie souhaitée. Ce processus est répété plusieurs fois avec différents exemples d'entrée, jusqu'à ce que le réseau soit en mesure de produire des sorties correctes pour de nouvelles entrées qu'il n'a jamais vues auparavant.

CNN (Convolutional Neural Network)
Un CNN est un type de réseau de neurones qui est particulièrement adapté au traitement de données qui ont une structure spatiale, comme les images. Les CNN utilisent des couches de neurones qui effectuent des convolutions avec des filtres appliqués aux données d'entrée pour extraire des caractéristiques utiles. Ces couches de convolution sont généralement suivies de couches de neurones entièrement connectées qui utilisent ces caractéristiques pour effectuer une tâche spécifique, comme la reconnaissance de la parole. Dans le cadre du projet Magenta, c'est un CNN basé acoustique i.e. entraîné uniquement pour des entrées sonores.

LSTM bidirectionnel
Un réseau de neurones à long court terme (LSTM) bidirectionnel est un type de réseau de neurones utilisé pour traiter des séquences de données, comme du texte ou de l'audio. Un LSTM est un type de réseau de neurones récurrent qui est capable de mémoriser des informations sur de longues périodes de temps et de faire des prédictions basées sur ces informations. Un LSTM bidirectionnel prend en entrée une séquence de données et la traite dans les deux sens, c'est-à-dire en partant de l'élément le plus ancien et en allant vers l'élément le plus récent, et en partant de l'élément le plus récent et en allant vers l'élément le plus ancien. Cela signifie que chaque neurone de l'LSTM a accès à l'ensemble de la séquence de données, ce qui peut être utile pour certaines tâches où l'ordre des éléments de la séquence est important. Une LSTM bidirectionnelle avec 128 unités dans les deux sens (avant et arrière) signifie qu'elle a 128 neurones dans chacune des deux couches de LSTM qui traitent la séquence de données dans les deux sens. Cela peut être considéré comme une configuration de base pour une LSTM bidirectionnelle, mais la taille exacte de l'LSTM dépendra de la tâche à accomplir et de la quantité de données disponibles pour l'entraînement.

MusicTransformer
Dans une chanson, il y a souvent des éléments qui reviennent à différents niveaux, comme des petits motifs, des phrases et des parties comme le couplet et le refrain. Pour créer une chanson qui a du sens, un modèle doit se souvenir de choses qui se sont déjà passées et les utiliser de nouveau, en changeant un peu ou en les développant davantage pour ajouter du contraste et de la surprise. Un Transformer est un type de réseau neuronal artificiel utilisé pour des tâches de traitement du langage naturel. Pour générer de la musique, on utilise un modèle de Transformer dit d'auto-attention relative. L'auto-attention relative est capable de capturer, pour une note, les différences relatives de timing et de hauteur qui sont des dimensions importantes en musique. Une différence relative entre plusieurs notes permet de contribuer à la structure et l’ambiance générale d’une composition.

Différence relative
Une différence relative est la différence de timing et de hauteurs entre plusieurs notes. Plus cette différence est faible, plus la note que l’on génère aura une hauteur et / ou un timing proche de la note que l’on a en entrée. À l’inverse, une différence relative élevée suggère que la note générée aura une hauteur et / ou un timing très différent de la note en entrée. Il n’y a pas forcément de meilleure différence relative, tout dépend de ce que l’on veut faire. On utilisera une différence relative faible si on veut générer quelque chose de cohérent. Mais on utilisera une différence relative forte si on veut créer un contraste.

Avantages

 * Permet de produire de l'ASMR de manière automatisée et en grande quantité
 * S'adapte aux goûts et préférences des utilisateurs en temps réel
 * Projet open-source favorisant la collaboration et l'innovation

Inconvénients

 * Peut produire des résultats imprévisibles ou peu souhaitables
 * Coûteux en temps et ressources informatiques, nécessite une certaine expertise technique
 * Peut susciter des préoccupations éthiques et réduire la valeur de l'art créé par les humains.

Références
ASMR Wikipedia definition https://fr.wikipedia.org/wiki/Autonomous_sensory_meridian_response

ASMR pour ceux qui veulent bien dormir maintenant / 3 heures (Aucune conversation), ''Coromo Sara. ASMR'' https://youtu.be/-SYwOAe6V_4

More than a feeling: Autonomous sensory meridian response (ASMR) is characterized by reliable changes in affect and physiology - ''G.-L. Poerio, E. Blakey, T. J. Hostler, T. Veltri'' - Anglia Ruskin University, U.-K. https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0196645

Reese: The Movie A Movie About Reese - An ASMR Experience https://www.youtube.com/watch?v=PHXTzrO9IGk

Applying Autonomous Sensory Meridian Response on The Advertising of Towel Sound: A Pilot Study, Chih-Chin Liang & Chao-Hui Li https://dl.acm.org/doi/abs/10.1145/3504006.3504019

Ambient music generation Pachyderm's project https://github.com/pachyderm/ambient-music-generation

Magenta https://magenta.tensorflow.org/

Onsets and Frames: Dual-Objective Piano Transcription, Curtis Hawthorne, Erich Elsen, Jialin Song, Adam Roberts, Ian Simon, Colin Raffel, Jesse Engel, Sageev Oore, Douglas Eck https://arxiv.org/abs/1710.11153

Music Transformer, Cheng-Zhi Anna Huang, Ashish Vaswani, Jakob Uszkoreit, Noam Shazeer, Ian Simon, Curtis Hawthorne, Andrew M. Dai, Matthew D. Hoffman, Monica Dinculescu, Douglas Eck https://arxiv.org/abs/1809.04281

jason9693/MusicTransformer-tensorflow2.0: GitHub project implementing the Music Transformer described by Google Brain's paper with Tensorflow https://github.com/jason9693/musictransformer-tensorflow2.0