Riffusion är ett maskininlärningssystem för stabil diffusion anpassat för musiksyntes
Lanseringen av ett nytt projekt kallat "Riffusion" tillkännagavs. Det utvecklar en variant av maskininlärningssystemet Stable Diffusion, anpassat för att generera musik istället för bilder. Musiken kan syntetiseras baserat på en föreslagen mall eller en textbeskrivning i naturligt språk.
Musiksynteskomponenterna är skrivna i Python med PyTorch-ramverket och är tillgängliga under MIT-licensen.
Projektet är intressant eftersom det fortsätter att använda modeller av typen "text-till-bild" och "bild-till-bild" för musikgenerering, men manipulerar spektrogram som om de vore bilder.
Med andra ord är klassisk stabil diffusion inte baserad på fotografier och bilder, utan på spektrogrambilder som återspeglar förändringen i ljudvågens frekvens och amplitud över tid. Följaktligen bildas även ett spektrogram vid utgången, vilket sedan omvandlas till en ljudrepresentation.
Detta är den stabila diffusionsmodellen v1.5 utan modifieringar, bara monterad på textparade spektrogrambilder. Ljudbehandling sker nedströms om modellen.
Du kan generera oändliga varianter av en annons genom att variera fröet. Samma webbanvändargränssnitt och tekniker som img2img, inpainting, negativa indikationer och interpolation fungerar direkt.
spektrogram
Ett ljudspektrogram är ett visuellt sätt att representera frekvensinnehållet i ett ljudklipp. X-axeln representerar tid och y-axeln representerar frekvens. Färgen på varje pixel ger ljudets amplitud vid den frekvens och tid som ges av dess rad och kolumn.
Det nämns att metoden även kan användas för att modifiera befintliga ljudkompositioner och syntetisera samplingsmusik, liknande bildmodifiering i Stable Diffusion.
Till exempel kan generationen ställa in sampelspektrogram till en referensstil, kombinera olika stilar, smidig övergång från en stil till en annan, eller göra ändringar i ett befintligt ljud för att lösa problem som att öka volymen på enskilda instrument, ändra rytmen och byta ut av instrument.
STFT är inverterbar, så det ursprungliga ljudet kan rekonstrueras från ett spektrogram. Spektrogrambilderna av vår modell innehåller dock bara sinusvågornas amplitud och inte faserna, eftersom faserna är kaotiska och svåra att lära sig. Istället använder vi Griffin-Lim-algoritmen för att approximera fasen när vi rekonstruerar ljudklippet.
Mönstren används också för att generera kompositioner med lång varaktighet, bestående av en serie tätt placerade passager som varierar något över tid. De separat genererade fragmenten kombineras till ett kontinuerligt flöde genom att interpolera modellens interna parametrar.
Frekvensfacken i vårt spektrogram använder Mel-skalan, som är en perceptuell skala av tonhöjder som av lyssnare bedöms vara på samma avstånd från varandra.
Nedan är en handritad bild tolkad som ett spektrogram och konverterad till ljud. Spela igenom det för att få en intuitiv känsla för hur de fungerar. Lägg märke till hur du kan höra tonerna av de två kurvorna i den nedre halvan, och hur de fyra vertikala linjerna i den övre halvan producerar rytmer som liknar ett hi-hat-ljud.
En Fouriertransform (en matematisk transformation som används för att transformera signaler mellan tidsdomänen och frekvensdomänen) används för att skapa ett spektrogram från ljud. När ljud återskapas från ett spektrogram finns det ett problem med fasbestämningen (endast frekvens och amplitud finns i spektrogrammet), för vilken rekonstruktion används Griffin-Lim approximationsalgoritmen.
Gränssnittet är implementerat i TypeScript och distribueras även under MIT-licensen . De tränade modellerna släpps under den tillåtande Creative ML OpenRAIL-M-licensen för kommersiellt bruk.
Om du vill veta mer om det kan du se detaljerna på följande länk.