歌声合成方法及装置、电子设备及存储介质

文档序号:193303 发布日期:2021-11-02 浏览:21次 >En<

阅读说明:本技术 歌声合成方法及装置、电子设备及存储介质 (Singing voice synthesis method and device, electronic equipment and storage medium ) 是由 周阳 于 2021-09-08 设计创作,主要内容包括:本申请实施例涉及语音合成领域,提供一种歌声合成方法及装置、电子设备及存储介质,通过获得待合成歌曲的音素序列输入歌声合成模型,由于音素序列包括音素、音高及音素时长,使得合成的歌唱音频能够反映各个音素的发音时长,提高了歌声合成的自然度;同时,在歌声合成模型的解码阶段输入梅尔谱特征,该梅尔谱特征是预先对参考音频进行处理得到的,使得合成的歌唱音频能够更加接近真人演唱效果,提高了用户的听觉体验。(The embodiment of the application relates to the field of speech synthesis, and provides a singing voice synthesis method and device, electronic equipment and a storage medium, wherein a phoneme sequence of a song to be synthesized is obtained and input into a singing voice synthesis model, and the synthesized singing voice frequency can reflect the pronunciation duration of each phoneme due to the fact that the phoneme sequence comprises the phoneme, the pitch and the phoneme duration, so that the naturalness of the singing voice synthesis is improved; meanwhile, the Mel-frequency spectrum characteristics are input at the decoding stage of the singing voice synthesis model, and the Mel-frequency spectrum characteristics are obtained by processing the reference audio in advance, so that the synthesized singing voice can be closer to the real singing effect, and the auditory experience of a user is improved.)

歌声合成方法及装置、电子设备及存储介质

技术领域

本申请实施例涉及语音合成领域,具体而言,涉及一种歌声合成方法及装置、电子设备及存储介质。

背景技术

近年来,歌声合成一直是一个热议的话题,该技术可以将乐谱合成为人声演唱的音频。但是,现有的歌声合成效果自然度低,歌声机械感强,无法达到很好的拟人效果。因此,如何根据乐谱合成自然度高、接近真人演唱效果的歌曲,是研究人员亟待解决的技术问题。

发明内容

本申请实施例的目的在于提供一种歌声合成方法及装置、电子设备及存储介质,用以提高歌声合成的自然度,使其接近真人演唱效果。

为了实现上述目的,本申请实施例采用的技术方案如下:

第一方面,本申请实施例提供了一种歌声合成方法,所述方法包括:

获得待合成歌曲的音素序列,其中,所述音素序列包括多个音素、以及每个所述音素对应的音高和音素时长;

将所述音素序列输入歌声合成模型,利用所述歌声合成模型的编码网络对所述音素序列进行编码,得到编码向量;

将所述编码向量和梅尔谱特征输入所述歌声合成模型的解码网络,得到所述待合成歌曲的歌唱音频,其中,所述梅尔谱特征是预先对参考音频进行处理得到的。

进一步地,所述编码网络包括嵌入单元、预处理单元及特征提取单元,所述特征提取单元包括卷积层及高速网络;

所述利用所述歌声合成模型的编码网络对所述音素序列进行编码,得到编码向量的步骤,包括:

利用所述嵌入单元对所述音素序列进行处理,得到嵌入序列;

将所述嵌入序列先输入所述预处理单元以进行非线性变换,再输入所述特征提取单元生成所述编码向量。

进一步地,所述解码网络包括位置敏感注意力层、预测单元、解码单元、CBHG单元及声码器,所述CBHG单元包括卷积层、高速网络及双向递归神经网络;

所述将所述编码向量和梅尔谱特征输入所述歌声合成模型的解码网络,得到所述待合成歌曲的歌唱音频的步骤,包括:

将所述编码向量输入所述位置敏感注意力层以学习声学特征与所述音素序列的对应关系,输出上下文向量;

将所述梅尔谱特征输入所述预测单元,利用所述预测单元对所述梅尔谱特征进行线性变换,得到预测输出;

将所述上下文向量和所述预测输出拼接后输入所述解码单元进行解码,得到解码序列和停止标志位,其中,所述停止标志位用于表征解码过程是否停止;

