[PYTHON] L'histoire de la création d'un réseau neuronal de génération musicale

J'ai créé un réseau neuronal de génération musicale en utilisant mon propre analyseur MIDI et LSTM. Récemment, il y a un projet comme Magenta et il semble être le nième brassage, mais lorsque j'ai modifié la méthode d'échantillonnage à partir de la distribution de probabilité de sortie, un résultat peu intéressant a été obtenu. Je l'ai donc je vais le partager.

Démo (* Notez le volume pour une lecture immédiate) Dépôt

LSTM C'est une sorte de réseau de neurones qui permet d'apprendre le contexte des données séquentielles. Pour plus de détails, je laisse le soin aux nombreux bons articles. Ce qui suit est détaillé.

MIDI(SMF) C'est un format dans lequel les données de performance sont exprimées sous la forme d'une séquence de morceaux avec hauteur, volume, informations de temps, etc. Utilisez (une partie de) cette séquence comme entrée du LSTM.

Flux de processus

  1. Analysez le fichier MIDI à apprendre et convertissez les morceaux en chaînes
  2. Entraînez votre modèle en utilisant une séquence de morceaux transformés
  3. Générez des données texte qui expriment des données MIDI basées sur le modèle créé et une séquence de blocs appropriés. ** Ajoutez le caractère aléatoire en modifiant les paramètres utilisés pour l'échantillonnage à partir de la distribution de probabilité à chaque fois que la sortie du modèle. ** **
  4. Convertir la sortie en MIDI

résultat

Quand j'ai essayé de produire des éléments avec une faible probabilité d'occurrence à une certaine fréquence, une chanson avec une chanson originale légèrement arrangée a été générée.

Remarques

L'analyseur MIDI fait maison est actuellement assez simple, et il y a des morceaux et des informations qui n'ont pas été traités, donc si vous en faites un peu plus, la qualité de la sortie s'améliorera.

Recommended Posts

L'histoire de la création d'un réseau neuronal de génération musicale
Visualisez la couche interne du réseau neuronal
L'histoire de la création d'un générateur d'icônes mel
Implémentation d'un réseau de neurones à deux couches 2
Touchez l'objet du réseau neuronal
L'histoire de l'exportation d'un programme
L'histoire de la création d'un bot de boîte à questions avec discord.py
L'histoire de la fabrication d'un moule immuable
L'histoire de la création d'un pilote standard pour db avec python.
L'histoire du traitement A du blackjack (python)
L'histoire de la création d'un module qui ignore le courrier avec python
Comprendre le nombre de paramètres d'entrée / sortie du réseau neuronal convolutif
L'histoire de la création d'un robot LINE pour le petit-déjeuner d'une université de 100 yens avec Python
L'histoire de la création d'une caméra sonore avec Touch Designer et ReSpeaker
L'histoire de la création d'un package qui accélère le fonctionnement de Juman (Juman ++) & KNP
L'histoire de la création du Mel Icon Generator version 2
L'histoire de sys.path.append ()
L'histoire de la fabrication d'une boîte qui interconnecte la mémoire AL de Pepper et MQTT
L'histoire de la création d'une application Web qui enregistre des lectures approfondies avec Django
L'histoire de la création d'un Line Bot qui nous raconte le calendrier de la programmation du concours
Une histoire qui réduit l'effort de fonctionnement / maintenance
L'histoire de la création d'une partition de type Hanon avec Python
Bases de PyTorch (2) -Comment créer un réseau de neurones-
Une histoire sur le changement du nom principal de BlueZ
Implémentation d'un réseau de neurones convolutifs utilisant uniquement Numpy
Le problème Zip 4 Gbyte est une histoire du passé
Une histoire qui a analysé la livraison de Nico Nama.
Implémenter un réseau neuronal à 3 couches
L'histoire de la construction de Zabbix 4.4
L'histoire de la création d'un canal VIP dans le chatwork en interne
Un diagramme de réseau a été créé avec les données du COVID-19.
L'histoire du champ de modèle Django disparaissant de la classe
Construction d'un réseau neuronal qui reproduit XOR par Z3
L'histoire de la création d'une base de données à l'aide de l'API Google Analytics
J'ai essayé de prédire le genre de musique à partir du titre de la chanson sur le réseau neuronal récurrent
Comment dessiner facilement la structure d'un réseau de neurones sur Google Colaboratory à l'aide de "convnet-tiroir"
Une histoire coincée avec l'installation de la bibliothèque de machine learning JAX
L'histoire de Python et l'histoire de NaN
Résumons les fonctions de base de TensorFlow en créant un réseau neuronal qui apprend les portes XOR.
Qu'est-ce que le réseau neuronal convolutif?
J'ai essayé de mettre en œuvre un réseau de neurones à deux couches
L'histoire de la création d'un site qui répertorie les dates de sortie des livres
L'histoire du "trou" dans le fichier
Une commande pour vérifier facilement la vitesse du réseau sur la console
[Pythonista] L'histoire de la réalisation d'une action pour copier le texte sélectionné
L'histoire de la création d'un outil qui fonctionne sur Mac et Windows sur le site de développement de jeux
L'histoire du remontage du serveur d'application
[NNabla] Comment supprimer le niveau intermédiaire d'un réseau prédéfini
Génération de séries temporelles par réseau neuronal récurrent (traduction magenta ① où l'intelligence artificielle fait de l'art et de la musique)
L'histoire de la création d'un slackbot qui génère un gif ou un png lorsque vous envoyez le code de traitement
L'histoire de la création d'un outil pour charger une image avec Python ⇒ l'enregistrer sous un autre nom
Une histoire qui visualise le présent de Qiita avec Qiita API + Elasticsearch + Kibana
L'histoire d'un capteur de stationnement en 10 minutes avec le kit de démarrage GrovePi +
Créez un classificateur avec un taux de reconnaissance de l'écriture manuscrite de 99,2% à l'aide du réseau neuronal convolutif TensorFlow
J'ai essayé d'améliorer la précision de mon propre réseau neuronal
L'histoire du développement d'une application WEB qui génère automatiquement des copies de capture [MeCab]