一种基于向量量化的Transformer长序列音乐生成方法
- 国知局
- 2024-06-21 11:51:52
本发明属于人工智能音频生成,具体涉及一种基于向量量化的transformer长序列音乐生成方法。
背景技术:
1、随着人工智能的迅猛发展,人工智能音乐生成技术正日益成熟,并在音乐创作和创新的领域发挥重要作用。机器学习技术为ai音乐生成提供了基础。通过大量的音乐数据集进行训练,模型能够学习音乐的规律、结构和风格。
2、深度学习技术中的循环神经网络(rnn)、长短期记忆(lstm)、门控循环单元(gru)结构等被广泛应用于音乐生成。这些模型能够捕捉音乐序列中的时间依赖关系,生成具有连贯性和音乐感的作品。此外,生成对抗网络(gan)通过对抗训练的方式,能够生成更加真实和多样性的音乐。然而,随着生成音乐片段时长的增加,这些模型就会出现前后音乐风格不统一、错字漏字、音调旋律与给定曲谱不一致等问题。
3、因此,针对上述问题,予以进一步改进。
技术实现思路
1、本发明的主要目的在于提供一种基于向量量化的transformer长序列音乐生成方法,该方法在使用transformer模型提高音乐生成性能的基础上,结合向量量化方法对模型进行改进,在减少模型参数、优化训练效率的同时也提升了生成波形的质量。
2、为达到以上目的,本发明提供一种基于向量量化的transformer长序列音乐生成方法,包括以下步骤:
3、步骤s1:对中文音乐数据进行预处理,提取中文音乐数据的乐谱特征和频谱特征,获得音乐数据训练集;
4、步骤s2:使用基于向量量化的编码器将连续的乐谱特征通过向量量化转化成离散的乐谱特征;
5、步骤s3:使用基于transformer的编码器将离散的乐谱特征进行编码,得到上下文向量;
6、步骤s4:使用掩码自注意力层编码器将频谱特征进行编码,得到掩码频谱特征;
7、步骤s5:使用基于transformer的解码器结构以自回归的方式将上下文向量进行解码,得到生成的频谱特征;
8、步骤s6:使用基于深度学习的声码器将生成的频谱特征转换成音乐波形。
9、作为上述技术方案的进一步优选的技术方案,在步骤s1中:
10、对中文音乐数据进行预处理,中文音乐数据来自开源数据集opencpop,该开源数据集包括波形文件wav和标注文件textgrid,其中:
11、textgrid是用于处理音频和文本数据的工具,该开源数据集提供的textgrid中包括句子、汉字、音节、音高、音长和音素六个层面的特征,具体预处理方法为:
12、步骤s1.1:先将完整的波形文件wav和标注文件textgrid按照句子层级的注释进行切割和和特征处理,并且进行保存(这样将原始音频和标注文件切割成句子层级的音频和标注文件,并且保留了两者之间的对应关系);
13、步骤s1.2:对于不符合所需采样率的数据进行重采样处理,然后对于切割好的数据的每一个音节,在音素层级上使用pyworld库中的dio算法计算f0基频;
14、步骤s1.3:将线性的频谱刻度进行梅尔刻度操作和离散分箱操作,(梅尔刻度在低频区域有较高的分辨率,而在高频区域有较低的分辨率,更符合人耳对音高的感知特性)将线性频谱转换为梅尔频谱如下所示:
15、
16、(其中,f0为线性频谱,f0mel为转换之后的梅尔频谱,离散分箱操作可以减少特征空间的维度,降低模型复杂度和计算成本)
17、步骤s1.4:使用pyworld中的cheaptrick算法得到音频信号的频谱包络;并且对得到的频谱包络进行线性预测分析和傅里叶变换,对结果取实部得到幅度谱并且作为sp特征;使用pyworld中的d4c函数对音频信号进行非周期性参数估计,从而用于描述音频中的噪声部分,并进行编码得到ap参数;使用librosa库中的feature.rmse函数计算音频信号的短时均方能量并且作为该时间段的能量;计算每一个句子中各个音节的f0、sp、ap和能量参数(特征)并保存;
18、步骤s1.5:对于切割好的波形文件,将频谱特征进行快速傅里叶变换,并且将时域信号转换为频域信号,再将信号通过梅尔滤波器转换为梅尔谱图,并进行保存。
19、作为上述技术方案的进一步优选的技术方案,在步骤s2具体实施为:
20、步骤s2.1:将步骤s1中得到的f0、sp、ap和能量参数进行拼接后得到多维向量x,将其输入到线性嵌入层进行维度调整,得到ze(x);
21、步骤s2.2:选择恰当的嵌入大小和嵌入维度对码本编码器进行初始化,嵌入大小用于决定离散编码的数量,嵌入维度用于决定每个离散编码向量的维度;
22、步骤s2.3:对于每个ze(x)计算与码本中各个离散向量之间的欧氏距离,并找到欧氏距离最小的码本,即与ze(x)最邻近的离散向量zq(x),并将其作为离散特征向量进行输出。
23、作为上述技术方案的进一步优选的技术方案,步骤s3中,基于transformer的编码器包括浅层次的子编码器和深层次的子编码器,其中:
24、浅层次的子编码器的具体编码步骤为(对于浅层次的输入序列,每个位置上的特征向量被映射不同维度的[q,k,v]三元组,在不同维度使用不同的空洞稀疏进行采样和自注意力计算,最后将不同维度的上下文向量拼接在一起作为上下文向量输出):
25、步骤s3.1:步骤s2得到的离散特征向量作为transformer的编码器的输入向量,将输入的数据进行embedding调整维度;
26、步骤s3.2:通过全局风格编码层将全局风格信息编码成固定的向量添加到输入序列中,得到乐谱特征每一部分的风格特征,使得模型根据不同位置的风格对音乐进行建模;
27、步骤s3.3:将向量通过卷积层提取向量的相对位置信息,并引入残差;
28、步骤s3.4:使用多尺度稀疏自注意力层计算每个位置和其他位置的相关性,每个位置的特征向量都通过不同的矩阵运算被映射成一个不同维度的三元组[q,k,v],在每个维度使用不同的空洞系数进行空洞卷积操作进行采样,即通过调整空洞系数来改变卷积核的感受野(使得模型可以够捕捉更广泛的上下文信息),并生成具有更大感受野的特征图,将采样后的每一个维度的三元组[q,k,v]分别进行自注意力计算,即通过计算q和k的内积再除以得到注意力权重矩阵,其中d为向量的维度,再通过softmax函数将向量转换成一个相关性的权重分布,随后利用权重分布对所有的v进行加权求和,得到这个位置的新的特征表示;
29、步骤s3.5:将不同维度的注意力计算结果进行拼接,并且将自注意力层的结果和输入进行残差连接后进行层归一化得到中间特征向量,作为深层次编码器的输入(残差连接可以降低复杂度,并且可以防止梯度消失,层归一化可以加快收敛速度,缓解梯度爆炸和消失的发生);
30、深层次的子编码器的具体编码步骤为(与浅层次的子编码器的具体编码步骤并列,无先后顺序,对于深层次的输入序列,使用注意力机制生成上下文向量):
31、步骤s3.6:全局风格编码层将全局风格信息编码成固定的向量添加到输入序列中;
32、步骤s3.7:将向量通过卷积层提取向量的相对位置信息,并引入残差;
33、步骤s3.8:使用自注意力层计算每个位置和其他位置的相关性,每个位置的特征向量都通过矩阵运算被映射成一个三元组[q,k,v],通过计算q和k的内积再除以得到注意力权重矩阵,其中d为向量的维度,再通过softmax函数将向量转换成一个相关性的权重分布,随后利用权重分布对所有的v进行加权求和,得到这个位置的新的特征表示;
34、步骤s3.9:将自注意力层的结果和输入进行残差连接后进行层归一化得到上下文向量。
35、作为上述技术方案的进一步优选的技术方案,步骤s4中,掩码自注意力层编码器包括结构相同的若干子编码器,具体实施为:
36、步骤s4.1:通过全局风格编码层将全局风格信息编码成固定的向量添加到输入序列中,得到乐谱特征每一部分的风格特征,使得模型根据不同位置的风格对音乐进行建模;
37、步骤s4.2:将向量通过卷积层提取向量的相对位置信息,并引入残差;
38、步骤s4.3:使用自注意力层计算序列中每个位置和其他位置的相关性,将每个位置的向量通过矩阵映射成三元组[q,k,v],通过计算q和k的内积得到注意力权重矩阵,并将其除以除以得到注意力矩阵,其中d为向量的维度;
39、步骤s4.4:应用一个下三角矩阵作为掩码矩阵来防止模型通过未来的信息预测现在的信息,即通过注意力矩阵与掩码矩阵进行点乘去掉未来时刻的权重,实现类似自回归的方式来进行预测(提高了模型的鲁棒性和泛化能力);
40、步骤s4.5:将掩码后的注意力矩阵通过softmax函数得到权重分布,并与v进行加权求和,得到新的特征表示;
41、步骤s4.6:将掩码自注意力层的结果与输入进行残差连接后进行层归一化,得到掩码频谱特征。
42、作为上述技术方案的进一步优选的技术方案,步骤s5中,基于transformer的解码器包括若干子编码器,具体实施为:
43、步骤s5.1:使用步骤s4得到的掩码频谱特征作为输入的查询向量q,以及步骤s3得到的上下文向量作为输入的键k和值v,将q、k和v通过线性映射调整维度,并将每个q、k和v划分为预设个头(优选为8个),使得模型并行的从不同的表示子空间中提取信息;
44、步骤s5.2:对于每个头分别计算该头的注意力矩阵,即将划分出来的qi和ki进行内积,并除以得到注意力矩阵,其中di为向量的维度,再通过softmax得到注意力权重分布;
45、步骤s5.3:将注意力权重分布矩阵与vi进行点乘得到每个头的特征向量,并将它们连接起来通过一个线性变换,得到大的特征向量;
46、步骤s5.4:对于得到的特征向量,与原始输入向量进行残差连接后进行层归一化;
47、步骤s5.5:通过前馈神经网络层进行前馈网络,即全连接网络和非线性函数进行向量变换,并增加非线性变换;
48、步骤s5.6:将前馈网络的结果和前馈网络的输出进行残差连接后进行层归一化操作,获得生成的频谱特征。
49、作为上述技术方案的进一步优选的技术方案,在步骤s6中,通过开源的预训练hifi-gan声码器,将步骤s5中合成的新的频谱特征(梅尔谱特征)转换为音乐波形。
50、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述基于向量量化的transformer长序列音乐生成方法的步骤。
51、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述基于向量量化的transformer长序列音乐生成方法的步骤。
52、本发明的有益效果在于:
53、为了减轻计算参数负担,优化训练效率,需要对transformer结构进行优化。向量量化方法通过将音乐信号分解为离散的音符或音频片段,通过建立音符和音频片段之间的映射关系来生成音乐。该方法简化了建模和处理过程,减少计算复杂性,提高处理的效率;同时也对transformer模型中使用的attention机制进行改进,减少了编码器的参数量,同时也保留了transformer编码器强大的计算能力,使得改进后的transformer能够在长序列的特征学习中发挥出它的强大作用。
54、将向量量化和transformer相结合的音乐生成技术,首先利用vq方法将音乐信号进行向量量化,将连续的音乐信号转换为离散的音符或音频片段表示。然后,将这些离散表示作为transformer模型的输入,通过优化的自注意力机制,模型能够学习音乐序列中的局部和全局的依赖关系,并生成具有音乐结构和创意的音乐作品。
55、将向量量化和transformer模型相结合,能够利用向量量化有效地捕捉音乐信号的细节和特征,提供高维度的离散表示,同时也能够利用transformer模型的强大性能进行序列建模和生成,即使输入长序列乐谱也能够生成前后音乐风格一致且真实无错的音乐片段。这种结合充分发挥了向量量化和transformer各自的优势,提高了音乐生成的效果和质量。
本文地址:https://www.jishuxx.com/zhuanli/20240618/24074.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表