Rapper 要醞釀一整天的歌詞,AI 或許幾分鐘就能寫出來。









給你一段 Rap,你能看出這是 AI 寫的嗎?

仔細品味,也能發(fā)現(xiàn)這段詞中的美中不足之處,但這作詞水平可以說是不錯的。
同樣的第一句,可以迅速生成完全不同的段落:

人類Rapper的雙押,還是更厲害一點:


只需要給定一句輸入,AI 就能生成整首歌詞。從押韻、流暢度、節(jié)奏方面,基本不遜于人類 Rapper。
這項研究來自港科大、清華、復(fù)旦等機構(gòu),在這篇論文中,研究者提出了一個基于 Transformer 的 Rap 生成系統(tǒng)「DeepRapper」,該系統(tǒng)可以同時模擬 Rap 的韻律和節(jié)奏。

論文鏈接:https://arxiv.org/pdf/2107.01875.pdf
由于沒有現(xiàn)成可用的節(jié)奏對齊的 Rap 數(shù)據(jù)集,為了構(gòu)建這個系統(tǒng),研究者設(shè)計了一個數(shù)據(jù)挖掘 pipeline,并收集了一個大規(guī)模的 Rap 數(shù)據(jù)集進行韻律建模。
一開始,研究者先從網(wǎng)上抓取了許多包含歌詞和音頻的說唱歌曲,并對每一首抓取的說唱歌曲進行一系列數(shù)據(jù)預(yù)處理步驟。為了更好地建模,研究者以自回歸的方式從右到左生成每一句 Rap,這樣就可以很容易地識別出一個句子的最后幾個單詞 (即反向句子的第一個單詞) 來押韻。
此外,為了進一步提高 Rap 的押韻質(zhì)量,研究者在語言模型中加入了一些押韻表征,并在推理過程中通過押韻約束來提高生成的 Rap 中的 N-gram 韻律。
研究者使用一個特殊的標記 [ BEAT ] 來表示有節(jié)奏的節(jié)拍,并將其插入到相應(yīng)的詞之前的歌詞中。通過這種方式,可以在訓(xùn)練和生成方面按照歌詞的順序來模擬節(jié)拍。
受到預(yù)訓(xùn)練語言模型的成功啟發(fā),研究者將預(yù)訓(xùn)練納入系統(tǒng)。為了獲得大規(guī)模的預(yù)訓(xùn)練數(shù)據(jù),研究者還使用了數(shù)據(jù)挖掘 pipeline 收集了另外兩個數(shù)據(jù)集:
1)節(jié)拍對齊的非說唱歌曲,它可以比說唱數(shù)據(jù)集更大,因為非說唱歌曲比說唱歌曲更通用; 2)純歌詞,同樣比非說唱歌曲數(shù)據(jù)集更大。
在預(yù)訓(xùn)練階段,研究者基于上述兩個數(shù)據(jù)集對 DeepRapper 模型進行了預(yù)訓(xùn)練,然后調(diào)整模型在說唱歌曲與調(diào)整節(jié)拍上的性能,微調(diào)模型即用于最終的說唱產(chǎn)生??陀^評估和主觀評估的實驗結(jié)果都證實了 DeepRapper 在生成押韻和節(jié)奏的說唱歌詞方面的優(yōu)勢。
Rap 數(shù)據(jù)集
以前用于 rap 生成的作品(Potash 等人,2015 年;Liang 等人,2018 年;Nikolov 等人,2020 年)通常使用只有歌詞的說唱數(shù)據(jù)集,而不考慮節(jié)奏節(jié)拍信息。為了在 rap 生成中建模節(jié)奏,說唱數(shù)據(jù)集應(yīng)該包含具有對齊節(jié)奏節(jié)拍的歌詞。然而,節(jié)拍對齊很難實現(xiàn),因為它們的注釋需要專業(yè)音樂家來識別說唱歌曲中的重讀音節(jié)。
因此,為了解決這個問題,研究者設(shè)計了一個數(shù)據(jù)挖掘 pipeline 來自動提取 beatlyric 對齊。
數(shù)據(jù)挖掘 pipeline
下圖 1 展示了數(shù)據(jù)挖掘 pipeline 的整體框架,包含 5 個步驟:數(shù)據(jù)抓取、人聲(vocal)與伴奏分離、人聲與歌詞對齊、節(jié)拍檢測以及歌詞與節(jié)拍對齊。

