[PYTHON] (Lecture du papier) Jukebox: A Generative Model for Music Prafulla (Échantillonnage de musique avec VQ-VAE)

introduction

Un modèle qui peut échantillonner de la musique contenant une voix chantée (≈ générer de la musique) à l'aide de VQ-VAE (variante d'auto-encodeur) a été introduit. J'ai traduit cet article pour ma propre étude, j'ai donc résumé le contenu. L'implémentation a également été publiée sur Github, donc je l'essaye. Je veux le résumer facilement la prochaine fois.

** Je vous serais reconnaissant de bien vouloir signaler les expressions qui ne sont pas traduites correctement. ** **

Jukebox: A Generative Model for Music Prafulla https://arxiv.org/abs/2005.00341

Abstract

Présentation du modèle Jukebox qui génère de la musique avec une voix chantante. Dans cette étude, il a été montré que le ** VQ-VAE multi-échelles ** peut être utilisé pour générer une variété de chansons fidèlement reproduites avec une cohérence (≈ haute reproductibilité) jusqu'à quelques minutes. ** De plus, en définissant des conditions pour les artistes et les genres, il était possible de contrôler le style de musique et de voix, et en n'alignant pas les paroles, il était possible de rendre le chant plus facile à contrôler.

1.Introduction

Les modèles des auteurs nous permettent de générer des chansons avancées. Il existe différents genres de musique tels que le rock, le hip hop et le jazz. Ils peuvent capturer la mélodie, le rythme, la composition à longue portée, les sons de divers instruments, le style et la qualité de la voix du chanteur produit avec la musique, ainsi que les chansons existantes.

L'approche des auteurs utilise une architecture ** hiérarchique VQ-VAE (Razavi et al., 2019). Il utilise une fonction de perte conçue pour contenir le maximum d'informations musicales tout en compressant l'audio dans un espace discret et en augmentant le niveau de compression. ** Nous utilisons un transformateur clairsemé autorégressif (Child et al., 2019; Vaswani et al., 2017) formé avec une estimation du maximum de vraisemblance sur cet espace compressé. Nous formons également un suréchantillonneur autorégressif pour reproduire les informations perdues à chaque niveau de compression.

** De nouveaux compléments aux chansons existantes sont également possibles **. L'approche des auteurs peut influencer le processus de génération. En permutant le haut-précédent et le conditionnel-précédent, vous pouvez conditionner les paroles pour dire au chanteur quoi chanter ou le MIDI pour contrôler la composition.

2.Background

La musique est représentée par une forme d'onde continue $ x ∈ [-1,1] ^ T $, et le nombre d'échantillons T est le produit de la durée de la voix et de la fréquence d'échantillonnage, et est généralement considéré comme compris entre 16 kHz et 48 kHz. .. Une qualité suffisante pour l'audio CD est généralement ** des échantillons à 44,1 kHz stockés avec une précision de 16 bits **.

** L'apprentissage et la génération de musique nécessitent beaucoup de calcul par rapport à la génération d'images **. Par exemple, un audio de 4 minutes à un débit binaire de 16 bits aurait une longueur d'entrée de 10 millions. D'autre part, une image RVB de haute qualité a 3 millions d'entrées à 24 bits.   Pour résoudre ce problème, ** VQ-VAE est utilisé pour convertir la musique originale en un espace de faible dimension. ** ** Décodez le vecteur incorporé avec le codeur $ E (x) $ qui code le vecteur incorporé, le goulot d'étranglement qui quantifie le vecteur incorporé du livre de codes $ C = {\ bf e_k} ^ K_ {k = 1} $ Il consiste en un décodeur $ D (e) $ qui retourne dans l'espace d'entrée.

La fonction objective de l'apprentissage est la suivante.

image.png

  1. $ L_ {recons} $ est une valeur appelée erreur de reconstruction.
  2. $ L_ {codebook} $ indique la valeur qui rapproche le vecteur incorporé du vecteur encodeur.
  3. $ L_ {commit} $ indique une valeur qui s'approche du vecteur intégré dans le vecteur encodeur.

