大力不仅出奇迹,
大力还可以唱儿歌。
你敢相信这首精妙的儿歌作品,
从朗读到演唱甚至是歌曲本身,
都是由 AI 根据古诗内容改编创作的吗?
古诗舞《绝句》
“我们让 AI 根据上百首古诗内容,创作小朋友会喜欢的古诗儿歌,再加上画面里小姐姐的手势舞演绎。我们和大力爱辅导的语文趣学习栏目合作,开设了 10 个专题,在短短一个月的时间内,就收获了超过 5 万小朋友的参与打卡,成为了最受欢迎的互动任务。” 技术团队负责人说道。
“学古诗不再枯燥”:小朋友们不仅通过这样寓教于乐的方式学会了古诗,也展开了自己想象力,改编动作和歌曲,生产了一个又一个精美的小作品。
由 AI “唱作人” 来完成一首完整的古诗儿歌,需要调动与整合旋律生成、伴奏生成、语音合成、歌唱合成多个技术模块,身兼数职来完成作曲、编曲、朗诵和演唱的工作。
古诗儿歌生产流程图
这样一批由纯 AI 技术打造的,能说会唱的精美古诗儿歌教育内容背后,靠的是字节跳动 AILab 智能语音团队多样的技术能力。今天,瑶娘将为大家一一揭秘。
音乐生成: AI 也能写古诗儿歌
自动音乐生成是人工智能领域中的一个新兴课题,其目的是在音乐创作的流程中,利用算法辅助或者代替艺术家完成部分甚至全部环节。
通常来说,人类作曲家的音乐创作一般有固定的工作流,如:设计和弦->创作旋律->编写织体。AILab 音乐生成系统的研发思路是,首先对真人作曲家的工作流进行拆分,然后将拆分后的环节对应为一个个技术模块,而最终将各个模块组装后,得到一个可以模仿人类作曲的 AI 音乐生成系统。
>> Step 1:用"和弦"给创作注入"动机"
创作音乐的方式因人而异,其中进行和弦设计是很多作曲家第一件需要做的事情。
和弦,即若干音符在纵向上的叠加,给人带来独特的听觉感受,形成了音乐的色彩。
随着音乐的进行,不断变化的和弦提供了音乐发展的动机,也很大程度的决定了音乐的情感基调。因此,和弦成为了旋律和伴奏共同的基础,也为整首音乐搭建了情感的框架。
AILab 音乐生成系统中包含了一个常用和弦库,其中的每一条和弦标注有该条和弦对应的情绪标签。
在给到需要进行作曲的古诗后,系统对该古诗使用自然语言处理中的自动情感识别方法提取情绪特征,然后到和弦库中选择出情绪相匹配的和弦。
举个例子,在边塞诗中,选用负向情绪的和弦走向更能体现慷慨悲歌之感,而在一些婉约词中则更多选用正向情绪的和弦走向,来营造诗歌清丽悠扬的氛围。
上为旋律线条(单音)、下为和弦走向(纵向叠加)
>> Step 2:让机器学习大师作曲"套路"
有了和弦走向之后,就可以根据它创作出旋律。
旋律通常是一个单音的序列,它包含了乐曲希望表达给听众最主要的内容,也是整首乐曲当中听众最易感知到、最易记住、最常哼唱出来的部分。
旋律的创作来源于作曲家的生活经历、情感表达和当下灵感,更包含了丰富的想象力。同时,作曲家在学习和分析各种音乐作品的过程中也会学习到创作旋律的新思路和新方法。
对于计算机而言,接触数据库中海量的旋律、和弦和织体正是它们重要的学习过程,并且这个接触的过程比人类作曲家要更加迅速、更有效率。
为达到这一目标,AILab 音乐生成团队收集、清理了数万首真实歌曲的旋律与和弦作为数据集, 并基于机器学习中的变分自编码器 (VAE),设计了相应的算法进行训练。
VAE 的训练过程和人类学习很相似,即先分析理解,再重构复现,不断的类比总结后,最终做到泛化写作。这样,通过海量数据的训练和学习就能够将 AI 算法培养成旋律写作大师。这位 AI 大师不仅对数据集中的数万首歌曲了如指掌,还能举一反三,不知疲惫地进行旋律创作。
至此,这位“旋律大师”已经通晓了一般的旋律写作,但还没有对古诗儿歌这一特定的音乐品类建立理解。例如,古诗儿歌一般要求其音乐风格偏向中国风,而其节奏需要与五言七言的节奏相匹配。
为了让算法能更有针对性地依照古诗儿歌主题进行写作,我们对算法进行了进一步的优化。
技术同学根据旋律写作习惯和乐理知识,提炼出了多个具有乐理意义的原子标签,如旋律节奏型、调式调性、和弦进行等。同时,还设计了一个分类模型,用于识别生成结果是否符合输入的原子标签。
训练时,生成模型除了学习创作旋律外,还要学习如何保证创作的旋律满足标签的限制。当训练结束,模型就能够“听话”地按输入的标签进行定制化的旋律创作。
具体到古诗儿歌的场景中,这些乐理标签通常设计得具有“中国特色”——如朗朗上口的五言和七言旋律节奏型、符合中国风的和弦进行、以及由“宫商角徴羽”构成的中国五声音阶。将这些标签同时输入到旋律生成模型,AI 就能创作出具有强烈中国特色的旋律。
本例为《江南》的和弦(钢琴音色)及根据它生成的旋律(竹笛音色)
在音乐中,和弦往往不会以音符纵向叠加的形式直接出现,而是以织体的形式来呈现,由伴奏乐器弹奏而成,形成歌曲的伴奏。伴奏的音符样式就像衣服上的纹路,可以使用不同的图案编织而成,而都具有重复的美感,因此叫做织体。
我们的音乐专家从创作实践中提炼作曲经验,为这些织体的形成和它们所处于的乐句状态编写了一套规则,再利用概率模型泛化、组合这些规则,从而将和弦转变为丰富的主题织体。
融入音符密度、跳跃程度、音符跨度、声音厚度等高阶特征对风格进行限制后,织体生成器就可以为不同的乐器编写出适应不同风格的织体。
如在清新欢快的古诗儿歌中,给古筝以更丰富的跳跃和更大的音符跨度,算法便能创作出“大珠小珠落玉盘”的古筝片段。多声部、更少的跳跃、更长的音符则有助于表现出弦乐组的绵延起伏,在《石灰吟》这样的诗歌中表现深沉忧郁的感情色彩。
第二排为根据和弦编写的织体
机器作曲家创作伴奏织体的乐谱,再由事先选定的锣鼓、筝、二胡、月琴等具有强烈中国特色的乐器进行演奏渲染,古诗儿歌中除人声以外的音乐伴奏部分也打磨完毕了。
本例为《江南》的旋律(竹笛音色)及背景伴奏
音频合成:让 AI 演唱并朗读古诗
AI 已经创作出了歌曲,接下来如何让大家听到由 AI 朗诵并演唱这首带有韵律的古诗呢?
接下来我们需要用到两种音频合成技术,TTS 语音合成(text to speech)以及 SVS 歌唱合成(singing voice synthesis)。
>> Step 1:AI 不仅能说话,还能有韵律地朗读古诗
我们的技术团队参考了业界知名的 Tacotron、FastSpeech 等技术,设计了一套由文本前端+声学模型+声码器组成的语音合成系统。
文本前端就像是词典,将输入的文字转换成对应于实际发音的音标信息,使后续的模型能够更聚焦在声学发音上,而无需太关注语言学的知识。
声学模型则将这些发音信息转换成具有个人特色的音频特征,包括语速、语调、音高、韵律等,通过对训练语料的反复学习,从而做到高精度的模仿出对应的发音习惯,得到更加真实的音频。
而最后这些具体的音频特征再由声码器转换成能直接被播放出来的音频信号,最终作为一条完成的语音呈现在我们面前。
语音合成链路图
不同于普通的语音合成任务,古诗之味在于韵律,即节奏的快慢变化、语调的腾挪跌宕,为了能够更好的让 AI 模仿出人类读古诗的感觉,我们决定在模型之中添加上古诗的韵律信息来指导模型进行生成。
对于中文诗词而言,其韵律信息都是有据可依,相对而言比较容易预测的。我们收集了大量的古诗词文本,并针对各种不同的诗词结构通过规则限制+模型预测的方法进行韵律预测,将预测的结果用来指导模型的韵律,最终得到了一个听起来更加自然合成结果。
>> Step 2:用小朋友喜欢的声音唱响古诗儿歌
为了让孩子们在学习古诗的过程中感受更多的乐趣,我们尝试让 AI 不仅能朗诵带有韵律的古诗,同时还可以把这首古诗用 AI 唱出来。
同语音合成一样,歌唱合成的目标同样是将一段文本转换成能够被听见的音频数据,不同的是,为了让这段文字能够被正确的“演唱”出来,有两个新的特征需要纳入我们的考量之中:节奏和音高。
节奏和音高是对歌曲而言非常重要的特征,当它们出错时,整首歌曲就会听起来非常的奇怪,也即我们通常所说的:唱跑调了。
在调的AI和跑调的AI
幸运的是,对于歌唱合成系统而言,这两个特征是“有谱可依”的。这里的谱,指的是歌曲的乐谱,也就是前面音乐生成时所得到的整首歌曲中的人声的部分。我们需要做的,就是严格的按照谱子的旋律演唱出来。
节奏和音高以音符的形式记录在了乐谱里
和语音合成系统类似,歌唱合成系统同样包含了前端、声学模型与声码器三个模块,只是每一个模块都需要针对歌唱进行改造。
对于歌唱的前端而言,我们不仅需要将歌词从乐谱中提取出来,得到具体的发音信息,还需要将发音与乐谱中记录的节奏与音高联系起来。
节奏本质上就是时间信息,可以通过特定的转换公式将乐谱中的节奏转换成每个字的具体时长,但如果我们只按照这个信息去演唱,那么最后的歌曲听起来就会非常生硬。
为了能让合成的歌曲演绎风格更接近真人,我们利用大量的真人数据训练了一个歌唱的时长模型,输入解析出来的音素序列与乐谱节奏信息,得到每一个音素应当发音的最佳时长,从而使演唱的效果更加的真实。
音高信息则相对比较简单,在乐谱中,每一个音高都被编码成一个数字,称为 key 值,每一个 key 对应了一个固定的音高,我们将其作为额外的信息输入声学模型之中。
而对于后端的声学模型和声码器而言,除了需要支持时长与音高的控制以外,我们还对模型的结构进行了适应歌唱的调整。相对于语音,优秀的演唱者在发音时能够展现出更多声音细节,包括更丰富的谐波,更广泛的基音范围,颤音、滑音、其实控制技巧等,如果我们还继续使用语音的方式进行合成,这些特征都会受到限制,从而导致最终的效果不佳。
真实的歌唱音频有非常丰富的细节
为此,我们一方面修改了声学特征的提取方案,使之能支持更高的采样率以保留更多高频信息,以及能在更广泛的基音范围内都有稳定表现,另一方面,我们也通过修改模型的结构,使之能有更大的感受野,能够看到更长时间的信息,从而能更好的建模长音符的发音变化。
通过以上的步骤,我们最终实现了一个高质量的古诗歌唱合成系统。
歌唱合成的框架图
有了模型,还需要数据才能进行训练。为了得到更好的歌唱效果,我们收集了一批专业录音室录制的真人歌唱数据,同时,在语音学与音乐学专家制定的歌唱数据标注体系下,生产了包含音素边界、音高、节奏等信息在内的标签,真人的歌唱数据和与之匹配的各种标签最终一同用于做数据肥料训练基础模型。
为了能更适配小朋友学唱古诗儿歌的场景,我们选择了一位声音亲切而甜美的发音人的数据,在基础模型的基础上做适配,在保证说、唱的效果的前提下,尽可能的让合成的声音亲近小朋友们。
>> Step 3:“百万调音师”坐镇,打开儿歌美颜滤镜
对标人类音乐作品生产的高质量要求,在 AI 完成了它们的使命后,团队中音乐专家组的 “百万调音师” 同学会对合成的语音、歌声和伴奏进行美化,让它们成为更加完美的“商品”。
针对合成好的歌声,我们通过简单的音高、节奏修正,使其能与伴奏更好地融合,考虑到我们的作品面向孩子们,在混音过程中,优先保证歌声的清晰度以及统一的响度,这样可以更有效地帮助小朋友在保护听力的前提下听清古诗词的内容。
在美化伴奏时,除了整体响度的统一以外,和织体生成一样,我们也会考虑到通过伴奏的混音来配合古诗表达的情绪。以《江南》为例,通过突出拨弦乐器的音头,提升颗粒感,更好地衬托出江南采莲时欢快和热闹的情境。
《江南》最终效果
写在最后
其实人工智能自动音乐生成近年来也算是 “多点开花”。网易,腾讯等互联网公司都曾在不同程度上对人工智能音乐作曲进行过探索。然而,AI “唱作人” 若是面向 C 端,可能会面临艺术质疑:人工智能能不能理解情感并正确表达出来?随着人工智能一步步“入侵”艺术创作领域,AI 的觉醒让本就浑浊的世界更加真假难辨。
目前,AI 自动音乐生成的商业竞争仍然以 B 端市场为主。谁家的 AI 能以更低的价格,创作出大众喜闻乐见的乐曲,谁就能遥遥领先。从这个角度来看,将 AI 应用于教育产业的 “AI 大力”,更像是一次“摸着石头过河”的探索。
“市面上虽然已经有不少好的教学内容,但对于孩子们的需求来说还是远远不够的,不仅如此,类似的教学内容痛点还在于,头部的 PGC 教学内容往往需要耗费很大的人力制作成本,而普通的 UGC 教学内容质量又过于参差不齐,在这个方面,我们的技术正好能达到一个速度和质量的平衡点”,谈起做这个项目的初衷,团队的成员这样说到。
当被问起更长远规划时,他们更是满怀信念感地告诉我们:"我们虽然是一个技术驱动的部门,但用技术赋能更多的业务场景,让技术真正实用起来,才是我们实现价值感的方向和目标,我们希望能服务更多像古诗儿歌一样,受到用户喜爱并有意义的项目 "。