Il progetto Riffusion sviluppa una variante del sistema di apprendimento automatico Stable Diffusion, adattato per la generazione di musica invece che di immagini. La musica può essere sintetizzata da una descrizione testuale in linguaggio naturale o in base a un modello proposto. I componenti per la sintesi musicale sono scritti in Python utilizzando il framework PyTorch e sono disponibili sotto licenza MIT. Il wrapping dell'interfaccia è realizzato in TypeScript ed è anch'esso distribuito sotto licenza MIT. I modelli addestrati sono aperti sotto la licenza permissiva Creative ML OpenRAIL-M, che consente l'uso per scopi commerciali.
Il progetto è interessante perché continua a utilizzare per la generazione musicale modelli "da testo a immagine" e "da immagine a immagine", ma manipola le spettrogrammi come immagini. In altre parole, il classico Stable Diffusion è stato addestrato non su fotografie e immagini, ma su immagini di spettrogrammi che riflettono il cambiamento di frequenza e ampiezza dell'onda sonora nel tempo. Di conseguenza, anche in output viene generato uno spettrogramma, che viene poi trasformato in una rappresentazione sonora.

Il metodo può anche essere utilizzato per modificare composizioni sonore esistenti e per sintetizzare musica secondo un campione, analogamente alla modifica delle immagini in Stable Diffusion. Ad esempio, durante la generazione possono essere forniti campioni 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 esigenze come l'aumento del volume di singoli strumenti, la modifica del ritmo e la sostituzione di strumenti. I campioni vengono anche utilizzati per generare composizioni di lunga durata, composte da una serie di frammenti simili tra loro, che cambiano leggermente nel tempo. I frammenti generati separatamente vengono uniti in un flusso continuo tramite l'interpolazione dei parametri interni del modello.

Per creare uno spettrogramma dal suono viene utilizzata la trasformata di Fourier a finestra. 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 cui ricostruzione viene utilizzato l'algoritmo di approssimazione di Griffin-Lim.
Fonte: opennet.ru