Notez que $ sg $ est une abréviation pour stop gradient, ce qui signifie que le gradient n'est pas calculé. Ici, vous allez entraîner un seul encodeur et décodeur. Divisez la séquence latente $ h $ en représentations multi-valeurs $ [h (1), ..., h (L)] $ dont la longueur de séquence diminue, chacune apprenant son propre livre de codes $ C (l) $ Je suis. Ils utilisent un encodeur / décodeur non auto-régressif et collaborent à tous les niveaux en utilisant une simple perte quadratique moyenne.

(Supplément) À propos de VQ-VAE

image.png

Il s'agit d'un algorithme appelé Vector Quantization Variational Auto Encoder. ** Afin de résoudre le problème de l'effondrement postérieur *, qui est un problème propre à VAE, nous avons tenté de le résoudre en introduisant la quantification vectorielle. ** **

Quantifier est un mot qui signifie quantification. La quantification vectorielle est la représentation approximative de quantités continues telles que les signaux analogiques sous forme de valeurs discrètes telles que ** les entiers et les espaces latents discrets. ** ** L'espace latent à ce moment est exprimé comme suit (appelé livre de codes).

e = [e_1,e_2,....e_K] \in\mathbb{R}^{D×K}

La taille de cet espace est $ K $, et chaque point $ e_i $ est en outre représenté par un vecteur réel dimensionnel $ D $. Cet espace lui-même sera appris en même temps plus tard.

Un phénomène appelé * effondrement postérieur est un phénomène dans lequel les variables latentes sont ignorées lors de l'utilisation d'un décodeur puissant tel que PixelCNN.

Comme point d'apprentissage, s'il ne s'agit que d'un encodeur automatique, définissez la fonction de perte comme suit. $ E (x) $ est la fonction d'encodeur, $ Q (x) $ est la fonction de quantification et $ D (x) $ est la fonction de décodeur.

L = ||x - D(Q(E(x)))||^2
L = log p(x|D(Q(E(x))))

** VQ-VAE y ajoute l'élément de mise à jour $ e $ suivant. ** **

L = ||sg[Q(E(x))] - E(x)||^2 +\beta ||Q(E(x))-sg[E(x)]||^2

$ \ Beta $ est un hyper paramètre, et il semble qu'il devrait être une valeur comprise entre 0,1 et 2.

Matériel de référence

Voyage à travers des modèles de génération profonde (2): VAE https://qiita.com/shionhonda/items/e2cf9fe93ae1034dd771

3.Music VQ-VAE

Inspirés par les résultats de l'application du VQ-VAE hiérarchique aux images (lien ci-dessous), les auteurs ont envisagé d'appliquer la même technologie à la musique.

Generating Diverse High-Fidelity Images with VQ-VAE-2 https://arxiv.org/abs/1906.00446

Tout d'abord, entraînez trois modèles VQ-VAE. L'entrée musicale dans chacune des trois couches est classée et encodée dans le vecteur $ h_t $. Il est ensuite quantifié pour être le plus proche du vecteur de livre de codes $ e_ {z_t} $. Le code $ z_t $ apprend des représentations discrètes de l'audio. Le décodeur reçoit une séquence de vecteurs de livre de codes et reconstruit la musique.

Figure 1 image.png

3.1.Random restarts for embeddings

Le défi avec VQ-VAE est qu'il souffre d'un ** effondrement du livre de codes **. L'effondrement du livre de codes signifie que tous les encodages sont mappés sur un seul ou un petit nombre de vecteurs incorporés alors qu'aucun autre vecteur incorporé dans le livre de codes n'est utilisé, ce qui réduit la capacité d'information du goulot d'étranglement. C'est un phénomène. Pour éviter cela, redémarrez au hasard.

Réinitialise aléatoirement l'une des sorties du codeur dans le lot actuel lorsque l'utilisation moyenne du vecteur de livre de codes tombe en dessous du seuil. Cela garantit que tous les vecteurs du livre de codes sont utilisés, vous permettant de maintenir un gradient d'apprentissage pour atténuer l'effondrement du livre de codes.

