曉查 發自 凹非寺
量子位 報道 | 公眾號 QbitAI
聽一遍曲子,就能知道樂譜,還能馬上演奏,而且還掌握“十八般樂器”,鋼琴、小提琴、吉他等都不在話下。
這就不是人類音樂大師,而是谷歌推出的“多工多音軌”音樂轉音符模型MT3。
首先需要解釋一下什麼是多工多音軌。
通常一首曲子是有多種樂器合奏而來,每個樂曲就是一個音軌,而多工就是同時將不同音軌的樂譜同時還原出來。
谷歌已將該論文投給ICLR 2022。
還原多音軌樂譜
相比於自動語音識別 (ASR) ,自動音樂轉錄 (AMT) 的難度要大得多,因為後者既要同時轉錄多個樂器,還要保留精細的音高和時間資訊。
多音軌的自動音樂轉錄資料集更是“低資源”的。現有的開源音樂轉錄資料集一般只包含一到幾百小時的音訊,相比語音資料集動輒幾千上萬小時的市場,算是很少了。
先前的音樂轉錄主要集中在特定於任務的架構上,針對每個任務的各種樂器量身定製。
因此,作者受到低資源NLP任務遷移學習的啟發,證明了通用Transformer模型可以執行多工 AMT,並顯著提高了低資源樂器的效能。
作者使用單一的通用Transformer架構T5,而且是T5“小”模型,其中包含大約6000萬個引數。
該模型在編碼器和解碼器中使用了一系列標準的Transformer自注意力“塊”。為了產生輸出標記序列,該模型使用貪婪自迴歸解碼:輸入一個輸入序列,將預測出下一個出現機率最高的輸出標記附加到該序列中,並重復該過程直到結束 。
MT3使用梅爾頻譜圖作為輸入。對於輸出,作者構建了一個受MIDI規範啟發的token詞彙,稱為“類MIDI”。
生成的樂譜透過開源軟體FluidSynth渲染成音訊。
此外,還要解決不同樂曲資料集不平衡和架構不同問題。
作者定義的通用輸出token還允許模型同時在多個數據集的混合上進行訓練,類似於用多語言翻譯模型同時訓練幾種語言。
這種方法不僅簡化了模型設計和訓練,而且增加了模型可用訓練資料的數量和多樣性。
實際效果
在所有指標和所有資料集上,MT3始終優於基線。
訓練期間的資料集混合,相比單個數據集訓練有很大的效能提升,特別是對於 GuitarSet、MusicNet 和 URMP 等“低資源”資料集。
最近,谷歌團隊也放出了MT3的原始碼,並在Hugging Face上放出了試玩Demo。
不過由於轉換音訊需要GPU資源,在Hugging Face上,建議各位將在Colab上執行Jupyter Notebook。
論文地址:
https://arxiv.org/abs/2111.03017
原始碼:
https://github.com/magenta/mt3
Demo地址:
https://huggingface.co/spaces/akhaliq/MT3