Riffusion is een machine learning-systeem met stabiele diffusie dat is aangepast voor muzikale synthese
De lancering van een nieuw project genaamd "Riffusion" is aangekondigd. Het ontwikkelt een variant van het machine learning-systeem Stable Diffusion , aangepast om muziek te genereren in plaats van afbeeldingen. De muziek kan worden gesynthetiseerd op basis van een voorgestelde sjabloon of een beschrijving in natuurlijke taal.
De componenten voor muzieksynthese zijn geschreven in Python met behulp van het PyTorch-framework en zijn beschikbaar onder de MIT-licentie.
Het project is interessant omdat het nog steeds gebruikmaakt van "tekst-naar-beeld" en "beeld-naar-beeld" modellen voor muziekgeneratie, maar spectrogrammen manipuleert alsof het afbeeldingen zijn.
Met andere woorden, klassieke stabiele diffusie is niet gebaseerd op foto's en afbeeldingen, maar op spectrogrammen die de verandering in frequentie en amplitude van de geluidsgolf in de loop van de tijd weergeven. Bijgevolg wordt er ook een spectrogram gevormd aan de uitgang, dat vervolgens wordt omgezet in een audio-representatie.
Dit is het v1.5 stabiele diffusiemodel zonder aanpassingen, alleen gemonteerd op tekstgepaarde spectrogramafbeeldingen. Audioverwerking vindt stroomafwaarts van het model plaats.
U kunt oneindig veel variaties op een advertentie genereren door de seed te variëren. Allemaal dezelfde webgebruikersinterfaces en technieken zoals img2img, inpainting, negatieve indicaties en interpolatie werken kant-en-klaar.
spectrogrammen
Een audiospectrogram is een visuele manier om de frequentie-inhoud van een geluidsfragment weer te geven. De x-as vertegenwoordigt de tijd en de y-as vertegenwoordigt de frequentie. De kleur van elke pixel geeft de amplitude van de audio weer op de frequentie en tijd die wordt gegeven door de rij en kolom.
Er wordt vermeld dat de methode ook gebruikt kan worden om bestaande geluidscomposities te bewerken en samplemuziek te synthetiseren, vergelijkbaar met beeldbewerking in Stable Diffusion.
De generatie kan bijvoorbeeld sample-spectrogrammen instellen op een referentiestijl, verschillende stijlen combineren, soepel overgaan van de ene stijl naar de andere, of wijzigingen aanbrengen in een bestaand geluid om problemen op te lossen zoals het verhogen van het volume van individuele instrumenten, het veranderen van het ritme en vervanging van instrumenten.
De STFT is inverteerbaar, dus de originele audio kan worden gereconstrueerd uit een spectrogram. De spectrogrambeelden van ons model bevatten echter alleen de amplitude van de sinusgolven en niet de fasen, omdat de fasen chaotisch en moeilijk te leren zijn. In plaats daarvan gebruiken we het Griffin-Lim-algoritme om de fase te benaderen bij het reconstrueren van de audioclip.
De patronen worden ook gebruikt om composities van lange duur te genereren, bestaande uit een reeks dicht opeengepakte passages die in de loop van de tijd enigszins variëren. De afzonderlijk gegenereerde fragmenten worden samengevoegd tot een continue stroom door de interne parameters van het model te interpoleren.
De frequentiebakken in ons spectrogram gebruiken de Mel-schaal, een perceptuele schaal van toonhoogtes die door luisteraars worden beoordeeld als op dezelfde afstand van elkaar.
Hieronder is een met de hand getekende afbeelding geïnterpreteerd als een spectrogram en omgezet in audio. Speel het door om een ​​intuïtief gevoel te krijgen voor hoe ze werken. Merk op hoe je de tonen van de twee curven in de onderste helft kunt horen, en hoe de vier verticale lijnen in de bovenste helft ritmes produceren die lijken op een hi-hatgeluid.
Een Fourier-transformatie (een wiskundige transformatie die wordt gebruikt om signalen tussen het tijdsdomein en het frequentiedomein te transformeren) wordt gebruikt om van geluid een spectrogram te maken. Bij het recreëren van geluid uit een spectrogram is er een probleem met fasebepaling (alleen frequentie en amplitude zijn aanwezig in het spectrogram), waarvoor het Griffin-Lim benaderingsalgoritme wordt gebruikt.
De interface is geïmplementeerd in TypeScript en wordt ook gedistribueerd onder de MIT-licentie . De getrainde modellen worden vrijgegeven onder de permissieve Creative ML OpenRAIL-M-licentie voor commercieel gebruik.
Wil je er meer over weten, dan kun je de details bekijken via de volgende link.