3.2.Separated Autoencoders

Lors de l'utilisation du VQ-VAE hiérarchique pour la musique, le niveau supérieur du goulot d'étranglement était rarement utilisé. Un effondrement complet aurait pu être vu lorsque le modèle transmettait toutes les informations aux niveaux inférieurs où ce n'était pas le goulot d'étranglement. Pour maximiser la quantité d'informations stockées à chaque niveau, les auteurs ont formé des auto-encodeurs séparés avec des longueurs de sauts variables. Les codes discrets à chaque niveau peuvent désormais être traités comme des codages indépendants d'entrées à différents niveaux de compression.

3.3.Spectral Loss Lorsqu'il traite de la perte de reconstruction au niveau de l'échantillon, le modèle apprend à ne reconstruire que les basses fréquences. Pour capturer la gamme de fréquences moyennes-hautes, ajoutez une perte spectrale définie comme: image.png

Cela permet au modèle de faire correspondre les composantes spectrales sans prêter attention aux phases, qui sont plus difficiles à entraîner.

  1. Music Priors and Upsamplers Après avoir appris VQ-VAE, vous devez apprendre la pré-probabilité $ p (z) $. Cette probabilité a priori peut être décomposée comme suit.

image.png

Chacun de ceux-ci est un problème de modélisation autorégressif dans l'espace de jetons discret généré par VQ-VAE.

4.1.Artist, Genre, and Timing Conditioning

Les modèles générés par les auteurs peuvent être rendus plus contrôlables en ajoutant des signaux de conditionnement pendant l'entraînement **. ** Le premier modèle donne à la chanson une étiquette d'artiste et une étiquette de genre. Cela présente deux avantages. Premièrement, il réduit l'entropie des prédictions audio, permettant au modèle d'obtenir une meilleure qualité dans un style particulier. Deuxièmement, vous pouvez manipuler le modèle pour le générer dans le style de votre choix lors de la génération.   De plus, un signal de synchronisation est ajouté à chaque segment pendant l'apprentissage. Ce signal comprend la durée totale du morceau, l'heure de début d'un échantillon particulier et la quantité de morceau écoulée. Cela permet au modèle d'apprendre des modèles musicaux qui dépendent de la structure globale.

4.2. Lyrics Conditioning

Le modèle conditionnel ci-dessus peut générer des chansons de genres et de styles artistiques divers. Cependant, les voix chantées produites par ces modèles sont souvent chantées avec des mélodies convaincantes. ** Cependant, il n'a pas été possible de générer des mots anglais reconnaissables car la plupart d'entre eux se composaient de mots qui ressemblaient à un seul mot. ** **

Ainsi, afin de pouvoir contrôler le modèle de génération avec des paroles, en conditionnant les paroles correspondant à chaque segment musical, nous avons fourni plus de contexte et permis de générer une voix chantée en même temps que de la musique.

4.3. Decoder Pretraining

Pour réduire la quantité de calcul nécessaire pour entraîner le modèle de paroles, les auteurs ont utilisé un prio de premier niveau inconditionnel pré-formé comme décodeur et ont introduit un encodeur de paroles utilisant la chirurgie modèle. Ainsi, à l'initialisation, le modèle se comporte comme un décodeur pré-entraîné, mais il existe toujours un gradient en termes d'état et de paramètres du codeur. Cela permet au modèle d'apprendre à utiliser l'encodeur.

4.4Decoder Pretraining Ancestral sampling

image.png

Chaque modèle prend des informations conditionnelles telles que le genre, l'artiste, le timing, les paroles, etc. Pour générer de la musique, les informations de conditionnement sont utilisées pour échantillonner et contrôler le code VQ-VAE de haut en bas, puis le décodeur VQ-VAE convertit le code sous-jacent en audio.

Windowed sampling

image.png

Pour générer une musique plus longue que la longueur du contexte du modèle (12 sur cette figure), nous prenons les fenêtres qui se chevauchent de l'accord précédent comme contexte et échantillonnons itérativement la suite à chaque niveau. La quantité de chevauchement est un hyperparamètre et la figure montre un exemple de chevauchement de 75% avec une longueur de saut de 3.

