音樂也逃不過AIGC:國風(fēng)搖滾都來得(內(nèi)藏ikun彩蛋)
再多看一眼就會(huì)爆炸,是個(gè)什么感覺?
克雷西 發(fā)自 凹非寺
量子位 | 公眾號(hào) QbitAI
“再多看一眼就會(huì)爆炸,再靠近點(diǎn)就快被融化”到底是個(gè)什么感覺?
(這是一句《只因你太美》中的歌詞)
下面的音樂或許能讓你體會(huì)到這種“從來未有”的feel,坤坤聽了都會(huì)直呼內(nèi)行。
【音頻效果請(qǐng)移步公眾號(hào)文章】
這段音樂來自Meta最新推出的文生音樂工具M(jìn)usicGen。
只需要輸入一段文字,點(diǎn)擊生成按鈕就能得到一段最長(zhǎng)30秒的音樂,而且支持中文。
不懂樂理也沒關(guān)系,MusicGen還可以上傳已有的音樂作為參照。
【音頻效果請(qǐng)移步公眾號(hào)文章】
比如上面這段音樂就是結(jié)合了原曲旋律重新生成的。
如果你實(shí)在不知道怎么prompt,也可以像這位網(wǎng)友一樣問問ChatGPT:

無論是國風(fēng)還是搖滾風(fēng)都能輕松駕馭,甚至是兩者結(jié)合。
【音頻效果請(qǐng)移步公眾號(hào)文章】
哪怕國風(fēng)伴奏也難不倒MusicGen。
【音頻效果請(qǐng)移步公眾號(hào)文章】
測(cè)試結(jié)果顯示,MusicGen的綜合評(píng)分比谷歌的MusicLM高出了5.36%。

有網(wǎng)友給出了詳細(xì)的測(cè)評(píng)體驗(yàn):
這個(gè)模型似乎沒有專門針對(duì)樂隊(duì)名稱進(jìn)行訓(xùn)練,但用已有的風(fēng)格生成音樂時(shí)表現(xiàn)非常好。
……
盡管(項(xiàng)目)網(wǎng)站中的示例是(開發(fā)者)挑選過的,但這并不能否定它可以生成好的作品。

如何實(shí)現(xiàn)
音樂的合成涉及多段旋律以及多種音色(樂器)之間的協(xié)調(diào)。
而不同于語音合成,人類對(duì)音樂之中的不和諧因素更為敏感。
那么MusicGen是如何完成這一復(fù)雜任務(wù)的呢?
我們先來看看它的訓(xùn)練數(shù)據(jù)。
Meta團(tuán)隊(duì)一共使用了兩萬小時(shí)的音樂。
這之中包括一萬條內(nèi)部搜集的高質(zhì)量音軌以及ShutterStock和Pond5素材庫中的數(shù)據(jù)。
來自后兩者的數(shù)據(jù)量分別為2.5萬和36.5萬。
這些音樂數(shù)據(jù)在32kHz下被重新采樣,都配有流派、BPM等基本信息和復(fù)雜一些的文字說明。
除了上述訓(xùn)練數(shù)據(jù),Meta團(tuán)隊(duì)還準(zhǔn)備了評(píng)價(jià)數(shù)據(jù)集MusicCaps。
MusicCaps由5500條專業(yè)作曲家譜寫的10秒長(zhǎng)的音樂構(gòu)成,其中包括一千條平衡各個(gè)音樂流派的子集。
說完訓(xùn)練數(shù)據(jù),我們來具體看看MusicGen的工作流程。
第一步是將聲音信息轉(zhuǎn)化為token。
這一步使用的是Meta去年研發(fā)的卷積網(wǎng)絡(luò)編碼器EnCodec。
至于編碼方式,Meta團(tuán)隊(duì)通過實(shí)驗(yàn)對(duì)四種不同的方式進(jìn)行了測(cè)試。
最終,團(tuán)隊(duì)選擇了延時(shí)模式(下圖右下)并進(jìn)行了精準(zhǔn)建模。

最核心的Transformer部分,團(tuán)隊(duì)訓(xùn)練了300M、1.5B、3.3B三個(gè)不同參數(shù)量的自回歸式Transformer。
在混合精度下,訓(xùn)練上述三個(gè)參數(shù)量的Transformer分別使用了32、64和96塊GPU。
對(duì)于文字處理,在評(píng)估了多個(gè)前人成果后Meta團(tuán)隊(duì)最終選用了Google團(tuán)隊(duì)2020年提出的T5模型。
對(duì)于音樂旋律的調(diào)整,團(tuán)隊(duì)選用了無監(jiān)督的方式進(jìn)行,規(guī)避了監(jiān)督數(shù)據(jù)不佳導(dǎo)致的過擬合問題。
最終,Transformer輸出的數(shù)據(jù)被轉(zhuǎn)換為對(duì)數(shù)形式,然后根據(jù)編碼本生成最終的成品。
體驗(yàn)方式
目前,想要體驗(yàn)MusicGen,一共有三種方式。
第一種方式是直接用官方在Hugging Face發(fā)布的DEMO。
(傳送門見文末)
這種方法操作最為簡(jiǎn)單,點(diǎn)進(jìn)鏈接就能用。
缺點(diǎn)是得排隊(duì),有時(shí)候還會(huì)趕上服務(wù)器被擠爆、重新building等情況。
第二種是通過谷歌Colab搭建。
比第一種多了個(gè)一鍵部署的步驟,不過也比較簡(jiǎn)單,官方已經(jīng)把部署要用的代碼準(zhǔn)備好了。
(傳送門見文末)

進(jìn)入之后,點(diǎn)擊左上角的運(yùn)行按鈕即可完成一鍵部署,然后會(huì)得到一個(gè)專屬鏈接,點(diǎn)進(jìn)去就可以體驗(yàn)了。

不過這種操作方式需要谷歌賬號(hào)才能用。
第三種方式則是自行部署。
你需要有足夠性能的GPU,且已經(jīng)安裝了PyTorch2.0或以上版本。
使用下面的命令即可完成安裝:

安裝好后,使用【python app.py】命令即可運(yùn)行。
傳送門
Hugging Face:
https://huggingface.co/spaces/facebook/MusicGen
谷歌Colab:
https://colab.research.google.com/drive/1-Xe9NCdIs2sCUbiSmwHXozK6AAhMm7_i?usp=sharing
論文地址:
https://arxiv.org/abs/2306.05284
GitHub頁面:
https://github.com/facebookresearch/audiocraft
參考鏈接:
[1]https://twitter.com/dr_cintas/status/1667597176145313793
[2]https://twitter.com/nikhilaravi/status/1667692767534006273
[3]https://news.ycombinator.com/item?id=36271926