将所述解码序列输入所述CBHG单元以提取上下文特征,得到声学特征序列;

将所述声学特征序列输入所述声码器,以合成所述歌唱音频。

进一步地,所述获得待合成歌曲的音素序列的步骤,包括:

获取所述待合成歌曲的乐谱,其中,所述乐谱包括歌词及音符;

对所述乐谱进行解析,将所述歌词中的每个音节划分成至少一个音素;

根据所述音符,获取每个所述音素对应的所述音高和所述音素时长,得到所述音素序列。

进一步地,所述将所述歌词中的每个音节划分成至少一个音素的步骤,包括:

针对所述歌词中的任意一个目标音节,判断所述目标音节是否为无声母拼音;

若否,则将所述目标音节按照声母和韵母进行划分,得到所述至少一个音素;

若是,则对所述目标音节添加万能声母或者分割信息后进行划分,得到所述至少一个音素。

进一步地,所述音素序列还包括呼吸音素,所述呼吸音素用于表征所述参考音频中的呼吸声。

进一步地,所述音素序列还包括连音标识,所述连音标识用于指示所述多个音素中的目标音素存在连音。

进一步地,所述歌声合成模型是通过以下方式训练得到的:

获取样本音频;

对所述样本音频进行分析,得到多个样本音素序列,其中,一个所述样本音素序列对应所述样本音频中的一个音频帧,所述样本音素序列包括对应音频帧的多个音素以及每个所述音素的音高和音素时长;

基于所述多个样本音素序列,对预设模型进行训练,得到所述歌声合成模型。

进一步地,所述基于所述多个样本音素序列,对预设模型进行训练,得到所述歌声合成模型的步骤,包括:

将所述多个样本音素序列输入所述预设模型,输出合成音频;

对所述合成音频进行分析,获得预测音素时长信息;

基于所述预测音素时长信息和所述样本音频的真实音素时长信息,利用损失函数:

align_loss=tf.reduce_mean(tf.abs(align_targets-align_outputs))

对所述预设模型进行参数更新,得到所述歌声合成模型,其中,tf.abs表示取绝对值,targets表示所述真实音素时长信息,align_outputs表示所述预测音素时长信息,f.reduce_mean表示求均方误差。

第二方面,本申请实施例还提供了一种歌声合成装置,所述装置包括:

获得模块,用于获得待合成歌曲的音素序列,其中,所述音素序列包括多个音素、以及每个所述音素对应的音高和音素时长;

编码模块,用于将所述音素序列输入歌声合成模型,利用所述歌声合成模型的编码网络对所述音素序列进行编码,得到编码向量;

解码模块,用于将所述编码向量和梅尔谱特征输入所述歌声合成模型的解码网络,得到所述待合成歌曲的歌唱音频,其中,所述梅尔谱特征是预先对参考音频进行处理得到的。

第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的歌声合成方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的歌声合成方法。

相对现有技术,本申请实施例提供的一种歌声合成方法及装置、电子设备及存储介质,通过获得待合成歌曲的音素序列输入歌声合成模型,由于音素序列包括音素、音高及音素时长,使得合成的歌唱音频能够反映各个音素的发音时长,提高了歌声合成的自然度;同时,在歌声合成模型的解码阶段输入梅尔谱特征,该梅尔谱特征是预先对参考音频进行处理得到的,使得合成的歌唱音频能够更加接近真人演唱效果,提高了用户的听觉体验。

附图说明

图1示出了本申请实施例提供的歌声合成方法的流程示意图。

图2为图1示出的歌声合成方法中步骤S101的流程示意图。

图3示出了本申请实施例提供的乐谱的示例图。

图4示出了本申请实施例提供的乐谱的解析过程示例图。

图5示出了本申请实施例提供的歌声合成模型的结构示意图。

图6为图1示出的歌声合成方法中步骤S102的流程示意图。

图7为图1示出的歌声合成方法中步骤S103的流程示意图。

图8示出了本申请实施例提供的歌声合成模型的训练流程示意图。