Primed sampling: Vous pouvez générer la continuité d'un signal audio existant en convertissant le signal audio existant en un code VQ-VAE et en échantillonnant le code suivant à chaque niveau.

5.Experiments

5.1. Dataset

Les auteurs ont récupéré un nouvel ensemble de données de ** 1,2 million de chansons (dont 600 000 en anglais) et les ont jumelées avec ** paroles et métadonnées de LyricWiki. Les métadonnées contiennent des mots-clés pour les artistes, les albums, les genres, l'année de sortie et les ambiances et listes de lecture communes associées à chaque chanson. L'entraînement est effectué en utilisant l'audio en direct 32 bits, 44,1 kHz, et les données sont améliorées en mélangeant de manière aléatoire les canaux droit et gauche pour générer un son monocanal.

5.2. Training Details

Dans VQ-VAE pour la musique **, l'audio à 44 kHz est compressé de manière dimensionnelle avec une taille de livre de codes de 2048 à chaque niveau en utilisant trois niveaux de goulots d'étranglement: 8x, 32x et 128x. ** VQ-VAE a 2 millions de paramètres et a appris 9 secondes de clips audio sur 256 V100 pendant 3 jours.

Upsampler a 1 milliard de paramètres et 128 V100 pendant 2 semaines, le pré-apprentissage de haut niveau a 5 milliards de paramètres et 512 V100 pendant 4 semaines. Adam avec un taux d'apprentissage de 0,00015 et une atténuation de poids de 0,002 est utilisé. Pour conditionner les paroles, j'ai réutilisé le pré-traitement, ajouté un petit encodeur, puis étudié sur 512 V100 pendant deux semaines.

5.3.Samples

Les auteurs ont appris un ensemble de modèles tout en améliorant la qualité des échantillons. ** Le premier modèle a été formé sur l'ensemble de données MAESTRO en utilisant un code VQ-VAE 22 kHz et un modèle de priorité relativement faible. ** Nous avons constaté que cela nous permettait de générer des échantillons de musique classique haute fidélité, y compris le piano et le violon. Ensuite, nous avons rassemblé un ensemble plus large et plus diversifié de chansons avec des étiquettes de genre et d'artiste. En appliquant le même modèle à ce nouvel ensemble de données, nous avons pu générer une grande variété d'échantillons non classiques, démontrant plus d'une minute de musicalité et de cohérence.

Coherence Pendant toute la durée du contexte de pré-traitement de haut niveau (environ 24 secondes), l'échantillon s'est avéré rester musicalement très cohérent. Nous avons également constaté que le glissement de la fenêtre pour générer des échantillons plus longs conservait des harmoniques et des textures similaires.

Musicality

Les échantillons imitent les harmonies musicales qui apparaissent souvent, et les paroles sont généralement définies de manière très naturelle. Les notes les plus hautes et les plus longues d'une mélodie correspondent souvent aux mots soulignés par un chanteur humain, et les paroles sont presque toujours rendues d'une manière qui capture la prosodie de la phrase.

Novel styles

Les auteurs produisent des chansons de genres inhabituels qui n'ont rien à voir avec l'artiste. En général, il peut être assez difficile de généraliser à un nouveau style de chant tout en utilisant la même voix que l'artiste. Cependant, mélanger le chanteur country Alan Jackson avec des genres inhabituels tels que le hip hop et le punk n'a pas abouti à un échantillon qui s'écarte du style country.

Novel riffs Un autre développement utile de Jukebox est que vous pouvez explorer différentes suites en enregistrant des idées incomplètes. Les auteurs ont organisé un enregistrement de riff roman par un musicien et ont préparé le modèle pendant l'échantillonnage. Le Sample 6 commence par un style musical rarement utilisé dans les chansons d'Elton John. L'échantillon 6 commence par un style musical qui n'est pas souvent utilisé dans les chansons d'Elton John, mais le modèle va encore plus loin.

