掌桥专利:专业的专利平台
掌桥专利
首页

语音时长预测方法、装置、设备及可读存储介质

文献发布时间:2023-06-19 11:52:33


语音时长预测方法、装置、设备及可读存储介质

技术领域

本申请涉及语音处理技术领域,更具体地说,涉及一种语音时长预测方法、装置、设备及可读存储介质。

背景技术

随着人工智能相关技术应用的发展,语音合成技术的应用领域不断拓展,例如,从广播式应用(如车站、银行、机场广播等)到人机交互式应用(如人工智能助理、客服等)等领域都会应用到语音合成技术,这对合成语音的表现力、音质等有了更高的要求。

时长预测是语音合成技术的一个重要环节,然而,本申请的发明人研究发现,基于目前的时长预测方法预测的语音时长进行语音合成时,易出现一字一顿现象,连续感差。

发明内容

有鉴于此,本申请提供了一种语音时长预测方法、装置、设备及可读存储介质,以提高合成语音的连续性。

为了实现上述目的,现提出的方案如下:

一种语音时长预测方法,包括:

获取文本数据;

利用预先训练好的时长预测模型对所述文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列;

利用所述时长预测模型,根据所述至少两个韵律层级的编码特征序列,生成所述文本数据对应的语音时长序列。

上述方法,优选的,利用所述时长预测模型得到至少两个韵律层级的编码特征序列;根据所述至少两个韵律层级的编码特征序列,生成所述文本数据对应的语音时长序列的过程,包括:

利用所述时长预测模型的编码模块,对所述文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列;

利用所述时长预测模型的时长生成模块,根据所述至少两个韵律层级的编码特征序列,生成所述文本数据对应的语音时长序列。

上述方法,优选的,利用所述时长预测模型的编码模块,对所述文本数据进行至少两个韵律层级的编码,得到至少两个层级的编码特征序列,包括:

利用所述时长预测模型的特征提取模块,提取所述文本数据的特征,得到文本特征序列,作为最低韵律层级的编码特征序列;

利用所述时长预测模型的韵律特征获取模块,对所述文本特征序列进行至少一个非最低韵律层级的编码,得到至少一个非最低韵律层级的韵律特征序列,作为所述至少两个韵律层级的编码特征序列中其它韵律层级的编码特征序列。

上述方法,优选的,所述利用所述时长预测模型的时长生成模块,根据所述至少两个韵律层级的编码特征序列,生成所述文本数据对应的语音时长序列,包括:

利用所述时长预测模型的第一时长生成模块,根据所述至少两个韵律层级的编码特征序列,生成所述文本特征序列对应的语音时长序列,作为所述文本数据对应的语音时长序列;其中,所述语音时长序列中的语音时长与所述文本特征序列中的文本特征一一对应;

或者,

利用所述时长预测模型的第一时长生成模块,根据所述至少两个韵律层级的编码特征序列,生成所述文本特征序列对应的语音时长序列;

利用所述时长预测模型的第二时长生成模块,根据每个韵律特征序列,生成该韵律特征序列对应的语音时长序列;该语音时长序列中的语音时长与该韵律特征序列中的韵律特征一一对应;

对所述文本特征序列对应的语音时长序列以及各个韵律特征序列对应的语音时长序列进行处理,得到所述文本数据对应的语音时长序列。

上述方法,优选的,利用所述第一时长生成模块,根据所述至少两个韵律层级的编码特征序列,生成所述文本特征序列对应的语音时长序列的过程,包括:

利用所述时长预测模型的拼接模块,对应每一个文本特征,将该文本特征,以及基于该文本特征生成的各个韵律层级的韵律特征进行拼接,得到该文本特征对应拼接特征;

利用所述时长预测模型的采样模块,在预先设定好的符合预设分布的变量中进行采样,得到与各个拼接特征对应的目标值;

利用所述时长预测模型的变换模块,根据由各个文本特征对应的拼接特征构成的拼接特征序列,对由各个目标值构成的目标值序列进行第一变换,得到所述文本特征序列对应的语音时长序列;其中,所述变换模块具有:根据所述拼接特征序列,对所述文本特征序列对应的语音时长序列进行所述第一变换的逆变换,得到所述目标值序列的能力。

上述方法,优选的,利用所述采样模块在所述符合预设分布的变量中进行采样的过程,包括:

对应每一个拼接特征,利用所述采样模块在所述符合预设分布的变量中进行随机采样,得到该拼接特征对应的目标值;

或者,

对应每一个拼接特征,利用所述采样模块对所述符合预设分布的变量的参数进行调整,以确定与该拼接特征对应的目标采样范围;在该拼接特征对应的目标采样范围内进行随机采样,得到该拼接特征对应的目标值;

或者,

对应部分拼接特征,利用所述采样模块在所述符合预设分布的变量中进行随机采样,得到该部分拼接特征中的各个拼接特征对应的目标值;

对应另一部分拼接特征,利用所述采样模块对所述符合预设分布的变量的参数进行调整,以确定与各个拼接特征对应的目标采样范围;在各个拼接特征对应的目标采样范围内进行随机采样,得到该另一部分拼接特征中各个拼接特征对应的目标值。

上述方法,优选的,所述预设分布为高斯分布,所述对应每一个拼接特征,利用所述采样模块对所述符合预设分布的变量的参数进行调整,以确定与该拼接特征对应的目标采样范围,包括:

对应每一个拼接特征,利用所述采样模块调节所述高斯分布的方差的大小,将符合调节方差后的高斯分布的变量的取值范围作为该拼接特征对应的目标采样范围。

