端到端歌声合成方法、计算机设备及存储介质

专利2024-07-26  55



1.本发明涉及音频技术领域,特别是涉及一种端到端歌声合成方法、计算机设备及存储介质。


背景技术:

2.歌声合成(svs)技术已经广泛地应用到了虚拟歌姬、智能语音助手等产品中。相比于文语转换(tts)系统,svs系统需要在生成正确读音的同时,保证具有正确的乐谱音高和发音时长。同时歌声相比于语音还有一些独特的特征例如颤音来增加歌声的表现力。而生成更具表现力的歌声也是歌声合成的重要问题之一。
3.歌声合成的流程如图1所示。从乐谱中提取出音素序列,音高序列以及时长序列,通过歌声合成模型输出中间特征。声码器以该中间特征作为输入,生成对应歌声。
4.目前的歌声合成方案主要存在以下两个问题:(1)人们在根据乐谱演唱歌声的时候,往往会根据歌词的语义信息加入相应的演绎。而目前的歌声合成系统往往没有考虑歌词的语义信息对于歌声的影响,从而使得能够合成较为准确的歌声的同时,相比于真人演唱的歌声缺乏表现力。(2)相比于tts系统,由于歌声的能量波动相比于语音更加剧烈,svs系统更需要对歌声的能量进行建模。而现有svs系统没有考虑歌声中能量的建模。
5.深度学习方法在tts、语音转换等各种语音生成任务上取得了巨大成功。近年来,由声学模型和声码器组成的两阶段模型是svs系统的主流架构。两阶段架构的每个模型都是独立训练的。尽管两阶段模型在某些任务上取得了进展,但它无法掩盖其结构上的问题。为了缓解两阶段架构的不匹配问题,最近有人提出以端到端的方式进行训练,例如fastspeech2s(一种自回归tts模型)、eats(一种端到端对抗式tts模型)和vits(一种tts模型)。通过采用变分推理,vits可以生成更自然的音频。受vits的启发,近期西工大推出了名为visinger的端到端svs系统,它遵循vits的主要架构,但对其编码器进行了改进,以产生高质量的歌声。
6.尽管现有的svs系统能够产生高质量的歌声,但合成歌曲与人类演唱的歌曲之间仍有很大差距。现有的svs系统,如bytesing和hifisinger可以合成与乐谱完全相同的歌声,但听起来仍然有些机械。人们在唱歌时,会根据歌词的语义信息,结合情感和强度变化等各种细节,增强歌声的感染力和表现力。为了提高合成语音的表达能力,tts社区已经做出了一些努力,将来自预训练模型(如bert)所提取的语义信息作为tts模型的额外输入,取得了可观的结果。
7.现有方案中,存在如下缺点:
8.1)现有的歌声合成模型基本上能够按照乐谱合成较为准确的歌声,但是听起来总有些不自然的机械感,这是由于人们在歌唱的过程中往往会结合歌词的语义信息进行演绎,使得合成的歌声富有表现力,而现有的歌声合成模型没有考虑歌词的语义信息,从而合成的歌声与真人仍有一定差距。
9.2)基于两阶段模型的歌声合成方案训练流程繁琐,并且在训练过程中存在声码器
与声学模型两阶段的不匹配问题,使得生成歌声的质量下降。
10.3)现有的歌声合成模型没有考虑对合成歌声的能量进行建模,而歌声中的能量变化在某些部分是频繁且剧烈的。


技术实现要素:

11.为了弥补上述背景技术的不足,本发明提出一种端到端歌声合成方法、计算机设备及存储介质,以解决合成歌声不够自然、缺乏表现力以及质量低的问题。
12.本发明的技术问题通过以下的技术方案予以解决:
13.本发明公开了一种端到端歌声合成方法,包括如下步骤:
14.s1、从给定乐谱中获取歌词文本,对应乐谱音高以及乐谱时长;并从歌词中提取相应的语义信息并且将其作为模型输入的一部分;
15.s2、将歌词文本转换为对应的音素序列后,与乐谱音高序列以及乐谱时长序列一起输入预构建的歌声合成模型第一输入端;
16.s3、将语义信息输入预构建的歌声合成模型的第二输入端;
17.s4、通过歌声合成模型合成对应真人演唱的歌声。
18.在一些实施例中,步骤s1中,采用语义特征提取模块从歌词中提取相应的语义信息,语义特征提取模块包含三个部分:预训练的语义表征模型、上采样模块以及文本编码器模块。
19.在一些实施例中,所述语义特征提取模块接受一句歌词的字符序列作为输入,并且输出音素级别的语义特征序列。
20.在一些实施例中,语义信息由所述预训练的语义表征模型提取,输入为字级别的歌词序列,输出为字级别的语义特征序列;所述上采样模块将字级别的语义特征序列扩增为音素级别;并经过所述文本编码器模块得到音素级别语义特征序列。
21.在一些实施例中,所述上采样模块将字级别的语义特征序列扩增为音素级别包括如下步骤:通过字-音素转换模块将每个字转换为对应的音素,得到每个字所对应的音素数量;根据每个字的音素数量,通过复制的方法将每个字级别的特征扩增为音素级别的特征;其次再根据数据集所提供的音素序列,记录其中静音段sp和吸气ap标识的位置,并且在扩增后的音素序列对应位置添加全零向量。
22.在一些实施例中,所述预训练的语义表征模型为预训练的bert模型,所述文本编码器模块为text encoder。
23.在一些实施例中,步骤s1中,采用音高预测器预测输出歌声的每一帧歌唱音高。
24.在一些实施例中,步骤s1中,采用能量预测器预测输出歌声的每一帧能量。
25.本发明还公开了一种计算机设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序可被处理器执行以实现如上任一项所述的方法。
26.本发明还公开了一种计算机可读存储介质,存储有计算机程序,所述计算机程序可被处理器执行以实现如上任一项所述的方法。
27.本发明与现有技术对比的有益效果包括:
28.本发明提供的端到端歌声合成方法,通过语义特征提取模块提取歌词中的语义信息作为歌声合成模型的附加输入,从而提升歌声合成模型合成歌声的自然度和表现力,并
且可以应用于任意的歌声合成方案中。
29.在一些实施例中,采用能量预测器预测输出歌声的每一帧能量,从而提高了合成歌声能量的准确度。
30.在一些实施例中,通过音高预测器预测输出歌声的每一帧歌唱音高,从而提高了音高预测的准确度。
附图说明
31.图1是本发明现有技术的歌声合成方法流程图。
32.图2是本发明实施例的端到端歌声合成方法流程图。
33.图3是本发明实施例的端到端歌声合成方法使用示意图。
34.图4是本发明实施例中的语义特征提取模块示意图。
35.图5是本发明实施例中的语义特征提取器示意图。
具体实施方式
36.下面对照附图并结合优选的实施方式对本发明作进一步说明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
37.需要说明的是,本实施例中的左、右、上、下、顶、底等方位用语,仅是互为相对概念,或是以产品的正常使用状态为参考的,而不应该认为是具有限制性的。
38.缩略语和关键术语定义:
39.svs:singing-voice-synthesis,歌声合成。指利用给定乐谱信息合成与真人演唱相似的歌声。
40.tts:text-to-speech,文语转换,又称语音合成。指将文字信息转换为标准流畅的读音。
41.本发明实施例提供一种端到端歌声合成方法,该方法中的歌声合成模型除了将音素序列、音高序列以及时长序列作为输入,还引入语义提取模块,从歌词中提取相应的语义信息并且将其作为歌声合成模型输入的一部分,且该端到端的歌声合成模型直接合成歌声,而不需通过声码器将中间特征转换为歌声。
42.如图2所示,本发明实施例的端到端歌声合成方法包括如下步骤:
43.s1、从给定乐谱中获取歌词文本,对应乐谱音高以及乐谱时长;并从歌词中提取相应的语义信息并且将其作为模型输入的一部分。
44.s2、将歌词文本转换为对应的音素序列后,与乐谱音高序列以及乐谱时长序列一起输入预构建的歌声合成模型第一输入端。
45.s3、将语义信息输入预构建的歌声合成模型的第二输入端。
46.s4、通过歌声合成模型合成对应真人演唱的歌声。
47.具体地,步骤s1中,采用语义特征提取模块从歌词中提取相应的语义信息,语义特征提取模块包含三个部分:预训练的语义表征模型、上采样模块以及文本编码器模块。预训练的语义表征模型可以是预训练的bert模型(预训练的语义特征提取器),文本编码器模块可以是text encoder。
48.如图4所示,语义特征提取模块接受一句歌词的字符序列作为输入,并且输出音素
级别的语义特征序列。
49.如图5所示,语义信息由预训练的bert模型提取,输入为字级别的歌词序列,输出为字级别的语义特征序列。
50.上采样模块用于将语义特征提取器输出的字级别语义特征序列,扩增为音素级别,并经过所述文本编码器模块得到音素级别语义特征序列。语义特征提取模块整体使用复制的方法将字级别的信息扩增为音素级别的信息。上采样模块将字级别的语义特征序列扩增为音素级别包括如下步骤:
51.首先通过字-拼音转换模块将每个字转换为对应的音素,具体地,使用pypinyin(一个支持中文转拼音输出的库)算法得到每个字所对应的音素,进而可以得到每个字所对应的音素数量。根据每个字的音素数量,通过复制的方法将每个字级别的特征扩增为音素级别的特征,如果一个字有x个音素,那么该字所对应的特征将会被复制x遍。其次再根据数据集所提供的音素序列,记录其中sp(代表静音段)和ap(代表吸气)标识的位置,并且在扩增后的音素序列根据记录的sp和ap的对应位置使用python(计算机编程语言)的自带insert函数添加全零向量。经过上述步骤后字级别语义信息便被扩增为音素级别语义信息。扩增后的音素级别语义信息输入text encoder(文本编码器)便得到对应的音素级别语义特征序列。
52.在一些实施例中,歌词可以采用中文之外的其他文字,为了要适应除中文之外的其他语种,本发明一些实施例还把上采样模块更改为如下所述:
53.上采样模块将字级别的语义特征序列扩增为音素级别的具体步骤为:首先通过字-音素转换模块将每个字转换为对应的音素,具体地,使用phonemizer(一个支持多语言转音素输出的库)算法得到每个字所对应的音素,进而可以得到每个字所对应的音素数量。根据每个字的音素数量,通过复制的方法将每个字级别的特征扩增为音素级别的特征,如果一个字有x个音素,那么该字所对应的特征将会被复制x遍。其次再根据数据集所提供的音素序列,记录其中sp(代表静音段)和ap(代表吸气)标识的位置,并且在扩增后的音素序列根据记录的sp和ap的对应位置使用python(计算机编程语言)的自带insert函数添加全零向量。经过上述步骤后字级别语义信息便被扩增为音素级别语义信息。扩增后的音素级别语义信息输入text encoder(文本编码器)便得到对应的音素级别语义特征序列。
54.对于字-音素转换模块,其关键在于获得每个字所对应的音素数量,至于其所使用算法,可以是phonemizer,也可以是其他合适的字-音素转换算法。
55.对于预训练的语义特征提取器,其关键在于将字级别的语义信息提取出来并且扩增为音素级别,至于之后的text encoder的结构,可以是基于transformer encoder(变压器编码器)的结构,也可以是其他合理结构例如cnn(卷积神经网络)或者rnn(循环神经网络)。
56.在一些实施例中,由于人们在歌唱的时候,唱出来的歌声不可能完全按照乐谱所规定的音高,因此在步骤s1中引入了音高预测器来预测输出歌声的每一帧歌唱音高,进一步提高合成歌声的自然度,歌唱音高可采用绝对音高,也可采用相比于乐谱音高的比例、并通过该比例与乐谱音高相乘得到最终的歌唱音高。与visinger中的音高预测器不同,visinger直接预测合成歌声的音高,而本发明实施例中的音高预测器是去预测合成歌声相比于乐谱音高的比例。具体地,本发明实施例的音高预测器使用长度调节器所扩增的帧级
别特征作为输入,对于每一帧特征,模型预测出一个比例。最后该比例与乐谱音高相乘便可以得到最终的歌唱音高。音高预测器除了用于预测唱腔音高相对于乐谱音高的比值外,还可以预测唱腔音高相对于乐谱音高的差值,本质上是相同的。
57.在一些实施例中,与语音相比,歌声的能量变化范围更广,为了进一步提高合成歌声的表现力,在步骤s1中引入了能量预测器以预测输出歌声的每一帧能量,每一帧的能量,可在对数域上进行表征,或在原始数值域上进行表征。具体来说,网络包含两层一维卷积层,激活函数为relu。每个卷积层后有层归一化网络以及丢失层。能量预测器使用长度调节器所扩增的帧级别特征与音高预测器的输出的和作为输入,输出预测每一帧的能量。输出的能量值映射到log(对数)域后进行量化,转换为能量embedding(嵌入)。
58.本发明实施例的端到端歌声合成方法的使用示意图如图3所示,用户需要提供乐谱信息,具体来说,包括歌词序列、歌词对应音素的音高序列以及时长序列。端到端的歌声合成模型先通过预训练的语义特征提取器,从歌词中提取对应的语义信息,并且与音素序、音高序列以及时长序列一起作为模型的输入。如用户想要合成歌声的前两个字为“感受”,用户输入“感受”,以及感受对应的音素的音高“g#4g#4g#4g#4”以及时长“0.2530300.2530300.4280300.428030”,系统即自动生成对应的歌声。
59.本发明还提供了一种计算机设备,包括处理器和存储器,存储器中存储有计算机程序,计算机程序可被处理器执行以实现如上任一项歌声合成方法。
60.本发明还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序可被处理器执行以实现如上任一项歌声合成方法。
61.在一个实施例中,对visinger以及本发明实施例的端到端歌声合成方法所生成的音频,进行平均意见得分(mos)测试,通过主观听觉测试来评估合成唱腔的自然性和表现力。对于每个系统,准备了10个音频样本,每个样本在10秒左右。请25位听众评估其表现力,并在1-5分的范围内对给定的音频进行评分,评分间隔为1分。测评结果如表1所示,
±
号代表其95%置信度的置信区间。由此可见,本发明实施例的端到端歌声合成方法所生成的音频的自然性和表现力更佳。
62.测评对象mos结果真实音频4.876
±
0.043visinger3.316
±
0.101本发明提出的方法3.808
±
0.085
63.本发明实施例提供的歌声合成模型是一个端到端的歌声合成模型,在基于visinger的基础上增加了语义特征提取模块、能量预测器以及音高预测器。与现有技术相比,本发明具有以下优势:
64.1)本发明新增了语义特征提取模块,该模块从歌词中提取语义信息作为模型的附加输入,从而指导模型更自然和富有表现力的歌声,并且能够应用于任意的歌声合成方案中。
65.2)本发明以端到端的方法合成歌声,克服了两阶段模型的训练不匹配问题,提高了合成歌声的质量。
66.3)本发明添加了能量预测器,以提高合成歌声能量的准确度。
67.4)本发明新设计了音高预测器,由直接预测音高变为预测唱腔音高相对于乐谱音
高的比值,从而提高了音高预测的准确度。
68.本发明对于人机交互行业具有重要价值,可用于歌声合成、语音助手、虚拟人构建等多种应用场景中。
69.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。