挖掘數(shù)據(jù)集
基于上圖數(shù)據(jù)挖掘 pipeline,研究者得到了一個具有對齊節(jié)拍的說唱歌詞(rap lyric)數(shù)據(jù)集,并命名為 D-RAP。該數(shù)據(jù)集滿足了構(gòu)建具有韻律和節(jié)奏的 rap 生成系統(tǒng)的要求。他們以 4:1 的比例將 D-RAP 數(shù)據(jù)集劃分為訓(xùn)練和驗證集。
與一般歌曲相比,說唱風格的歌曲數(shù)量往往較少,因此研究者挖掘了另外兩個數(shù)據(jù)集,以使用相同的挖掘 pipeline 對 DeepRapper 模型進行預(yù)訓(xùn)練,它們分別是具有對齊節(jié)拍的非說唱歌曲數(shù)據(jù)集 D-SONG 和沒有對齊節(jié)拍的純歌詞數(shù)據(jù)集 D-LYRIC。
研究者在下表 1 中對這三個數(shù)據(jù)集包含的歌曲數(shù)量和歌詞句子數(shù)量進行了統(tǒng)計。

下圖 2 展示了 D-RAP 數(shù)據(jù)集中具有對齊節(jié)拍的說唱歌曲示例。

Rap 生成模型
如下圖 3 所示,研究者展示了 rap 生成模型的整體架構(gòu)以及韻律和節(jié)奏建模的細節(jié)。
具體地,研究者使用 Transformer 構(gòu)建了一個用于 rap 生成的自回歸語言模型,并引入了以下一些新的對齊:
1)為了更好地建模韻律,該模型從左到右生成歌詞句子,這是因為押韻字通常位于句子結(jié)尾;
2)如前所述,節(jié)奏對于 rap 效果至關(guān)重要,因而插入了一個特殊的 token [BEAT]來進行顯式節(jié)拍建模;
3)與僅有詞嵌入和位置嵌入的原始 Transformer 不同,研究者添加了多個額外嵌入以更好地建模韻律和節(jié)奏。

實驗評估
下表 2 展示了 DeepRapper 的客觀與主觀評估結(jié)果,并與兩個 baseline 進行了比較。baseline 模型是一個標準的自回歸語言模型,與 DeepRapper 的模型配置相同,但沒有本文提出的韻律模型(+PT 的意思是采用了預(yù)訓(xùn)練)??陀^評估結(jié)果的維度包括 perplexity、韻律準確性和韻密度;主觀評估維度包括主題、流暢度、押韻質(zhì)量和押韻多樣性。

為了突出 DeepRapper 在建模 N-gram 韻律中的優(yōu)勢,研究者使用 Combo-N 來度量 DeepRapper 中每個設(shè)計建模 N-gram 韻律的能力。結(jié)果如下表 4 所示:

為了更好地度量節(jié)拍質(zhì)量,研究者分別使用 DeepRapper 和具有節(jié)拍頻率控制的 DeepRapper 隨機生成了大約 5000 個樣本。他們提出了一階分布(First Order Distribution, FOD)和二階分布(Second Order Distribution, SOD),并度量了生成樣本與 DRAP 數(shù)據(jù)集之間分布的距離。
研究者將當前 [BEAT] 的間隔定義為當前 [BEAT] 與下個 [BEAT] 之間的歌詞數(shù)量。因此,F(xiàn)OD 被定義為當前 [BEAT]間隔的分布,SOD 被定義為當前 [BEAT]與下個 [BEAT]之間間隔差的分布。間隔的數(shù)值區(qū)間為[0, 1],具體結(jié)果如下表 5 所示:

下圖 6 中,研究者展示了生成的 rap 歌曲示例,可以看出 DeepRapper 的生成效果還不錯。