上述方法,优选的,所述对所述文本特征序列对应的语音时长序列以及各个韵律特征序列对应的语音时长序列进行处理,得到所述文本数据对应的语音时长序列的过程,包括:

按照韵律层级由高到低的顺序,对于任意两个相邻韵律层级的语音时长序列,根据该两个相邻韵律层级的语音时长序列中较高韵律层级的语音时长序列,对该两个相邻韵律层级的语音时长序列中较低韵律层级的语音时长序列的语音时长进行调整,使得较低韵律层级的语音时长序列中语音时长的总和等于较高韵律层级的语音时长序列中语音时长的总和。

上述方法,优选的,所述语音时长预测模型的训练过程包括:

利用所述特征提取模块,提取文本样本的特征,得到所述文本样本的文本特征序列;

利用所韵律特征获取模块,对所述文本样本的文本特征序列进行至少一个韵律层级的编码,得到所述文本样本的至少一个韵律层级的韵律特征序列;

利用所述第一时长生成模块,根据所述文本样本的文本特征序列以及各个韵律特征序列,生成所述文本特征序列对应的语音时长序列;

利用所述第二时长生成模块,根据各个韵律特征序列,生成每一个韵律特征序列对应的语音时长序列;

以所述文本特征序列对应的语音时长序列趋近于所述文本特征序列对应的语音时长标签,每一个韵律特征序列对应的语音时长序列趋近于该韵律特征序列对应的语音时长标签为目标,对所述语音时长预测模型的参数进行更新。

一种语音时长预测装置,包括:

获取模块,用于获取文本数据;

编码控制模块,用于利用预先训练好的时长预测模型对所述文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列;

生成控制模块,用于利用所述时长预测模型,根据所述至少两个韵律层级的编码特征序列,生成所述文本数据对应的语音时长序列。

上述装置,优选的,所述编码控制模块具体用于:

利用所述时长预测模型的编码模块,对所述文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列;

所述生成控制模块具体用于:

利用所述时长预测模型的时长生成模块,根据所述至少两个韵律层级的编码特征序列,生成所述文本数据对应的语音时长序列。

上述装置,优选的,所述编码控制模块包括:

特征提取控制模块,用于利用所述时长预测模型的特征提取模块,提取所述文本数据的特征,得到文本特征序列,作为最低韵律层级的编码特征序列;

韵律特征获取控制模块,用于利用所述时长预测模型的韵律特征获取模块,对所述文本特征序列进行至少一个非最低韵律层级的编码,得到至少一个非最低韵律层级的韵律特征序列,作为所述至少两个韵律层级的编码特征序列中其它韵律层级的编码特征序列。

上述装置,优选的,所述生成控制模块包括:

第一控制模块,用于利用所述时长预测模型的第一时长生成模块,根据所述至少两个韵律层级的编码特征序列,生成所述文本特征序列对应的语音时长序列,作为所述文本数据对应的语音时长序列;其中,所述语音时长序列中的语音时长与所述文本特征序列中的文本特征一一对应;

或者,

第一控制模块,用于利用所述时长预测模型的第一时长生成模块,根据所述至少两个韵律层级的编码特征序列,生成所述文本特征序列对应的语音时长序列;

第二控制模块,用于利用所述时长预测模型的第二时长生成模块,根据每个韵律特征序列,生成该韵律特征序列对应的语音时长序列;该语音时长序列中的语音时长与该韵律特征序列中的韵律特征一一对应;

时长处理模块,用于对所述文本特征序列对应的语音时长序列以及各个韵律特征序列对应的语音时长序列进行处理,得到所述文本数据对应的语音时长序列。

上述装置,优选的,所述第一控制模块包括:

拼接控制模块,用于利用所述时长预测模型的拼接模块,对应每一个文本特征,将该文本特征,以及基于该文本特征生成的各个韵律层级的韵律特征进行拼接,得到该文本特征对应拼接特征;

采样控制模块,用于利用所述时长预测模型的采样模块,在预先设定好的符合预设分布的变量中进行采样,得到与各个拼接特征对应的目标值;

变换控制模块,用于利用所述时长预测模型的变换模块,根据由各个文本特征对应的拼接特征构成的拼接特征序列,对由各个目标值构成的目标值序列进行第一变换,得到所述文本特征序列对应的语音时长序列;其中,所述变换模块具有:根据所述拼接特征序列,对所述文本特征序列对应的语音时长序列进行所述第一变换的逆变换,得到所述目标值序列的能力。

上述装置,优选的,所述采样控制模块具体用于:

对应每一个拼接特征,利用所述采样模块在所述符合预设分布的变量中进行随机采样,得到该拼接特征对应的目标值;

或者,

对应每一个拼接特征,利用所述采样模块对所述符合预设分布的变量的参数进行调整,以确定与该拼接特征对应的目标采样范围;在该拼接特征对应的目标采样范围内进行随机采样,得到该拼接特征对应的目标值;

或者,

对应部分拼接特征,利用所述采样模块在所述符合预设分布的变量中进行随机采样,得到该部分拼接特征中的各个拼接特征对应的目标值;

对应另一部分拼接特征,利用所述采样模块对所述符合预设分布的变量的参数进行调整,以确定与各个拼接特征对应的目标采样范围;在各个拼接特征对应的目标采样范围内进行随机采样,得到该另一部分拼接特征中各个拼接特征对应的目标值。

上述装置,优选的,所述预设分布为高斯分布,所述采样控制模块在对应每一个拼接特征,利用所述采样模块对所述符合预设分布的变量的参数进行调整,以确定与该拼接特征对应的目标采样范围时,具体用于:

对应每一个拼接特征,利用所述采样模块调节所述高斯分布的方差的大小,将符合调节方差后的高斯分布的变量的取值范围作为该拼接特征对应的目标采样范围。

上述装置,优选的,所述时长处理模块具体用于:

按照韵律层级由高到低的顺序,对于任意两个相邻韵律层级的语音时长序列,根据该两个相邻韵律层级的语音时长序列中较高韵律层级的语音时长序列,对该两个相邻韵律层级的语音时长序列中较低韵律层级的语音时长序列的语音时长进行调整,使得较低韵律层级的语音时长序列中语音时长的总和等于较高韵律层级的语音时长序列中语音时长的总和。

上述装置,优选的,所述语音时长预测装置还包括,训练模块,具体用于:

利用所述特征提取模块,提取文本样本的特征,得到所述文本样本的文本特征序列;

利用所韵律特征获取模块,对所述文本样本的文本特征序列进行至少一个韵律层级的编码,得到所述文本样本的至少一个韵律层级的韵律特征序列;

利用所述第一时长生成模块,根据所述文本样本的文本特征序列以及各个韵律特征序列,生成所述文本特征序列对应的语音时长序列;

利用所述第二时长生成模块,根据各个韵律特征序列,生成每一个韵律特征序列对应的语音时长序列;

以所述文本特征序列对应的语音时长序列趋近于所述文本特征序列对应的语音时长标签,每一个韵律特征序列对应的语音时长序列趋近于该韵律特征序列对应的语音时长标签为目标,对所述语音时长预测模型的参数进行更新。

一种语音时长预测设备,包括存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,实现如上任一项所述的语音时长预测方法的各个步骤。

一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上任一项所述的语音时长预测方法的各个步骤。

从上述的技术方案可以看出,本申请实施例提供的语音时长预测方法、装置、设备及可读存储介质,在获取文本数据后,利用预先训练好的时长预测模型对文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列;利用上述时长预测模型,根据上述至少两个韵律层级的编码特征序列,生成文本数据对应的语音时长序列,该方案在对文本数据进行编码时,进行了至少两个韵律层级的编码,从而可以对语音时长进行不同韵律层级的控制,基于该方法预测的语音时长进行语音合成时,降低了一字一顿现象出现的概率,使得合成语音的连续性更好。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例公开的语音时长预测方法的一种实现流程图;

图2为本申请实施例公开的语音时长预测模型的一种结构示意图;

图3为本申请实施例公开的利用时长预测模型得到至少两个韵律层级的编码特征序列;根据该至少两个韵律层级的编码特征序列,生成文本数据对应的语音时长序列的一种实现流程图;

图4为本申请实施例公开的编码模块的一种结构示意图;

图5为本申请实施例公开的韵律特征获取模块进行两个韵律层级的编码时的一种示例图;

图6为本申请实施例公开的第一时长生成模块的一种结构示意图;

图7为本申请实施例公开的时长生成模块的一种结构示意图;

图8为本申请实施例公开的利用时长生成模块,根据至少两个韵律层级的编码特征序列,生成文本数据对应的语音时长序列的一种实现流程图;

图9为本申请实施例公开的语音时长预测装置的一种结构示意图;

图10为本申请实施例公开的语音时长预测设备的硬件结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了克服已有的时长预测方法预测的语音时长进行语音合成时,一字一顿现象明显,连续感差的问题,本申请的基本思想是,利用预先训练好的时长预测模型对文本数据进行至少两个韵律层级的编码,根据至少两个韵律层级的编码特征序列,从而可以对语音时长进行不同韵律层级的控制,进而降低一字一顿现象出现的概率,使得合成语音的连续性更好,听起来更自然。

基于上述基本思想,本申请实施例提供的语音时长预测方法的一种实现流程图如图1所示,可以包括:

步骤S11:获取文本数据。

该文本数据是用户指定的待合成语音的文本数据。该文本数据可以是用户实时输入的文本,也可以用户指定的文本中的数据。

步骤S12:利用预先训练好的时长预测模型对文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列。

可选的,上述至少两个韵律层级可以是如下几个韵律层级中的至少两个韵律层级:音素,韵律词,韵律短语,韵律子句,韵律句子等。这些韵律层级可以认为是根据对句子进行文本分析得到的句子在不同尺度上的划分。

如表1所示,为本申请实施例对“中国女排第一时间获比赛门票,开启史上第十次比赛之旅”这句话进行韵律层级划分的一种示例。该示例中,L1 表示韵律词这一韵律层级,L3表示韵律短语这一韵律层级,L4表示韵律子句这一韵律层级,L5表示韵律句子这一韵律层级。

表1

当然,除了上述列举的几个韵律层级,本申请实施例中,还可以定义更多的层级,比如,还可以定义比音素更小的层级,例如,多帧级,帧级等。

不同韵律层级的建模尺度不同,其中,音素层级的建模尺度是音素,即音素层级的编码特征序列中的编码特征与由文本数据解析得到的音素串中的音素一一对应;韵律词层级的建模尺度是词,即韵律词层级的编码特征序列中的编码特征与由文本数据解析得到的词序列中的词一一对应;韵律短语层级的建模尺度是短语,即韵律短语层级的编码特征序列中的编码特征与由文本数据解析得到的短语序列中的短语一一对应;韵律子句层级的建模尺度是子句,即韵律子句层级的编码特征序列中的编码特征与由文本数据解析得到的子句序列中的子句一一对应;韵律句子层级的建模尺度是句子,即韵律词层级的编码特征序列中的编码特征与由文本数据解析得到的句子序列中的句子一一对应。