5.4. VQ-VAE Ablations

image.png

** La figure ci-dessus montre une comparaison des reconstructions à partir de différents VQ-VAE, où l'axe des x est le temps et l'axe des y est la fréquence. ** De la colonne de gauche à droite, il y a une reconstruction de niveau inférieur, de niveau intermédiaire et de niveau supérieur avec des longueurs de saut de 8, 32 et 128. Chacun est visualisé sous la forme d'un gramme de spectre Mel. Dans la troisième ligne, nous pouvons voir que la perte de spectre est supprimée et que les informations haute fréquence sont perdues au niveau intermédiaire et au niveau supérieur. La ligne 4 utilise un VQ-VAE hiérarchique (Razavi et al., 2019) au lieu d'un auto-encodeur séparé (Figure 1). Enfin, la ligne 5 montre la ligne de base en utilisant le codec Opus, qui encode l'audio à un débit binaire constant comparable à VQ-VAE. Il a également ajouté des artefacts importants aux niveaux de compression les plus élevés, car il était incapable de capturer les hautes fréquences.

6.Related Work

Generative models for music: L'histoire des modèles de génération de musique symbolique remonte à plus d'un demi-siècle. Les premières approches comprennent les systèmes basés sur des règles (Moorer, 1972), le chaos et l'auto-similitude (Pressing, 1988), les automates cellulaires (Beyls, 1989), la synthèse concaténée (Jehan, 2005) et la planification par contraintes (Anders & Mi-). Il existe différentes approches telles que randa, 2011). Les approches plus récentes axées sur les données comprennent DeepBach (Hadjeres et al., 2017) et Coconet (Huang et al., 2017), qui utilisent l'échantillonnage de Gibbs pour générer des notes dans le style du chœur de Bach. Les exemples incluent MidiNet (Yang et al., 2017) et MuseGAN (Dong et al., 2018), qui utilisent ad lib.

Aussi, pour les informations musicales symboliques telles que N Synth (Engel et al., 2017), Mel2Mel (Kim et al., 2019), Wave2Midi2Wave (Hawthorne et al., 2019) utilisant l'encodeur automatique de style WaveNet. Il existe également de nombreuses approches pour synthétiser de la musique à partir de celle-ci.

Sample-level generation of audio:

Ces dernières années, divers modèles de génération de voix ont été annoncés. WaveNet (Oord et al., 2016) pourra utiliser une série de convolution étendue pour augmenter de manière exponentielle la longueur du contexte. Ensuite, une modélisation probabiliste auto-régressive échantillon par échantillon de la forme d'onde brute est effectuée. Cela permet de générer un son réaliste sans dimension ou en conditionnant les caractéristiques acoustiques et les programmes spéciaux.

Parallel WaveNet (Oord et al., 2018) est une amélioration à cet égard, en utilisant à la place un mélange de distribution logistique et de distribution de probabilité continue, et une distribution de densité de probabilité qui apprend un réseau à feedforward parallèle à partir d'un modèle d'auto-retour pré-formé. En exécutant, un échantillonnage à grande vitesse d'audio hautement reproductible est possible.

WaveGlow (Prenger et al., 2019) est un modèle basé sur le flux pour la synthèse audio parallèle au niveau de l'échantillon, qui peut être formé avec des estimations simples les plus probables et donc les deux étapes nécessaires à la distillation des connaissances. C'est avantageux pour le processus de formation.

VQ-VAE Oord et al. (2017) ont introduit VQ-VAE, une approche qui sous-échantillonne des entrées contextuelles très longues en un codage latent discret de plus grande longueur à l'aide de la quantification vectorielle. En conséquence, il a été montré qu'il est possible de générer des images et des sons de haute qualité et d'apprendre des expressions non supervisées de phonèmes. Razavi et al. (2019) ont étendu le modèle ci-dessus en introduisant une hiérarchie de représentations itératives discrètes à l'image, et le modèle résultant était local, comme une texture, dans la hiérarchie inférieure avec une petite zone de récepteur. Nous avons montré qu'il est possible d'apprendre à séparer la sémantique de haut niveau dans les couches les plus élevées de codes discrets avec les plus grands champs accepteurs tout en capturant des caractéristiques.

