1.本发明涉及语音合成技术领域,具体涉及一种发音时长的确定方法、装置、电子设备和存储介质。
背景技术:2.语音合成技术提供了一种将仅可读的文字转化为可听的声音的能力,在众多领域中得到了广泛的应用。在相关技术中,语音合成的训练数据基本上采集自“播音员在录音棚的读稿音频”。此类训练数据的好处,在于算法模型容易学习训练,且效果稳定。对于采用“普通人自由说话时的录音”作为训练数据训练语音合成模型的情况下,由于普通人的发音可能会出现发音模糊、甚至吞音的糟糕情况,从而增大了语音合成模型学习难度,且通过该语音合成模型得到的目标文本的语音也可能出现发音模糊的情况。
技术实现要素:3.有鉴于此,本发明实施方式提供了一种发音时长的确定方法、装置、电子设备和存储介质,在一定程度上能够提升口语化的语音合成系统在使用时的鲁棒性。
4.本发明一方面提供了一种发音时长的确定方法,所述方法包括:将待转换为语音的目标文本输入韵律预测模型,得到所述目标文本的停顿信息;基于所述停顿信息将所述目标文本划分为若干个目标片段;将所述目标文本输入时长预测模型,得到所述目标文本中各个文字的预期发音时长;计算各个目标片段中文字的平均预期发音时长;在所述平均预期发音时长小于或等于第一预设发音时长的情况下,将所述目标片段中各个文字的预期发音时长按照预设扩增系数进行放大处理,得到所述目标片段中各个文字的目标发音时长。
5.结合第一方面,在一个实施方式中,将待转换为语音的目标文本输入韵律预测模型,得到所述目标文本的停顿信息,包括:获取若干条第一训练样本;所述第一训练样本包括第一文本信息和第一文本信息中各个文字的停顿信息;所述停顿信息包括:大停顿、小停顿和无停顿;将所述第一文本信息作为所述韵律预测模型的输入、第一文本信息对应的停顿信息作为所述韵律预测模型的输出,训练所述韵律预测模型;将所述目标文本输入训练好的韵律预测模型中,得到所述目标文本的停顿信息。
6.结合第一方面,在一个实施方式中,将所述目标文本输入时长预测模型,得到所述目标文本中各个文字的预期发音时长,包括:获取若干条第二训练样本;所述第二训练样本包括第二文本信息和第二文本信息对应的语音;基于所述第二文本信息对应的语音提取所述第二文本信息中各个文字的发音时长将所述第二文本信息作为所述时长预测模型的输入、第二文本信息中各个文字的发音时长作为所述时长预测模型的输出,训练所述时长预测模型;将所述目标文本输入训练好的时长预测模型,得到所述目标文本中各个文字的预期发音时长。
7.结合第一方面,在一个实施方式中,发音时长的确定方法还包括:在所述目标片段
中目标文字的预期发音时长大于或等于第二预设发音时长的情况下,将所述预期发音时长作为所述目标文字的目标发音时长。
8.结合第一方面和其它对应的实施方式,在一个实施方式中,发音时长的确定方法还包括:在所述目标片段中目标文字的目标发音时长大于或等于第二预设发音时长的情况下,将所述目标文字的目标发音时长更正为第二预设发音时长。
9.结合第一方面和其它对应的实施方式,在一个实施方式中,发音时长的确定方法还包括:在所述目标片段中目标文字的目标发音时长小于第三预设发音时长的情况下,将所述目标文字的目标发音时长更正为第三预设发音时长。
10.结合第一方面和其它对应的实施方式,在一个实施方式中,发音时长的确定方法还包括:获取所述目标文本中第一个字的目标发音时长和最后一个字的目标发音时长;若所述第一个字的目标发音时长小于第三预设发音时长,将所述第一个字的目标发音时长调整为第三预设发音时长;和/或,若所述最后一个字的目标发音时长小于第三预设发音时长,将所述最后一个字的目标发音时长调整为第三预设发音时长。
11.结合第一方面,在一个实施方式中,所述停顿信息包括大停顿、小停顿和无停顿,发音时长的确定方法还包括:将所述目标文本中被标记为大停顿的位置的停顿时长按照第一预设停顿时长进行设置,得到所述目标文本的第一停顿时长信息;将所述目标文本末尾位置的停顿时长按照第二预设停顿时长进行设置,得到所述目标文本的第二停顿时长信息。
12.结合第一方面,在一个实施方式中,发音时长的确定方法还包括:基于所述目标文本中各个文字的目标发音时长、所述第一停顿时长信息和所述第二停顿时长信息,得到所述目标文本的时长信号特征;将所述目标文本输入语音合成模型的编码器中,得到所述目标文本的音素特征;将所述时长信号特征和所述音素输入所述语音合成模型的解码器中,得到所述目标文本的声学特征;将所述声学特征输入所述语音合成模型的声码器中,得到所述目标文本的目标语音。
13.本发明第二方面还提供了一种发音时长的确定装置,所述发音时长的确定装置包括:停顿信息预测单元,用于将待转换为语音的目标文本输入韵律预测模型,得到所述目标文本的停顿信息;目标片段划分单元,用于基于所述停顿信息将所述目标文本划分为若干个目标片段;预期发音时长预测单元,用于将所述目标文本输入时长预测模型,得到所述目标文本中各个文字的预期发音时长;平均预期发音时长计算单元,用于计算各个目标片段中文字的平均预期发音时长;目标发音时长确定单元,用于在所述平均预期发音时长小于或等于第一预设发音时长的情况下,将所述目标片段中各个文字的预期发音时长按照预设扩增系数进行放大处理,得到所述目标片段中各个文字的目标发音时长。
14.本发明另一方面还提供了一种电子设备,所述电子设备装置包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的发音时长的确定方法。
15.本发明另一方面还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的发音时长的确定方法。
16.通过将待转换为语音的目标文本输入韵律预测模型,得到目标文本的停顿信息,然后基于该停顿信息将目标文本划分为若干个目标片段,并通过时长预测模型得到目标文
本中各个文字的预期发音时长,然后,计算每个目标片段中文字的平均发音时长,若平均发音时长小于第一预设发音时长,则对该目标片段中文字的发音时长按照预设扩增系数进行放大处理,可以避免由于语音合成模型得到的语音中对该片段内的文字发音模糊的情况,从而在一定程度上能够提升口语化的语音合成系统在使用时的鲁棒性。
附图说明
17.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
18.图1示出了本公开一个实施方式中发音时长的确定方法的步骤示意图;
19.图2示出了本公开一个实施方式中语音合成方法的步骤示意图;
20.图3示出了本公开一个实施方式中发音时长的确定装置示意图;
21.图4示出了本公开一个实施方式中电子设备的结构示意图。
具体实施方式
22.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本公开实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本公开一部分实施方式,而不是全部的实施方式。基于本公开中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本公开保护的范围。
23.语音合成是将输入的文本转换为标准流畅的人类语音的任务。语音合成技术提供了一种将仅可读的文字转化为可听的声音的能力,在众多领域中得到了广泛的应用,如语音助手,智能教育,智能客服等等。
24.板:播音腔太重,字正腔圆,缺乏节奏声调变化,离真人说话方式差距很大。导致该短板的原因,主要是语音合成的训练数据基本上采集自“播音员在录音棚的读稿音频”。此类训练数据的好处,在于算法模型容易学习训练,且效果稳定。那如果要解决上述问题,可以采用“普通人自由说话时的录音”作为训练数据,这样打造的语音合成系统具备口语化特征,接近真人说话方式。此类的语音合成系统,我们称为口语化语音合成系统。
25.然而,口语化语音合成系统的鲁棒性不够好,偶尔会出现发音模糊、甚至吞音的糟糕情况。这个主要是因为:“普通人自由说话时的录音”质量不够好,例如:口水音、字发音收尾不够干净、明显吸气声等等,普通人自由说话的吐字没有播音员读稿的那么标准;而且节奏声调起伏更大,算法模型学习难度大。
26.因此,需要提出一种发音时长的确定方法,通过该方法能够拉长常规的语音合成模型生成的语音的发音时长,从而避免了通过合成普通人自由说话的声音存在口水音、连字音的情况。
27.请参阅图1,本公开一个实施方式提供的发音时长的确定方法,该方法可以包括以下多个步骤。
28.s110:将待转换为语音的目标文本输入韵律预测模型,得到所述目标文本的停顿信息。
29.在本实施方式中,在将文本转换为语音过程中可以存在一定的停顿,从而使得人
们从听感上更为舒适。而对于同一停顿分割的片段内,其内部在节奏声调上是相对完整的,因此,可以对同一停顿分割的片段内的文字进行统一的拉伸处理。
30.语言的韵律是指人们说话时“轻重缓急,抑扬顿挫”的特点,在声学上表现为停顿、音高、音长、音强等,也被称为超音段特征。语音合成系统如果对韵律处理不当,就会导致合成语音听起来枯燥、呆板。因此高质量的韵律预测是合成高自然度语音的关键。语音合成系统的韵律实现通常可以归纳为两个步骤:1)从输入文本得到其韵律的符号描述(包括节奏层级和边界位置、重音等级和位置、语调类型等),即文本分析中的韵律预测;2)将韵律的符号描述转化为韵律的声学参数(包括静音、基频、时长、能量等),也就是韵律模型需要实现的功能。因此,可以通过韵律预测模型,得到目标文本的停顿信息。
31.在本实施方式中,所述目标文本可以是用户手动输入的文本,也可以是小说、演讲稿、讲解词等。当然,目标文本还是可以是通过人机交互,对于用户问题的回答生成的文本。
32.所述停顿信息用于表征目标文本中每个字生成的语音是否需要停顿,其可以包括大停顿、小停顿和无停顿。具体的,例如,“鱼在水里打旋地往外乱蹦”输入韵律预测模型,得到的停顿信息为“鱼[sp0]在[sp0]水[sp0]里[sp1]打[sp0]旋[sp0]地[sp1]往[sp0]外[sp0]乱[sp0]蹦[sp2]”。其中,sp0表示无停顿,sp1表示小停顿,sp2表示大停顿。因此,该停顿信息用于表示“里”“地”字后面要有个小停顿,“蹦”字后面要有个大停顿。
[0033]
s120:基于所述停顿信息将所述目标文本划分为若干个目标片段。
[0034]
在本实施方式中,基于停顿信息分割的片段,其内部在节奏声调上是相对完整的。在这种片段内部统一调整发音时长,可以使得该片段发音维持原有的连贯性和自然度。但不同片段的发音节奏很可能不一致,如果强行将整个目标文本(所有片段)统一调整发音时长,可能导致不需要调整的片段被调整而变得拖沓、损失自然度。因此,可以将目标文本根据停顿信息划分为多个目标片段,从而可以对每个目标片段中文字的发音时长进行处理,使得合成的语音文本既能够保持内部的连贯性,在整体上也不会变得拖沓。
[0035]
在本实施方式中,基于所述停顿信息将所述目标文本划分为若干个目标片段可以是在目标文本中以停顿为分隔符,将目标文本划分为若干个目标片段。具体的,例如,在上述实施方式中的“鱼在水里打旋地往外乱蹦”被划分为了“里”“地”字后面要有个小停顿,“蹦”字后面要有个大停顿,那么可以得到3个目标片段:(1)鱼在水里;(2)打旋地;(3)往外乱蹦。
[0036]
s130:将所述目标文本输入时长预测模型,得到所述目标文本中各个文字的预期发音时长。
[0037]
在本实施方式中,时长预测模型是语音合成系统(比如fastspeech)的重要组成部分。时长模型的作用是预测文本中每一个字(或音素)及停顿(可以由上述韵律标签或其他方式给定)的发音时长,一般以帧为单位,一帧通常设为10ms。具体的,例如,输入“鱼在水里[sp1]打旋地[sp1]往外乱蹦[sp2]”,输出的预期发音时长的预测结果如表1所示。如表1所述,“鱼”这个字的预期发音时长为30帧;“往”这个字的预期发音时长为35帧;“里”字后面的停顿时长“sp1”为15帧,“蹦”字后面的停顿时长“sp2”为30帧。
[0038]
表1各个文字的预期发音时长预测结果
[0039]
token鱼在水里sp1打旋地sp1往外乱蹦sp2时长/帧3010182215282732163523253230
[0040]
在本实施方式中,所述时长预测模型可以fastspeech、fastspeech2、durlan、merlin模型等,在此不作限定。
[0041]
s140:计算各个目标片段中文字的平均预期发音时长。
[0042]
在本实施方式中,由于一个目标片段内在节奏声调上是相对完整的。因此,可以对每个目标片段中文字的发音时长进行平均计算后,再考虑是否需要进行调整。
[0043]
在本实施方式中,计算各个目标片段中文字的平均预期发音时长可以是将目标文本采用上述实施方式中所述的方法得到了若干目标片段。如上述表1所述,“鱼在水里打旋地往外乱蹦”被划分为了3个目标片段,然后分别计算这3个目标片段文字平均预期发音时长。如“鱼在水里”这个目标片段,包括了4个文字,其平均发音时长可以表示为(30 10 18 22)/4=20帧,则“鱼在水里”这个目标片段的平均预期发音时长为20帧。
[0044]
s150:在所述平均预期发音时长小于或等于第一预设发音时长的情况下,将所述目标片段中各个文字的预期发音时长按照预设扩增系数进行放大处理,得到所述目标片段中各个文字的目标发音时长。
[0045]
在本实施方式中,若在某一目标片段内的发音时长过短,则生成的语音可能存在口水音等情况,而且目标片段内的文字在节奏声调上是相对完整的。因此,可以对整个目标片段内文字的发音时长按照某一扩增系数进行放大处理。
[0046]
在本实施方式中,各个目标片段的预设扩增系数可以相同,也可以不同。具体的,例如,预设扩增系数可以将第一预设发音时长除以目标片段内文字的最短预期发音时长。预设扩增系数还可以将第一预设发音时长除以目标片段内的平均预期发音时长。当然,预设扩增系数也可以设置为固定值,如1.2。
[0047]
在本实施方式中,所述第一预设发音时长可以设置为16帧,即当目标片段内的平均预期发音时长小于或等于16帧的情况下,将目标片段内各个文字的预期发音时长都按照预设扩增系数进行一个放大处理。具体的,例如,“效率高”这个目标片段内各个文字的预期发音时长分别为9帧、15帧、12帧。其平均预期发音时长为12帧,小于第一预设发音时长,则可以按照预设扩增系数4/3进行放大处理,经过放大处理后各个文字的目标发音时长分别为:12帧、20帧、16帧。
[0048]
在一个实施方式中,将待转换为语音的目标文本输入韵律预测模型,得到所述目标文本的停顿信息,可以包括:获取若干条第一训练样本;所述第一训练样本包括第一文本信息和第一文本信息中各个文字的停顿信息;所述停顿信息包括:大停顿、小停顿和无停顿;将所述第一文本信息作为所述韵律预测模型的输入、第一文本信息对应的停顿信息作为所述韵律预测模型的输出,训练所述韵律预测模型;将所述目标文本输入训练好的韵律预测模型中,得到所述目标文本的停顿信息。
[0049]
在本实施方式中,首先需要训练一个韵律预测模型,然后根据该韵律预测模型得到目标文本的停顿信息。韵律预测模型的主要作用,就是预测出文本中应该有所停顿的位置,停顿分为小停顿(记为sp1)和大停顿(记为sp2)。大停顿,既包括大标点符号(比如逗号、分号、句号、问号等),也包括过长句子中需要换气的地方。训练一个韵律预测模型,需要依赖于标注好的训练数据,往往需要数万条样本才能获得较好的效果。训练样本举例如下:【样本一】体强壮而[sp1]后学问[sp2]道德之进修勇[sp1]而收效远[sp2]。【样本二】布吕尼[sp2]也与前夫哲学家[sp1]拉斐尔[sp1]育有一子[sp2]。以上[sp1][sp2]分别表示该处有
小停顿、大停顿。
[0050]
韵律预测可以建模成nlp中常见的序列标注任务,即预测每个token(字)应该对应的标签,那么标签可以分为三种:sp0(无停顿,简写为0),sp1(小停顿,简写为1),sp2(大停顿,简写为2)。因此,以上述【样本一】为例,去掉大标点符号,并和标签一一对应,可以转换成下表所示的关系如表2所示。
[0051]
表2训练样本中的目标文本及其对应的标签
[0052]
token体强壮而后学问道德之进修勇而收效远标签00010020000010002
[0053]
所述韵律预测模型结构可以使用bilstm crf,或者预训练模型bert,后者泛化性更强、效果更好,前者模型更轻量、推理速度更快。当然,还可以用其它的模型,在此不做限定。损失函数设为预测标签与真实标签之间的交叉熵,优化器可以选择常用的adam。
[0054]
在本实施方式中,在韵律预测模型训练好之后,可以将目标文本输入训练好的韵律预测模型,从而得到目标文本的停顿信息。
[0055]
在一个实施方式中,将所述目标文本输入时长预测模型,得到所述目标文本中各个文字的预期发音时长,可以包括:获取若干条第二训练样本;所述第二训练样本包括第二文本信息和第二文本信息对应的语音;基于所述第二文本信息对应的语音提取所述第二文本信息中各个文字的发音时长;将所述第二文本信息作为所述时长预测模型的输入、第二文本信息中各个文字的发音时长作为所述时长预测模型的输出,训练所述时长预测模型;将所述目标文本输入训练好的时长预测模型,得到所述目标文本中各个文字的预期发音时长。
[0056]
在本实施方式中,时长预测模型时语音合成系统的重要组成部分。首先需要对时长预测模型进行训练。在训练时长预测模型之前,需要多组训练样本。因此,首先要构造训练样本(第二训练样本)。对于第二训练样本中的时长标注信息,可以通过《文本,语音》这样的第二训练样本中的语音中进行提取,从而得到第二文本信息中各个文字的发音时长,从而可以将第二文本标签作为时长预测模型的输入,以及将第二文本信息中各个文字对应的发音时长作为时长预测模型的输出,训练该时长模预测模型。
[0057]
在时长预测模型训练完成之后,可以将目标文本输入该时长预测模型,得到目标文本中各个文字的预期发音时长。
[0058]
在一个实施方式中,发音时长的确定方法还可以包括:在所述目标片段中目标文字的预期发音时长大于或等于第二预设发音时长的情况下,将所述预期发音时长作为所述目标文字的目标发音时长。
[0059]
在本实施方式中,由于普通人通过口语化的阅读方法进行阅读的过程中,部分文字的发音时长被拖拉的很长,为了避免这种情况的发生,可以将预期发音时长大于第二预设发音时长的文字对应的发音时长调整为第二预设发音时长。具体的,例如,第二预设发音时长设置为25帧,对于“往外乱蹦”这个目标片段的预期发音时长分别为:35帧、23帧、25帧和32帧,由于“往”和“蹦”这两个字的预期发音时长超过了第二预设发音时长,因此,需要将该目标片段中“往”和“蹦”这两个字的目标发音时长都设置为25帧(即第二预设发音时长)。
[0060]
在一个实施方式中,发音时长的确定方法还可以包括:在所述目标片段中目标文字的目标发音时长大于或等于第二预设发音时长的情况下,将所述目标文字的目标发音时
长更正为第二预设发音时长。
[0061]
在本实施方式中,对于某个目标片段内的文字的按照预设扩增系数放大之后,其目标发音时长超过了第二预设发音时长,为了避免其发音时间过长,造成拖沓,需要将其发音时长更正为第二预设发音时长。具体的,例如,“推理速度”这个目标片段中文字的预期发音时长分别为:12帧、21帧、12帧、9帧,那么其平均预期发音时长为13.5帧,小于第一预设发音时长16帧,因此,需要将其按照预设扩增系数1.25进行放大,并向上取整后得到的目标发音时长为15帧、27帧、15帧、12帧。由于“理”这个字的目标发音时长大于第二预设发音时长,因此,需要将其目标发音时长更正为第二预设发音时长(25帧),从而“推理速度”这个目标片段中各个文字的目标发音时长分别为15帧、25帧、15帧、12帧。
[0062]
在一个实施方式中,发音时长的确定方法还可以包括:在所述目标片段中目标文字的目标发音时长小于第三预设发音时长的情况下,将所述目标文字的目标发音时长更正为第三预设发音时长。
[0063]
在本实施方式中,对于目标片段中的部分文字经过预设扩增系数方法处理后,其目标发音时长仍然过短。或者,在该目标片段内,其平均预期发音时长大于第一预设发音时长,但在该目标片段内存在发音较短的目标文字。因此,需要对这些发音较短的目标文字的发音时长进行拉长处理。具体的,例如,第三预设发音时长为10帧。“身体健康”这个目标字段中各个文字的预期发音时长分别为6帧、12帧、10帧、16帧,其平均预期发音时长为11帧,小于第一预设发音时长16帧,将其按照预设扩增系数放大1.5倍之后,得到各个字的目标发音时长分别为9帧、18帧、15帧、24帧。由于“身”这个字的目标发音时长小于第三预设发音时长,则需要将“身”这个字的目标发音时长调整为10帧。再比如,“万事如意”这个目标字段中各个文字的预期发音时长分别为8帧、16帧、18帧、24帧,其平均预期发音时长为16.5帧,大于第一预设发音时长,因此,无需对其进行扩增处理。但由于“万”这个字的目标发音时长小于第三预设发音时长,因此,需要将“万”这个字的目标发音时长调整为第三预设发音时长,即10帧。
[0064]
在一个实施方式中,发音时长的确定方法还可以包括:获取所述目标文本中第一个字的目标发音时长和最后一个字的目标发音时长;若所述第一个字的目标发音时长小于第三预设发音时长,将所述第一个字的目标发音时长调整为第三预设发音时长;和/或,若所述最后一个字的目标发音时长小于第三预设发音时长,将所述最后一个字的目标发音时长调整为第三预设发音时长。
[0065]
在本实施方式中,除了调整目标字段的发音时长之外,还需要对目标文本中第一个字和最后一个字的发音时长。由于在上述实施方式中,通过对每个字或者音素发音时长的限定,将其发音时长都限制在25帧的范围之内。对此,可以对目标文本中的第一个字和最后一个字的发音时长也进行调整。如果目标文本中第一个字的发音时长小于第三预设发音时长,则可以将其目标发音时长调整为第三预设发音时长。若目标文本中最后一个字的发音时长小于第三预设发音时长,则可以将其目标发音时长调整为第三预设发音时长。当然,在本实施方式中,第三预设发音时长可以设置为20帧、25帧、30帧等,在此并不进行限制。
[0066]
在一个实施方式中,所述停顿信息包括大停顿、小停顿和无停顿,发音时长的确定方法还可以包括:将所述目标文本中被标记为大停顿的位置的停顿时长按照第一预设停顿时长进行设置,得到所述目标文本的第一停顿时长信息;将所述目标文本末尾位置的停顿
时长按照第二预设停顿时长进行设置,得到所述目标文本的第二停顿时长信息。
[0067]
在本实施方式中,对于通过韵律预测模型预测出了目标文本的停顿信息可能存在着一定的偏差。因此,可以将目标文本中被标记为大停顿(sp2)的地方,可以统一设置一个静音时长,如30帧,从而聆听者可以感受到片段之间的节奏起伏。
[0068]
在一个实施方式中,发音时长的确定方法还可以包括:基于所述目标文本中各个文字的目标发音时长、所述第一停顿时长信息和所述第二停顿时长信息,得到所述目标文本的时长信号特征;将所述目标文本输入语音合成模型的编码器中,得到所述目标文本的音素特征;将所述时长信号特征和所述音素输入所述语音合成模型的解码器中,得到所述目标文本的声学特征;将所述声学特征输入所述语音合成模型的声码器中,得到所述目标文本的目标语音。
[0069]
在本实施方式中,结合对目标文本的韵律预测信息和时长的自适应算法,针对任意的目标文本的输入,都可以得到稳定的合理的时长信号。然后结合语音合成系统的编码器输出特征,加上稳定的时长信号,一起输入解码器中,得到稳定的声学特征(如梅尔频谱特征),最后输入语音合成系统的声码器中,将梅尔频谱特征转换成波形,即得到目标文本的目标语音。
[0070]
请参阅图2,在一个具体的实施方式中,首先准备第一训练样本(包括第一文本信息和第一文本信息中各个文字的停顿信息),然后基于第一训练样本训练韵律预测模型。在韵律预测模型训练完成之后,将目标文本输入训练好的韵律预测模型中,得到目标文本对应的韵律标签(即停顿信息),并基于韵律标签,将目标文本拆分为若干个目标片段。然后,结合语音合成系统中的时长预测模型。得到每个目标片段中各个字对应的预期发音时长。再对每个目标片段分别进行处理,分析该片段的语速,如果语速过快,则对该片段中的整体的预期发音时长进行统一放大。然后,对整句特殊位置(如句首、句尾)的字即停顿的时长进行调整。在对目标文本中各个字的预期发音时长调整好之后,得到目标文本中各个字的目标发音时长,然后利用语音合成系统中的声学模型得到梅尔频谱,再通过声码器合成最终的目标语音。从而,在保证语音的节奏声调自然的前提下,提高了口语化语音合成系统的鲁棒性,避免出现“偶尔发音模糊甚至吞音”的情况。
[0071]
请参阅图3,本公开的一个实施方式还提供一种发音时长的确定装置,所述发音时长的确定装置可以包括:停顿信息预测单元、目标片段划分单元、预期发音时长预测单元、平均预期发音时长计算单元、目标发音时长确定单元。
[0072]
停顿信息预测单元,用于将待转换为语音的目标文本输入韵律预测模型,得到所述目标文本的停顿信息。
[0073]
目标片段划分单元,用于基于所述停顿信息将所述目标文本划分为若干个目标片段。
[0074]
预期发音时长预测单元,用于将所述目标文本输入时长预测模型,得到所述目标文本中各个文字的预期发音时长。
[0075]
平均预期发音时长计算单元,用于计算各个目标片段中文字的平均预期发音时长。
[0076]
目标发音时长确定单元,用于在所述平均预期发音时长小于或等于第一预设发音时长的情况下,将所述目标片段中各个文字的预期发音时长按照预设扩增系数进行放大处
理,得到所述目标片段中各个文字的目标发音时长。
[0077]
关于发音时长的确定装置实现的具体功能和效果,可以参照本说明书其他实施方式对照解释,在此不再赘述。所述发音时长的确定装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。所述各模块可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0078]
请参阅图4,本公开一个实施方式还提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的发音时长的确定方法。
[0079]
其中,处理器可以为中央处理器(central processing unit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0080]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
[0081]
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0082]
本公开一个实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的发音时长的确定方法。
[0083]
本领域普通技术人员可以理解实现所述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如所述各方法的实施方式的流程。其中,本说明书所提供的各实施方式中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0084]
应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个
流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0085]
本说明书多个实施方式之间,采用递进的方式进行描述。不同的实施方式着重于描述相较于其它实施方式不相同的部分。所属领域技术人员在阅读本说明书之后,可以获知本说明书中的多个实施方式,以及实施方式揭示的多个技术特征,可以进行更多种的组合,为使描述简洁,未对所述实施方式中的各个技术特征所有可能的组合都进行描述。然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0086]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0087]
本说明书中的多个实施方式本身均着重于强调与其他实施方式不同的部分,各实施方式之间可以相互对照解释。所属领域技术人员基于一般的技术常识对本说明书中的多个实施方式的任意组合均涵盖于本说明书的揭示范围内。
[0088]
以上所述仅为本案的实施方式而已,并不用以限制本案的权利要求保护范围。对于本领域技术人员来说,本案可以有各种更改和变化。凡在本案的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本案的权利要求范围之内。