步骤S13:利用上述时长预测模型,根据至少两个韵律层级的编码特征序列,生成文本数据对应的语音时长序列。

语音时长的建模尺度可以为音素,也可以为其它建模尺度,比如,可以为音节、词,或者,短语等。

比如,若语音时长的建模尺度是音素,则语音时长序列中的每个语音时长对应由文本数据解析得到的音素串中的一个音素。而如果语音时长的建模尺度是词,则语音时长序列中的每个语音时长对应文本数据中的一个词。

本申请实施例提供的语音时长预测方法,利用预先训练好的时长预测模型对文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列;根据上述至少两个韵律层级的编码特征序列,生成文本数据对应的语音时长序列,该方案在对文本数据进行编码时,进行了至少两个韵律层级的编码,从而可以对语音时长进行不同韵律层级的控制,基于该方法预测的语音时长进行语音合成时,降低了一字一顿现象出现的概率,使得合成语音的连续性更好。

请参阅图2,图2为本申请实施例提供的语音时长预测模型的一种结构示意图,可以包括:

编码模块21和时长生成模块22;其中,

编码模块21用于对文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列。

对文本数据进行至少两个韵律层级的编码时,通常是先对文本数据进行较低韵律层级的编码,得到较低韵律层级的编码特征序列,然后利用较低韵律层级的编码特征序列,进行较高韵律层级的编码,得到较高韵律层级的编码特征序列。

编码模块21可以通过神经网络实现,比如,编码模块21可以通过卷积神经网络(Convolutional Neural Network,CNN)实现,或者,通过循环神经网络(Recurrent NeuralNetwork,RNN)实现,或者,通过长短时记忆网络(Long Short-Term Memory,LSTM)实现,或者,通过多种网络的组合实现等等。具体以哪种网络形式实现,本申请不做具体限定。

时长生成模块22,用于根据上述至少两个韵律层级的编码特征序列,生成文本数据对应的语音时长序列,或者,生成至少两个韵律层级的语音时长序列,作为至少两个初始语音时长序列。该至少两个初始语音时长序列用于生成文本数据对应的语音时长序列。

本申请实施例中,不同韵律层级可以采用不同的预测网络进行时长预测,当然,不同韵律层级也可以采用相同的预测网络进行时长预测。每个韵律层级选择以下几种网络中的一种作为该韵律层级的时长预测网络:卷积神经网络(Convolutional Neural Network,CNN),循环神经网络(Recurrent Neural Network,RNN),长短记忆网络(Long Short-TermMemory,LSTM)、条件流式产生式模型(conditional Flow-based generative model,cFlow)等。具体以哪种网络形式实现,本申请不做具体限定。

相应的,上述利用时长预测模型得到至少两个韵律层级的编码特征序列;根据该至少两个韵律层级的编码特征序列,生成文本数据对应的语音时长序列的一种实现流程图如图3所示,可以包括:

步骤S31:利用编码模块21,对文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列。

步骤S32:利用时长生成模块22,根据上述至少两个韵律层级的编码特征序列,生成文本数据对应的语音时长序列。具体的,

若时长生成模块22直接生成文本数据对应的语音时长序列,则将该语音时长序列作为文本数据对应的语音时长序列即可。若时长生成模块22生成至少两个初始语音时长序列,则可以在时长生成模块22生成至少两个初始语音时长序列后,对该至少两个初始语音时长序列进行处理,生成文本数据对应的语音时长序列。

在一可选的实施例中,编码模块21的一种结构示意图如图4所示,可以包括:

特征提取模块41和韵律特征获取模块42;其中,

特征提取模块41用于提取文本数据的特征,得到文本特征序列,作为最低韵律层级的编码特征序列。

本申请实施例中,可以按照语音时长的建模尺度对文本数据进行特征提取,语音时长的建模尺度可以是音素,也可以是音节,或者,可以是其它建模尺度,比如,字或词等。

具体可以在确定语音时长的建模尺度后,基于该建模尺度通过对文本数据进行解析,得到文本数据中在该建模尺度的各个建模对象,然后对建模对象进行特征提取,得到文本数据的文本特征序列。文本特征序列中的每个文本特征对应文本数据中的一个建模对象,该建模对象对应的文本特征可以是该建模对象的显性特征,即具有明确含义的特征。

以语音时长的建模尺度为音素为例,通过对文本数据进行解析,得到音素串,然后对音素串进行特征提取,得到每个音素对应的文本特征,音素串中的各个音素对应的文本特征构成文本特征序列,其中,每个音素对应的文本特征包含以下信息中的一种或多种:该音素是什么,该音素的前一个音素是什么,该音素的后一个音素是什么,该音素的声调是什么,还可以包括位置信息,例如该音素在句子中的位置,该音素在当前子句中的位置等。

本申请实施例中,文本特征的建模尺度与语音时长的建模尺度相同。

韵律特征获取模块42用于对文本特征序列进行至少一个非最低韵律层级的编码,得到至少一个非最低韵律层级的韵律特征序列,作为上述至少两个韵律层级的编码特征序列中其它韵律层级的编码特征序列。

比如,假设对文本数据进行特征提取时文本特征的建模尺度是音素,则最低韵律层级定义为音素,相应的,至少一个非最低韵律层级可以为如下几个韵律层级中的至少一个:韵律词,韵律短语,韵律子句,韵律句子。而如果对文本数据进行特征提取时文本特征的建模尺度是词,即文本特征序列中的每个特征对应文本数据中的一个词,则最低韵律层级定义为韵律词,相应的,至少一个非最低韵律层级可以为如下几个韵律层级中的至少一个:韵律短语,韵律子句,韵律句子。