图9示出了本申请实施例提供的歌声合成装置的方框示意图。

图10示出了本申请实施例提供的电子设备的方框示意图。

图标:10-电子设备;11-处理器;12-存储器;13-总线;100-歌声合成装置;110-获得模块;120-编码模块;130-解码模块。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。

本申请实施例提供的歌声合成方法,可以实现对人声的模拟,从而为用户提供虚拟歌姬等人工智能演唱功能。并且,通过该歌声合成方法,可以合成各种类型的人声音频,例如,中文歌曲、英文歌曲、评书、曲艺音频等。

请参照图1,图1示出了本申请实施例提供的歌声合成方法的流程示意图,该歌声合成方法应用于电子设备,可以包括以下步骤S101~S103。

S101,获得待合成歌曲的音素序列,其中,音素序列包括多个音素、以及每个音素对应的音高和音素时长。

音素是根据语音的自然属性划分的最小语音单位,依据音节里的发音动作来分析,一个动作构成一个音素。音素分为元音与辅音两大类,在不同的发音规则中,音素的类型不同。例如,对于英文来说,音素包括元音音素和辅音音素。对于中文来说,每个中文汉字的音节(也即拼音)都可以分解成声母和韵母,故音素包括声母和韵母。下述实施例以中文为例进行介绍。

音素的音高用于指示该音素在发音过程中的音的高度。与普通说话的语音相比,歌声的音高范围要大的多,由于音高的本质是频率,所以可以参考国际音高赫兹谱将歌声的音高划分为36个等级,例如,C3、F4等。

音素的音素时长用于指示该音素在发音过程中的持续时长。例如,音素为韵母“i”,对应的音素时长为200ms,该音素时长指示音素“i”在发音过程中持续200ms。

由于唱歌时有节奏的概念,而节奏的本质是音素时长,并且合成的歌唱音频是以音频帧的形式输出的,音频帧最短为32ms。因此,可以设置节奏的最小分辨率为32ms,即,音素时长最短为32ms,以递增的方式分为300个等级。

音素序列是对待合成歌曲的乐谱进行解析得到的,通常,乐谱包括歌词和音符,一句歌词对应一个音素序列,将该音素序列输入歌声合成模型后输出对应的音频帧,一个音素序列对应合成的歌唱音频中的一个或几个连续的音频帧。

音素序列可以包括多个元素,每个元素均包括音素及该音素对应的音高和音素时长,可以表示为(音素,音高,音素时长)。例如,(iou,C3,10),其中,iou代表音素,C3代表音高,10代表音素时长。

下面对乐谱解析成音素序列的过程进行详细介绍。在图1的基础上,请参照图2,步骤S101可以包括子步骤S1011~S1013。

S1011,获取待合成歌曲的乐谱,其中,乐谱包括歌词及音符。

待合成歌曲可以是需要采用歌声合成模型合成的任意一个歌曲,例如,中文歌曲、英文歌曲等。

本实施例中是直接基于乐谱合成歌曲音频,乐谱通常包括文本形式的歌词和音符,例如,图3示出了一首中文歌曲的一个乐谱片段,包括中文歌词“月儿圆又圆我向夜空许愿”以及对应的音符。

S1012,对乐谱进行解析,将歌词中的每个音节划分成至少一个音素。

下述实施例以图3所示的部分乐谱片段为例,说明乐谱的解析过程。部分乐谱片段包括:中文歌词“月”、“儿”、“圆”、“又”、“圆”以及对应的音符。

通过对乐谱进行解析,可以将歌词中的每个音节划分成至少一个音素。请参照图4,歌词包括5个音节“yue”、“er”、“yuan”、“you”、“yuan”,每个音节可以被示例性地划分为至少一个音素。例如,音节“yue”可以被划分为2个音素“y”和“üe”,音素“y”对应声母,音素“üe”对应韵母。

在歌声合成中,无声母拼音可能会出现发音模糊的现象,例如,图4中的“er”,因此,音节划分过程中需要对无声母拼音进行预处理,预处理之后再划分成音素,避免出现发音模糊。

