在由北京大学与微软研究院共同发表的《MusicAgent: 用大语言模型理解和创造音乐的 AI 智能体》论文中,深入探索了AI在音乐处理领域的应用。
下图是这个项目的图标Logo:
使用场景
音乐领域AI应用的典型场景如下:
当用户提出音乐创作(新做、转换风格、分析风格等等)的需求后,
MusicAgent能够做任务分解、选择合适的工具和语言交互,与用户进行聊天式的互动,协助完成音乐创作。
下面是一个中文的例子:
工作原理及架构
MusicAgent 能处理复杂的音乐任务,是因为:
- 对接了多样化的音乐相关任务工具。
- 与LLM相结合,可以理解话术、拆解任务、分析最优方案...
具体实现可以参看:Auto-GPT是如何工作的?
如下图所示,MusicAgent 宏观分四步:任务计划、工具选择、任务执行、回应结果。
MusicAgent 可以处理的音乐任务包括:
- 创建歌曲
- 分析音乐风格
- 音色转换
- 混音
- ...
它就像一个音乐处理的小助手,它可以把用户的请求分解成小任务,然后挑选合适的工具来完成这些任务。通过这种方式,它能够高效地处理音乐,帮用户得到他们想要的结果。
下图是 MusicAgent 的四层架构:
- Application 是支持的音乐创作场景;
- Plugins 是可扩展的各项音乐相关任务工具;
- Skills 是MusicAgent自身的选择、调度能力;
- Backend 是底层的大语言模型。
支持多样化音乐任务
我们把音乐任务(Task)分成两大类:
- Generation tasks(生成任务):包括文本到音乐、歌词到旋律、歌声合成、音色转移、伴奏等。这些任务使协作音乐生成成为可能。
- Understanding tasks(理解任务):包括音乐分类、音乐分离、歌词识别等。
上图的几个阶段翻译
- Textual Description 文字描述
- Emotion 情感
- Genre 类型
- Theme 主题
- Symbolic Music 音乐符号
- Melody 旋律
- Accompaniment 伴奏
- Audio 音频
- Singing Voice 歌声
- Instrument Sound 乐器声音/伴奏声
Mixing 混合 / Separation 分离
更具体的音乐任务工具如下:
- text-to-symbolic-music 文本到符号音乐生成 MuseCoco https://github.com/microsoft/muzic/tree/main/musecoco
- lyric-to-melody 歌词到旋律生成 ROC https://github.com/microsoft/muzic/tree/main/roc
- singing-voice-synthesis 歌声合成 HiFiSinger https://github.com/CODEJIN/HiFiSinger
- text-to-audio 文本到音频生成 AudioLDM https://audioldm.github.io/
- timbre-transfer 音色转换 DDSP https://magenta.tensorflow.org/ddsp
- accompaniment 伴奏生成 GetMusic https://github.com/microsoft/muzic/tree/main/getmusic
- music-classification 音乐分类 Wav2vec2 https://huggingface.co/docs/transformers/model_doc/wav2vec2
- music-separation 音乐分离 Demucs 混合频谱图和波形源分离 https://github.com/facebookresearch/demucs
- lyric-recognition 歌词识别 Whisper-large-zh https://huggingface.co/jonatasgrosman/whisper-large-zh-cv11
- score-transcription 音乐记谱 Basic-pitch https://basicpitch.spotify.com/
- artist/track-search 艺术家/音轨搜索 Spotify API https://developer.spotify.com/documentation/web-api
- lyric-generation 歌词生成 ChatGPT https://chat.openai.com/
- web-search 网络搜索 Google API https://developers.google.com/custom-search/v1/overview?hl=zh-cn
附:Auxiliary 分类指音乐辅助的分类。
写歌工作过程示例
以写一首关于love的歌为例,流程如下:
- 任务规划器(Task Planner)接收用户请求并生成解析后的任务队列,
- 工具选择器(Tool Selector)选择合适的工具,
- 响应生成器(Generator)收集工具输出并组织响应。
通过这样的流程就可以产生客户的音乐需求。
总结
AI-驱动的音乐处理是个涵盖广泛的复杂领域,包括了从音色合成到音乐分类等多种任务。对于开发者和音乐爱好者而言,掌握所有这些任务以满足音乐处理的需求是颇具挑战的,尤其是考虑到不同任务间音乐数据表示和模型适用性的巨大差异。
为了解决这个问题,创建一个能整合并组织这些任务的系统是至关重要的,它能帮助从业者自动分析需求并调用适当的工具,以满足他们的具体要求。MusicAgent应运而生,它集成了多种音乐相关的工具,并利用如ChatGPT等大型语言模型自动化处理用户请求,将其分解为多个子任务,并调用相应的音乐工具。通过这种方式,用户可以摆脱AI音乐工具的复杂性,从而能更专注于音乐的创造性方面。