這個AI能用Lady Gaga曲風續寫貝多芬網友們玩得不亦樂乎
OpenAI 前幾日突然在Twitch 展開直播。此前,OpenAI 的每次DOTA2 直播都是在這裡進行的,但這次的內容不再是電子遊戲了,而是直播AI 創作的曲子。OpenAI CTO Greg Brockman 都調侃說:“六個月前我也想不到我們會把直播頻道的分類從DOTA2 換成音樂和表演”。
直播的主角是OpenAI 新創造的作曲AI“MuseNet”,它可以創作不同風格的、時長達4 分鐘的樂曲,風格可以根據不同的作曲者變化(巴赫、貝多芬、Oscar Peterson、Frank Sinatra、Bon Jovi )、不同的風格變化(Jazz、Albeniz、電影配樂、鄉村、印度寶萊塢、迪士尼),而且樂曲中可以使用10 種不同的樂器。“MuseNet”使用的是和前段時間OpenAI 的文本生成模型GPT-2 類似的大規模Transformer 模型,而且為了增強它的長序列建模能力,“MuseNet”也使用了稀疏注意力技術。繼上次用GPT-2 生成接近人類水準的短文之後,OpenAI 儼然已經成為了長序列建模的小能手。
學習音樂畢竟是一件有難度的任務,不同的樂器有不同的音色,不同的曲風也有各自的微結構。所以OpenAI 的做法是讓模型學習並預測MIDI (音符、控制參數等組成的數字音頻信號,可以用MIDI 播放器播放),而不是學習原始音頻波形;同時OpenAI 也為模型設計了對應作曲者和樂器的token,簡化數據參數。
在稀疏Transformer 的重新計算以及優化過的核心幫助下,MuseNet 被設計為一個72 層、具有24 個注意力頭的網絡,它可以在4096 個元素長度的內容上進行完整的注意力操作。正因為它能夠處理的序列足夠長,所以它可以記住曲子中的長段結構,完成段落的重複以及變化。
為了讓模型更好地控制樂曲主體內容的結構,OpenAI 為模型設計了多種不同的嵌入。除了正常的位置嵌入之外,他們額外讓模型學習一個嵌入,用它來追踪每個樣本中已經經過的時間。這樣,所有同時響起的音符都會具有同樣的時間嵌入。他們還為和弦中的每個音符增加了一個嵌入(這種做法類似於相對注意力,當模型需要生成第四個音符的時候它會提供第三個音符作為參考,也就讓模型更容易學習)。最後,他們還增加了兩種不同的結構嵌入,它們的共同作用是告訴模型某一段音樂在更大的曲目範圍內的位置;其中,第一個嵌入會把大段音樂分為128個部分,第二個嵌入會從127到0倒數,表示距離結尾還有多遠。
模型的效果是驚人的,不僅當天的Twitch 直播中演示的不同風格的曲目辨識度高、旋律自然,而且OpenAI 在介紹博客中展示的混搭生成結果(從某首知名樂曲中取一個小節作為開頭,然後讓模型以其他的風格續寫,模型會給出四種結果),以及好奇的網友們利用OpenAI 提供的試驗工俱生成的樂曲都讓大家無比欽佩。我們推薦大家到MuseNet 的官方介紹頁面親自嘗試混搭續寫工具以及聽聽已有的生成樂曲。
用Lady Gaga曲風續寫貝多芬的《致愛麗絲》,來自OpenAI 技術博客
用肖邦曲風續寫Adele的《Some One Like You》,來自OpenAI 技術博客
4 月25 日的Twtich 作曲直播錄像,此前OpenAI自己的工作人員都沒有聽過這些樂曲;來自OpenAI 技術博客
OpenAI 還根據嵌入的學習結果製作了不同作曲者之間的相似度關係圖,也和我們日常的認知非常相符。
在OpenAI 的研究人員們看來,音樂生成任務的難度介於文本和圖像之間,它具有和文本類似的靈活的序列結構(比如圖像中可以固定地參照前N 個元素,而文本和音樂中的這個數字大小是不固定的)。他們收集了訓練數據集並嘗試了不同的訓練技巧。
這項研究實在是生動有趣,OpenAI 也希望大家多多參與活動,多多討論和反饋,也幫助他們選定這項研究的下一步目標。公開參與的時間一直持續到5 月12 日,大家快到openai.com/blog/musenet/ 玩玩聽聽看吧!
via openai.com