一种获取用于语音合成的训练文本的方法及装置与流程

文档序号:31627092发布日期:2022-09-24 00:55阅读:105来源:国知局
一种获取用于语音合成的训练文本的方法及装置与流程

1.本发明涉及大数据处理领域,尤其涉及一种获取用于语音合成的训练文本的方法及装置。


背景技术:

2.tts(text to speech,文本到语音)技术是按照特定的语言的发音规范,将文本转换成尽可能接近真实人类语音的语音合成技术,广泛应用于语音助手、智能家居和地图导航等场景。tts技术具有不仅能帮助有视觉障碍的人阅读计算机上的信息,更能增加文本文档的可读性等优点。tts技术在数据录入时的数据成本较高,相对于大批量的原始数据,因此限制了进行训练所能够使用的训练文本的数量只需要在其中选择极少量的数据文本进行训练,其中对于有效文本这导致对于训练文本的筛选则是严重影响tts技术进行语音合成转化的准确度的关键因素。
3.对于不同的发音通常需要相近次数的训练,如果一个发音的出现次数过少,若采用随机方法进行文本筛选,则此发音被筛选到训练文本中的概率就很低,那么就会造成此发音得不到训练或训练次数不够的情况出现,导致最后语音合成的不准确。


技术实现要素:

4.本发明的目的在于提供一种获取用于语音合成的训练文本的方法及装置,从而解决现有技术中存在的前述问题。
5.为了实现上述目的,本发明采用的技术方案如下:
6.第一方面,本技术至少一个实施例提供了一种获取用于语音合成的训练文本的方法,包括:从文本库中随机选择文本,形成文本样本组和初始的训练文本组,其中,文本库包括多个文本,文本样本组包括多个第一文本,初始的训练文本组包括n个训练文本,n为小于或等于预设阈值的正整数;根据文本样本组中的每个第一文本的loss值,从文本样本组中选择m个第一文本作为训练文本添加至训练文本组并将所选择的第一文本从文本样本组中移除,其中,m为正整数且m+n为预设的训练文本数量,loss值表征单个第一文本中发音的稀有程度并且loss值随训练文本组中的训练文本的数量增加而变化;其中,选择m个第一文本作为训练文本包括每次选择一个第一文本作为一个训练文本直至已选择出的训练文本的数量等达到m。
7.例如,在根据本发明第一方面的至少一个实施例提供的方法中,根据每个第一文本的loss值,从文本样本组中选择m个第一文本作为训练文本添加至训练文本组,包括对文本样本组循环执行以下操作直到训练文本组中的训练文本的数量达到m+n:计算文本样本组中的每个第一文本的loss值;选择loss值最小的一个第一文本作为训练文本添加到训练文本组;以及将所选择的一个第一文本从文本样本组中移除。
8.例如,在根据本发明第一方面的至少一个实施例提供的方法中,计算文本样本组中的每个第一文本的loss值,包括:获取训练文本组中当前所有的训练文本的每一个发音
类别中的每个不同发音的出现次数now以及每个不同发音的平均出现次数avg;计算每个不同发音的出现次数now和对应的平均出现次数avg的差值dif,其中,dif=now-avg;获取每个第一文本中的每一个发音类别中的不同发音的出现次数count;根据每一个发音类别中每个不同发音对应的差值dif和每个不同发音的出现次数count,计算每个第一文本中的每一个发音类别的loss值:loss
type
=dif
·
count;对每一个发音类别的loss值进行加权求和得到每个第一文本的loss值。
9.例如,在根据本发明第一方面的至少一个实施例提供的方法中,计算每个第一文本中的每一个发音类别的loss值loss
type
,包括:获取每个第一文本的长度len(sentence);根据每一个发音类别中每个不同发音对应的差值dif和每个不同发音的出现次数count和每个第一文本的长度len(sentence),计算每一个发音类别的loss值其中,β用于调整第一文本的长度对于loss值的影响。
10.例如,在根据本发明第一方面的至少一个实施例提供的方法中,计算每个第一文本中的每一个发音类别的loss值loss
type
,还包括:根据每一个发音类别中每个不同发音对应的差值dif和每个不同发音的出现次数count和每个不同发音的稀有程度权重weight,计算每一个发音类别的loss值loss
type
=weight
·
(count*dif),稀有程度权重weight是预先从文本样本组中获取的或预先存储的。
11.例如,在根据本发明第一方面的至少一个实施例提供的方法中,稀有程度权重weight为文本样本组中每个不同发音在所属发音类别中的出现频率的函数。
12.例如,在根据本发明第一方面的至少一个实施例提供的方法中,发音的发音类别包括声母、韵母、音调和整体读音中的至少一种,并且每一个发音类别具有多个不同的发音且每个不同的发音的数量大于或等于1。
13.例如,在根据本发明第一方面的至少一个实施例提供的方法中,从文本库中随机选择文本样本组和初始的训练文本组,包括:将文本库划分为多个文本组,从多个文本组中的每个文本组随机选择相同数量的第一文本组成文本样本组,以及从每个文本组随机选择相同数量的初始训练文本组成初始的训练文本组;或者,将文本库中的所有文本随机打乱顺序,选择排序在前的预设数量的文本组成文本样本组,以及继续按照顺序选择n个文本组成初始的训练文本组。
14.第二方面,本技术至少一个实施例提供了一种获取用于语音合成的训练文本的装置,包括处理器和存储器,存储器中存储有可由处理器执行的指令,指令在由处理器执行时使处理器执行如上述第一方面中任一项的方法。
15.本发明的有益效果是:本发明公开了一种获取用于语音合成的训练文本的方法及装置,相较于随机抽取的训练文本,本发明通过设置文本样本组和训练文本组,动态的根据第一文本的loss值来选择训练文本,从而提高训练文本中稀有发音的出现比例,使得后续的语音合成可以得到更完备的训练,优化语音合成的准确性。
附图说明
16.图1是根据本发明至少一个实施例提供的获取用于语音合成的方法的流程示意图;
17.图2是本发明至少一个实施例提供的获取用于语音合成的训练文本的装置是示意图。
具体实施方式
18.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
20.本发明公开了一种获取用于语音合成的训练文本的方法及装置,相较于随机抽取的训练文本,本发明通过设置文本样本组和训练文本组,动态的根据第一文本的loss值来选择训练文本,从而提高训练文本中稀有发音的出现比例,使得后续的语音合成可以得到更完备的训练,优化语音合成的准确性。
21.图1是根据本发明至少一个实施例提供的获取用于语音合成的方法的流程示意图。
22.在图1中,获取用于语音合成的训练文本的方法包括步骤s110-步骤s120。
23.执行步骤s110,从文本库中随机选择文本,形成文本样本组和初始的训练文本组。
24.在本发明中文本库包括多个文本,例如文本库包括一万个文本、十万个文本、百万个文本、千万个文本等,文本库中文本的数量也可能少于一万个,具体的数量在此不进行限制。每个文本可以是一句话或者一段话。本文样本组和初始的训练文本组都是从文本库中随机选择出的,例如可采用现有的随机算法实现随机选择。初始的训练文本组包括n个训练文本,n为小于或等于预设阈值的正整数,例如,预设阈值为110,n为100。预设阈值用于限定初始的训练文本组中的训练文本的数量,这是因为初始的训练文本组中的训练文本是随机选择的,从而存在不同的发音的数量不均衡的情况,因此预设阈值需要设置的相对较少,比如最终期望的训练文本组共1000个文本,初始的训练文本组中训练文本的数量限制为100。
25.在本发明的实施例中,文本的发音(phone)可以分为多个类别,例如分为声母、韵母、音调和整体读音的类别。例如,韵母有“a”、“e”、“i”和“o”等。不同语言可能具有不同的发音类别,具体的发音类别可以根据语言的发音习惯进行设置。进一步,每一个发音类别包括至少一个发音,通常包括多个不同的发音。沿用前例,在韵母这个发音类别中,“a”、“e”、“i”和“o”是四个不同的发音。本发明中,文本中每个发音的数量是指该文本中具体的某个发音(例如“a”)的数量。
26.可选地,在文本库具有海量的文本时,可以先将文本库划分为多个文本组,从多个
文本组中的每个文本组随机选择相同数量的第一文本组成文本样本组,以及从每个文本组随机选择相同数量的初始训练文本组成初始的训练文本组;或者,将文本库中的所有文本随机打乱顺序,选择排序在前的预设数量的文本组成文本样本组,以及继续按照顺序选择n个文本组成初始的训练文本组。
27.例如,文本库具有10万个文本,可以将10万个文本分成20个文本组,每个文本组有5000个文本,文本样本组需要1000个文本,那么然后从20个本文组的每个文本组中随机选择50个文本从而组成文本样本组。至于初始的训练文本组可以采用相似的方法,例如,初始的训练文本组需要100个文本,则从上述20个文本组的每个组中随机选择5个文本来组成初始的训练文本组。
28.又如,在文本库具有百万个文本或者千万个文本时,此时对文本库进行分组所需的计算资源以及占用的处理时间较多,从而可以将文本库进行整体打乱,然后选择排序在前的10万个文本,再对这10万个文本进行分组后随机从每个组中选择相同数量的文本组成文本样本组合初始的训练文本组,具体可参见前例,在此不再赘述。可以理解地,文本库中文本的数量不一定恰好为整百或者整千个,例如文本库具有53209个文本,这种情况下可以采取随机舍弃掉9个文本后进行分组,即对文本库中的文本进行类似于取整的操作,使得要随机挑选的文本数量是可以分组的整数,需要注意此操作并不改变文本库具有的文本数量。
29.可选地,在执行步骤s110之前,还可以对文本库进行初步的筛选,例如根据预设规则,删除本文库中不符合预设规则的文本,比如删除具有连续的三个(或者三个以上)的相同的字的句子,如“啊啊啊啊啊啊”。
30.执行步骤s120,根据文本样本组中的每个第一文本的loss值,从文本样本组中选择m个第一文本作为训练文本添加至训练文本组并将所选择的第一文本从文本样本组中移除。
31.在得到文本样本组和初始的训练文本组之后,就可以根据文本样本组中每个第一文本的loss值,从文本样本组中选择m个第一文本作为训练文本并添加到训练文本组中,需要注意第一文本被选择为训练文本之后就从文本样本组中移除,从而保证不会选择相同的第一文本作为训练文本。
32.本实施例中,loss值表征单个第一文本中某个或某个类别的发音的稀有程度,例如,在1个第一文本中,具有3个不同的韵母“a”、“e”和“i,“a”的数量为2、“e”的数量为1以及“i”的数量为5,则在该第一文本中,“e”的稀有程度最高。本发明中的稀有程度可以用每个发音的数量和所有发音的总数量的比值来衡量,取值越小则稀有程度越高。相应地,随着训练文本组中训练文本的数量增加,或者说随着文本样本组中第一文本的数量减少,loss值是变化的。
33.在执行步骤s120时,选择m个第一文本作为训练文本是每次选择一个第一文本直到选择出总共m个。
34.在一些可选地实施例中,选择m个第一文本作为训练文本可以对文本样本组循环执行以下操作直到训练文本组中的训练文本的数量达到m+n,该循环的操作包括:计算文本样本组中的每个第一文本的loss值;选择loss值最小的一个第一文本作为训练文本添加到训练文本组;以及将所选择的一个第一文本从文本样本组中移除。
35.在本实施例中,在每次选择出一个训练文本之前,都需要对文本样本组中当前的所有第一文本计算loss值,选择当前所有第一文本中的loss值最小一个第一文本作为训练文本。例如,文本样本组一开始具有10000个第一文本,初始的训练文本组具有100个训练文本,训练文本组最终需要有1000个训练文本,则需要从文本样本组中选择900个,那么就需要进行900轮次的上述循环操作,其中第一次计算10000个第一文本的loss值、第二次计算9999个第一文本的loss值、都三次计算9998个第一文本的loss值、
……
、第900次计算9101个第一文本loss值。
36.在一些可选地实施例中,计算文本样本组中的每个第一文本的loss值,包括:获取训练文本组中当前所有的训练文本的每一个发音类别中的每个不同发音的出现次数now以及每个不同发音的平均出现次数avg;计算每个不同发音的出现次数now和对应的平均出现次数avg的差值dif,其中,dif=now-avg;获取每个第一文本中的每一个发音类别中的不同发音的出现次数count;根据每一个发音类别中每个不同发音对应的差值dif和每个不同发音的出现次数count,计算每个第一文本中的每一个发音类别的loss值loss
type
,其中loss
type
=dif*count;对每一个发音类别的loss值进行加权求和得到每个第一文本的loss值。
37.在本实施例中,count、dif和now可以都用向量的形式表示,在发音的出现次数越少时,dif的取值越小,该取值可以为负数值。例如,一个文本具有韵母“a”、“e”、“i”和“o”,则该文本对应的now=[1,3,5,7]表示该文本具有1个“a”、3个“e”、5个“i”和7个“o”,可以理解地实际应用中向量中每个元素的对应韵母及其顺序可和本例中的不同,在此不进行限制。count、dif和now用向量形式表示使得单个向量就能够表达一个发音类别具有多少种不同的发音以及每个不同发音对应的数量。dif*count中的“*”表示哈达马积,比如,now=[1,3,5,7],avg=(1+3+5+7)/4=4,dif=now-avg=[-3,-1,1,3],count=[2,3,3,1],则该类别的发音的loss值loss
type
=dif*count=[-6,-3,3,3]。
[0038]
可选地,一个第一文本的loss值是该第一文本中所有的发音类别的loss值的总和。例如一个第一文本包括四个发音类别的发音,四个发音类别的loss值分别是loss
type1
、loss
type2
、loss
type3
和loss
type4
,第一文本的loss值可以表示为loss
sum
,则loss
sum
=α1loss
type1
+α2loss
type2
+α3loss
type3
+α4loss
type4
,其中的α1到α4是每个发音类别的loss值的权重,通常为常数,其用于统一不同发音类别的loss值的数量级,例如loss
type1
计算得到的数值为5.5,而loss
type2
计算得到的数值为0.5,则可以将α1设置为0.1而α2设置为0.8。α1到α4的具体的取值可以根据实际情况进行设置,在此不进行限制。
[0039]
采用上述实施例中的方式可以有效的提高训练文本组中稀有程度高的发音的数量,从而使得各个发音的出现次数相对平衡,采用最终得到的训练文本组来进行训练时各个发音都能得到均衡的训练。
[0040]
然而采用上述方法可能会出现所选择的训练文本都是长文本,这是因为很多长文本中的次好的发音之和的loss值可能小于较短的文本中的最佳的发音的loss值,针对某个或某些发音需要选择较短的文本,但是又不期望文本的长度过短。因此,在一些可选地的实施例中,计算每个第一文本中的每一个发音类别的loss值loss
type
,包括:获取每个第一文本的长度len(sentence);根据每一个发音类别中每个不同发音对应的差值dif和每个不同发音的出现次数count和每个第一文本的长度len(sentence),计算每一个发音类别的loss
任其中,β用于调整第一文本的长度对于loss值的影响。
[0041]
可以理解地,文本的长度可以用字数或者字符数来表示,而本文的长短则可以根据实际需求进行设置,例如,超过50个字的文本为长文本,反之亦然。β的取值也可以根据实际需求进行设置,例如设为0.5。
[0042]
在训练文本组中的训练文本的数量较少时(例如才得到初始的训练文本组时,比如仅有100个训练文本),此时的训练文本中不同的发音出现的次数普遍较少,并且可能有一些发音尚未出现,从而此时的发音的稀有程度存在不准确的情况,采用上述方案循环选择第一文本后可以改善各个发音的出现的平均性,但是存在需要更多次循环以及初始选择的部分训练文本不够全面。因此,在又一些可选地实施例中,计算每个第一文本中的每一个发音类别的loss值loss
type
,还包括:根据每一个发音类别中每个不同发音对应的差值dif和每个不同发音的出现次数count和每个不同发音的稀有程度权重weight,计算每一个发音类别的loss值loss
type
=weight
·
(count*dif),稀有程度权重weight是预先从文本样本组中获取的或预先存储的。
[0043]
例如,预先从文本样本组统计每个发音的出现次数,根据每个发音的出现次数,为每个发音赋予一个稀有程度权重weight,或者稀有程度权重weight是预先存储的历史数据。
[0044]
可选地,稀有程度权重weight为文本样本组中每个不同发音在所属发音类别中的出现频率的函数。例如,稀有程度权重weight是每个发音在该发音类别中的出现频率的倒数,比如一个发音类别中所有的发音的出现次数为[1,2,4,3],则出现频率为[1/(1+2+4+3),3/(1+2+4+3),5/(1+2+4+3),7/(1+2+4+3)],对应的稀有程度权重weight=[10,5,2.5,3.333]。除了倒数之外,稀有程度权重weight也可以为表征为其他函数。
[0045]
图2为根据本发明的至少一个实施例提供的获取用于语音合成的训练文本的装置的示意图。
[0046]
在图2中,获取用于语音合成的训练文本的装置200包括处理器210和存储器220,存储器220中存储有可由处理器210执行的指令,指令在由处理器210执行时使处理器210执行如上述实施例中任一项的方法。
[0047]
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
[0048]
本发明公开了一种获取用于语音合成的训练文本的方法及装置,相较于随机抽取的训练文本,本发明通过设置文本样本组和训练文本组,动态的根据第一文本的loss值来选择训练文本,从而提高训练文本中稀有发音的出现比例,使得后续的语音合成可以得到更完备的训练,优化语音合成的准确性。
[0049]
结合本文公开的实施例描述的各种说明性逻辑块、模块、电路和算法操作可以实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,各种说明性组件、块、模块、电路和操作已在上面大体上根据它们的功能进行了描述。这种功能是作为硬件还是软件实现取决于特定应用程序和施加在整个系统上的设计约束。熟练的技术人员可以针对每个特定应用以不同的方式实现所描述的功能,但是这种实现决策不应被解释为导致偏离权利要求的范围。
[0050]
用于实现结合本文公开的实施例描述的各种说明性逻辑、逻辑块、模块和电路的
硬件可以用通用处理器、数字信号处理器(dsp)、专用应用来实现或执行集成电路(tcuasic)、现场可编程门阵列(fpga)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或设计用于执行本文所述功能的任何组合。通用处理器可以是微处理器,但在备选方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp核心相结合,或任何其他这样的配置。或者,一些操作或方法可以由特定于给定功能的电路来执行。
[0051]
在一个或多个实施例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果以软件实现,则这些功能可以作为一个或多个指令或代码存储在非暂态计算机可读介质或非暂态处理器可读介质上。本文公开的方法或算法的操作可以体现在处理器可执行软件模块中,该软件模块可以驻留在非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或处理器可读存储介质可以是可由计算机或处理器访问的任何存储介质。作为示例而非限制,此类非暂时性计算机可读或处理器可读介质可包括ram、rom、eeprom、闪存、cd-rom或其他光盘存储、磁盘存储或其他磁存储设备,或可用于以指令或数据结构的形式存储所需程序代码并且可由计算机访问的任何其他介质。如本文所用,盘和盘包括压缩盘(cd)、激光盘、光盘、数字通用盘(dvd)、软盘和蓝光光盘,其中盘通常以磁性方式再现数据,而盘以激光方式以光学方式再现数据.以上的组合也包括在非暂时性计算机可读和处理器可读介质的范围内。此外,方法或算法的操作可以作为一个或任何组合或一组代码和/或指令驻留在非暂时性处理器可读介质和/或计算机可读介质上,其可以并入计算机程序产品中。
[0052]
提供所公开实施例的前述描述以使本领域的任何技术人员能够制定或使用权利要求。对这些实施例的各种修改对于本领域技术人员来说将是显而易见的,并且本文定义的一般原理可以应用于其他实施例而不背离权利要求的范围。因此,本发明不旨在限于本文所示的实施例,而是要符合与权利要求以及本文公开的原理和新颖特征一致的最宽范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1