对应每一个韵律层级,在进行该韵律层级的编码时,韵律特征之间是有时序相关性的,即计算某个韵律特征时,不是仅利用相关的文本特征进行计算,而是利用相关的文本特征和前一时刻计算得到的韵律特征进行计算。

如图5所示,为本申请实施例提供的韵律特征获取模块42进行两个韵律层级的编码(通常为隐层编码,即编码得到的韵律特征为隐层特征)时的一种示例图。该示例中,以“开启史上第十次比赛之旅”为例,说明对文本特征序列进行L1韵律层级的编码和L2韵律层级的编码的过程。该示例中,“开启史上第十次比赛之旅”的文本特征序列为音素级文本特征序列,即每个文本特征对应一个音素。韵律特征获取模块42在获取“开启史上第十次比赛之旅”的文本特征序列(即图5中的音素级输入,这里显示字是为了说明韵律特征与文本特征的对应关系,实际输入韵律特征获取模块的是由字解析到的音素对应的文本特征)后,先进行字级编码,得到字级的韵律特征,然后再根据字级的韵律特征进行L1韵律层级的编码,得到L1韵律层级的韵律特征序列后,再根据L1韵律层级的韵律特征进行L2韵律层级的编码,得到L2 韵律层级的韵律特征序列。在进行每一级的编码时,除对一个韵律特征外,计算每个韵律特征时,都需要前一时刻计算得到韵律特征。比如,计算“启”字的韵律特征时,除了利用“启”字对应的文本特征外,还利用“开”字的韵律特征。比如,在L1韵律层级的编码过程中,在计算“比赛”这个词的韵律特征时,除了利用“比”和“赛”这两个字的韵律特征外,还利用“第十次”这个词的韵律特征。

需要说明的是,图5是以RNN网络结构为例进行说明,但本申请实施例中韵律特征获取模块42并不仅限于通过RNN网络实现,还可以是其它网络结构。

在一可选的实施例中,时长生成模块22可以包括:

第一时长生成模块,用于根据至少两个韵律层级的编码特征序列,生成文本特征序列对应的语音时长序列,作为文本数据对应的语音时长序列;其中,语音时长序列中的语音时长与文本特征序列中的文本特征一一对应。

可选的,第一时长生成模块的一种结构示意图如图6所示,可以包括:

拼接模块61,用于对应每一个文本特征,将该文本特征,以及基于该文本特征生成的各个韵律层级的韵律特征进行拼接,得到该文本特征对应拼接特征。

以“中国女排第一时间获比赛门票,开启史上第十次比赛之旅”为例,假设文本特征序列中的每一个文本特征对应一个音素,下面以“中”字对应的音素和“排”字对应的音素为例进行解释说明。由“中”字可以解析得到 zh和ong两个音素,由“排”字可以解析得到p和ai两个音素。假设对文本特征序列进行了两个韵律层级的编码,分别为L1韵律层级和L3韵律层级,则L1韵律层级的韵律特征序列中有12个韵律特征,对应L1韵律层级的12 个词,L3韵律层级的韵律特征序列中有4个韵律特征,分别对应L3层级的四个韵律短语。则对应zh这个音素对应的文本特征,本申请实施例中,是将 zh对应的文本特征,“中国”的韵律特征,以及“中国女排”的韵律特征进行拼接,得到zh这个音素对应的文本特征对应的拼接特征。同理,对应ong 这个音素对应的文本特征,本申请实施例中,是将ong对应的文本特征,“中国”的韵律特征,以及“中国女排”的韵律特征进行拼接,得到ong这个音素对应的文本特征对应的拼接特征。同理,对应p这个音素对应的文本特征,本申请实施例中,是将p对应的文本特征,“女排”的韵律特征,以及“中国女排”的韵律特征进行拼接,得到p这个音素对应的文本特征对应的拼接特征。

采样模块62,用于在预先设定好的符合预设分布的变量中进行采样,得到与各个拼接特征对应的目标值。

该符合预设分布的变量是与时长相关的变量。该符合预设分布的变量可以是符合标准高斯分布的变量,即该变量的所有取值符合标准高斯分布。目标值的数量与文本特征序列中的文本特征的数量相同。即假设文本特征序列中文本特征的数量为N,则在符合预设分布的变量中进行采样的次数也为N 次,这样可以得到N个目标值。具体的,在符合预设分布的变量中进行N次采样时,这N次采样可以依次进行,或者,可以同时进行,即在N个相同的符合预设分布的变量(相当于将符合预设分布的变量复制了N-1次)中同时进行采样,得到N个目标值。

可选的,采样模块62可以通过以下任意一种方式进行采样:

方式一:

对应每一个拼接特征,在符合预设分布的变量中进行随机采样,得到该拼接特征对应的目标值。

由于采样的随机性,能生成表现力更强的语音时长。

方式二:

对应每一个拼接特征,对符合预设分布的变量的参数进行调整,以确定与该拼接特征对应的目标采样范围;在该拼接特征对应的目标采样范围内进行随机采样,得到该拼接特征对应的目标值。具体的,若预设分布为高斯分布,则可以调节高斯分布的方差的大小,将符合调节方差后的高斯分布的变量的取值范围作为该拼接特征对应的目标采样范围。

通常,方差越小,预测语音时长的稳定性越强。

方式三:

对应部分拼接特征,在符合预设分布的变量中进行随机采样,得到该部分拼接特征中的各个拼接特征对应的目标值;