技术特征:
1.一种端到端歌声合成方法,其特征在于,包括如下步骤:s1、从给定乐谱中获取歌词文本,对应乐谱音高以及乐谱时长;并从歌词中提取相应的语义信息并且将其作为模型输入的一部分;s2、将歌词文本转换为对应的音素序列后,与乐谱音高序列以及乐谱时长序列一起输入预构建的歌声合成模型第一输入端;s3、将语义信息输入预构建的歌声合成模型的第二输入端;s4、通过歌声合成模型合成对应真人演唱的歌声。2.如权利要求1所述的端到端歌声合成方法,其特征在于,步骤s1中,采用语义特征提取模块从歌词中提取相应的语义信息,语义特征提取模块包含三个部分:预训练的语义表征模型、上采样模块以及文本编码器模块。3.如权利要求2所述的端到端歌声合成方法,其特征在于,所述语义特征提取模块接受一句歌词的字符序列作为输入,并且输出音素级别的语义特征序列。4.如权利要求2所述的端到端歌声合成方法,其特征在于,语义信息由所述预训练的语义表征模型提取,输入为字级别的歌词序列,输出为字级别的语义特征序列;所述上采样模块将字级别的语义特征序列扩增为音素级别;并经过所述文本编码器模块得到音素级别语义特征序列。5.如权利要求4所述的端到端歌声合成方法,其特征在于,所述上采样模块将字级别的语义特征序列扩增为音素级别包括如下步骤:通过字-音素转换模块将每个字转换为对应的音素,得到每个字所对应的音素数量;根据每个字的音素数量,通过复制的方法将每个字级别的特征扩增为音素级别的特征;其次再根据数据集所提供的音素序列,记录其中静音段sp和吸气ap标识的位置,并且在扩增后的音素序列对应位置添加全零向量。6.如权利要求2-5任一项所述的端到端歌声合成方法,其特征在于,所述预训练的语义表征模型为预训练的bert模型,所述文本编码器模块为text encoder。7.如权利要求1所述的端到端歌声合成方法,其特征在于,步骤s1中,采用音高预测器预测输出歌声的每一帧歌唱音高。8.如权利要求1所述的端到端歌声合成方法,其特征在于,步骤s1中,采用能量预测器预测输出歌声的每一帧能量。9.一种计算机设备,包括处理器和存储器,所述存储器中存储有计算机程序,其特征在于,所述计算机程序可被处理器执行以实现如权利要求1-8中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序可被处理器执行以实现如权利要求1-8中任一项所述的方法。

技术总结
本发明公开了一种端到端歌声合成方法、计算机设备及存储介质,所述合成方法包括如下步骤:S1、从给定乐谱中获取歌词文本,对应乐谱音高以及乐谱时长;并从歌词中提取相应的语义信息并且将其作为模型输入的一部分;S2、将歌词文本转换为对应的音素序列后,与乐谱音高序列以及乐谱时长序列一起输入预构建的歌声合成模型第一输入端;S3、将语义信息输入预构建的歌声合成模型的第二输入端;S4、通过歌声合成模型合成对应真人演唱的歌声。本发明能够提升合成歌声的自然度和表现力,并且可以应用于任意的歌声合成方案中。意的歌声合成方案中。意的歌声合成方案中。


技术研发人员:吴志勇 周绍焕
受保护的技术使用者:清华大学深圳国际研究生院
技术研发日:2022.07.07
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-8971.html

最新回复(0)