在進入正文前,我們先聽兩段 MusicGen 產生的音樂。我們輸入文字描述「a man walks in the rain, come accross a beautiful girl, and they dance happily」
然後嘗試輸入周傑倫《七里香》歌詞中的前兩句「窗外的麻雀在電線桿上多嘴,你說這一句很有夏天的感覺」(支援中文)
試用網址:https://huggingface.co/spaces /facebook/MusicGen
文本到音樂是指在給定文字描述的情況下生成音樂作品的任務,例如「90 年代吉他即興搖滾歌曲」。作為一項具有挑戰性的任務,生成音樂要對長序列進行建模。與語音不同,音樂需要使用全頻譜,這意味著以更高的速率對訊號進行取樣,即音樂錄音的標準取樣率為 44.1 kHz 或 48 kHz,而語音的取樣率為 16 kHz。
此外,音樂包含不同樂器的和聲和旋律,這使得音樂有著複雜的結構。但由於人類聽眾對不和諧十分敏感,因此對生成音樂的旋律不會有太大容錯率。當然,以多種方法控制生成過程的能力對音樂創作者來說是必不可少的,例如鍵、樂器、旋律、流派等。
最近自監督音訊表示學習、序列建模和音訊合成方面的進展,為開發此類模型提供了條件。為了使音訊建模更加容易,最近的研究提出將音訊訊號表示為「表示相同訊號」的離散 token 流。這使得高品質的音訊生成和有效的音訊建模成為可能。然而這需要聯合建模幾個並行的依賴流。
Kharitonov 等人 [2022]、Kreuk 等人 [2022] 提出採用延遲方法並行建模語音 token 的多流,即在不同流之間引入偏移量。 Agostinelli 等人 [2023] 提出使用不同粒度的多個離散標記序列來表示音樂片段,並使用自回歸模型的層次結構對其進行建模。同時,Donahue 等人 [2023] 採用了類似的方法,但針對的是演唱到伴奏生成的任務。最近,Wang 等人 [2023] 提出分兩個階段來解決這個問題:限制對第一個 token 流建模。然後應用 post-network 以非自回歸的方式聯合建模其餘的流。
本文中,Meta AI 的研究者提出了MUSICGEN,這是一個簡單、可控的音樂生成模型,在給定文字描述的情況下產生高品質的音樂。
論文網址:https: //arxiv.org/pdf/2306.05284.pdf
研究者提出一個對多個並行聲學token 流進行建模的通用框架,作為先前研究的概括(見下圖1)。為了提高生成樣本的可控性,本文也引入無監督旋律條件,使模型能夠根據給定和聲和旋律生成結構匹配的音樂。本文對 MUSICGEN 進行了廣泛的評估,所提出的方法在很大程度上優於評估基線:MUSICGEN 的主觀評分為 84.8 (滿分 100 分),而最佳基線為 80.5。此外,本文也提供一項消融研究,闡明了每個組件對整體模型表現的重要性。
最後,人工評估表明,MUSICGEN 產生了高品質的樣本,這些樣本在符合文字描述,在旋律上也更好地與給定的和聲結構對齊。
#本文的主要貢獻有以下幾點:
#MUSICGEN 包含一個基於自回歸 transformer 的解碼器,並以文字或旋律表示為條件。此(語言)模型基於 EnCodec 音訊 tokenizer 的量化單元,它從低幀離散表示中提供高保真重建效果。此外部署殘差向量量化(RVQ)的壓縮模型會產生多個平行流。在此設定下,每個串流都由來自不同學得碼本的離散 token 組成。
以往的工作提出了一些建模策略來解決這個問題。研究者提出了一種新穎的建模框架,它可以泛化到各種碼本交錯模式。該框架還有幾種變體。基於模式,他們可以充分利用量化音訊 token 的內部結構。最後 MUSICGEN 支援基於文字或旋律的條件生成。
音訊tokenization
#研究者使用了EnCodec,它是一種卷積自編碼器,具有使用RVQ 量化的潛在空間和對抗重建損失。給定一個參考音訊隨機變數 X ∈ R^d・f_s,其中 d 表示音訊持續時間,f_s 表示取樣率。 EnCodec 將該變數編碼為幀率為f_r ≪ f_s 的連續張量,然後該表示被量化為Q ∈ {1, . . . , N}^K×d・f_r,其中K 表示RVQ 中使用的碼本數量,N 表示碼本大小。
碼本交錯模式
#精確地扁平化自迴歸分解。自迴歸模型需要一個離散隨機序列 U ∈ {1, . . . , N}^S 和序列長度 S。依照慣例,研究者將採用 U_0 = 0,這是一個確定性的特殊 token,表示序列的開始。然後他們可以對分佈進行建模。
不精確的自迴歸分解。另一種可能是考慮自迴歸分解,其中一些碼本需要進行平行預測。例如定義另一個序列,V_0 = 0,且 t∈ {1, . . . , N}, k ∈ {1, . . . , K}, V_t,k = Q_t,k。當刪除碼本索引 k 時(如 V_t),這代表了時間為 t 時所有碼本的串連。
任意碼本交錯模式。為了試驗此類分解,並準確測量使用不精確分解的影響,研究者引入了碼本交錯模式。首先考慮Ω = {(t, k) : {1, . . . , d・f_r}, k ∈ {1, . . . , K}},它是所有時間步和碼本索引對的集合。碼本模式是序列 P=(P_0, P_1, P_2, . . . , P_S),其中 P_0 = ∅,,且 0
模型條件化
文字條件化。給定與輸入音訊 X 相符的文字描述,研究者計算條件張量 C ∈ R^T_C ×D,其中 D 是自迴歸模型中使用的內部維數。
旋律條件化。雖然文本是當今條件生成模型的主要方法,但更自然的音樂方法是以來自另一個音軌甚至口哨或哼唱的旋律結構為條件。這種方法還允許對模型輸出進行迭代最佳化。為了支持這一點,研究者嘗試透過聯合調節輸入的色譜圖和文字描述來控制旋律結構。再最初的試驗中,他們觀察到以原始色譜圖為條件通常會重建原始樣本,導致過度擬合。為此,研究者在每個時間步中選擇主要的時頻 bin 來引入資訊瓶頸。
模型架構
碼本投影與位置嵌入。給定一個碼本模式,在每個模式步 P_s 中只有一些碼本的存在。研究者從 Q 檢索出對應 P_s 中索引的值。每個碼本在 P_s 中最多出現一次或根本不存在。
Transformer 解碼器。輸入被饋入到具有 L 層和 D 維的 transformer 中,每一層都由一個因果自註意力塊組成。然後使用一個跨注意力區塊,該區塊由條件化訊號 C 提供。當使用旋律調節時,研究者將條件化張量 C 作為 transformer 輸入的前綴。
Logits 預測。在模式步驟 P_s 中,transformer 解碼器的輸出被轉換為 Q 值的 Logits 預測。每個碼本在 P_s 1 中最多出現一次。如果碼本存在,則從 D 通道到 N 應用特定於碼本的線性層來獲得 Logits 預測。
#音訊 tokenization 模型。 研究對 32 kHz 單聲道音訊使用非因果五層 EnCodec 模型,其步幅為 640,幀率為 50 Hz,初始隱藏大小為 64,在模型的五層中每層都增加一倍。
變壓器模型,研究訓練了不同大小的自回歸 Transformer 模型:300M, 1.5B, 3.3B 參數。
訓練資料集。 研究使用 2 萬小時的授權音樂來訓練 MUSICGEN。詳細來說,研究使用了一個包含 10K 個高品質曲目的內部資料集,以及分別包含 25K 和 365K 只有樂器曲目的 ShutterStock 和 Pond5 音樂資料集。
評估資料集。 研究在 MusicCaps 基準上對所提出的方法進行了評估,並與先前的工作進行了比較。 MusicCaps 是由專家音樂家準備的 5.5K 樣本 (10 秒長) 和跨流派平衡的 1K 子集組成的。
下表 1 給出了所提方法與 Mousai、Riffusion、MusicLM 和 Noise2Music 的比較。結果表明,在音訊品質和對提供的文字描述的一致性方面,MUSICGEN 的表現優於人類聽眾的評估基線。 Noise2Music 在 MusicCaps 上的 FAD 表現最好,其次是經過文字條件訓練的 MUSICGEN。有趣的是,加入旋律條件會降低客觀指標,但並不會顯著影響人類評分,且仍優於評估的基線。
#研究者在給出的評估集上使用客觀和主觀度量,在文本和旋律表示的共同條件下評估MUSICGEN,結果見下表2。結果表明,用色譜圖條件化訓練的 MUSICGEN 成功地產生了遵循給定旋律的音樂,從而可以更好地控制生成的輸出。 MUSICGEN 對於在推理時使用 OVL 和 REL 來失去色度具有穩健性。
#碼本交錯模式的影響。研究者使用 2.2 節中的框架評估了各種碼本模式,K = 4,由音訊 tokenization 模型給出。本文在下表 3 報告了客觀和主觀評估。雖然扁平化改善了產生效果,但它的計算成本很高。使用簡單的延遲方法,只需花費一小部分成本就能得到類似的效能。
模型大小的影響。下表 4 報告了不同模型大小的結果,即 300M、1.5B 和 3.3B 參數模型。正如預期的那樣,擴大模型大小可以得到更好的分數,但前提是需要更長的訓練和推理時間。主觀評價方面,在 1.5B 時整體品質是最優的,但更大的模型可以更好地理解文字提示。
以上是Meta開源文字生成音樂大模型,我們用《七里香》歌詞試了一下的詳細內容。更多資訊請關注PHP中文網其他相關文章!