作为一种实施方式,将歌词中的每个音节划分成至少一个音素的过程,可以包括:

针对歌词中的任意一个目标音节,判断目标音节是否为无声母拼音;

若否,则将目标音节按照声母和韵母进行划分,得到至少一个音素;

若是,则对目标音节添加万能声母或者分割信息后进行划分,得到至少一个音素。

在本实施例中,对于无声母拼音,则可以采用以下处理方式:

在一种可选的实施方式中,可以为该无声母拼音添加一个万能声母,例如,“er”只有韵母没有声母,针对这种发音,可以统一添加一个万能声母al,之后再划分成音素“al”和“er”。

在另一种可选的实施方式中,可以为该无声母拼音添加分割信息,例如,“酷爱”的拼音为“kuai”,添加分割信息sep后变成“sep ku sep aisep”,之后再划分为音素“sep”、“k”、“u”、“sep”、“ai”和“sep”。

S1013,根据音符,获取每个音素对应的音高和音素时长,得到音素序列。

由于乐谱中包含音符,音符有对应的音高,所以,根据子步骤S1012的方式将歌词中的每个音节划分成至少一个音素之后,就能根据音符得到每个音素对应的音高。通常,在乐谱中,一个音节对应一个音高,则同一音节中的所有音素均对应同一音高,例如,图4中的音节“yue”对应音高Db4,则音素“y”和“üe”均对应音高Db4。

同时,根据乐谱中的音符,还能得到每个音节的拼音时长,例如,图4中音节“yue”的拼音时长为260ms,但是,歌声合成模型是以每个音素的音素时长作为输入的,所以,还需要根据音节的拼音时长,确定出该音节中每个音素的音素时长,例如,根据“yue”的拼音时长260ms,确定出音素“y”和“üe”的音素时长。

对于音素时长的确定,可以采用以下方式:

在一种可选的实施方式中,可以构建一个双向多层的LSTM网络,对该网络进行训练,使其能在已知拼音时长的情况下学习到各个音素时长所占的百分比。

在另一种可选的实施方式中,发明人经过大量的实验验证发现,同一个人对声母的发音习惯比较一致。因此,可以预先选择同一个人演唱的多首歌曲,例如,100首,并统计这些歌曲中每个声母的平均发音时长,例如,声母“y”的平均发音时长为63ms,并将该平均发音时长作为对应声母的音素时长,例如,图4中音素“y”的音素时长设置为63ms,而韵母的音素时长则为拼音时长减去声母的音素时长。

在一种可能的情形下,真人演唱的音频中还会有呼吸声,为了使合成的歌唱音频达到更加拟人的效果,在歌声合成中还需要考虑呼吸声的处理。

可以预先将呼吸音频按照时长分为30个等级,例如,6表示时长接近200ms,10表示时长接近300ms。同时,可以设置呼吸音素的形式为breath_时长等级,例如,breath_6,表征时长等级为6;breath_10,表征时长等级为10。

对呼吸声的处理分为模型训练阶段和模型应用阶段两部分进行介绍。

模型训练阶段,可以将呼吸声以呼吸音素的形式输入到模型中,这样模型就能很好的学习到样本音频的演唱者的呼吸信息。呼吸音素则是通过获取样本音频中呼吸音频的时长,再根据时长确定对应的时长等级得到的。

模型应用阶段,可以通过获取参考音频中呼吸音频的时长,再根据该时长形成呼吸音素,再将该呼吸音素输入歌声合成模型中。因此,音素序列还可以包括呼吸音素,呼吸音素用于表征参考音频中的呼吸声。

需要指出的是,模型应用阶段,音素序列中是否包括呼吸音素、以及具体哪个音素序列中包括呼吸音素,可以由用户灵活选择,在此不做限定。

在一种可能的情形下,真人演唱歌曲时,很难完全按照给定的乐谱演唱,几乎无法避免的会存在连音,因此,为了达到更加拟人的效果,在歌声合成中还需要考虑连音的处理。

对连音的处理同样分为模型训练阶段和模型应用阶段两部分进行介绍。

