NotaGen – 音樂學(xué)院聯(lián)合北航、清華等推出的音樂生成模型
NotaGen 是一個(gè)由音樂學(xué)院、北京航空航天大學(xué)和清華大學(xué)等多家機(jī)構(gòu)共同開發(fā)的音樂生成模型。該模型靈感來源于大型語言模型(LLM)的訓(xùn)練方法,旨在生成高質(zhì)量的古典樂譜。NotaGen 采用預(yù)訓(xùn)練、微調(diào)和強(qiáng)化學(xué)習(xí)相結(jié)合的方式,其預(yù)訓(xùn)練階段使用了超過160萬首樂曲,而微調(diào)階段則基于大約9000首優(yōu)質(zhì)古典作品,通過“時(shí)期-作曲家-樂器”的提示進(jìn)行條件生成。通過引入 CLaMP-DPO 方法,NotaGen 在強(qiáng)化學(xué)習(xí)階段對(duì)生成的音樂進(jìn)行優(yōu)化,無需人工標(biāo)注,顯著提升了音樂的藝術(shù)性和可控性。
NotaGen是什么
NotaGen 是一個(gè)創(chuàng)新的音樂生成模型,由音樂學(xué)院、北京航空航天大學(xué)和清華大學(xué)等高等院校研發(fā),專注于高質(zhì)量古典樂譜的自動(dòng)生成。模型通過模仿大型語言模型的訓(xùn)練方式,結(jié)合預(yù)訓(xùn)練、微調(diào)和強(qiáng)化學(xué)習(xí)的策略,使得生成的音樂作品不僅風(fēng)格多樣且質(zhì)量上乘。NotaGen 在預(yù)訓(xùn)練階段吸收了超過160萬首樂曲的知識(shí),隨后在約9000首高質(zhì)量古典作品上進(jìn)行微調(diào),以確保模型能夠生成符合特定音樂風(fēng)格的樂譜。此外,通過強(qiáng)化學(xué)習(xí)的技術(shù),NotaGen 在生成音樂的過程中能夠自我優(yōu)化,大幅提升作品的音樂性和表現(xiàn)力。
NotaGen的主要功能
- 生成高質(zhì)量古典樂譜:用戶可以根據(jù)所選的時(shí)期(如巴洛克、古典、浪漫)、作曲家(如、莫扎特、肖邦)和樂器(如鍵盤、弦樂四重奏、管弦樂)生成符合特定風(fēng)格的樂譜。
- 提升音樂性:通過綜合預(yù)訓(xùn)練、微調(diào)和強(qiáng)化學(xué)習(xí),NotaGen 能夠生成旋律優(yōu)美、和聲流暢、結(jié)構(gòu)嚴(yán)謹(jǐn)?shù)囊魳纷髌贰?/li>
- 可控性生成:用戶可以通過“時(shí)期-作曲家-樂器”等條件提示,靈活控制生成音樂的風(fēng)格和特色。
- 支持多種模型規(guī)模:提供多種參數(shù)規(guī)模的模型(如 NotaGen-small、NotaGen-medium 和 NotaGen-large),以適應(yīng)不同硬件配置和應(yīng)用需求。
NotaGen的技術(shù)原理
- 預(yù)訓(xùn)練:基于超過160萬首樂曲進(jìn)行預(yù)訓(xùn)練,涵蓋多種風(fēng)格和樂器,模型學(xué)習(xí)音樂的基本結(jié)構(gòu)和模式,類似于語言模型中的“語言理解”階段。使用符號(hào)音樂表示(如 ABC 符號(hào))進(jìn)行編碼,并通過預(yù)測(cè)下一個(gè)符號(hào)進(jìn)行訓(xùn)練。
- 微調(diào):在約9000首高質(zhì)量古典作品上進(jìn)行微調(diào),優(yōu)化模型以符合特定風(fēng)格(如巴洛克、古典、浪漫)和作曲家,增強(qiáng)其生成特定風(fēng)格音樂的能力。
- 強(qiáng)化學(xué)習(xí):采用 CLaMP-DPO(Contrastive Language-Music Pretraining with Direct Preference Optimization)方法,通過對(duì)比學(xué)習(xí)模型 CLaMP2 提供反饋,優(yōu)化生成音樂的質(zhì)量和一致性,避免了傳統(tǒng)的人工標(biāo)注或預(yù)定義獎(jiǎng)勵(lì)。生成的音樂樣本根據(jù)評(píng)分被分為“選擇”和“拒絕”兩類,利用 DPO 算法優(yōu)化模型,提升生成音樂的音樂性和可控性。
- 符號(hào)音樂表示:采用 ABC 符號(hào)表示樂譜,簡(jiǎn)化編碼和生成過程,支持多聲部音樂的生成。通過去除全休止符、添加小節(jié)索引等方法優(yōu)化數(shù)據(jù),提高生成效率和質(zhì)量。
- 模型架構(gòu):基于層次化的 Transformer 解碼器,包括 patch-level decoder 和 character-level decoder,分別處理音樂片段和符號(hào)生成。結(jié)合 CLaMP2 提供的多模態(tài)反饋,優(yōu)化生成音樂的全局特征(如風(fēng)格、和聲、結(jié)構(gòu))。
NotaGen的項(xiàng)目地址
- 項(xiàng)目官網(wǎng):https://electricalexis.github.io/notagen
- GitHub倉(cāng)庫(kù):https://github.com/ElectricAlexis/NotaGen
- HuggingFace模型庫(kù):https://huggingface.co/ElectricAlexis/NotaGen
- arXiv技術(shù)論文:https://arxiv.org/pdf/2502.18008
NotaGen的應(yīng)用場(chǎng)景
- 音樂創(chuàng)作輔助:為作曲家提供靈感,快速生成符合特定風(fēng)格的樂譜草稿,節(jié)省創(chuàng)作時(shí)間。
- 音樂教育:幫助學(xué)生理解不同音樂時(shí)期的風(fēng)格特點(diǎn),生成教學(xué)用樂譜。
- 音樂制作:為影視、游戲等快速生成背景音樂或配樂,提升制作效率。
- 音樂表演:生成高質(zhì)量樂譜,供樂團(tuán)、合唱團(tuán)等排練或演出使用。
- 音樂娛樂:提供互動(dòng)式演示,讓用戶實(shí)時(shí)生成音樂,體驗(yàn)創(chuàng)作的樂趣。
常見問題
- NotaGen是否支持多種音樂風(fēng)格? 是的,NotaGen 可以根據(jù)用戶輸入的時(shí)期和作曲家生成多種風(fēng)格的音樂。
- 我可以使用NotaGen生成自定義樂譜嗎? 是的,用戶可以通過條件提示來定制生成的樂譜。
- NotaGen的生成速度如何? 生成速度取決于所選的模型規(guī)模和硬件配置,但總體上能夠快速生成高質(zhì)量的樂譜。
- 如何獲取NotaGen? 您可以通過項(xiàng)目官網(wǎng)、GitHub倉(cāng)庫(kù)和HuggingFace模型庫(kù)獲取 NotaGen。