让创作音乐更简单

题记:创作音乐还能不能再简单一点儿

书接上篇:如何用Suno.ai创作音乐? 毕竟订阅Suno花了$10,为了不浪费,就再写一篇咯。最近事情也比较多,就延续这个主题再写写。

用Suno创作音乐虽然简单,但自己随便生成的音乐很多都没法听,跟别人用AI创作的音乐相去甚远。今天我就再拆解一下,看怎么把创作的质量提上来,效率提上来。终极目标是我们只说“创作动机”,其他剩下的事全部让AI一条龙承接掉。创作动机可以是一件事、一段话,甚至一个词,从“创作动机”到音乐生成再到上传到网易云音乐播客,有几个因素绕不开,即:

  1. 歌词,如果你不是创作纯音乐的话,歌词可能需要反复调整打磨
  2. 歌名,一般是基于歌词进行提炼,可以用AI生成
  3. 音乐风格,如何为音乐选择一个合适的曲风,也是一件比较头疼的事
  4. 单曲封面,为创作的音乐生成一张图片,这个用DALL-E3就可以

好像也还是挺复杂的,有没有什么办法能用AI做进一步简化?当然有,那就是“AI套娃”~ 来看看怎么让AI更高效地给我们打工吧,here we go~

一、创作歌词的一些背景知识

“请为我生成一首歌词”,像这种“0-shot prompt”的用法,AI生成的歌词质量大概率不太行。那怎么才能行呢?我也不知道,不过AI肯定知道啊

还有一般歌词里边都有前奏、副歌、solo等标签,我们看Suno一些其他的歌词中也有这样的标签,那么都有哪些呢?

OK,背景知识基本上差不多了。那么,如何让AI“一次性”生成“看起来”很专业的歌词呢?

二、用Workflow对LLM进行编排

在创作的时候,你可以为Bot写一个超复杂的提示词Prompt,用一个Bot来解决所有问题,我把它称作“诸葛亮模式”。相对应的,我们还可以用多个职责单一的Bot来实现同样的效果,就叫它“臭皮匠模式”吧。“诸葛亮模式”一般人没那个实力,“臭皮匠模式”对普通用户倒是更好操作一些。

这里用到了字节的Coze.com的workflow功能,考虑到国内版的“扣子”在模型基座上稍微比较弱,我就不尝试啦。如何使用coze,可以参考我的文章:字节Coze平台调研:还不仅仅是免费用GPT4

打开Coze,我创建了一个create_lyrics的流程,点击进入编辑页面。一个新的workflow至少了两个固定的节点,Start和End,Start节点里边有一个Input字段,这里就是我们要填写的”创作动机“,比如我命名它为subject

然后,我们先拖动一个LLM节点过来,跟Start节点连上。这个LLM节点我们把它重命名为lyrics_creator,节点的Input是Start节点的subject变量,在Prompt里边我们可以用{“ }subject}}” }来获取具体传入的内容。有点编程基础的小伙伴很容易理解,{“ }}}” }就是模板里边的占位符,subject就是传入的变量。

我们把刚从GPT那儿获取的歌词创作背景知识拷贝过来。为了避免LLM节点的废话,我们再多嘱咐一句“请不需要有任何多余的说明,只输出歌词”。

最后,Output就是LLM输出的内容了,为了方便跟后面的变量区分,我们把output的变量重命名为lyrics(当然不改也行)

三、把歌词再打磨一下

为了保证歌词的质量,我们再添加一个名为lyrics_judger的LLM节点,对歌词再做一次修改。这个人还会给歌词增加元标签,让它显得更专业一些

经过这个节点生成的歌词,我们叫它modified_lyrics。经过二次创作后的歌词就出现啦。

四、基于歌词创作标题

轻车熟路,我们再来一个LLM节点,这次的Input就是上一个节点的Output,也就是modified_lyrics

创作标题的逻辑描述我们放在Prompt里边,即标题就是歌词中反复出现的主题和元素。最后的Output就是歌名title啦

五、基于歌词创作音乐风格

歌词和曲风肯定是要相匹配的,不然听起来违和感会比较严重。考虑到我们也不知道都有哪些风格,就还是辛苦LLM告诉我们吧

这个节点的输出信息就是Output中的styles,即音乐风格

六、整合起来,大功告成

把这些节点跟End节点连起来,设置好输出的变量,就是前面几个节点生成的标题、歌词、音乐风格,

最后把这些输出的内容贴到Suno.ai上,就可以啦。音乐风格可以调整,可以根据自己喜好进行删减。整体生成的质量比之前随机生成的要好很多

魔法时间:听听在经过多层AI创作之后生成的音乐

七、一些拓展思路

用“AI套娃”本质上是多用几个LLM来帮我们干活儿。这个思路在工作中其实很常见,我们不同职位的同事就是不同的零部件,各司其职,通过“workflow”支撑着公司这部巨大机器的高效运转。当你发现LLM不好用的时候,不妨多用几个,让它们每个人只完成任务流的一个环节,说不准就能搞定了。

在LLM领域里,除了workflow之外,还有一种模式叫Multi-agents,顾名思义就是用多个LLM定义的Agent,区别于我们平时用的ChatGPT或GPTs(Single-agent)。Multi-agents通过模拟多人协同,可以解决更贴近真实场景的问题。比如,在我的打工范畴里有Code review、需求实现、故障定位等等,在你们打工的机会点就留给你们自行思考啦。

以上就是文章全部内容,如果对你有点点启发,欢迎点一下“在看”和“点赞”~