对应另一部分拼接特征,对符合预设分布的变量的参数进行调整,以确定与各个拼接特征对应的目标采样范围;在各个拼接特征对应的目标采样范围内进行随机采样,得到该另一部分拼接特征中各个拼接特征对应的目标值。

显然,方式三是方式一和方式二的组合。

变换模块63,用于根据由各个文本特征对应的拼接特征构成的拼接特征序列,对由各个目标值构成的目标值序列进行预先训练好的第一变换,得到所述文本特征序列对应的语音时长序列;该变换模块63具有:根据所述拼接特征序列,对所述文本特征序列对应的语音时长序列进行所述第一变换的逆变换,得到所述目标值序列的能力。

也就是说,给定文本A,以及文本A对应的语音信号中各个音素的语音时长构成的语音时长序列At,变换模块63可以利用文本A的文本特征序列(音素级的文本特征序列),对语音时长序列At进行第一变换的逆变换,得到目标值序列,该目标值序列符合所述预设分布。

可选的,变换模块63可以通过cFlow模型实现。cFlow是一种基于变量替换的概率建模框架。假设文本特征序列为c=[c1,c2,…,cN],该文本特征序列c 中的每个文本特征对应一个音素,该文本特征序列c中各个音素对应的语音时长构成的时长序列为x=[x1,x2,…,xN],则通过一个可逆变换f,可以将x变换为另一个变量s=[s1,s2,…,sN],即:

s=f(x,c),x=f

假设s的分布很简单,可直接计算似然度(例如高斯分布),则x的分布为:

cFlow模型中,通常通过级联多个变换f,得到复杂的变换。例如,假设 K变换分别为f

cFlow模型可以理解为:为了对变量x建模,首先将x通过一系列可逆变换f变换到另一个变量s,并使s服从一个预先设定的简单分布(比如,标准高斯分布N(0,1)),用变量s和可逆变换f来描述变量x。当需要生成语音时长时,获取待生成语音时长的文本数据的文本特征,从s中进行采样,通过采样值,以及待生成语音时长的文本数据的文本特征进行逆变换f

本申请实施例中,将第一时长生成模块生成的语音时长序列直接作为文本数据对应的语音时长序列。

在另一可选的实施例中,时长生成模块22的一种结构示意图如图7所示,可以包括:

第一时长生成模块71和第二时长生成模块72;其中,

第一时长生成模块71用于根据至少两个韵律层级的编码特征序列,生成所述文本特征序列对应的语音时长序列;其中,语音时长序列中的语音时长与文本特征序列中的文本特征一一对应。第一时长生成模块71的结构与图6 所示第一时长生成模块的结构相同,这里不再赘述。

第二时长生成模块72用于根据每个韵律特征序列,生成该韵律特征序列对应的语音时长序列;该语音时长序列中的语音时长与该韵律特征序列中的韵律特征一一对应。

本申请实施例中,对应每个韵律层级,分别生成该韵律层级的语音时长。生成不同韵律层级的时长所应用的网络可以相同,也可以不同。不同的韵律层级,预测语音时长的网络可以是相互独立的。

相应的,上述利用时长生成模块22,根据至少两个韵律层级的编码特征序列,生成文本数据对应的语音时长序列的一种实现流程图如图8所示,可以包括:

步骤S81:利用第一时长生成模块71,根据至少两个韵律层级的编码特征序列,生成文本特征序列对应的语音时长序列。

步骤S82:利用第二时长生成模块72,根据每个韵律特征序列,生成该韵律特征序列对应的语音时长序列;该语音时长序列中的语音时长与该韵律特征序列中的韵律特征一一对应。

步骤S83:对文本特征序列对应的语音时长序列以及各个韵律特征序列对应的语音时长序列进行处理,得到文本数据对应的语音时长序列,具体可以包括:

按照韵律层级由高到低的顺序,对于任意两个相邻韵律层级的语音时长序列,根据该两个相邻韵律层级的语音时长序列中较高韵律层级的语音时长序列,对该两个相邻韵律层级的语音时长序列中较低韵律层级的语音时长序列的语音时长进行调整,使得较低韵律层级的语音时长序列中语音时长的总和等于较高韵律层级的语音时长序列中语音时长的总和;

将调整后的最低韵律层级的语音时长序列确定为所述文本数据对应的语音时长序列。

本实施例中,通过多韵律尺度的时长约束,能够在保留时长表现力的同时,提升时长预测的稳定性。

以L1、L3和L4这三个韵律层级为例,具体以L4韵律层级中的“开启史上第十次比赛之旅”,对应的L3韵律层级的“开启史上第十次”、“比赛之旅”,L1韵律层级的“开启”、“史上”、“第十次”、“比赛”、“之旅”为例进行说明:

假设各个韵律层级的时长预测结果为:“开启史上第十次比赛之旅”这个子句的总时长为300帧(一帧通常为5ms);“开启史上第十次”这个短语的总时长为180帧,“比赛之旅”这个短语的总时长为110帧;“开启”这个词的总时长为40帧,“史上”这个词的总时长为60帧,“第十次”这个词的总时长为80帧、“比赛”这个词的总时长为60帧,“之旅”这个词的总时长为56帧。则对各个韵律层级的时长预测结果进行处理的方式为:

“开启史上第十次”和“比赛之旅”这两个短语的总时长为180+110=290 帧,比“开启史上第十次比赛之旅”这个子句的总时长300帧短了10帧,则需要对“开启史上第十次”和“比赛之旅”这两个短语的时长进行拉伸,使得“开启史上第十次”和“比赛之旅”这两个短语的总时长为300帧,具体每个短语的时长可以拉伸为原来的300/290倍,即将“开启史上第十次”的时长拉伸为:180×300/290≈186帧,“比赛之旅”的时长拉伸为:110× 300/290≈114帧。

