Riffusion est un système d'apprentissage automatique à diffusion stable adapté à la synthèse musicale
Le lancement d'un nouveau projet, « Riffusion », a été annoncé. Ce projet développe une variante du système d'apprentissage automatique Stable Diffusion, adaptée à la génération de musique plutôt que d'images. La musique peut être synthétisée à partir d'un modèle suggéré ou d'une description textuelle en langage naturel.
Les composants de synthèse musicale sont écrits en Python à l'aide du framework PyTorch et sont disponibles sous licence MIT.
Ce projet est intéressant car il continue d'utiliser des modèles « texte-à-image » et « image-à-image » pour la génération musicale, mais manipule les spectrogrammes comme s'il s'agissait d'images.
En d'autres termes, la diffusion stable classique ne repose pas sur des photographies et des images, mais sur des spectrogrammes qui reflètent l'évolution de la fréquence et de l'amplitude de l'onde sonore au fil du temps. Par conséquent, un spectrogramme est également formé en sortie, puis converti en un signal audio.
Il s'agit du modèle de diffusion stable v1.5 sans modifications, juste ajusté sur des images de spectrogramme appariées par du texte. Le traitement audio se produit en aval du modèle.
Vous pouvez générer des variations infinies d'une annonce en faisant varier la graine. Toutes les mêmes interfaces utilisateur Web et techniques telles que img2img, inpainting, indications négatives et interpolation fonctionnent immédiatement.
spectrogrammes
Un spectrogramme audio est une manière visuelle de représenter le contenu fréquentiel d'un clip sonore. L'axe des x représente le temps et l'axe des y représente la fréquence. La couleur de chaque pixel donne l'amplitude de l'audio à la fréquence et à l'heure données par sa ligne et sa colonne.
Il est mentionné que la méthode peut également être utilisée pour modifier des compositions sonores existantes et synthétiser des échantillons musicaux, de manière similaire à la modification d'images dans Stable Diffusion.
Par exemple, la génération peut définir des spectrogrammes d'échantillons sur un style de référence, combiner différents styles, passer en douceur d'un style à un autre ou apporter des modifications à un son existant pour résoudre des problèmes tels que l'augmentation du volume d'instruments individuels, la modification du rythme et le remplacement. d'instruments.
Le STFT est inversible, de sorte que l'audio d'origine peut être reconstruit à partir d'un spectrogramme. Cependant, les images du spectrogramme de notre modèle ne contiennent que l'amplitude des ondes sinusoïdales et non les phases, car les phases sont chaotiques et difficiles à apprendre. Au lieu de cela, nous utilisons l'algorithme Griffin-Lim pour approximer la phase lors de la reconstruction du clip audio.
Ces motifs servent également à générer des compositions de longue durée, composées d'une série de passages rapprochés qui varient légèrement au fil du temps. Les fragments générés séparément sont combinés en un flux continu par interpolation des paramètres internes du modèle.
Les cases de fréquence de notre spectrogramme utilisent l'échelle Mel, qui est une échelle perceptuelle de hauteurs jugées par les auditeurs comme étant à la même distance les unes des autres.
Ci-dessous, une image dessinée à la main interprétée comme un spectrogramme et convertie en audio. Jouez-y pour avoir une idée intuitive de leur fonctionnement. Remarquez comment vous pouvez entendre les tonalités des deux courbes dans la moitié inférieure et comment les quatre lignes verticales de la moitié supérieure produisent des rythmes similaires à un son de charleston.
Une transformée de Fourier (une transformation mathématique utilisée pour transformer les signaux entre le domaine temporel et le domaine fréquentiel) est utilisée pour créer un spectrogramme à partir du son. Lors de la recréation du son à partir d'un spectrogramme, il y a un problème avec la détermination de la phase (seules la fréquence et l'amplitude sont présentes dans le spectrogramme), pour laquelle la reconstruction de l'algorithme d'approximation de Griffin-Lim est utilisée.
L'interface est implémentée en TypeScript et distribuée sous licence MIT . Les modèles entraînés sont publiés sous la licence permissive Creative ML OpenRAIL-M pour un usage commercial.
Si vous souhaitez en savoir plus, vous pouvez consulter les détails en suivant ce lien.