模型训练阶段,可以通过分析样本音频,找出该样本音频中的连音,并以连音标识的方式输入到模型进行训练,连音标识用于指示多个音素中的目标音素存在连音,使得模型能够学习到连音技巧。

模型应用阶段,可以通过对参考音频进行分析,参考音频的演唱者习惯的连音,再根据该连音构造连音标识并输入到模型中。因此,音素序列还可以包括连音标识,连音标识用于指示多个音素中的目标音素存在连音。

需要指出的是,模型应用阶段,音素序列中是否包括连音标识、以及具体哪个音素序列中包括连音标识,可以由用户灵活选择,在此不做限定。

由于中文发音的特殊方式,连音只会存在于韵母中,故可以采用将相关韵母相连接的方式,即,将存在连音的多个韵母作为一个音素,该音素即为目标音素,并添加连音标识。例如,音节“xiao”包括声母“x”和韵母“i”、“ao”,但是韵母“i”、“ao”是发音中是连音,故将音节“xiao”划分为两个音素“x”和“iao”,同时添加连音标识con,可以将连音标识con也作为一个音素,但是需要设置该音素对应的音高和音素时长均为0,例如,(con,0,0)。

同时,对于连音,在发音过程中可能会同时存在多个音高,例如,“iao”的音高包括Eb4、F4和E4,对于这种情形,可以获得每个音高对应的音素时长,再分别构造音素序列中的元素,例如,(x,Eb4,63)、(iao,Eb4,220)、(con,0,0)、(iao,F4,500)、(con,0,0)、(iao,E4,30)。

S102,将音素序列输入歌声合成模型,利用歌声合成模型的编码网络对音素序列进行编码,得到编码向量。

S103,将编码向量和梅尔谱特征输入歌声合成模型的解码网络,得到待合成歌曲的歌唱音频,其中,梅尔谱特征是预先对参考音频进行处理得到的。

请参照图5,图5示出了本申请实施例提供的歌声合成模型的结构示意图。该歌声合成模型可以是在传统的声谱预测网络Tacotron1模型的基础上进行改进得到的。如图5所示,歌声合成模型包括编码网络和解码网络,将音素序列输入歌声合成模型后,编码网络将音素序列编码成固定长度的编码向量,解码网络再将该编码向量解码生成歌唱音频。

同时,解码网络的输入除了编码向量之外,还包括参考音频的梅尔谱特征。参考音频可以是某个人的说话音频或者唱歌音频,可以由用户灵活选择,例如,用户录制自己的声音作为参考音频、或者选择某个明星的声音作为参考音频等,在此不做限定。通过在解码阶段并入参考音频的梅尔谱特征,可以使合成的歌唱音频更加接近真人演唱效果。

如图5所示,编码网络可以包括嵌入单元、预处理单元及特征提取单元,特征提取单元可以包括卷积层及高速网络。

因此,在图1的基础上,请参照图6,步骤S102可以包括子步骤S1021~S1022。

S1021,利用嵌入单元对音素序列进行处理,得到嵌入序列。

S1022,将嵌入序列先输入预处理单元以进行非线性变换,再输入特征提取单元生成编码向量。

在本实施例中,嵌入单元可以是Character Embedding,预处理单元可以是Pre-net。由于音素、音高和音素时长的特征提取并不需要考虑上下文信息,因此,将Tacotron1模型中的CBHG(Convolution Bank+Highway network+bidirectionalGated RecurrentUnit,卷积层+高速网络+双向递归神经网络)去掉双向递归神经网络,得到特征提取单元。

在图5所示的编码网络的基础上,利用编码网络生成编码向量的过程如下:

1、将音素序列输入嵌入单元(Character Embedding),利用嵌入单元(CharacterEmbedding)对音素序列进行处理得到嵌入序列;

2、将嵌入序列输入预处理单元(Pre-net),利用预处理单元(Pre-net)对嵌入序列进行非线性变换,以提升歌声合成模型的收敛和泛化能力;

3、将非线性变换后的嵌入序列输入特征提取单元(Convolution Bank+Highwaynetwork),利用特征提取单元(Convolution Bank+Highway network)同时提取音素、音高和音素时长的特征,输出编码向量。