“开启”、“史上”和“第十次”这三个词的总时长为:40+60+80=180 帧,比“开启史上第十次”的时长186帧短了6帧,则,需要将“开启”、“史上”和“第十次”这三个词的时长进行拉伸,使得“开启”、“史上”和“第十次”这三个词的总时长为186帧,具体每个词的时长可以拉伸为原来的186/180倍,即“开启”的时长拉伸为40×186/180≈41帧,“史上”的时长拉伸为60×186/180=62帧,“第十次”的时长拉伸为80×186/180≈83 帧。

“比赛”和“之旅”这两个词的总时长为60+56=116帧,比“比赛之旅”的时长114帧长了2帧,则需要对“比赛”和“之旅”这两个词的时长进行压缩,使得“比赛”和“之旅”这两个词的总时长为114帧,具体每个词的时长可以压缩为原来的114/116,即“比赛”这个词的时长压缩为60× 114/116≈59帧,之旅”这个词的时长压缩为56×114/116≈55帧。

如果L1韵律层级是最低韵律层级,则可以确定“开启史上第十次比赛之旅”这句话对应的语音时长序列为:[41,62,83,59,55]。

如果L1韵律层级不是最低韵律层级,音素是最低韵律层级,则还需要根据L1韵律层级的调整后的语音时长序列(即[41,62,83,59,55])对“开启史上第十次比赛之旅”这句话对应的音素串中的各个音素的时长进行调节,使得调节后音素串的时长总和等于L1韵律层级的调整后的语音时长序列中语音时长的总和(即41+62+83+59+55=300)。

下面说明时长预测模型的训练过程。时长预测模型的训练过程具体可以包括:

利用特征提取模块41,提取文本样本的特征,得到文本样本的文本特征序列。

利用韵律特征获取模块42,对文本样本的文本特征序列进行至少一个韵律层级的编码,得到文本样本的至少一个韵律层级的韵律特征序列。

利用第一时长生成模块71,根据文本样本的文本特征序列以及各个韵律特征序列,生成文本特征序列对应的语音时长序列。

利用第二时长生成模块72,根据各个韵律特征序列,生成每一个韵律特征序列对应的语音时长序列。

以文本样本的文本特征序列对应的语音时长序列趋近于文本特征序列对应的语音时长序列标签,文本样本的每一个韵律特征序列对应的语音时长序列趋近于该韵律特征序列对应的语音时长序列标签为目标,对语音时长预测模型的参数进行更新。即以每一个韵律层级对应的语音时长序列趋近于该韵律层级对应的语音时长序列标签为目标,对所述语音时长预测模型的参数进行更新。

也就是说,本申请实施例中,在对时长预测模型模型训练时,考虑了不同韵律层级的损失,从而提高了时长预测模型的时长建模精度,有效提升预测时长的连续感和表现力。

时长预测模型的损失函数Loss可以为各个韵律层级对应的损失函数的加权和。可选的,

如果第一时长生成模块71为cFlow网络,则可以通过最大似然准则训练,则损失函数Loss

该损失函数有两个目标,一个是变换后的变量s的分别和预先设定的简单分布(比如,N(0,1))的距离近可能小,另一个目标是变换过程尽可能简单。

第二时长生成模块72中各个韵律层级的损失函数可以通过MSE(均方误差)准则训练,则:

Loss

由于Loss

Loss=-Loss

其中,ω

与方法实施例相对应,本申请实施例还提供一种语音时长预测装置,其结构示意图如图9所示,可以包括:

获取模块91,编码控制模块92和生成控制模块93;其中,

获取模块91用于获取文本数据;

编码控制模块92用于利用预先训练好的时长预测模型对所述文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列;

生成控制模块93用于利用所述时长预测模型,根据所述至少两个韵律层级的编码特征序列,生成所述文本数据对应的语音时长序列。

本申请实施例提供的语音时长预测装置,利用预先训练好的时长预测模型对文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列;根据上述至少两个韵律层级的编码特征序列,生成文本数据对应的语音时长序列,该方案在对文本数据进行编码时,进行了至少两个韵律层级的编码,从而可以对语音时长进行不同韵律层级的控制,基于该方法预测的语音时长进行语音合成时,降低了一字一顿现象出现的概率,使得合成语音的连续性更好。

在一可选的实施例中,所述编码控制模块92具体用于:

利用所述时长预测模型的编码模块,对所述文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列;

所述生成控制模块具体用于:

利用所述时长预测模型的时长生成模块,根据所述至少两个韵律层级的编码特征序列,生成所述文本数据对应的语音时长序列。

在一可选的实施例中,所述编码控制模块92可以包括:

特征提取控制模块,用于利用所述时长预测模型的特征提取模块,提取所述文本数据的特征,得到文本特征序列,作为最低韵律层级的编码特征序列;

韵律特征获取控制模块,用于利用所述时长预测模型的韵律特征获取模块,对所述文本特征序列进行至少一个非最低韵律层级的编码,得到至少一个韵律层级的韵律特征序列,作为所述至少两个韵律层级的编码特征序列中其它韵律层级的编码特征序列。

在一可选的实施例中,所述生成控制模块可以包括:

第一控制模块,用于利用所述时长预测模型的第一时长生成模块,根据所述至少两个韵律层级的编码特征序列,生成所述文本特征序列对应的语音时长序列,作为所述文本数据对应的语音时长序列;其中,所述语音时长序列中的语音时长与所述文本特征序列中的文本特征一一对应;

