语音合成方法和语音合成系统的制作方法

文档序号:2831305阅读:266来源:国知局
专利名称:语音合成方法和语音合成系统的制作方法
技术领域
本发明涉及语音合成方法和语音合成系统。
背景技术
文本到语音合成是从任意文本人工地创建语音信号。文本到语音合成通常以三个阶段实现,即,语言处理单元、韵律处理单元和语音合成单元。
在语言处理单元中,输入文本经过词法分析、句法分析等,并且然后在韵律处理单元中经过重音(accent)和语调(intonation)处理,以便输出音素串和韵律特征或超音段特征(音调或基频、时长或音素持续时间、音强等等)。最后,语音合成单元从音素串和韵律特征合成语音信号。因此,文本到语音合成中所使用的语音合成方法必须能够产生具有任意韵律特征的任意音素符号串的合成语音。
通常,如这样的语音合成方法,存储具有小的合成单元(例如,CV、CVC、VCV等,(V=元音,C=辅音))的特征参数(这些参数将被当成是典型语音段),并且被有选择地读出。并且控制这些语音段的基频和时长,然后这些段被连接起来以产生合成语音。在这种方法中,合成语音的质量很大程度上依赖于所存储的典型语音段。
作为一种自动地并且容易地产生适合在语音合成中使用的典型语音段的方法,例如,公开了一种被称为面向上下文的聚类(context-orientedclustering COC)的技术(例如,见日本专利No.2,583,074)。在COC中,大量预先存储的语音段被基于它们的语音环境进行聚类分组,并且通过为各个聚类合并语音段而产生典型的段。
COC的原理是基于语音段之间的距离尺度,将大量被分配有音素名称和环境信息(语音环境的信息)的语音段划分到属于所述语音环境的多个聚类中,并且确定各个聚类的质心以作为典型的语音段。注意,语音环境是形成了感兴趣的语音段的环境的因素的组合,并且这些因素包括感兴趣的语音段的音素名称、前缀音素、后缀音素、次后缀音素、基频、时长、音强、有/无重读(stress)、从重音基点起的位置、从呼吸停顿起的时间、说话的速度、感情等。
因为实际中的语音的音素经历过取决于语音环境的音位变化,为属于所述语音环境的多个聚类的各个聚类存储典型的段,因此可以考虑语音环境的影响,产生自然的合成语音。
作为一种以较高质量产生典型语音段的方法,公布了一种被称为闭循环训练的方法(例如,见日本专利No.3,281,281)。该方法的原理是产生最小化合成语音与自然语音之间的失真的典型语音段,合成语音是通过改变基频和时长而产生的。这种方法和COC具有不同的从多个语音段产生典型语音段的方案COC使用质心结合诸段,而闭循环训练方法产生最小化合成语音的失真的语音段。
还已知一种段选择类型语音合成方法,该方法通过将输入音素串和韵律信息(韵律特征的信息)用作目标,直接从大量的语音段中选择语音段串来合成语音。该方法和使用典型语音段的语音合成方法间的不同是基于输入目标语音的音素串和韵律信息,直接从大量预先存储的语音段中选择语音段,而不用产生典型语音段。作为选择语音段(语音单元)的规则,一种定义代价函数,并且选择段串,以便最小化代价的方法是公知的。所述的代价函数输出一个代价,所述的代价表示进行语音合成时产生的合成语音的失真程度。例如,公开了一种将编辑和连接语音段时产生的变形和连接失真数字化成代价,基于该代价选择用于语音合成的语音段串,并且基于选定的语音段串,产生合成语音的方法(例如,见日本专利KOKAI公开号.2001-282278)。通过从大量的语音段中选择适当的语音段串,可以产生最小化编辑和连接段时的声音质量恶化的合成语音。
因为事先只准备了有限的典型语音段,所以使用典型语音段的语音合成方法不能应付输入韵律特征(韵律信息)和语音环境的变化,因此在编辑和连接段时会使声音质量恶化。
在另一方面,因为选择语音段的语音合成方法可以从大量的语音段中选择语音段,所以它可以抑制编辑和连接段时的声音质量的恶化。然而,难以用公式将选择听起来自然的语音段串的规则表达为一个代价函数。结果,因为不能选出最优的语音段串,所以出现了合成语音的声音质量恶化。用于选择的语音段的数量太大了,以至于不能实际上事先消除有缺陷的段。因为也难以将去除有缺陷的段的规则反应到代价函数中,有缺陷的段会被偶然地混合在语音段串中,因此恶化了合成语音的质量。

发明内容
本发明涉及语音合成方法和用于文本到语音合成的系统,并且,更具体地,涉及用于基于音素串和韵律特征(韵律信息),诸如基频、时长等,产生语音信号的语音合成方法和系统。
根据本发明的一个方面,提供了一种方法,该方法包括在存储器中存储一组语音段;对相应于目标语音的音素串进行分段,以便获得多个段;基于目标语音的韵律信息,从所述组中选择多个语音段,所选择的语音段相应于每个所述的段;通过结合所选择的语音段,产生相应于每个所述段的新的语音段,以便获得分别相应于所述段的多个新的语音段;并且通过连接新的语音段,产生合成语音。
根据本发明的第一个方面,提供了一种用于通过连接基于目标语音的音素串和韵律信息,从存储在第一存储器中的第一组语音段中选择的语音段,产生合成语音的语音合成方法,该方法包括在第二存储器中存储第二组语音段和分别相应于所述语音段组的环境信息项(基频、时长和音强等);存储分别相应于所希望的语音段的所希望的环境信息项(基频、时长和音强等);基于每个所希望的环境信息项,从第二组中选择多个语音段,所述语音段的环境信息项与每个所希望的环境信息项相类似;并且通过结合所选择的语音段,产生第一组的每个语音段。


