基于深度神經(jīng)網(wǎng)絡(luò)進(jìn)行語(yǔ)音合成、音樂(lè)風(fēng)格遷移,正成為不少致力于“讓人人成為音樂(lè)家”的研究人員所追求的事情。像此前我們報(bào)道的微軟小冰作詞又作曲,AI幫清華博士寫(xiě)說(shuō)唱歌詞晉級(jí),甚至不久前中央音樂(lè)學(xué)院招音樂(lè)AI方向博士生。不久前,為了紀(jì)念著名作曲家巴赫誕辰,Google 根據(jù)巴赫合唱和聲訓(xùn)練而成的機(jī)器學(xué)習(xí)模式 Coconet 吸引了不少人前來(lái)圍觀。
最近,OpenAI最新研發(fā)的MuseNet的深度神經(jīng)網(wǎng)絡(luò),可以制作 4 分鐘時(shí)長(zhǎng)的音樂(lè)作品,其中涵蓋 10 種不同的樂(lè)器(如鋼琴、鼓、貝斯、吉他),甚至還能將諸如鄉(xiāng)村風(fēng)格、莫扎特風(fēng)格、甲殼蟲(chóng)樂(lè)隊(duì)風(fēng)格的音樂(lè)融合起來(lái)。
首先需要說(shuō)明的是,MuseNet 并沒(méi)有根據(jù)人類(lèi)輸入的對(duì)音樂(lè)理解進(jìn)行顯式編程,而是通過(guò)學(xué)習(xí)預(yù)測(cè)成千上萬(wàn)個(gè) MIDI 文件的下一個(gè) token 來(lái)發(fā)現(xiàn)和弦、節(jié)奏和風(fēng)格的模式。MuseNet 采用了無(wú)監(jiān)督神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 GPT2.0(是的,就是此前被譽(yù)為可以 BERT 媲美的 NLP 模型 GPT2.0,普遍觀點(diǎn)是,經(jīng)過(guò)預(yù)訓(xùn)練可以預(yù)測(cè)上下文,無(wú)論是音頻還是文本。)
據(jù)悉,5 月 12 日將正式開(kāi)放 MuseNet 語(yǔ)言生成工具的試用版本。(以下為學(xué)習(xí)了肖邦作曲風(fēng)格的英國(guó)女歌手 Adele 的 Someone Like You的 AI編曲錄音。)
傳送門(mén):
https://openai.com/blog/musenet/
▌過(guò)程原理
在簡(jiǎn)單模式(默認(rèn)顯示)中,用戶(hù)會(huì)聽(tīng)到預(yù)設(shè)生成的隨機(jī)未切割樣本;然后選擇某作曲家或風(fēng)格下的著名作品片段,即可生成各種風(fēng)格的音樂(lè)。
在高級(jí)模式下,用戶(hù)可直接與模型交互。這個(gè)過(guò)程需要完成的時(shí)間會(huì)更長(zhǎng),但用戶(hù)可以創(chuàng)建一個(gè)全新的作品。
注意:MuseNet 通過(guò)計(jì)算所有可能的音符和樂(lè)器的概率來(lái)生成每個(gè)音符,模型會(huì)傾向采用你選擇的樂(lè)器,但也可能會(huì)選擇逼得樂(lè)器;同樣,MuseNet 也會(huì)搭配不同風(fēng)格的樂(lè)器,如果用戶(hù)自行選擇最接近作家或樂(lè)隊(duì)常用分風(fēng)格或樂(lè)器,產(chǎn)生的音樂(lè)會(huì)更自然。
研究人員還創(chuàng)建了作曲家和樂(lè)器的 token,以便更好地控制 MuseNet 生成的樣本類(lèi)型。訓(xùn)練期間,這些作曲家和樂(lè)器 token 將預(yù)先添加到每個(gè)樣本中,因此模型將學(xué)習(xí)利用該信息進(jìn)行音符預(yù)測(cè)。生成音樂(lè)時(shí),可以調(diào)整模型,如拉赫瑪尼諾夫的鋼琴曲為前提,以創(chuàng)建選定風(fēng)格的音樂(lè)。
研究人員還將 MuseNet 中的嵌入進(jìn)行可視化,以深入了解模型所學(xué)到的內(nèi)容。他們采用了 t-SNE 創(chuàng)建各種風(fēng)格嵌入的余弦相似性。(如下 2D 圖像所示,可查看某個(gè)特定作曲家或風(fēng)格之間的關(guān)系。)
▌利用 Sparse Transformer 記住長(zhǎng)期結(jié)構(gòu)
MuseNet 使用 Sparse Transformer 的重算和優(yōu)化內(nèi)核來(lái)訓(xùn)練一個(gè)具有 24 個(gè)注意力頭的 72 層網(wǎng)絡(luò),并將全部注意力放在 4096 個(gè) token 的上下文中。這個(gè)長(zhǎng)文本的目的是能夠記住一個(gè)片段中的長(zhǎng)期結(jié)構(gòu)。或者,它還可以創(chuàng)建音樂(lè)旋律結(jié)構(gòu)。
音樂(lè)生成是測(cè)試 Sparse Transformer 的一個(gè)有用域,因?yàn)樗挥谖谋竞蛨D像的中間位置。它具有文本的 token 結(jié)構(gòu)。在圖形中,你可以查看 N 個(gè) token,而在音樂(lè)中,查看之前的起點(diǎn)沒(méi)有固定數(shù)。此外,還可以很容易聽(tīng)到該模型是否在按照成百上千個(gè) token 順序來(lái)獲取長(zhǎng)期結(jié)構(gòu)。
▌數(shù)據(jù)集
研究人員收集了不同來(lái)源的 MuseNet 訓(xùn)練數(shù)據(jù)(ClassicalArchives、BitMidi、MAESTRO ),涵蓋爵士樂(lè)、流行樂(lè),以及非洲、印度和阿拉伯等不同風(fēng)格的音樂(lè)。
首先,研究人員采用 transformer 在序列數(shù)據(jù)上進(jìn)行訓(xùn)練:給定一組音符,要求它預(yù)測(cè)其他即將出現(xiàn)的音符。在嘗試了幾種不同方法后將 MIDI 文件編碼為適用于此任務(wù)的 token。
在這種其中,他們采用和弦方法,將每次聽(tīng)到的音符組合視為單獨(dú)的 “和弦”,并為每個(gè)和弦指定一個(gè) token。然后,通過(guò)僅關(guān)注音符開(kāi)頭壓縮音樂(lè)模式,并嘗試使用字節(jié)對(duì)編碼方案進(jìn)行近一步壓縮。
研究人員還嘗試了標(biāo)記時(shí)間推移的兩種不同方法:一是根據(jù)音樂(lè)節(jié)奏進(jìn)行縮放的 token,代表節(jié)拍或節(jié)拍的一小部分;二是以絕對(duì)時(shí)間為單位來(lái)標(biāo)記 token。他們采用了一種結(jié)合了表現(xiàn)力和簡(jiǎn)潔性的編碼方式:將音高、音量以及樂(lè)器信息組合稱(chēng)一個(gè) token。
在訓(xùn)練中,
通過(guò)提高和降低音高來(lái)調(diào)換音符。(之后的訓(xùn)練中,減少了調(diào)換數(shù)量,使得每個(gè)樂(lè)器都有生成的音符。)
提高音量,調(diào)高或降低不同樣本的整體音量。
增加時(shí)間,當(dāng)使用以秒為單位的絕對(duì)時(shí)間編碼時(shí),可有效稍微減緩或加速片段。
在 token 嵌入空間中使用 mixup。
研究人員還創(chuàng)建了一個(gè)內(nèi)部評(píng)測(cè),在訓(xùn)練中,通過(guò)模型預(yù)測(cè)給定的樣本是否來(lái)自數(shù)據(jù)集還是之前生成的樣本,進(jìn)行評(píng)判。
▌嵌入
為了給模型提供更加結(jié)構(gòu)化的上下文,研究人員還添加幾種不同類(lèi)型的嵌入。
除了標(biāo)準(zhǔn)位置嵌入外,還有學(xué)習(xí)到的嵌入,可在給定的樣本中追蹤時(shí)間推移;然后,他們還在每個(gè)和弦中的音符添加了嵌入;最后,他們添加了兩個(gè)結(jié)構(gòu)化嵌入,該嵌入可表明模型既定的音樂(lè)樣本在較大音樂(lè)片段中的位置。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100772 -
生成器
+關(guān)注
關(guān)注
7文章
315瀏覽量
21011 -
程序員
+關(guān)注
關(guān)注
4文章
952瀏覽量
29805 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132646
原文標(biāo)題:程序員拯救樂(lè)壇?OpenAI用“逆天”GPT2.0搞了個(gè)AI音樂(lè)生成器
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論