Speech synthesis Afin de générer une voix humaine naturelle, il est nécessaire de comprendre les caractéristiques linguistiques, de cartographier les sons et de contrôler les expressions. De nombreux systèmes de synthèse vocale (TTS) ont des caractéristiques hautement conçues (Klatt, 1980), des segments sonores soigneusement réglés (Hunt et Black, 1996) et une modélisation statistique paramétrique (Zen et al., 2009). , Et (Arık et al., 2017) s'appuie sur plus d'une douzaine de pipelines complexes.

Des travaux récents tels que Deep Voice3 (Ping et al., 2018), Tacotron 2 (Shen et al., 2018) et Char2Wav (Sotelo et al., 2017) utilisent une architecture entre séquences pour synthétiser la voix. Apprenez de bout en bout (Sutskever et al., 2014). Bien que l'espace de conception soit vaste, une approche typique consiste généralement en une représentation textuelle, des fonctionnalités audio et un encodeur bidirectionnel, un décodeur et un vocabulaire pour créer la forme d'onde brute finale.

7.Future work

L'approche des auteurs a pu progresser dans la capacité de produire des échantillons de musique toujours longs. Cependant, nous reconnaissons qu'il existe plusieurs directions pour les travaux futurs. La production d'une grande musique doit être de haute qualité à toutes les échelles de temps. Les auteurs estiment que le modèle actuel est solide dans une échelle de temps moyenne. Les modèles produisent souvent de très bons échantillons sonores localement, avec une variété d'harmonies, de rythmes, d'instruments et de voix intéressants.

Les auteurs ont été impressionnés par le fait que la mélodie et le rythme générés correspondent très bien aux paroles particulières. Cependant, bien que l'échantillon soit cohérent sur une longue échelle de temps, il s'avère qu'il n'a pas la grande structure musicale traditionnelle (comme les refrains répétitifs ou la mélodie de questions-réponses). Vous pouvez également entendre du bruit et des rayures dans les petits tons.

De plus, avec le modèle actuel, il faut environ une heure pour générer un jeton de niveau supérieur ** 1 minute. ** Le processus de suréchantillonnage prend beaucoup de temps car les échantillons sont traités séquentiellement. Actuellement, il faut environ 8 heures pour suréchantillonner une minute de jetons de niveau supérieur.

8.Conclusion Jukebox est un modèle qui produit de la musique qui imite divers styles et artistes. Dans Jukebox, vous pouvez spécifier des exemples de paroles en fonction des chansons d'un artiste ou d'un genre spécifique. Les auteurs ont formé le VQ-VAE hiérarchique et exposé les détails nécessaires pour compresser efficacement la musique en jetons. Des études antérieures ont produit de la musique audio en direct dans la plage de 20 à 30 secondes. Cependant, notre modèle a permis de générer des chansons d'une durée de quelques minutes et qui ont le son naturel d'une voix chantante reconnaissable.

en conclusion

Je voudrais corriger toute erreur dans la compréhension du document lors de sa mise en œuvre.

Recommended Posts

(Lecture du papier) Jukebox: A Generative Model for Music Prafulla (Échantillonnage de musique avec VQ-VAE)
Création d'une image trompeuse pour le modèle de génération de légende
Création d'un modèle d'estimation de position pour la compétition d'intelligence humaine de loup à l'aide de l'apprentissage automatique
Éviter les pièges de l'utilisation d'un Mac (pour les utilisateurs Linux?)
Essayez une recherche similaire de recherche d'images à l'aide du SDK Python [Recherche]
J'ai fait un modèle VGG16 en utilisant TensorFlow (en chemin)
Essayez de modéliser une distribution multimodale à l'aide de l'algorithme EM
Introduction au Deep Learning pour la première fois (Chainer) Reconnaissance de caractères japonais Chapitre 3 [Reconnaissance de caractères à l'aide d'un modèle]