如图5所示,解码网络可以包括位置敏感注意力层、预测单元、解码单元、CBHG单元及声码器,所述CBHG单元包括卷积层、高速网络及双向递归神经网络。

因此,在图1的基础上,请参照图7,步骤S103可以包括子步骤S1031~S1035。

S1031,将编码向量输入位置敏感注意力层以学习声学特征与音素序列的对应关系,输出上下文向量。

S1032,将梅尔谱特征输入预测单元,利用预测单元对梅尔谱特征进行线性变换,得到预测输出。

S1033,将上下文向量和预测输出拼接后输入解码单元进行解码,得到解码序列和停止标志位,其中,停止标志位用于表征解码过程是否停止。

S1034,将解码序列输入CBHG单元以提取上下文特征,得到声学特征序列。

S1035,将声学特征序列输入声码器,以合成歌唱音频。

在本实施例中,预测单元可以是Pre-net,解码单元可以包括Attention RNN和Decoder RNN,位置敏感注意力层可以是Location Sensitive Attention。CBHG单元可以是Convolution Bank+Highway network+bidirectionalGated Recurrent Unit,即,卷积层+高速网络+双向递归神经网络。

在图5所示的解码网络的基础上,解码网络输出歌唱音频的过程如下:

1、将编码向量输入位置敏感注意力层(Location Sensitive Attention),位置敏感注意力层(Location Sensitive Attention)本质上是由一个上下文权重向量组成的矩阵,能够自动学习出声学特征与音素序列的对应关系,输出上下文向量。

位置敏感注意力层(Location Sensitive Attention)在每一个时间步上进行注意力计算,通过累加注意力权重,获得已经学习到的位置敏感信息,使得歌声合成模型对音素序列中的内容进行顺序处理,避免重复预测或者遗漏。也就是,在歌声合成模型中采用位置敏感注意力层(Location Sensitive Attention),利用该位置敏感注意力层关注编码向量的不同部分,自动学习出声学特征与音素序列的对应关系。

因此,采用位置敏感注意力层(Location Sensitive Attention)可以进一步提升歌声合成效果的稳定性,避免出现漏音素、重复音素或者无法停止的情形。

2、将先前帧和梅尔谱特征输入预测单元(Pre-net),利用预测单元(Pre-net)对先前帧和梅尔谱特征进行线性变换,得到预测输出。

其中,解码是一个循环的过程,每次循环的当前时间步为t。将先前帧和梅尔谱特征输入预测单元(Pre-net)是第1次循环,故此时t=1。在t>1时,如图5所示,是将时间步t-1的解码序列输入预测单元(Pre-net)。预测单元(Pre-net)对输入进行线性变换。

当前时间步t=1,将先前帧和梅尔谱特征输入预测单元(Pre-net),故先前帧(Initial frame)为时间步0的解码序列,此时解码序列中的各个元素均为0,即,先前帧为全零帧。

3、位置敏感注意力层(Location Sensitive Attention)输出上下文向量、预测单元(Pre-net)生成预测输出后,将上下文向量和预测输出进行拼接,利用解码单元进行解码,输出当前时间步t的解码序列和停止标志位(Stop token),停止标志位(Stop token)用来表征是否停止循环。

4、将解码序列输入CBHG单元以提取上下文特征,得到当前时间步t的声学特征序列。

5、如果停止标志位(Stop token)表征停止循环,则解码过程到此为止,将当前时间步t的声学特征序列作为最终的声学特征序列;

如果停止标志位(Stop token)表征不停止循环,则更新当前时间步t=t+1,然后返回第1步继续执行,直至停止标志位(Stop token)表征停止循环,得到最终的声学特征序列。

6、将最终的声学特征序列输入声码器,以合成歌唱音频。

声码器可以将解码网络生成的声学特征序列转换为音频波形,声码器可以是基于梅尔谱参数生成音频波形的声码器,例如WaveGlow、Griffin-Lim、WaveNet等。

下面对歌声合成模型的训练过程进行详细介绍。