图1是示出了根据本发明的第一实施例的语音合成系统的布局的方块图;图2是示出了语音合成单元的布局的一个例子的方块图;图3是示出了语音合成单元内的处理流的流程图;图4示出了环境信息存储单元中的语音段的一个存储示例;图5示出了环境信息存储单元中的环境信息的一个存储示例;图6用于解释从语音数据得到语音段的顺序的视图;图7是用于解释语音段选择单元的处理操作的流程图;图8是用于解释用于为相应于输入音素串的多个段中的每个段获得多个语音段的顺序;图9是用于解释语音段结合单元的处理操作的流程图;图10是用于解释语音段结合单元的处理的视图;图11是用于解释语音段结合单元的处理的视图;图12是用于解释语音段结合单元的处理的视图;图13是用于解释语音段编辑/连接单元的处理操作的视图;图14是示出了根据本发明的第二个实施例的语音合成单元的布局的一个例子的方块图;图15是用于解释在图14中示出的语音合成单元中产生典型语音段的处理操作的流程图;图16是用于解释通过常规聚类处理,产生典型语音段的方法的视图;图17是用于解释根据本发明通过使用代价函数选择段,产生语音段的方法的视图;并且图18是用于解释闭循环训练方法的视图,并且示出了表示给定语音段的音调波形的叠加的矩阵的一个例子。
具体实施例方式
下面将参考

