聽一遍曲子,就能知道樂譜,還能馬上演奏,而且還掌握“十八般樂器”,鋼琴、小提琴、吉他等都不在話下。這就不是人類音樂大師,而是谷歌推出的“多任務多音軌”音樂轉(zhuǎn)音符模型 MT3。
首先需要解釋一下什么是多任務多音軌。通常一首曲子是有多種樂器合奏而來,每個樂曲就是一個音軌,而多任務就是同時將不同音軌的樂譜同時還原出來。
事實上,谷歌 MT3 在還原多音軌樂譜這件事上,達到了 SOTA 的結(jié)果。谷歌已將該論文投給 ICLR 2022。
還原多音軌樂譜
相比與自動語音識別 (ASR) ,自動音樂轉(zhuǎn)錄 (AMT) 的難度要大得多,因為后者既要同時轉(zhuǎn)錄多個樂器,還要保留精細的音高和時間信息。
多音軌的自動音樂轉(zhuǎn)錄數(shù)據(jù)集更是“低資源”的。現(xiàn)有的開源音樂轉(zhuǎn)錄數(shù)據(jù)集一般只包含一到幾百小時的音頻,相比語音數(shù)據(jù)集動輒幾千上萬小時的市場,算是很少了。
先前的音樂轉(zhuǎn)錄主要集中在特定于任務的架構(gòu)上,針對每個任務的各種樂器量身定制。因此,作者受到低資源 NLP 任務遷移學習的啟發(fā),證明了通用 Transformer 模型可以執(zhí)行多任務 AMT,并顯著提高了低資源樂器的性能。作者使用單一的通用 Transformer 架構(gòu) T5,而且是 T5“小”模型,其中包含大約 6000 萬個參數(shù)。
該模型在編碼器和解碼器中使用了一系列標準的 Transformer 自注意力“塊”。為了產(chǎn)生輸出標記序列,該模型使用貪婪自回歸解碼:輸入一個輸入序列,將預測出下一個出現(xiàn)概率最高的輸出標記附加到該序列中,并重復該過程直到結(jié)束。
MT3 使用梅爾頻譜圖作為輸入。對于輸出,作者構(gòu)建了一個受 MIDI 規(guī)范啟發(fā)的 token 詞匯,稱為“類 MIDI”。
生成的樂譜通過開源軟件 FluidSynth 渲染成音頻。此外,還要解決不同樂曲數(shù)據(jù)集不平衡和架構(gòu)不同問題。
作者定義的通用輸出 token 還允許模型同時在多個數(shù)據(jù)集的混合上進行訓練,類似于用多語言翻譯模型同時訓練幾種語言。這種方法不僅簡化了模型設(shè)計和訓練,而且增加了模型可用訓練數(shù)據(jù)的數(shù)量和多樣性。
實際效果
在所有指標和所有數(shù)據(jù)集上,MT3 始終優(yōu)于基線。訓練期間的數(shù)據(jù)集混合,相比單個數(shù)據(jù)集訓練有很大的性能提升,特別是對于 GuitarSet、MusicNet 和 URMP 等“低資源”數(shù)據(jù)集。
最近,谷歌團隊也放出了 MT3 的源代碼,并在 Hugging Face 上放出了試玩 Demo。
不過由于轉(zhuǎn)換音頻需要 GPU 資源,在 Hugging Face 上,建議各位將在 Colab 上運行 Jupyter Notebook。
論文地址:
https://arxiv.org/abs/2111.03017
源代碼:
https://github.com/magenta/mt3
Demo 地址:
https://huggingface.co/spaces/akhaliq/MT3
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。