在本实施例中,歌声合成模型的训练过程可以应用于电子设备,歌声合成方法和歌声合成模型的训练过程可以由同一电子设备实现,也可以由不同电子设备实现。

请参照图8,图8示出了本申请实施例提供的歌声合成模型的训练流程示意图,歌声合成模型的训练过程可以包括步骤S201~S203。

S201,获取样本音频。

样本音频可以是预先录制的一个或多个音频,该音频可以是指定的中文歌曲、英文歌曲的音频,也可以是指定的评书音频、曲艺音频等。

S202,对样本音频进行分析,得到多个样本音素序列,其中,一个样本音素序列对应样本音频中的一个音频帧,样本音素序列包括对应音频帧的多个音素以及每个音素的音高和音素时长。

样本音频可以包括多个音频帧,通常,多个音频帧和多个样本音素序列一一对应。对任意一个音频帧进行分析,得到该音频帧中的各个音素、以及每个音素的音高和音素时长,即可得到该音频帧对应的样本音素序列。

以中文歌曲为例,对于样本音频,每个音素的获得方式与步骤S101中介绍的类似,在此不再赘述。

获取每个音素的音高的方式可以是:通过软件识别样本音频中每个音频帧的音高,再按照预先设定的36个音高等级,确定识别出的音频帧的音高,例如,C3、F4等,再将该音频帧的音高作为该音频帧中各个音素的音高。

获取样本音频中每个音素的音素时长的方式有多种,例如,可以通过软件识别样本音频中每个音素在发音过程中的持续时长,也可以通过人工标定的方式确定样本音频中每个音素在发音过程中的持续时长,从而得到每个音素的音素时长。

S203,基于多个样本音素序列,对预设模型进行训练,得到歌声合成模型。

获得样本音频的多个样本音素序列之后,可以将样本音频作为标签,将多个样本音素序列作为输入,对预设模型进行训练,直至设定的损失函数的损失值满足某一要求、或者迭代次数达到设定次数,得到音频合成模型。预设模型的模型结构与图5所示的模型结构一致,只是模型参数不同。

作为一种实施方式,对预设模型进行训练的过程,可以包括:

1、将多个样本音素序列输入预设模型,输出合成音频;

2、对合成音频进行分析,获得预测音素时长信息;

3、基于预测音素时长信息和样本音频的真实音素时长信息,利用损失函数:

align_loss=tf.reduce_mean(tf.abs(align_targets-align_outputs))

对预设模型进行参数更新,得到歌声合成模型,其中,tf.abs表示取绝对值,targets表示真实音素时长信息,align_outputs表示预测音素时长信息,f.reduce_mean表示求均方误差。

预测音素时长信息包括合成音频中每个音素的音素时长,真实音素时长信息包括样本音频中每个音素的真实音素时长,真实音素时长信息可以通过人工标定的方式进行确定。

对于歌声合成,模型训练的在于节奏时长的学习,而节奏时长的学习本质是各个音素的音素时长的学习,因此,模型训练的核心在于要准确的学习到各个音素的音素时长。

本申请实施例提供的模型采用了注意力机制,注意力机制会以非监督的方式学习到音素时长信息,但是由于歌声合成的复杂性,学习到的音素时长信息会存在较大偏差。因此,在训练过程中,将注意力机制学习到的音素时长信息,即,合成音频的预测音素时长信息,与样本音频的真实音素时长信息以均方误差的方式加入到损失函数中,从而将非监督学习方式改为监督学习方式,极大的提高了节奏时长控制的准确度。

与现有技术相比,本申请实施例具有以下有益效果:

首先,将音素、音高及音素时长作为歌声合成模型的输入,使得合成的歌唱音频能够反映各个音素的发音时长,提高了歌声合成的自然度;同时,在解码阶段输入参考音频的梅尔谱特征,使得合成的歌唱音频能够更加接近真人演唱效果;

其次,引入位置敏感注意力层,利用位置敏感注意力层关注编码向量的不同部分,自动学习出声学特征与音素序列的对应关系,从而提升歌声合成效果的稳定性,避免出现漏音素、重复音素或者无法停止的情形;

