Il progetto Riffusion sviluppa una variante del sistema di apprendimento automatico Stable Diffusion, adattata per generare musica invece di immagini. La musica può essere sintetizzata da una descrizione testuale in linguaggio naturale o sulla base di un modello suggerito. I componenti per la sintesi musicale sono scritti in Python utilizzando il framework PyTorch e sono disponibili sotto licenza MIT. Il wrapper dell'interfaccia è realizzato in TypeScript e anch'esso è distribuito sotto licenza MIT. I modelli addestrati sono aperti con una licenza permissiva Creative ML OpenRAIL-M, che consente l'uso a fini commerciali.
Il progetto è interessante poiché continua a utilizzare modelli 'da testo a immagine' e 'da immagine a immagine' per generare musica, ma manipola spettrogrammi al posto delle immagini. In altre parole, il classico Stable Diffusion è stato addestrato non su fotografie e disegni, ma su immagini di spettrogrammi che riflettono la variazione di frequenza e ampiezza dell'onda sonora nel tempo. Di conseguenza, anche in uscita si forma uno spettrogramma, che viene poi trasformato in una rappresentazione sonora.

Il metodo può anche essere utilizzato per modificare composizioni sonore esistenti e sintetizzare musica in base a modelli, analogamente alla modifica delle immagini in Stable Diffusion. Ad esempio, durante la generazione possono essere forniti modelli di spettrogrammi con uno stile di riferimento, combinare diversi stili, eseguire una transizione fluida da uno stile all'altro o apportare modifiche a un suono esistente per risolvere compiti come l'aumento del volume di singoli strumenti, la modifica del ritmo e la sostituzione degli strumenti. I modelli vengono anche utilizzati per generare composizioni a lungo termine, componendo una serie di frammenti simili tra loro, che cambiano leggermente nel tempo. I frammenti generati separatamente vengono uniti in un flusso continuo mediante l'interpolazione dei parametri interni del modello.

Per creare uno spettrogramma a partire da un suono si utilizza la trasformata di Fourier. Durante la ricostruzione del suono dallo spettrogramma si presenta il problema della determinazione della fase (nello spettrogramma sono presenti solo frequenza e ampiezza), per la ricostruzione della quale viene impiegato l'algoritmo di approssimazione di Griffin-Lim.
Fonte: opennet.ru
