利用人工智能編曲,似乎已經(jīng)不是一件新鮮事。
但是你有聽(tīng)說(shuō)哪個(gè) AI 發(fā)布專(zhuān)輯嗎?
這個(gè)專(zhuān)輯的作者是一個(gè)叫 DeepSlayerXL 的智能程序,它基于 Transformer-XL 語(yǔ)言模型訓(xùn)練,可以自動(dòng)生成金屬樂(lè)數(shù)據(jù)。
AI 寫(xiě)歌早就不新鮮了,不會(huì)譜曲都不好意思說(shuō)自己是人工智能,但是玩搖滾的 AI,確實(shí)是第一次出現(xiàn)。
創(chuàng)作金屬樂(lè)的 AI
DeepSlayerXL 的開(kāi)發(fā)者 Bernhard Mueller,青年時(shí)期參與金屬樂(lè)隊(duì)演奏,由此產(chǎn)生創(chuàng)作金屬樂(lè) AI 的想法。
Andrew Shaw 開(kāi)發(fā)的 musicautobot,最符合搖滾音樂(lè)創(chuàng)作,Bernhard Mueller 就在它的基礎(chǔ)上編寫(xiě)代碼,改造出能夠自動(dòng)生成金屬樂(lè)的程序 DeepSlayerXL。
它的內(nèi)核同樣離不開(kāi) Transformer-XL 語(yǔ)言訓(xùn)練模型。
該程序?qū)?MIDI 音樂(lè)數(shù)據(jù),轉(zhuǎn)換為語(yǔ)言模型可識(shí)別的編碼文本,訓(xùn)練具備自動(dòng)生成 token 編碼數(shù)據(jù)的能力后,以同樣的規(guī)則轉(zhuǎn)換為 MIDI 音樂(lè)數(shù)據(jù),完成編曲。
▲ 對(duì) MIDI 音樂(lè)進(jìn)行 token 編碼轉(zhuǎn)化。
有時(shí)候 AI 也免不了偷懶,直接拿訓(xùn)練過(guò)它的數(shù)據(jù)來(lái)用,也就是常說(shuō)的通用和弦。
由于對(duì)整體結(jié)構(gòu)沒(méi)有相應(yīng)的訓(xùn)練,DeepSlayerXL 還無(wú)法做到寫(xiě)出節(jié)拍一致結(jié)構(gòu)完整的曲子。
也是這個(gè)原因,使得它創(chuàng)作的音樂(lè)不受拘泥,跨越多個(gè)流派,具備獨(dú)特的風(fēng)格。
比如像這首《Arab Spring》,就是 DeepSlayerXL 音樂(lè)專(zhuān)輯的其中一個(gè)作品。
如果不說(shuō),誰(shuí)又能想到這是莫得感情的 AI 創(chuàng)作的呢?
GPT-3 點(diǎn)評(píng)金屬樂(lè)專(zhuān)輯
DeepSlayerXL 金屬樂(lè)專(zhuān)輯,靈感起源于它的開(kāi)發(fā)者 Bernhard Mueller 青年時(shí)期經(jīng)歷。由于受新金屬運(yùn)動(dòng)的影響,它的歌曲風(fēng)格多樣,集各類(lèi)型搖滾樂(lè)特色于一體。
在 Bernhard Mueller 練習(xí)演奏過(guò)程,以及對(duì)其他歌曲二次創(chuàng)作過(guò)程,萌生出結(jié)合語(yǔ)言模型創(chuàng)作歌曲的想法,由此誕生 DeepSlayerXL。
DeepSlayerXL 創(chuàng)作出來(lái)的歌曲,聽(tīng)來(lái)還是有點(diǎn)意思的,十分符合外行人對(duì)搖滾樂(lè)的印象。
比如這首《A Pumpkin's Life》,誰(shuí)聽(tīng)了不得感嘆一句“好像就是這個(gè)味”。
GPT-3 給這首歌做了個(gè)點(diǎn)評(píng),畢竟只有 AI 更懂 AI。
“這首歌和南瓜派沒(méi)有任何關(guān)系,它帶有 80 年代老式垃圾搖滾的痕跡。另外,這首歌的歌詞也讓它本身變得有趣,講述世界如何變得越來(lái)越危險(xiǎn),我們需要為接下來(lái)可能發(fā)生的事情做好準(zhǔn)備。這是一個(gè)非常深刻的哲學(xué)問(wèn)題?!?/p>
專(zhuān)輯中還有其他不錯(cuò)的歌曲,相應(yīng)的,像模像樣的 GPT-3 點(diǎn)評(píng)一個(gè)都沒(méi)少。
“《dark meter》與 Pink Floyd 甚至一些早期 Talking Heads 的音樂(lè)有更多共同之處,這是對(duì)熟悉流派的嘗試?!?/p>
“《This is the End》曲目融合了工業(yè)噪音和環(huán)境聲景,有時(shí)像在聽(tīng)混音帶。但是會(huì)出現(xiàn)噪音無(wú)縫轉(zhuǎn)化為輕松旋律的聲音,這是一個(gè)有趣的節(jié)奏變化?!?/p>
用 AI 創(chuàng)作金屬樂(lè)
會(huì)寫(xiě)歌的人工智能,誰(shuí)不想體驗(yàn)一下?
感興趣的朋友可以自行下載 PyTorch 模型,或者登陸 Colab notebook 在線(xiàn)平臺(tái)(鏈接均在文末)親自體驗(yàn)。
調(diào)整音樂(lè)序列長(zhǎng)度,通過(guò)修改這部分?jǐn)?shù)據(jù)來(lái)實(shí)現(xiàn)。
還可以自己輸入一小段音樂(lè)片段,讓程序補(bǔ)全一首歌。
就算完全不懂搖滾,也不了解代碼,照樣可以創(chuàng)作屬于你的金屬樂(lè)。
DeepSlayerXL 的原理
DeepSlayerXL 編曲金屬樂(lè)(甚至還出專(zhuān)輯),具體是怎么做到的?
和基礎(chǔ)程序 musicautobot 一樣,它們都依賴(lài)于 TransformerXL 模型訓(xùn)練數(shù)據(jù)。
用到的訓(xùn)練數(shù)據(jù)集,是從網(wǎng)絡(luò)上抓取的 3,604 首俄羅斯 MIDI 歌曲。將每首歌向任意方向移調(diào)半步,由此獲得了 18k 完整的 MIDI 歌曲訓(xùn)練數(shù)據(jù)。
在 MIDI 歌曲數(shù)據(jù)中,單一音符包含了間距和持續(xù)時(shí)間信息,并且在同一時(shí)間點(diǎn)可以存在多個(gè)音符。這樣的 2D 數(shù)據(jù)無(wú)法被 Transformer 模型識(shí)別,需要將其轉(zhuǎn)換為單一維度文本數(shù)據(jù)。
通過(guò) musicautobot 標(biāo)記和流行音樂(lè) Transformer 的 BAR 標(biāo)記規(guī)則,將每個(gè)音符的音高和時(shí)長(zhǎng)用對(duì)應(yīng) token 編碼,并在標(biāo)記中體現(xiàn)出音符演奏順序,解決多個(gè)音符疊加的識(shí)別難題。
鼓點(diǎn)信息由 DRUM [NUMBER] 標(biāo)記補(bǔ)充表示,這樣,MIDI 音樂(lè)數(shù)據(jù)就完全被轉(zhuǎn)化為由 token 編碼組成的文本(如前文所示)。
使用轉(zhuǎn)換為 token 編碼的 MIDI 數(shù)據(jù)集,對(duì) TransformerXL 模型訓(xùn)練 200 個(gè)小時(shí),完成語(yǔ)言學(xué)習(xí)。
自動(dòng)生成一系列 token 數(shù)據(jù)后,按照同樣的編碼規(guī)則,將其轉(zhuǎn)換為 MIDI 音樂(lè)數(shù)據(jù),完成金屬樂(lè)創(chuàng)作。
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。