本发明的优选实施例。
(第一实施例)图1是示出了根据本发明的第一实施例的文本到语音系统的布局的方块图。该文本到语音系统具有文本输入单元31、语言处理单元32、韵律处理单元33、语音合成单元34和语音波形输出单元10。语音处理单元32对来自文本输入单元31的文本输入进行词法分析和句法分析,并且将结果发送到韵律处理单元33。韵律处理单元33在语言分析结果的基础上执行重音和语调处理以产生音素串(音素符号串)和韵律信息,并且将它们发送到语音合成单元34。语音合成单元34在所述音素串和韵律信息的基础上产生声波。产生的声波被通过声波输出单元10输出。
图2是示出了图1的语音合成单元34的布局的一个例子的方块图。参考图2,语音合成单元34包括语音段存储单元1、环境信息存储单元2、音素串/韵律信息输入单元7、语音段选择单元11、语音段结合单元5和语音段编辑/连接单元9。
语音段存储单元1存储了大量的语音段,并且环境信息存储单元2存储了这些语音段的环境信息(语音环境的信息)。语音段存储单元1存储语音段以作为产生合成语音时使用的语音单元(合成单元)。每个合成单元都是通过划分音素(例如,半音素、单音素(C、V)、双音素(CV、VC、VV)、三音素(CVC、VCV)、音节(CV、V)等(V=元音、C=辅音))获得的音素或段的组合,并且可以具有可变的长度(例如,当它们被混合时)。每个语音段表示相应于一个合成单元的一个语音信号的波形、一个表示该波形的特征的参数序列等。
语音段的环境信息是形成感兴趣的语音段的环境的因素的组合。所述因素包括感兴趣的语音段的音素名称、前缀音素、后缀音素、次后缀音素、基频、时长、音强、有/无重读、从重音基点起的位置、从呼吸停顿起的时间、说话的速度、感情等。
音素串/韵律信息输入单元7接收来自韵律处理单元33的目标语音输出的音素串和韵律信息。输入到音素串/韵律信息输入单元7的韵律信息包括基频、时长、音强等。
输入到音素串/韵律信息输入单元7的音素串和韵律信息将被分别称为输入音素串和输入韵律信息。输入音素串包括,例如,音素符号串。
语音段选择单元11基于用于通过由合成单元对输入音素串进行分段而获得的多个段的每个段的输入韵律信息,从存储在语音段存储单元1中的语音段中选择多个语音段。
语音段结合单元5通过结合由语音段选择单元11为每个段选择的多个语音段,产生新的语音段。结果,可以获得相应于输入音素串的音素符号串的新的语音段串。由语音段编辑/连接单元9基于输入韵律信息对新的语音段的串进行变形和连接,从而产生合成语音的声波。通过语音波形输出单元10输出产生的语音波形。
图3是示出了语音合成单元34内的处理流的流程图。在步骤S101,语音段选择单元11基于输入音素串和输入韵律信息,为每个段从存储在语音段存储单元1内的语音段中选择多个语音段。
为每个段选择的多个语音段是相应于该段的音素的语音段,并且与由相应于该段的输入韵律信息所指示的韵律特征相匹配或相类似。为每个段选择的多个语音段中的每个语音段是这样的语音段,其可以最小化合成语音与目标语音之间的失真程度,所述的失真是在基于输入韵律信息对语音段进行变形从而产生合成语音时产生的。此外,为每个段选择的多个语音段中的每个语音段可以最小化合成语音与目标语音之间的失真程度,所述的失真是在连接该语音段与邻近的段的语音段从而产生合成语音时产生的。在这个实施例中,在使用下面将要说明的代价函数,选择这样的多个语音段,同时估计合成语音与目标语音之间的失真程度。
流程进入到步骤S102,语音段结合单元5通过结合与该段相一致而选择的多个语音段,为每个段产生新的语音段。流程进入步骤S103,并且基于输入韵律信息,对新的语音段串进行变形和连接,从而产生语音波形。
下面将对语音合成单元34的各个处理进行详细说明。
假设作为一个合成单元的一个语音段是一个音素。如图4中所示,语音段存储单元1将各个音素的语音信号波形和用于标识这些音素的段号存储在一起。再有,如图5所示,与音素的段号相一致,环境信息存储单元2存储着被存储在语音段存储单元1中的每个音素的语音环境的信息。注意,单元2存储音素符号(音素名称)、基频和时长作为环境信息。
通过为各个音素标记大量单独收集的语音数据、为各个音素提取语音波形、并且将它们作为语音段存储,准备存储在语音段存储单元1中的语音段。
例如,如6为各个音素示出了语音数据71的标记结果。图6还示出了由标记边界72分段的各个音素的语音数据(语音波形)的语音符号。注意,还从每个语音数据中提取出环境信息(例如,音素(在这个例子中,音素名称(音素符号))、基频、时长等)。相同的段号被分配给从语音数据71获得的各个语音波形和相应于这些语音波形的环境信息,并且如图4和5所示,它们分别被存储在语音段存储单元1和环境信息存储单元2中。注意,环境信息包括音素基频和感兴趣的语音段的时长。
在这个例子中,为各个语音单元提取语音段。然而,对于语音段相应于半音素、双音素、三音素、音节或它们的组合(可能具有可变的长度)的情况,同样是适用的。
音素串/韵律信息输入单元7接收(作为音素信息)通过采用词法分析和句法分析以及重音和语调处理而获得的韵律信息和音素串,以便为文本到语音的合成输入文本。输入韵律信息包括基频和时长。
在图3的步骤S101中,基于代价函数计算语音段串。代价函数被以如下方式说明。为通过对语音段进行变形和连接产生合成语音时产生失真的各个因素,定义子代价函数Cn(ui,ui-1,ti)(n=1,...,N,N是子代价函数的数目)。注意,如果相应于输入音素串和输入韵律信息的目标语音被给定为t(t1,...,ti),ti是相应于第i个段的语音段的目标环境信息,并且ui是存储在语音段存储单元1中的语音段中与的ti具有相同音素的语音段。
在使用存储在语音段存储单元1中的语音段产生合成语音时,子代价函数被用于计算所需的代价,以便估计合成语音与目标语音间的失真程度。为了计算所述的代价,我们假设两种类型的子代价,即,目标代价,用于估计当使用感兴趣的语音段时产生的合成语音和目标语音之间的失真程度,以及连接代价,用于估计当连接感兴趣的语音段和另一语音段时产生的合成语音和目标语音之间的失真程度。
作为目标代价,使用了基频代价,表示存储在语音段存储单元1中的语音段的基频和目标基频(目标语音的基频)间的不同,和时长代价,表示存储在语音段存储单元1中的语音段的时长和目标时长(目标语音的时长)间的不同。作为连接代价,使用了频谱连接代价,表示在连接边界处,频谱间的不同。更具体地,基频代价由下式计算C1(ui,ui-1,ti)={log(f(vi))-log(f(ti))}2(1)其中vi是存储在语音段存储单元1内的语音段ui的环境信息,并且f是从环境信息vi提取平均基频的函数。时长代价由下式计算C2(ui,ui-1,ti)={g(vi)-g(ti)}2(2)其中g是从环境信息vi提取时长的函数。从两个语音段间的倒谱距离计算频谱连接代价C3(ui,ui-1,ti)=‖h(ui)-h(ui-1)‖ (3)‖x‖代表x的范数其中h是在语音段ui的连接边界处以向量提取倒谱系数的函数。这些子代价函数的加权和被定义为合成单元代价函数C(ui,ui-1,ti)=Σn=1NWnCn(ui,ui-1,ti)---(4)]]>其中Wn是每个子代价函数的权重。在这个实施例中,出于简单起见,所有的Wn等于“1”。等式(4)表示当语音段被用于给定的合成单元(段)时,该给定的语音段的合成单元代价。
对于所有的段,对于通过由合成单元对输入音素串进行分段而获得的各个段的来自等式(4)的合成单元代价的计算结果的总和被称为代价,所需要的用于计算该代价的代价函数定义为cost=Σi=1IC(ui,ui-1,ti)---(5)]]>
在图3的步骤101中,使用上面的等式(1)到(5)给出的代价函数,以两个阶段为每个段(每个合成单元)选择多个语音段。图7的流程图中示出了这个处理的细节。
作为第一语音段选择阶段,在步骤S111中,可以从存储在语音段存储单元1中的语音段中获得具有从等式(5)计算出的最小代价值的语音段串。此后,可以最小化所述代价的语音段的组合将被称作最优语音段串。即,最优语音段串中的各个语音段分别相应于通过由合成单元对输入音素串进行分段所获得的多个段。利用从最优语音段串中的各个语音段中计算出的合成单元代价,使用等式(5)计算出的代价值小于从其它任何语音段串中计算出的代价值。注意,最优语音段串可以通过使用DP(动态规划)有效地查找。
流程进入步骤S112。在第二语音段选择阶段中,使用最优语音段串,为每个段选择多个语音段。在以下的说明中,假设段的数目是J,并且为每个段选择M个语音段。下面将描述步骤S112的细节。
在步骤S113和S114中,选择J个段中的一个作为目标段。步骤S113和S114被重复J次,以便执行处理,从而J个段中的每个段成为一次目标段。在步骤S113中,为目标段之外的段调整最优语音段串中的语音段。在这种情况下,针对目标段,对存储在语音段存储单元1中的语音段进行分级,以便选择最高的M个语音段。
例如,如图8中所示,假设输入音素串是“ts·i·i·s·a·...”。在这种情况下,合成单元分别相应于音素“ts”、“i”、“i”、“s”、“a”...,它们中的每一个相应于一个段。图8示出了一种情况,其中,相应于输入音素串中第三个音素“i”的段被选作目标段,并且为这个目标段获得多个语音段。对于除了相应于第三个音素“i”的段,调整最优语音段串中的语音段51a、51b、51d、51e...。
在这种情况下,使用等式(5)为存储在语音段串单元1中的,具有和音素“i”相同的音素符号(音素名称)的每个语音段计算出代价。由于代价(对于各个语音段,在计算代价时可以具有不同的值)是目标段的目标代价、目标段和紧挨着的前面的段之间的连接代价、目标段和下一个段之间的连接代价,只有需要考虑这些代价。即,(过程1)存储在语音段存储单元1中的,具有与目标段的音素“i”相同的音素符号的多个语音段中的一个被选作语音段u3。使用等式(1)从语音段u3的基频f(v3)和目标基频f(t3)计算基频代价。
(过程2)使用等式(2)从语音段u3的时长g(v3)和目标时长g(t3)计算时长代价。
(过程3)使用等式(3)从语音段u3的倒谱系数h(u3)和语音段51b的倒谱系数h(u2)计算第一频谱连接代价。使用等式(3)从语音段u3的倒谱系数h(u3)和语音段51d的倒谱系数h(u4)计算第二频谱连接代价。
(过程4)计算使用上面(过程1)到(过程3)的子代价函数计算的基频代价、时长代价和第一和第二频谱连接代价的加权和,以便计算语音段u3的代价。
(过程5)在根据上面的(过程1)到(过程4),为存储在语音段存储单元1内、与目标段的音素“i”具有同样的音素符号的各个语音段计算了代价之后,为这些代价分级,从而具有最小值的语音段具有最高的等级(图7中的步骤S113)。选择上面的M个语音段(图7中的步骤114)。例如,在图8中语音段52a具有最高的等级,并且语音段52d具有最低的等级。
上面的(过程1)到(过程5)被应用于各个段。结果,为每个段得到M个语音段。
下面将说明图3中的步骤102的处理。
在步骤S102中,通过结合在步骤S101中为多个段中的每个段选择的M个语音段产生新的语音段(结合的语音段)。由于有声语音的波形具有周期,但是无声语音不具有周期,取决于感兴趣的语音段是有声音的还是无声音的,这个步骤执行不同的处理。
下面将说明用于有声语音的处理。在有声语音的情况下,从语音段中提取出音调波形,并且在音调波形级上对其进行结合,因此产生新的音调波形。音调波形意味着相对短的波形,其长度可达语音基频的几倍,并且本身不具有任何基频,并且其频谱表示语音信号的频谱包络线。
作为音调波形的提取方法,可以使用各种方法使用与基频同步的窗口提取波形的方法、计算由倒谱分析或PSE分析获得的音强谱包络的反向离散傅立叶变换的方法、基于由线性预测分析得到的滤波器的脉冲响应,计算音调波形的方法、通过闭循环训练的方法最小化合成语音与自然语音间的失真的计算音调波形的方法等。
在第一实施例中,下面将参考图9的流程图,以使用与基频同步的窗口(时间窗口)提取音调波形的方法提取音调波形为例,解释处理顺序。将要解释通过为多个段中的每个段结合M个语音段产生新的语音段时所执行的处理顺序。
在步骤S121中,标记(音调标记)被以M个语音段中的每个语音段的周期间隔分配到M个语音段中的每个语音段的语音波形上。图10(a)示出了音调标记62被以M个语音段中的一个语音段的周期间隔分配到该语音段的语音波形61上。在步骤S122,如图10(b)所示,参考音调标记应用窗口以提取音调波形。汉明窗口(Hamming window)63被用作窗口,并且其窗口长度是基频的两倍。如图10(c)中所示,应用了窗口的波形64被提取出来以作为音调波形。图10中示出的处理(在步骤S122中)被应用到M个语音段的每个语音段。结果,为M个语音段的每个语音段获得了包括多个音调波形的音调波形串。
然后流程进入步骤S123,通过拷贝音调波形(对于具有较小数目的音调波形的音调波形串)统一音调波形的数目,从而所有M个音调波形串具与感兴趣的段的M个语音段的音调波形串中具有最多音调波形数目的音调波形串有同样的音调波形数目。
图11示出了在步骤S122从感兴趣的段的M个语音段d1到d3(例如,在这个例子中为3)中提取出的音调波形串e1到e3。音调波形串e1内音调波形的数目是7,音调波形串e2内的音调波形的数目为5,并且音调波形串e3内的音调波形的数目为6。因此,对于音调波形串e1到e3,串e1具有最大的音调波形数目。从而,串中的一个音调波形被拷贝到剩余串e2和e3中以形成7个音调波形。结果,获得了与串e2和e3相一致的新的音调波形串e2’和e3’。
流程进入步骤124。在这个步骤中,为每个音调波形执行处理。在步骤124,相应于感兴趣的段的M个语音段的音调波形被在它们的位置处平均,以产生新的音调波形串。产生的新的音调波形串作为结合语音段被输出。
图12示出了在步骤S123从感兴趣的段的M个语音段d1到d3(例如,在这个例子中为3)中获得的音调波形串e1、e2’和e3’。由于每个串包括7个音调波形,1到7个音调波形被在3个语音段中平均,以产生由7个新的音调波形形成的新的音调波形串f1。即,计算串e1、e2’和e3’的第一音调波形的质心,并且将其用作新的音调波形串f1的第一音调波形。对新的音调波形串f1的第2到第7个音调波形采用同样的处理。音调波形串f1是上面所说明的“结合语音段”。
在另一方面,下面将说明为无声语音的段执行的图3的步骤S102中的处理。在段选择步骤S101,如上所述,感兴趣的段的M个语音段被分级。因此,感兴趣的段的M个语音段中最高分级的一个语音段的语音波形直接被用作相应于该段的“结合语音段”。
当从为相应于输入音素串的多个段的感兴趣的段选择的M个语音段(通过为有声语音结合M个语音段或为无声语音选择M个语音段中的一个)产生新的语音段(结合语音段)之后,流程进入图3中的语音段编辑/连接步骤S103。
在步骤S103,语音段编辑/连接单元9根据输入韵律信息,对在步骤S102中获得的各个段的结合语音段进行变形和连接,从而产生语音波形(合成语音的)。由于在步骤S102中获得的每个结合语音段实际上具有音调波形的形式,所以叠加音调波形,从而结合语音段的基频和时长与由输入韵律信息指示的目标语音的基频和时长相匹配,从而产生语音波形。
图13是用于解释步骤S103中的处理的一个视图。图13示出了通过针对音素“m”、“a”、“d”和“o”的合成单元在步骤S102中获得的结合语音段进行变形和连接,产生语音波形“mado”(日语中的“窗口”)的情况。如图13中所示,改变结合语音段中的每个音调波形的基频(通过改变声音的音调),或增加音调波形的数目(以改变时长),以便与由输入韵律信息所指示的目标基频和目标时长相一致。此后,连接每个段中相邻的音调波形,以及相邻的段间相邻的音调波形,以产生合成语音。
注意,优选地,目标代价可以基于输入韵律信息尽可能准确地估计(评估)合成语音与目标语音之间的失真,所述的失真是由改变每个结合语音段的基频、时长等产生的(由语音段编辑/连接单元9),从而产生合成语音。从等式(1)和(2)计算得到的目标代价,作为这种这种目标代价的一个例子,是基于目标语音的韵律信息和存储在语音段存储单元1中的语音段的韵律信息之间的差别计算出的。再有,优选地,连接代价可以尽可能准确地估计(评估)连接结合语音段时产生的(由语音段编辑/连接单元9)合成语音和目标语音之间的失真。从等式(3)计算出的连接代价,作为这种连接代价的例子,是基于存储在语音段存储单元1中的语音段的连接边界处的倒谱系数间的差别计算的。
下面将说明根据第一实施例的语音合成方法和传统的语音段选择类型语音合成方法之间的不同。
图2中示出的根据第一实施例的语音合成系统和传统的语音合成系统(例如,见专利参考文献3)间的不同在于在选择语音段时,为每个合成单元选择多个语音段,并且在语音段选择单元11之后连接语音段结合单元5,以便通过为每个合成单元结合多个语音段,产生新的语音段。在这个实施例中,通过为每个合成单元结合多个语音段可以产生高质量的语音段,并且结果,可以产生高质量的合成语音。
(第二实施例)下面将说明根据第二实施例的语音合成单元34。
图14示出了根据第二实施例的语音合成单元34的布局的一个例子。语音合成单元34包括语音段存储单元1、环境信息存储单元2、语音段选择单元12、所希望的环境信息存储单元13、语音段结合单元5、典型语音段存储单元6、音素串/韵律信息输入单元7、语音段选择单元11和语音段编辑/连接单元9。注意,图14中相同的参考号码代表和图2中相同的部分。
即,图14中的语音合成单元34一般来说包括典型语音段产生系统21和规则合成系统22。当实际中进行文本到语音合成时,规则合成系统22工作,并且典型语音段产生系统21通过事先学习产生典型语音段。
如在第一实施例中一样,语音段存储单元1存储大量语音段,并且环境信息存储单元2存储这些语音段的语音环境信息。所希望的环境信息存储单元13存储在产生典型语音段时,被用作目标的大量的所希望的环境信息。对于所希望的环境,在这个例子中使用了与存储在环境信息存储单元2中的环境信息的内容相同的内容。
首先将解释典型语音段产生系统21的处理操作的概况。语音段选择单元12从语音段存储单元1中选择具有与存储在所希望的环境信息存储单元13中的每个所希望的环境相匹配或相类似的环境信息的语音段,并且用作目标。在这个例子中,选择多个语音段。如图9中所示,所选择的语音段被语音段结合单元5结合在一起。作为这个处理的结果而获得的新的语音段,即,“结合语音段”被作为典型语音段存储在典型语音段存储单元6中。
典型语音段存储单元6以和(例如)图4中相同的方式,将以这种方式产生的典型语音段的波形和用于标识这些典型语音段的段号存储在一起。所希望的环境信息存储单元13以和(例如)图5中相同的方式,存储语音环境信息(所希望的环境信息),在产生与典型语音段的段号相一致地存储在典型语音段存储单元6内的典型语音段时,所述存储语音环境信息被用作目标。
下面将解释规则合成系统22的处理操作的概述。语音段选择单元11从存储在典型语音段存储单元6中的典型语音段选择一典型语音段,所述典型语音段是音素符号(或音素符号串)相应于由合成单元对音素串输入进行分段而获得的多个段中感兴趣的段,并且具有与相应于该段的韵律信息输入相匹配或相类似的环境信息的一个语音段。结果,获得了相应于输入音素串的典型语音段串。由语音段编辑/连接单元9基于输入韵律信息对典型的语音段串进行变形和连接以产生语音波形。以这种方式产生的语音波形通过语音波形输出单元10输出。
下面将参考图15中示出的流程图,详细说明典型语音段产生系统21的处理操作。
如在第一实施例中那样,语音段存储单元1和环境信息存储单元2分别存储语音段组和环境信息组。语音段选择单元12选择多个语音段,所述的多个语音段中的每一个具有与存储在环境信息存储单元13中的每个所希望的环境信息相匹配或相类似的环境信息(步骤S201)。通过结合多个所选择的语音段,产生相应于感兴趣的所希望的环境信息的典型语音段(步骤S202)。
下面将说明用于一个所希望的环境信息的处理。
在步骤S201,使用在第一实施例中说明的代价函数选择多个语音段。在这种情况下,因为独立地评估语音段,所以没有结合连接代价进行评估,而是仅使用目标代价进行评估。即,在这个情况下,使用等式(1)和(2),对存储在环境信息存储单元2中的、具有与所希望的环境信息中所包括的音素符号相同的音素符号的每个环境信息和所希望的环境信息进行比较。
在存储在环境存储单元2内的大量环境信息中,具有和被包括在所希望的环境信息中的音素符号相同的音素符号的多个环境信息中的一个被选择为感兴趣的环境信息。使用等式(1),从感兴趣的环境信息的基础频率和被包括在所希望的环境信息中的基础频率(参考基础频率)计算基础频率代价。使用等式(2),从感兴趣的环境信息的时长和包括在所希望的环境信息中的时长(参考时长)计算出时长代价。使用等式(4)计算这些代价的加权和,以计算感兴趣的环境信息的合成单元代价。即,在这个情况下,合成单元代价的值表示相应于感兴趣的环境信息的语音段与相应于所希望的环境信息的的语音段(参考语音段)间的失真程度。注意,在实际中,相应于所希望的环境信息的语音段(参考语音段)不必出现。然而,在这个实施例中,由于存储在环境信息存储单元2中的环境信息被用作所希望的环境信息,所以给出了实际的参考语音段。
通过将被存储在环境信息存储单元2中的、并且具有与被包括在所希望的环境信息中音素符号相同的音素符号的多条环境信息中的每条设置为目标环境信息,类似地计算合成单元代价。
当计算了被存储在环境信息存储单元2中的、并且具有与被包括在所希望的环境信息中音素符号相同的音素符号的多条环境信息的合成单元代价之后,对它们进行分级,从而具有较小值的代价具有较高的级别(图15中的步骤S203)。然后,选择相应于最高M条环境信息的M个语音段(图15中的步骤S204)。相应于M个语音段的环境信息项与所希望的环境信息项相类似。
流程进入步骤S202以便结合语音段。然而,当所希望的环境信息的音素相应于无声语音时,选择最高分级的语音段作为典型语音段。在有声语音的情况下,执行步骤S205到S208中的处理。这些处理与图10到图12说明的那些处理相同。即,在步骤S205,标记(音调标记)被以所选择的M个语音段的每个语音段的周期间隔分配到所选择的M个语音段的每个语音段的语音波形上。流程前进到步骤S206采用关于该音调标记的窗口,以便提取音调波形。使用汉明窗口作为所述的窗口,并且其窗口长度是基频的两倍。流程进入步骤S207,通过拷贝音调波形,统一音调波形串的音调波形的数目,从而所有的音调波形串具有和具有最大音调波形数目的音调波形串相同的音调波形数目。流程进入步骤S208。在这个步骤中,为每个音调波形执行处理。在步骤S208,M个音调波形被平均(通过计算M个音调波形的质心),以便产生新的音调波形串。这个音调波形串用作典型语音段。注意,步骤S205到S208与图9中的步骤S121到S124相同。
产生的典型语音段和其段号一起被存储在典型语音段存储单元6中。典型语音段的环境信息是在产生该典型语音段时使用的所希望的环境信息。这个所希望的环境信息与该典型语音段的段号一起被存储在所希望的环境信息存储单元13中。以这种方式,使用段号彼此一致地存储典型语音段和所希望的环境信息。
下面将说明规则合成系统22。规则合成系统22使用存储在典型语音段存储单元6中的典型语音段和相应于每个典型语音段、并且被存储在所希望的环境信息存储单元13中的环境信息产生合成语音。
语音段选择单元11基于音素串/韵律信息输入单元7的音素串和韵律信息输入,为每个合成单元(段)选择一个典型语音段,以便获得语音段串。这个语音段串是第一实施例中说明的最优语音段串,并且由与第一实施例中相同的方法计算,即,计算可以最小化由等式(5)确定的代价值的(典型)语音段的串。
语音段编辑/连接单元9根据输入韵律信息,以和第一实施例中相同的方式,通过对选择的最优语音段串进行变形和连接,产生语音波形。因为每个典型语音段具有音调波形的形式,所以叠加一个音调波形,以获得目标基频和时长,由此产生语音波形。
下面将说明根据第二实施例的语音合成方法和传统的语音合成方法之间的不同。
传统的语音合成系统(例如,见日本专利No.2,583,074)和根据第二实施例在图14中示出的语音合成系统的不同在于产生典型语音段的方法和在进行语音合成时选择典型语音段的方法上。在传统语音合成系统中,产生典型语音段时使用的语音段被基于语音段间的距离尺度分类到与环境信息相关联的多个聚类中。在另一方面,第二实施例的语音合成系统通过输入所希望的环境信息,并且使用由等式(1)、(2)和(4)确定的代价函数,为每个目标环境信息选择与所希望的环境信息相匹配或相类似的语音段。
图16说明了具有不同环境信息的多个语音段的语音环境的分布,即,这样一种情况,其中通过聚类处理对这种分布状态中的用于产生典型语音段的多个语音段进行分类和选择。图17说明了具有不同环境信息的多个语音段的语音环境分布,即,这样一种情况,其中使用代价函数选择用于产生典型语音段的多个语音段。
如图16中所示,在现有技术中,依据其基频是等于或大于第一预定值,小于第二预定值,还是等于或大于第二预定值并且小于第一预定值,多个存储的语音段中的每个语音段被分类到三个聚类中的一个内。参考号22a和22b表示聚类边界。
在另一方面,如图17所示,在第二实施例中,存储在语音段存储单元1中的多个语音段中的每个语音段被设置为参考语音段,该参考语音段的环境信息被设置为所希望的环境信息,并且获得一组具有与所希望的环境信息相匹配或相类似的环境信息的语音段。例如,在图17中,获得了具有与所希望的环境信息24a相匹配或相类似的环境信息的语音段的组23a。获得了具有与所希望的环境信息24b相匹配或相类似的环境信息的语音段的组23b。还获得了具有与所希望的环境信息24c相匹配或相类似的环境信息的语音段的组23c。
通过图16和图17之间的比较可以看到,根据图16的聚类方法,在产生典型语音段时,在多个典型语音段中,没有语音段被重复地使用。然而,在图17示出的第二实施例中,在产生典型语音段时,在多个典型语音段中,某些语音段被重复地使用了。在第二个实施例中,因为在产生典型语音段时,典型语音段的目标环境信息可以被自由地设置,具有所需要的环境信息的典型语音段可以被自由地产生。因此,依据选择参考语音段的方法,可以产生许多具有没有包括在被存储在语音段存储单元1中的语音段内、并且实际上没有被采样的语音环境的典型语音段。
因为通过增加具有不同语音环境的典型语音段的数目,选择范围被加宽了,因此可以获得更加自然的、更高质量的合成语音。
通过结合具有类似语音环境的多个语音段,第二个实施例的语音合成系统可以产生高质量的语音段。此外,由于准备了与存储在环境信息存储单元2中的环境信息一样多的所希望的语音环境,可以产生具有各种语音环境的典型语音段。从而,语音段选择单元11可以选择许多典型语音段,并且可以减少在语音段编辑/连接单元9对语音段进行变形和连接时产生的失真,因此,以较高质量产生自然的合成语音。在第二实施例中,由于在实际中,在进行文本到语音合成时不需要语音段结合处理,所以其计算量小于第一个实施例。
(第三实施例)在第一和第二实施例中,语音环境被解释为语音段的音素的信息以及它的基频和时长。然而,本发明不限于这些特定的因素。多条信息,诸如音素、基频、时长、前缀音素、后缀音素、次后缀音素、基频、时长、音强、有/无重读、从重音基点起的位置、从呼吸停顿起的时间、说话的速度、情绪等在需要时被组合使用。使用适当的因素作为语音环境,在图3的步骤S101的语音段选择处理中可以选择更适当的语音段,从而改进了语音的质量。
(第四实施例)在第一和第二实施例中,基频和时长代价被用作目标代价。然而,本发明并不限于这些特定的代价。例如,可以使用语音环境代价,通过数字化存储在语音段存储单元1内的每个语音段的语音环境和目标语音环境之间的差别,准备所述的语音环境代价。作为语音环境,可以使用被定位在给定音素之前和之后的音素的类型、包括该音素的词的语音的一部分等。
在这个例子中,定义了新的子代价函数,需要该子代价函数,以便计算语音环境代价,所述的语音环境代价表示存储在语音段存储单元1内的每个语音段的语音环境和目标语音环境之间的差别。然后,使用等式(4)计算使用这个子代价函数计算的语音环境代价、使用等式(1)和(2)计算的目标代价、和使用等式(3)计算的连接代价的加权和,从而获得合成单元代价。
(第五实施例)在第一和第二实施例中,作为在连接边界处的频谱差别的频谱连接代价被用作连接代价。然而,本发明不限于这种特定的代价。例如,可以使用表示连接边界处的基频差别的基频连接代价、表示连接边界处的音强差别的音强连接代价等替代频谱连接代价或附加在频谱连接代价之外。
同样在这种情况下,定义了需要用于计算这些代价的新的子代价函数。然后,使用等式(4)计算使用这些子代价函数计算的连接代价、和使用等式(1)和(2)计算的目标代价的加权和,从而获得合成单元代价。
(第六实施例)在第一和第二实施例中,所有的权重wn都被设置为“1”。然而本发明不限于这种特定的值。根据子代价函数,权重可以被设置为适当的值。例如,通过不同地改变权值,产生合成声音,并且通过主观评估试验检查具有最佳评估结果的值。使用此时使用的权值,可以产生高质量的合成语音。
(第七实施例)在第一和第二实施例中,如等式(5)给出的,合成单元代价的和被用作代价函数。然而,本发明不限于这种特定的代价函数。例如,可以使用合成单元代价的幂的和。使用较大的指数的幂,就强调了较大的合成单元代价,从而避免局部地选择具有大合成单元代价的语音段。
(第八实施例)在第一和第二实施例中,如等式(5)给出的,作为子代价函数的加权和的合成单元代价的和被用作代价函数。然而,本发明不限于这种特定的代价函数。仅需要使用包括语音段串的全部子代价函数的函数。
(第九实施例)在第一实施例的图7的语音段选择步骤S112中,以及在第二实施例的图15的语音段选择步骤S201中,为每个合成单元选择M个语音段。然而,本发明不限于此。对于每个合成单元,可以改变选择的语音段的数目。还有,不需要在所有的合成单元中选择多个语音段。再有,可以基于某些因素,诸如代价值、语音段的数目等,确定将被选择的语音段的数目。
(第十实施例)在第一实施例中,在图7的步骤S111和S112中,使用了与由等式(1)到(5)给出的等式相同的函数。然而,本发明不限于此。在这些步骤中可以定义不同的函数。
(第十一个实施例)在第二个实施例中,图14中的语音段选择单元12和11使用与等式(1)到(5)所给出的函数相同的函数。然而,本发明不限于此。这些单元可以使用不同的函数。
(第十二个实施例)在第一个实施例的图9的步骤S121中,以及在第二个实施例的图15的步骤S205中,音调标记被分配给每个语音段。然而,本发明不限于这种特定的处理。例如,音调标记可以事先被分配到每个语音段,并且这种段可以被存储在语音段存储单元1中。通过事先将音调标记分配到每个语音段,可以减小执行时的计算量。
(第十三个实施例)在第一个实施例的图9的步骤123中,以及在第二个实施例的图15中的步骤S207中,语音段的音调波形的数目被调整为与具有最大音调波形数目的语音段相一致。然而,本发明不限于此。例如,可以使用语音段编辑/连接单元9中实际需要的音调波形的数目。
(第十四个实施例)在第一个实施例的图3的语音段结合步骤S102中,以及在第二个实施例的图15的语音段结合步骤S202中,平均被用作结合有声语音的语音段时,结合音调波形的手段。然而,本发明不限于此。例如,通过校正音调标记,可以对音调波形进行平均,以便最大化音调波形的相关值,以此取代简单的平均处理,从而以更高的质量产生合成语音。再有,可以通过将音调波形划分到频带中进行平均处理,并且校正音调标记,以便为各个频带最大化相关值,从而以较高的质量产生合成语音。
(第十五个实施例)在第一实施例的图3的语音段结合步骤S102中,以及在第二实施例的图15的语音段结合步骤S202中,在音调波形的级别上结合有声语音的语音段。然而,本发明不限于此。例如,使用日本专利No.3,281,281中说明的闭循环训练方法,可以产生在合成语音级别上最优的音调波形串,而不用提取每个语音段的音调波形。
下面将解释一种情况,其中使用闭循环训练的方法结合有声语音的语音段。因为通过如第一实施例中那样进行结合,获得了作为音调波形串的语音段,通过连接这些音调波形而定义的向量u表示一个语音段。最初,准备一个语音段的初始值。作为该初始值,可以使用通过第一实施例中说明的方法获得的音调波形串,或可以使用随机数据。设rj(j=1,2,...M)是向量,它表示在语音段选择步骤S101中选择的语音段的波形。使用u,以rj作为目标合成语音。设sj是产生的合成语音段。sj由矩阵Aj和u的乘积给出,该乘积表示音调波形的叠加。
Sj=Aju (6)通过映射rj和u的音调波形的音调标记,以及rj的音调标记位置,确定矩阵Aj。图18示出了矩阵Aj的一个例子。
然后估计合成语音段sj和rj之间的误差。sj和rj之间的误差ej由下式定义ej=(rj-gjsj)T(rj-gjsj)=(rj-gjAju)T(rj-gjAju) (7)如公式(8)和(9)所给出的,gj是增益(gain),用于通过校正两个波形之间的平均功率差分,仅评估波形的失真,并且使用最小化ej的增益。
∂ej∂gj=0---(8)]]>gj=sjTrjsjTsj---(9)]]>由下式定义评估函数E,评估函数E表示所有向量ri的误差的总和E=Σj=1M(rj-gjAju)T(rj-gjAju)---(10)]]>通过求解下面的等式(12),获得最小化E的最优向量u,等式(12)是通过对E相对u进行部分微分,并且使结果等于0得到的∂E∂u=0---(11)]]>(Σj=1Mgj2AjTAj)u=Σj=1MgjAjTrj---(12)]]>公式(8)是对于u的联立等式,并且通过解该等式,可以唯一地获得一个新的语音段u。当向量u被更新时,最优增益gj发生改变。因此,重复上述的处理,直到值E收敛为止,并且收敛时的向量u被用作由结合产生的语音段。
可以基于rj和u的波形间的相关性,校正计算矩阵Aj时rj的音调标记位置。
再有,向量rj可以被划分到频带中,并且为各个频带执行上述的闭循环训练方法以便计算“u”。通过对所有频带累加“u”,可以产生结合语音段。
以这种方式,在结合语音段时使用闭循环训练方法,由于音调周期的变化,可以产生经受较少合成语音失真的语音段。
(第16实施例)在第一和第二实施例中,被存储在语音段存储单元1中的语音段是波形。然而,本发明并不限于此,并且可以存储频谱参数。在这种情况下,语音段结合步骤S102或S202中的结合处理可以使用诸如取频谱参数的平均值的方法等。
(第17实施例)在第一实施例的图3中的语音段结合步骤S102,和第二实施例的图15中的语音段结合步骤S202中,在无声语音的情况下,直接使用在语音段选择步骤S101和S201中分级第一的语音段。然而,本发明并不限于此。例如,语音段可以被对齐,并且可以在波形一级取平均。在对齐之后,可以获得语音段的参数,诸如倒谱、LSP等,并且可以取平均值。基于取平均的参数而获得的滤波器可被以白噪声驱动,以便获得无声语音通常的波形。
(第18实施例)在第二实施例中,与被存储在环境信息存储单元2中的语音环境相同的语音环境被存储在所希望的环境信息存储单元13中。然而,本发明并不限于此。通过考虑环境信息的平衡,设计所希望的环境信息,从而减少编辑/连接语音段时产生的失真,可以产生具有更高质量的合成语音。通过减少所希望的环境信息片段的数量,可以减少典型的语音段存储单元6的容量。
如以上所述,根据以上的实施例,可以为由合成单元对目标语音的音素串进行分段而获得的多个段中的每一个段产生高质量的语音段。结果,可以产生具有更高质量的自然的合成语音。
通过进行在以上实施例中描述的文本到语音系统的功能单元内的计算机执行过程,计算机能够用作文本到语音系统。能够使计算机用作文本到语音系统,并且能够由计算机执行的程序可以被存储在记录介质中,所述记录介质诸如磁盘(软盘、硬盘等)、光盘(CD-ROM、DVD等)、半导体存储器等,并且可以是分布式的。
权利要求
1.一种语音合成方法,包括基于目标语音的韵律信息,为每个段从语音单元组中选择多个语音单元,目标语音的音素串按照单元类型被划分到所述段中;通过为每个段结合所选择的语音单元,产生新的语音单元;以及通过连接新的语音单元,产生合成语音。
2.根据权利要求1的方法,其中所选择的语音单元最小化从所选择的语音单元中产生的合成语音与目标语音间的失真。
3.根据权利要求2的方法,其中所述选择包括选择最优语音段串,所述最优语音段串最小化从最优语音段串中产生的合成语音的失真;并且基于相应于最优语音段串的一个语音段,选择相应于每个所述段的语音段。
4.一种语音合成方法,用于基于目标语音的音素串和韵律信息,通过连接从存储在第一存储器中的第一组语音段中选择的语音段,产生合成语音,所述方法包括在第二存储器中分别存储第二组语音段和相应于该组语音段的环境信息项;存储分别相应于所希望的语音段的所希望的环境信息项;基于每个所希望的环境信息项,从第二组中选择多个语音段,所述语音段的环境信息项与每个所希望的环境信息项相类似;以及通过结合所选择的语音段,产生第一组的每个语音段。
5.根据权利要求1的方法,其中所述韵律信息包括目标语音的基频、时长和音强中的至少一个。
6.根据权利要求4的方法,其中每个环境信息项和所希望的环境信息项中包括基频、时长和音强中的至少一个。
7.根据权利要求2的方法,其中所述选择包括为所述组中的每一个语音单元计算第一代价,所述第一代价表示所述组中的每一个语音单元与目标语音之间的差别;为所述组中的每一个语音单元计算第二代价,所述第二代价表示当所述组中的每一个语音单元被连接到所述组中的另一个语音单元时所产生的失真程度;以及基于所述组中的每一个语音单元的第一代价和第二代价,选择相应于每个段的语音段。
8.根据权利要求7的方法,其中使用基频、时长、音强、语音环境以及所述组中的每一个语音单元和目标语音的频谱中的至少一个计算第一代价。
9.根据权利要求7的方法,其中使用频谱、基频以及所述组的每一个语音单元和所述组的另一个语音单元的音强中的至少一个计算所述第二代价。
10.根据权利要求1的方法,其中产生新的语音单元包括从分别相应于所选择的语音单元的多个音调循环波形串中,产生多个音调循环波形串,每个音调循环波形串包括相同数量的音调波形;以及通过结合所产生的音调循环波形串,产生新的语音单元。
11.根据权利要求10的方法,其中通过基于所产生的每个音调波形串的每个音调波形,计算新的语音段的每个音调波形的质心,产生所述新的语音段。
12.根据权利要求4的方法,其中产生第一组的每个语音段包括从分别相应于所选择的语音段的多个音调波形串中,产生多个音调波形串,每个音调波形串包括相同数量的音调波形;以及通过结合所产生的音调波形串,产生所述第一组的每个语音段。
13.根据权利要求12的方法,其中通过基于所产生的每个音调波形串的每个音调波形,计算第一组的每个语音段的每个音调波形的质心,产生所述第一组的每个语音段。
14.一种语音合成系统,包括存储器,存储一组语音段;选择单元,被配置为基于相应于目标语音的韵律信息从所述组中选择多个语音段,所选择的语音段相应于每个段,对相应于目标语音的音素串进行分段获得所述的段;第一产生单元,被配置为通过结合所选择的相应于每个段的语音段,产生相应于每个段的新的语音段,以便获得分别相应于所述段的多个新的语音段;以及第二产生单元,被配置为通过连接新的语音段产生合成语音。
15.一种语音合成系统,包括存储器,存储第一组语音段,第一组语音段中的每一个是通过结合多个语音段所产生的,所述多个语音段与所希望的环境信息项中的一个环境信息项相类似,并且是从第二组语音段中选出的;以及产生单元,被配置为通过基于相应于目标语音的音素串和韵律信息,连接从第一组中选出的多个语音段,产生合成语音。
16.一种语音合成系统,包括存储器,存储一组语音段;分段单元,被配置为对相应于目标语音的音素串进行分段,以便获得多个段;选择单元,被配置为基于目标语音的韵律信息,从所述组中选择多个语音段,所选出的语音段相应于每个所述段,并且最小化从选出的语音段中产生的合成语音与目标语音间的失真;第一产生单元,被配置为通过结合所选择的语音段,产生相应于每个所述段的新的语音段,以便获得分别相应于所述段的多个新的语音段;以及第二产生单元,被配置为通过连接新的语音段,产生合成语音。
17.根据权利要求16的系统,其中选择单元选择最优语音段串,所述最优语音段串最小化从最优语音段串中产生的合成语音的失真,并且基于相应于最优语音段串的一个语音段,选择相应于每个所述段的语音段。
全文摘要
一种语音合成系统,在存储器中存储一组语音段;对相应于目标语音的音素串分段,以便获得多个段;基于目标语音的韵律信息,从所述组中选择多个语音段,所选的语音段相应于每个段,并且最小化从所选的语音段产生的合成语音与目标语音间的失真;通过结合所选的语音段,产生相应于每个段的新的语音段,以便获得分别相应于所述段的多个新的语音段;并且通过连接新的语音段产生合成语音。
文档编号G10L13/08GK1622195SQ20041009613
公开日2005年6月1日 申请日期2004年11月26日 优先权日2003年11月28日
发明者水谷龙也, 笼岛岳彦 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1