Projekt Riffusion rozwija wariant systemu uczenia maszynowego Stable Diffusion, dostosowany do generowania muzyki zamiast obrazów. Muzyka może być syntetyzowana na podstawie opisu w naturalnym języku lub zaproponowanego szablonu. Komponenty do syntezy muzyki są napisane w języku Python z wykorzystaniem frameworka PyTorch i są dostępne na licencji MIT. Interfejs został zaimplementowany w TypeScript i również jest dystrybuowany na licencji MIT. Wytrenowane modele są udostępniane na permissywnej licencji Creative ML OpenRAIL-M, zezwalającej na wykorzystanie w celach komercyjnych.
Projekt jest interesujący, ponieważ kontynuuje wykorzystanie modeli 'z tekstu na obraz' i 'z obrazu na obraz' do generowania muzyki, ale zamiast obrazów manipuluje spektrogramami. Innymi słowy, klasyczny Stable Diffusion został wytrenowany nie na zdjęciach i obrazkach, ale na obrazach spektrogramów, które odzwierciedlają zmiany częstotliwości i amplitudy fali dźwiękowej w czasie. W związku z tym na wyjściu również formowana jest spektrogram, która następnie jest przekształcana w dźwiękowe przedstawienie.

Metoda ta może również być wykorzystywana do zmiany istniejących kompozycji dźwiękowych i syntezy muzyki na podstawie wzorców, analogicznie do modyfikacji obrazów w Stable Diffusion. Na przykład, podczas generacji można podawać wzorce spektrogramów w pożądanym stylu, łączyć różne style, realizować płynne przejście z jednego stylu do drugiego lub wprowadzać zmiany w istniejącym dźwięku w celu rozwiązania takich problemów, jak zwiększenie głośności poszczególnych instrumentów, zmiana rytmu i zastępowanie instrumentów. Wzorce są również używane do generowania długotrwałych kompozycji, komponowanych z serii bliskich sobie fragmentów, które nieco zmieniają się w czasie. Oddzielnie generowane fragmenty łączone są w ciągły strumień za pomocą interpolacji wewnętrznych parametrów modelu.

Do tworzenia spektrogramu z dźwięku stosuje się okienkowe przekształcenie Furiere'a. Podczas rekonstrukcji dźwięku z spektrogramu pojawia się problem z określeniem fazy (na spektrogramie obecne są tylko częstotliwość i amplituda), do rekonstrukcji której wykorzystywany jest algorytm aproksymacji Griffina-Lima.
Źródło: opennet.ru
