Le projet Riffusion développe une variante du système d'apprentissage automatique Stable Diffusion, adapté pour générer de la musique au lieu d'images. La musique peut être synthétisée à partir d'une description textuelle en langage naturel ou sur la base d'un modèle proposé. Les composants pour la synthèse musicale sont écrits en Python en utilisant le framework PyTorch et sont disponibles sous licence MIT. L'interface est réalisée en TypeScript et est également distribuée sous licence MIT. Les modèles entraînés sont ouverts sous une licence permissive Creative ML OpenRAIL-M, permettant une utilisation à des fins commerciales.
Le projet est intéressant car il continue d'utiliser pour la génération de musique des modèles « du texte à l'image » et « de l'image à l'image », mais en manipulant des spectrogrammes comme images. En d'autres termes, le classique Stable Diffusion n'est pas entraîné sur des photographies et des images, mais sur des images de spectrogrammes, reflétant le changement de fréquence et d'amplitude d'une onde sonore dans le temps. Par conséquent, à la sortie, un spectrogramme est également formé, qui est ensuite transformé en représentation sonore.

La méthode peut également être utilisée pour modifier des compositions sonores existantes et synthétiser de la musique à partir d'un modèle, similaire à la modification d'images dans Stable Diffusion. Par exemple, lors de la génération, des échantillons de spectrogrammes avec un style de référence peuvent être spécifiés, différents styles peuvent être combinés, une transition fluide d'un style à un autre peut être effectuée, ou des modifications peuvent être apportées au son existant pour des tâches telles que l'augmentation du volume de certains instruments, le changement de rythme et le remplacement d'instruments. Des échantillons sont également utilisés pour générer des compositions longues, composées d'une série de morceaux proches les uns des autres, se modifiant légèrement dans le temps. Les extraits générés séparément sont réunis en un flux continu à l'aide de l'interpolation des paramètres internes du modèle.

Pour créer un spectrogramme à partir du son, on utilise la transformation de Fourier à fenêtre. Lors de la reconstruction du son à partir du spectrogramme, une problématique se pose concernant la détermination de la phase (le spectrogramme ne contient que la fréquence et l'amplitude), pour laquelle un algorithme d'approximation de Griffin-Lim est impliqué.
Source : opennet.ru
