Stable Diffusion 被兩位普林斯頓校友玩出花兒來了。
這是一張 Stable Diffusion 生成的圖片:
先别着急說 " 醜 ",仔細看,其實這是一份頻譜圖。
還是真的能轉換成一段音樂的那種!
并且兩位作者還表示:
隻是對 Stable Diffusion 的 1.5 版本進行了微調。
這個會創作音樂的 Stable Diffusion 名叫Riffusion(riff+Diffusion),現在打開網頁就能玩。
輸入提示詞,即可獲得一段對應的音樂。比如,輸入 " 民謠,女聲引入,過渡到青少年流行歌星 "。
生成的音樂是醬嬸的:
這麼一個音樂版 Stable Diffusion,上線後立即引來不少網友圍觀。
連作者自己都趕緊抛出來說:試不上别着急,等我們擴充下 GPU。
而有網友已經開始為電子音樂從業者們擔心了:
它會像核彈一樣沖擊電子音樂。
那麼問題來了——
Riffusion 怎麼做到的?
就像開頭說到的,作者表示,他們沒對 Stable Diffusion v1.5 做任何修改。
隻是用與文本配對的頻譜圖數據,對模型進行了微調。
這樣一來,Riffusion 就能根據提示詞,生成對應的頻譜圖了。
這裡需要補充的背景知識是,利用短時傅裡葉變換(STFT),我們可以從音頻中計算出頻譜圖。而短時傅裡葉變換是可逆的,所以根據頻譜圖,我們也可以重建出一段音頻。
不過,作者提到,因為相位具有混沌性,模型學起來比較困難。所以 Riffusion 生成的頻譜圖像,其實隻有正弦波的振幅,而不包含相位。
實際在重建音頻剪輯時,作者們是采用 Griffin-Lim 算法來近似相位的。
值得一提的是,就像 Stable Diffusion 能根據文字提示 P 圖,Riffusion 也能夠依照文本指示,修改音樂的細節。
比如把開頭那段薩克斯即興重複段(也就是 riff):
改成鋼琴版:
絲滑過渡
看到這裡你可能會覺得,Riffusion 生成的 riff 有點短啊。
但其實,Riffusion 也有一些時長更長的作品。關鍵是怎麼把不同的音樂片段串聯起來。
比如先來一段 rap,再自然過渡到爵士樂:
作者們采用的策略,是先選取一個初始頻譜圖,然後通過改變種子和提示詞,去不斷修改這張圖,使其産生新的變化。
而為了使整段音樂更加和諧統一,作者們還在模型的隐空間内進行了插值。
具體而言,可以對具有兩個不同種子的提示的隐空間進行采樣,也可以對具有相同種子的兩個不同提示的隐空間進行采樣。
關于作者
如果你對 Riffusion 感興趣,戳進文末鍊接就可以直接體驗起來了 ~
最後的最後,還得提一嘴,Riffusion 其實是個 "業餘項目"。
它的作者是兩位普林斯頓校友。
其中,Seth Forsgren 本科在普林斯頓學生物,畢業後搞了不少軟件創業項目,今年剛把一個能把手機變成對講機的項目賣掉。
而 Hayk Martiros 則是美國無人機獨角獸 Skydio 的技術專家,同樣在普林斯頓本科畢業,後來在斯坦福讀完了研究生。
在線試玩:
https://www.riffusion.com/?&prompt=jack+johnson+vocals
參考鍊接:
https://www.riffusion.com/about