Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
freem
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
训练音乐大模型
(section)
Add languages
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
= 5. 开源项目借鉴 = 为了制定有效的音乐大模型方案,借鉴已有开源项目的经验非常重要。以下介绍数个具有代表性的开源项目,它们提供了宝贵的架构思路、训练技巧和预训练模型,可供我们取长补短: === Music Transformer === '''Music Transformer'''(2018年,Magenta团队)是早期将Transformer成功应用于音乐生成的里程碑项目 (Music Transformer: Generating Music with Long-Term Structure)。它针对音乐长结构的问题,引入'''相对位置编码'''的Transformer模型,可生成数分钟长且结构连贯的钢琴曲 (Music Transformer: Generating Music with Long-Term Structure) (Music Transformer: Generating Music with Long-Term Structure)。 * '''架构与特点''':基于Transformer解码器堆叠,自注意力机制能直接“看到”全曲已生成内容,不像LSTM那样受限于隐藏状态容量。这使其在捕捉乐曲重复、呼应等长程结构上表现突出 (Music Transformer: Generating Music with Long-Term Structure)。通过相对位置编码,模型学会关注音符之间的相对距离关系(如隔多少拍),从而能更好地延续节奏型和和声进行,即使生成长度超出训练段长度也能保持合理结构 (Music Transformer: Generating Music with Long-Term Structure)。 * '''数据与表示''':使用了MIDI数据(Magenta提供的Performance RNN数据,包含古典钢琴演奏),采用事件序列表示音符(音高、时值、力度等事件流) (Music Transformer: Generating Music with Long-Term Structure)。这种'''性能RNN风格'''的事件表示保留了演奏细节(力度、踩踏等),生成结果不仅有对的音符,还富有表现力。 * '''效果''':Music Transformer生成的钢琴曲被认为显著优于LSTM模型,在长时间和声连贯性方面尤其突出 (Music Transformer: Generating Music with Long-Term Structure)。演示曲目展示了模型能围绕某个动机发展出结构完整的音乐段落,而非杂乱音符拼凑。 * '''开源情况''':Magenta开源了该模型的TensorFlow实现和训练脚本,并提供了预训练模型权重,可以在Colab上试用 (Music Transformer: Generating Music with Long-Term Structure)。这对于想快速实验Transformer在音乐上的效果非常有帮助。我们可以借鉴其相对位置注意力和事件表示方案,在自己的模型中实现长程结构捕捉。 * '''局限''':Music Transformer主要生成'''钢琴独奏''',不支持多乐器。它输出MIDI,需要另行渲染成音频。而且受限于训练数据,风格主要是古典/浪漫派钢琴。对于现代编曲(鼓点、合成器)未作特殊优化。后续工作(如Pop Music Transformer)扩展了流行音乐的节奏表示 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。我们如需面向多乐器,可考虑在Music Transformer基础上增加轨道信息或改用多模态Transformer。 总的来说,Music Transformer证明了Transformer的强大建模能力,是'''符号音乐生成'''领域的重要baseline (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。对于我们的项目,如果需要生成长结构的纯音乐序列,可以参考其架构。尤其相对注意力等技术细节,能够增强模型的长程记忆,这是处理音乐这种长序列数据的关键。 === OpenAI Jukebox === '''OpenAI Jukebox'''(2020年)是音乐生成领域一次划时代的尝试:它直接生成'''原始音乐音频''',包括伴奏和人声演唱 (Jukebox | OpenAI)。Jukebox的开创性在于将文本和元数据条件引入音乐生成,输出完整歌曲片段(数分钟长)的原声波形。 * '''模型结构''':Jukebox采用三级层次的生成框架 (Jukebox | OpenAI)。首先一个'''VQ-VAE'''将音频压缩成离散code:分3层,不同层分辨率不同。然后分别训练三个Transformer '''先验模型''': ** Top-level Transformer:生成最粗摘要级别的code(对应最低采样率表示,捕捉歌曲高层结构),一次可建模约24秒音频信息 (Jukebox | OpenAI)。 ** Middle-level 和 Bottom-level Transformer:条件在上层生成结果的基础上,逐级'''补全细节''',生成中等和高分辨率的code (Jukebox | OpenAI)。这样逐级“放大”音乐信息。 ** 最后通过VQ-VAE解码器将完整code序列重建回波形 (Jukebox | OpenAI)。Transformer使用的是OpenAI改进的'''Sparse Transformer'''变体,72层超深,注意力经过因式分解以降低计算 (Jukebox | OpenAI)。这种架构成功将一个巨大序列建模问题拆解成易于学的分层问题。 * '''条件输入''':Jukebox的一大亮点是结合'''元数据和歌词'''作为条件 (Jukebox | OpenAI) (Jukebox | OpenAI)。训练数据每首歌带有艺术家、流派标签,以及整首歌词文本。Transformer在生成时将这些信息融入,使得生成歌曲可以指定风格和一定的歌词内容。虽然模型没有逐字对齐歌词(因为训练时只有整曲歌词而非逐帧对齐),但通过增加一个歌词编码器与音乐解码器的交叉注意力,模型基本学会了让输出歌曲的声音“听起来”像在唱给定的歌词 (Jukebox | OpenAI) (MusicRL)(只是准确度有限,算是“含糊哼唱”)。 * '''数据与训练''':OpenAI为此爬取了'''120万首歌曲'''(600k英文歌曲)的数据集,包含对应歌词和标签 (Jukebox | OpenAI)。音频采用44.1kHz立体声,32-bit浮点表示,非常高的保真度 (Jukebox | OpenAI)。训练这样规模的数据在当时是空前的。模型训练耗费了巨大算力,据报道完整训练用掉了'''256块GPU跑了3天''' (Transfer Learning with Jukebox for Music Source Separation)(相当于数百万GPU小时)。OpenAI最后开放了部分模型权重(如年代风格通用模型),供开发者下载实验。 * '''效果''':Jukebox生成的音乐在伴奏编曲和音色上达到了相当的真实度,能听出特定风格(如摇滚、流行、爵士) (Jukebox | OpenAI)。尤其是在模仿已知歌手音色方面,尽管歌词含混不清,但听众经常能猜出是在模仿哪位歌手,说明模型抓住了演唱特征。不过,Jukebox输出通常'''混响重、旋律飘忽''',人声还不够清晰。长程结构上因为Transformer上下文有限,大概到1分钟以上会显得有些重复或无明确段落分割。 * '''局限''':Jukebox的最大问题在于'''实用性'''不足:模型巨大(参数超几十亿),生成1分钟音乐需要几分钟甚至更久的计算,无法交互式使用。此外歌词同步效果不理想。OpenAI在发布论文后并未继续改进优化,因此在实际产品中少有直接用Jukebox的。尽管如此,它提供了一个'''端到端音乐生成'''的范例,展示了通过大规模数据+自回归Transformer可以让AI创作带歌词演唱的歌曲 (Jukebox | OpenAI)。 * '''启示''':对于我们而言,Jukebox的成功要素是'''海量数据、高容量模型以及分层生成'''。如果目标包括音频生成,那么类似的VQ-VAE压缩+自回归模型是可行路径。另外其条件生成(风格标签)的做法值得借鉴 (Jukebox | OpenAI)。开源的代码可以帮助理解如此大模型如何组织训练管线、处理并行和优化等。不过要注意,它的计算和存储需求极高,不一定直接复现。我们可以考虑规模缩减的版本,例如只生成单声道或降低采样率,以在可控资源内验证想法。如果只需要音乐的音色质感,可借鉴Jukebox的VQ-VAE表示,把生成问题化简到离散code层面,提高效率。 === Magenta(Google) === '''Magenta''' 并非单一模型,而是Google Brain团队于2016年发起的开源项目,旨在探索机器学习在音乐和艺术生成上的应用 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。Magenta提供了一系列模型、数据集和工具库,对音乐AI研究影响深远。 * '''主要组件''': ** ''Melody RNN / Polyphony RNN'':早期的LSTM模型,用于生成单声部旋律或多声部和声。它们以乐譜表示训练RNN,让其学习旋律线条和和声规则。这些模型结构简单,已经能产出基本可听的旋律片段,证明了深度学习用于作曲的可行性。 ** ''Performance RNN'':关注钢琴演奏的模型,能够生成包含演奏力度和踏板信息的钢琴MIDI。Performance RNN捕捉了表演细节,比普通Melody RNN更生动,也为后来的Music Transformer提供了训练基础 (Music Transformer: Generating Music with Long-Term Structure)。 ** ''MusicVAE'':2018年推出的变分自编码器,用于'''音乐片段的风格融合和补全''' (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。MusicVAE可以将不同风格的旋律投射到同一潜在空间,通过插值实现风格混合,例如把一段古典旋律平滑变换为爵士风格。这是风格迁移的早期探索成果。 ** ''NSynth'':一个生成乐器音色的Autoencoder模型,同时也是相应的数据集 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。NSynth可以合成新的乐器音色,例如同时具有吉他和管风琴特质的新声音。Magenta开放了一个交互式Web Demo让用户尝试在两个乐器之间插值音色。 ** ''TensorFlow/Magenta Libraries'':Magenta还提供了丰富的代码库,包括音乐表示转换、MIDI解析、数据集加载以及一些评估指标实现。这些工具封装使得研究者可以快速搭建音乐AI实验,而不必从零处理繁琐的MIDI数据处理和音乐理论计算。 ** ''Magenta Studio'':面向普通音乐人的工具集,包含几个AI插件(如继续旋律、生成鼓点等),可以与流行的数字音频工作站配合使用 (How to Use Google Magenta Studio to Create AI Riffs - AudioCipher)。这体现出Magenta在应用层面的探索。 ** ''DDSP(Differentiable Digital Signal Processing)'':这是Magenta近年的前沿项目之一,将经典声音合成器算法融入神经网络,可通过学习参数生成特定乐器音色(如小提琴、萨克斯风)。DDSP提供了一种结合物理建模和AI的方法,能以极低参数量重现真实乐器声音,也能用于音色转换。 * '''Magenta成果''':Magenta团队在顶会发表了大量论文,推动了音乐生成技术的发展。从最初简单RNN到GAN、VAE、Transformer、Diffusion,Magenta几乎涉猎了所有主流生成架构并提供了音乐领域的实现实例。例如他们有一个'''GrooveGAN'''用于鼓组pattern生成,也有将BERT用于音乐补全的研究。Magenta还组织了开源社区和研讨会,促进学术互动。 * '''借鉴意义''':Magenta项目最有价值的是它的'''广度'''和'''基础设施'''。对于我们来说: ** 可以直接利用Magenta开源的数据集和预训练模型。例如MAESTRO钢琴集就是Magenta整理发布的 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。这些高质量数据能省去我们自建数据的工作。 ** Magenta提供的音乐处理库(Python)可以纳入我们的数据预处理管道,比如和弦提取、节奏量化等工具,提高效率并减少错误。 ** 某些Magenta模型可作为baseline与我们的模型对比,帮助验证新方法的改进幅度。 ** Magenta的开放精神也提醒我们及时开源模型和工具,吸引社区反馈和贡献,从而改进我们的方案。 * '''案例''':Magenta在2023年发布报告总结了他们生成复杂多风格音乐的成果 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。这说明经过多年发展,Magenta的系统已能产生质量较高、风格丰富的背景音乐用于影视广告 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。这正是我们希望实现的目标之一。通过研读Magenta论文和代码,我们可学习到诸如多轨协同生成的方法、控制生成的接口设计(他们在Magenta Studio里提供了如“温度”参数供用户调节生成随机性)等实用经验。 总之,Magenta是音乐AI领域最重要的开源资源之一 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。充分学习Magenta的经验能让我们少走弯路,无论是在算法选择上还是工程实现上都更有底气。 === Riffusion(Diffusion-based音乐生成) === '''Riffusion'''(2022年底发布)是一个别出心裁的开源项目,它利用'''扩散模型'''生成音乐,将音乐问题转化为'''图像生成'''问题 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。具体来说,Riffusion基于Stable Diffusion(一种文本到图像生成模型)对'''声谱图'''进行生成,再把光谱图转换回音频,实现了音乐合成。 * '''核心思想''':将音频的时频表示(梅尔频谱或短时傅里叶变换的幅度谱)视为一张图像,然后用图像扩散模型来生成这个“声音的图像” (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。Stable Diffusion模型本来训练于海量图像-文本对,Riffusion在此基础上'''微调'''或引导,使其生成的图像实际上是有意义的声音频谱。通过一些后处理(如Griffin-Lim算法从频谱估计相位),就可以把谱图还原成音频。这样Riffusion巧妙地把音乐生成借用了强大的图像生成模型能力。 * '''模型训练''':作者使用了一个'''自建的音乐光谱数据集'''。据介绍,他们收集了各种风格的音乐片段,转为光谱图并配以简短描述标签(例如“爵士萨克斯风即兴”)。然后用这些<图像, 文本>对来'''微调Stable Diffusion'''模型 (Text-to-Music generation using Riffusion and OpenVINO)。因为Stable Diffusion预训练已经有强大的图像纹理生成能力,只需让它学会将文本关联到特定音乐光谱花纹即可。值得一提的是,他们还利用OpenAI的CLIP模型作为引导,使生成的光谱图与文本描述在CLIP空间相关度高 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。这提高了生成音乐与提示文本的契合度。 * '''功能与效果''':Riffusion模型可以通过输入文本提示,生成对应风格的短音乐片段(通常几秒到十几秒)。例如输入“电子舞曲节拍,带贝斯”会生成相应风格的音乐。由于扩散模型逐步生成图像,Riffusion还能在生成过程中实现'''风格渐变''':例如左侧提示A、右侧提示B,中间通过扩散渐变,可以得到一段从风格A平滑过渡到风格B的音乐。这对音乐过渡、混音应用很有趣。音质方面,Riffusion生成的是中等质量(22kHz左右单声道)的片段,旋律和节奏通常较简单,但风格特征明显。作为首个扩散音乐项目,其音频保真度和创意都令人印象深刻。 * '''实时性''':Riffusion项目还演示了接近实时生成:通过将扩散过程截断或小幅动态更新,可以在用户打字的同时不断产生音频流。这种交互演示展示了AI即兴音乐生成的新可能性 (riffusion/riffusion-hobby: Stable diffusion for real-time music generation)。当然,严格来说扩散模型本身不是真实时的,只是他们采用了一些优化和不太长的采样步数。 * '''开源''':Riffusion完全开源,包括训练代码、模型权重和一个演示Web应用 (Stable Diffusion fine-tuned to generate Music — Riffusion - Reddit)。这对开发者非常有价值。我们可以直接使用其预训练模型,输入文本就得到音乐,甚至可整合到自己的应用中。或者我们也能在其代码基础上进一步训练,比如用我们特定风格的数据再微调,加强某类音乐生成能力。 * '''局限''':Riffusion目前主要生成无歌词的乐器音乐,且段落较短,没有长时间结构。同样地,由于是通过图像生成音频,有时谱图上可能出现不合理的伪影,导致声音中有杂音或不和谐部分。另外,它依赖的Stable Diffusion对音乐理解是间接的,不一定捕捉复杂音乐理论。所以Riffusion更适合'''纹理化、氛围类'''音乐(如Ambient、电子乐riff),要让它作曲一首结构复杂的曲子则超出其能力。 * '''启发''':Riffusion证明了'''跨领域迁移'''的威力——利用视觉模型来做听觉任务。在我们项目中,如果资源有限训练庞大音乐模型,不妨考虑类似transfer-learning思路。例如用预训练的大型音频生成模型(即将音乐视作特殊音频任务)或者借助已有的text-audio对齐模型(如CLAP)来指导音乐生成。Riffusion还展示了'''扩散模型'''在音乐上的潜力,高质量输出只需找到合适的表示方式即可。未来我们可以尝试直接在声音时域上应用扩散(虽然难度更高),或者结合Riffusion的谱图方法与其它架构融合。 === 其他值得关注的开源项目 === 除了上述具体点名的项目,近年来还有一些值得我们关注和借鉴的音乐AI项目和模型: * '''MusicLM (Google, 2023)''':这是Google发布的令人瞩目的文本到音乐生成模型 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。MusicLM采用了分级模型:将文本和对应音乐片段映射到共同的embedding空间(使用对比学习),再用级联的Transformer模型从embedding逐步生成高品质音频 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。MusicLM在超大规模音乐数据(28万小时,包括音频和文本标签)上训练,能够生成最长达数分钟的音乐,风格涵盖世界音乐、多种乐器合奏。其音频质量和符合文本描述的准确性是前所未有的。然而Google并未开源MusicLM模型权重,仅开放了小型的文本-音频对数据集MusicCaps用于研究。尽管如此,MusicLM代表了当前'''业界最高水准'''的音乐生成能力 (Applications and Advances of Artificial Intelligence in Music Generation:A Review),它用到的技术如音频tokenizer、跨模态Transformer等都值得我们参考。特别地,MusicLM引入了'''对比训练'''确保音乐和文本embedding匹配,这个思路可能对提升文本条件下生成的相关性很有效 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。 * '''MusicGen (Meta, 2023)''':Meta AI发布了MusicGen模型,并开源了代码和预训练权重 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。MusicGen也是文本条件音乐生成,但策略不同:它采用了类似语言模型的方案,将音频压缩为离散码(用EnCodec工具),然后训练Transformer直接从文本embedding生成音频码序列 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。MusicGen使用了商用版权音乐(Shutterstock等约20k首音乐,总长约390小时)进行训练 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。虽然数据规模远小于MusicLM,但结果表明在几十秒长度的音乐生成上表现良好,而且计算开销相对可控。MusicGen在HuggingFace上提供了模型,可以实时推理几秒音乐,非常实用。我们可以利用MusicGen的预训练模型作为基线,然后在自己数据上fine-tune,从而快速得到一个可用的文本控音乐生成系统。MusicGen也支持给定旋律条件(哼唱旋律+文本说明一起输入),这个功能对于实现人机协作作曲很有意义。 * '''MuseNet (OpenAI, 2019)''':MuseNet是OpenAI在GPT-2之后推出的多乐器音乐生成模型。它通过训练一个巨大Transformer来预测MIDI事件,能够支持多达10种乐器和不同风格(从莫扎特到电影配乐)的4分钟音乐生成 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。MuseNet没有学音频,只生成MIDI,注重复杂编曲。OpenAI提供了MuseNet的在线Demo(但未公开权重),很多人体验过AI自动接续著名曲目的效果。MuseNet的结构在今天看来并不特别,但它展示了'''单个Transformer处理多轨拼接的能力''',通过在训练集中混合不同风格和编制,让模型具备组合创新能力 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。MuseNet也使用了一些技巧如绝对位置嵌入、稀疏注意力等来延长序列。作为先驱项目,它告诉我们一个通用模型可以横跨古典和现代风格,只要训练数据覆盖足够广。我们在设计模型时,也可以走'''统一模型'''路线,而非每种风格一个模型,以利于模型自发学到融合与变换。 * '''DiffWave / WaveNet''':这些是生成音频波形的模型,虽起初用于语音合成,但概念上适用于乐器音频。'''WaveNet'''(2016, DeepMind)使用因果卷积自回归生成,音质极佳但生成速度慢,被Jukebox等借鉴作为解码器 (Jukebox | OpenAI)。'''DiffWave'''(2020)将扩散模型用于音频,是文本到语音中的革命性模型 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。在音乐领域,可以考虑将DiffWave改造成无条件或带有条件的音乐生成,获得高保真音频输出。社区中Harmonai组织有类似的'''Dance Diffusion'''项目,提供了若干预训练的扩散模型,可生成鼓loop、合成器音色等。如果我们想探索扩散模型,更快的办法是从这些公开的预训练出发,再调整到自己的任务。 * '''MuseGAN / JazzGAN''':这是GAN在音乐中的典型应用 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。MuseGAN(2017)侧重多轨钢琴卷轴的同时生成,采用卷积网络+多判别器来保证不同轨之间协调 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。虽然GAN在音乐上没有Transformer火,但MuseGAN证明了GAN擅长生成固定长度的音乐片段,特别在需要多样性的时候。另有一些基于GAN的风格迁移,如CycleGAN用于将音乐演奏风格转换(比如钢琴弹奏风格迁移),这些都开源了代码。若我们目标之一是音乐风格转换,这些GAN方案可能提供比直接训练Transformer更简单的实现。 * '''OpenAI Whisper & AudioLM''':虽然不是直接音乐生成,但OpenAI的Whisper模型是强大的通用音频序列模型,而AudioLM是Google提出的未标注音频生成框架。AudioLM使用分级Transformer生成隐含语音/音频token,实现高质量续音。将AudioLM概念用于音乐是可行的(实际上MusicLM正是此方向)。这些工作体现出'''将音频分层量化+语言模型生成'''是处理长音频的有效路径。对我们来说,如果打算生成长音频,分层量化技术(如SoundStream、EnCodec等)不可或缺。 * '''音乐与其它领域结合''':还有一些项目把音乐生成融入多模态情景,例如'''AIVA'''(一家商业AI作曲公司)可以根据视频画面情绪生成配乐;'''RockAI'''尝试生成吉他Tabs等等。这提醒我们音乐AI也可以和视觉、交互等结合,形成更综合的产品。 综合来看,音乐AI领域百花齐放。我们应持续关注最新开源成果,并善加利用已有模型和资源。特别是MusicLM和MusicGen代表了当前'''文本指导音乐'''的最佳实践,我们可以以它们为标杆校准自身方案性能 (Applications and Advances of Artificial Intelligence in Music Generation:A Review)。而Magenta、MuseNet等框架让我们看到'''符号层面的创作潜力''',可考虑多管齐下,先生成符号再转音频,或者提供符号编辑接口给用户增强体验。 通过学习这些项目,我们在技术选型时就有了清晰依据:知道什么方案曾成功过,遇到过哪些坑。这将大大提高我们项目决策的信心和正确性。
Summary:
Please note that all contributions to freem are considered to be released under the Creative Commons Attribution-ShareAlike 4.0 (see
Freem:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)