第三,引入停止标志位指示解码过程是否停止,避免解码过程陷入死循环;

第四,在歌声合成中考虑呼吸声、连音的处理,使合成的歌唱音频达到更加拟人的效果。

为了执行上述歌声合成方法实施例及各个可能的实施方式中的相应步骤,下面给出一种应用于歌声合成装置的实现方式。

请参照图9,图9示出了本申请实施例提供的歌声合成装置100的方框示意图。歌声合成装置100应用于电子设备,可以包括:获得模块110、编码模块120及解码模块130。

获得模块110,用于获得待合成歌曲的音素序列,其中,音素序列包括多个音素、以及每个音素对应的音高和音素时长。

编码模块120,用于将音素序列输入歌声合成模型,利用歌声合成模型的编码网络对音素序列进行编码,得到编码向量。

解码模块130,用于将编码向量和梅尔谱特征输入歌声合成模型的解码网络,得到待合成歌曲的歌唱音频,其中,梅尔谱特征是预先对参考音频进行处理得到的。

可选地,获得模块110具体用于:

获取待合成歌曲的乐谱,其中,乐谱包括歌词及音符;

对乐谱进行解析,将歌词中的每个音节划分成至少一个音素;

根据音符,获取每个音素对应的音高和音素时长,得到音素序列。

可选地,获得模块110执行将歌词中的每个音节划分成至少一个音素的方式,包括:

针对歌词中的任意一个目标音节,判断目标音节是否为无声母拼音;

若否,则将目标音节按照声母和韵母进行划分,得到至少一个音素;

若是,则对目标音节添加万能声母或者分割信息后进行划分,得到至少一个音素。

可选地,编码模块120执行利用歌声合成模型的编码网络对音素序列进行编码,得到编码向量的方式,包括:

利用嵌入单元对音素序列进行处理,得到嵌入序列;

将嵌入序列先输入预处理单元以进行非线性变换,再输入特征提取单元生成编码向量。

可选地,解码模块130执行将编码向量和梅尔谱特征输入歌声合成模型的解码网络,得到待合成歌曲的歌唱音频的步骤,包括:

将编码向量输入位置敏感注意力层以学习声学特征与音素序列的对应关系,输出上下文向量;

将梅尔谱特征输入预测单元,利用预测单元对梅尔谱特征进行线性变换,得到预测输出;

将上下文向量和预测输出拼接后输入解码单元进行解码,得到解码序列和停止标志位,其中,停止标志位用于表征解码过程是否停止;

将解码序列输入CBHG单元以提取上下文特征,得到声学特征序列;

将声学特征序列输入声码器,以合成歌唱音频。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的歌声合成装置100的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

请参照图10,图10示出了本申请实施例提供的电子设备10的方框示意图。电子设备10可以是任何具有语音处理功能的电子设备,例如,服务器、移动终端、通用计算机或者特殊用途的计算机等,移动终端可以是智能手机、笔记本电脑、平板电脑、台式计算机、智能电视等。

电子设备10可以包括处理器11、存储器12及总线13,处理器11通过总线13与存储器12连接。

存储器12用于存储程序,例如图9所示的歌声合成装置100,歌声合成装置100包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行所述程序以实现上述实施例揭示的歌声合成方法。

存储器12可能包括高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失存储器(non-volatile memory,NVM)。

处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、微控制单元(Microcontroller Unit,MCU)、复杂可编程逻辑器件(Complex Programmable LogicDevice,CPLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、嵌入式ARM等芯片。

本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器11执行时实现上述实施例揭示的歌声合成方法。

综上所述,本申请实施例提供的一种歌声合成方法及装置、电子设备及存储介质,通过获得待合成歌曲的音素序列输入歌声合成模型,由于音素序列包括音素、音高及音素时长,使得合成的歌唱音频能够反映各个音素的发音时长,提高了歌声合成的自然度;同时,在歌声合成模型的解码阶段输入梅尔谱特征,该梅尔谱特征是预先对参考音频进行处理得到的,使得合成的歌唱音频能够更加接近真人演唱效果,提高了用户的听觉体验。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:语音合成方法、装置、设备及可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!