在一可选的实施例中,所述生成控制模块可以包括:

第一控制模块,用于利用所述时长预测模型的第一时长生成模块,根据所述至少两个韵律层级的编码特征序列,生成所述文本特征序列对应的语音时长序列;

第二控制模块,用于利用所述时长预测模型的第二时长生成模块,根据每个韵律特征序列,生成该韵律特征序列对应的语音时长序列;该语音时长序列中的语音时长与该韵律特征序列中的韵律特征一一对应;

时长处理模块,用于对所述文本特征序列对应的语音时长序列以及各个韵律特征序列对应的语音时长序列进行处理,得到所述文本数据对应的语音时长序列。

在一可选的实施例中,第一控制模块包括:

拼接控制模块,用于利用所述时长预测模型的拼接模块,对应每一个文本特征,将该文本特征,以及基于该文本特征生成的各个韵律层级的韵律特征进行拼接,得到该文本特征对应拼接特征;

采样控制模块,用于利用所述时长预测模型的采样模块,在预先设定好的符合预设分布的变量中进行采样,得到与各个拼接特征对应的目标值;

变换控制模块,用于利用所述时长预测模型的变换模块,根据由各个文本特征对应的拼接特征构成的拼接特征序列,对由各个目标值构成的目标值序列进行预先训练好的第一变换,得到所述文本特征序列对应的语音时长序列;其中,所述变换模块具有:根据所述拼接特征序列,对所述文本特征序列对应的语音时长序列进行所述第一变换的逆变换,得到所述目标值序列的能力。

在一可选的实施例中,采样控制模块具体可以用于:

对应每一个拼接特征,利用所述采样模块在所述符合预设分布的变量中进行随机采样,得到该拼接特征对应的目标值;

或者,

对应每一个拼接特征,利用所述采样模块对所述符合预设分布的变量的参数进行调整,以确定与该拼接特征对应的目标采样范围;在该拼接特征对应的目标采样范围内进行随机采样,得到该拼接特征对应的目标值;

或者,

对应部分拼接特征,利用所述采样模块在所述符合预设分布的变量中进行随机采样,得到该部分拼接特征中的各个拼接特征对应的目标值;

对应另一部分拼接特征,利用所述采样模块对所述符合预设分布的变量的参数进行调整,以确定与各个拼接特征对应的目标采样范围;在各个拼接特征对应的目标采样范围内进行随机采样,得到该另一部分拼接特征中各个拼接特征对应的目标值。

在一可选的实施例中,所述预设分布为高斯分布,所述采样控制模块在对应每一个拼接特征,利用所述采样模块对所述符合预设分布的变量的参数进行调整,以确定与该拼接特征对应的目标采样范围时,具体用于:

对应每一个拼接特征,利用所述采样模块调节所述高斯分布的方差的大小,将符合调节方差后的高斯分布的变量的取值范围作为该拼接特征对应的目标采样范围。

在一可选的实施例中,所述时长处理模块具体可以用于:

按照韵律层级由高到低的顺序,对于任意两个相邻韵律层级的语音时长序列,根据该两个相邻韵律层级的语音时长序列中较高韵律层级的语音时长序列,对该两个相邻韵律层级的语音时长序列中较低韵律层级的语音时长序列的语音时长进行调整,使得较低韵律层级的语音时长序列中语音时长的总和等于较高韵律层级的语音时长序列中语音时长的总和;

将调整后的最低韵律层级的语音时长序列确定为所述文本数据对应的语音时长序列。

在一可选的实施例中,所述语音时长预测装置还可以包括,训练模块,具体用于:

利用所述特征提取模块,提取文本样本的特征,得到所述文本样本的文本特征序列;

利用所韵律特征获取模块,对所述文本样本的文本特征序列进行至少一个韵律层级的编码,得到所述文本样本的至少一个韵律层级的韵律特征序列;

利用所述第一时长生成模块,根据所述文本样本的文本特征序列以及各个韵律特征序列,生成所述文本特征序列对应的语音时长序列;

利用所述第二时长生成模块,根据各个韵律特征序列,生成每一个韵律特征序列对应的语音时长序列;

以所述文本特征序列对应的语音时长序列趋近于所述文本特征序列对应的语音时长标签,每一个韵律特征序列对应的语音时长序列趋近于该韵律特征序列对应的语音时长标签为目标,对所述语音时长预测模型的参数进行更新,即以每一个韵律层级对应的语音时长序列趋近于该韵律层级对应的语音时长序列标签为目标,对所述语音时长预测模型的参数进行更新。

本申请实施例提供的语音时长预测装置可应用于语音时长预测设备,如 PC终端、云平台、服务器及服务器集群等。可选的,图10示出了语音时长预测设备的硬件结构框图,参照图10,语音时长预测设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;

在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;

处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;

存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器 (non-volatilememory)等,例如至少一个磁盘存储器;

其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:

获取文本数据;

利用预先训练好的时长预测模型对所述文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列;

利用所述时长预测模型,根据所述至少两个韵律层级的编码特征序列,生成所述文本数据对应的语音时长序列。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:

获取文本数据;

利用预先训练好的时长预测模型对所述文本数据进行至少两个韵律层级的编码,得到至少两个韵律层级的编码特征序列;

利用所述时长预测模型,根据所述至少两个韵律层级的编码特征序列,生成所述文本数据对应的语音时长序列。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 语音时长预测方法、装置、设备及可读存储介质
  • 一种配送时长的预测方法、装置、存储介质和电子设备
技术分类

06120113081638