语音合成方法和装置的利记博彩app

文档序号:2831130阅读:213来源:国知局
专利名称:语音合成方法和装置的利记博彩app
技术领域
本发明涉及使用诸如音素序列、基音和音素时长的信息生成合成语音信号的语音合成方法和装置。

背景技术
根据任意的句子人工地生成语音信号被称为“文本语音合成”。通常,文本语音合成包括三个步骤:语言处理、韵律处理和语音合成。
首先,语言处理部从语形和语义上分析输入文本。其次,韵律处理部基于分析结果处理文本的重音和语调,并输出音素序列/韵律信息(基频、音段时长、功率)。第三,语音合成部基于音素序列/韵律信息合成语音信号。这样,可实现文本语音合成。
下面说明合成任意音素符号序列的合成器的原理。假设元音用“V”表示,辅音用“C”表示。诸如CV、CVC、和VCV的基本单元的特征参数(语音单元)被事先存储。通过控制基音和时长来拼接语音单元,从而合成语音。在该方法中,合成语音的质量大大取决于所存储的语音单元。
作为这样的语音合成方法的一种,通过以输入音素序列/韵律信息为目标,对每个合成单元(每一段)选择多个语音单元。通过融合多个语音单元生成新的语音单元,并通过拼接新的语音单元来合成语音。以下,该方法称为多单元选择融合方法。例如,该方法在JP-A No.2005-164749(公开号)中公开。
在多单元选择融合方法中,首先,基于输入音素/韵律信息(目标),从以前存储的大量语音单元中选择语音单元。作为单元选择方法,合成语音与目标之间的失真度被定义为成本函数,选择语音单元以使成本函数的值变得最小。例如,表示目标语音与每个语音单元之间的韵律/音素环境的差的目标失真和通过拼接语音单元而发生的拼接失真在数字上被估计为成本。用于语音合成的语音单元基于成本来选择,并使用特定的方法融合,即,将语音单元的基音波形进行平均,或者使用语音段的质心。结果,可稳定地获得合成语音,同时抑制编辑/拼接语音单元中的质量的下降。
此外,作为生成具有高质量的语音单元的方法,所存储的语音单元使用共振峰频率表示。例如,该方法在日本专利No.3732793中公开。在该方法中,共振峰的波形(以下称为“共振峰波形”)通过将窗函数与具有共振峰频率的正弦曲线相乘来表示。语音波形通过将每个共振峰波形相加来表示。
然而,在多单元选择融合方法的语音合成中,语音单元的波形被直接融合。由此,合成语音的频谱变得不清楚,并且合成语音的质量下降。该问题是由于融合具有不同共振峰频率的语音单元而产生的。结果,融合语音单元的共振峰不清楚并且质量下降。


发明内容
本发明旨在一种用于以相对于多单元选择融合方法高质量地生成合成语音的语音合成方法和装置。
根据本发明的一个方面,提供一种合成语音的方法,包括:将与目标语音对应的音素序列分割成多个段;对于每个段,从存储具有至少一个帧的语音单元的语音单元存储器中选择多个语音单元,所述多个语音单元具有与目标语音一致或相似的韵律特征;对于多个语音单元的每个帧生成具有至少一个共振峰频率的共振峰参数;根据多个语音单元的每个帧的共振峰参数生成每个帧的融合共振峰参数;根据每个帧的融合共振峰参数生成每个段的融合语音单元;以及通过拼接每个段的融合语音单元来生成合成语音。
根据本发明的另一个方面,还提供了一种用于合成语音的装置,包括:分割部,用于将与目标语音对应的音素序列分割成多个段;语音单元存储器,用于存储具有至少一个帧的语音单元;语音单元选择部,用于对于每个段从语音单元存储器中选择多个语音单元,所述多个语音单元具有与目标语音一致或相似的韵律特征;共振峰参数生成部,用于对于多个语音单元的每个帧生成具有至少一个共振峰频率的共振峰参数;融合共振峰参数生成部,用于根据多个语音单元的每个帧的共振峰参数生成每个帧的融合共振峰参数;融合语音单元生成部,用于根据每个帧的融合共振峰参数生成每个段的融合语音单元;以及合成部,用于通过拼接每个段的融合语音单元来生成合成语音。
根据本发明的再一个方面,还提供一种存储用于使计算机合成语音的程序代码的计算机可读介质,所述程序代码包括:第一程序代码,用于将与目标语音对应的音素序列分割成多个段;第二程序代码,用于对于每个段从存储具有至少一个帧的语音单元的语音单元存储器中选择多个语音单元,所述多个语音单元具有与目标语音一致或相似的韵律特征;第三程序代码,用于对于多个语音单元的每个帧生成具有至少一个共振峰频率的共振峰参数;第四程序代码,用于根据多个语音单元的每个帧的共振峰参数生成每个帧的融合共振峰参数;第五程序代码,用于根据每个帧的融合共振峰参数生成每个段的融合语音单元;以及第六程序代码,用于通过拼接每个段的融合语音单元来生成合成语音。



图1是根据第一个实施例的语音合成装置的方框图。
图2是图1中的语音合成部的方框图。
图3是语音合成部的处理的流程图。
图4是在语音单元存储器中存储的语音单元的例子。
图5是在音素环境存储器中存储的语音环境的例子。
图6是共振峰参数生成部的处理的流程图。
图7是根据语音单元生成基音波形的处理的流程图。
图8A、8B、8C和8D是从语音单元中获得共振峰参数的步骤的示意图。
图9A和9B是正弦波、窗函数、共振波形和基音波形的例子。
图10是在共振峰参数存储器中存储的共振峰参数的例子。
图11是语音单元选择部的处理的流程图。
图12是对于与输入音素序列对应的多个段的每一个获得多个语音单元的步骤的示意图。
图13是语音单元融合部的处理的流程图。
图14是说明语音单元融合部的处理的示意图。
图15是共振峰参数的融合处理的流程图。
图16是说明融合共振峰参数的处理的示意图。
图17是说明生成融合基音波形的处理的示意图。
图18是生成基音波形的处理的流程图。
图19是说明融合语音单元编辑/拼接部的处理的示意图。
图20是根据第二个实施例的语音合成部的方框图。
图21是根据第三个实施例的共振峰合成器的方框图。
图22是根据第四个实施例的语音单元融合部的处理的流程图。
图23是平滑共振峰频率的实例的示意图。
图24是平滑共振峰频率的另一个实例的示意图。
图25是与图24中的共振峰频率对应的窗函数的功率的示意图。

具体实施例方式 以下将参考

本发明的各种实施例。本发明并不限于以下的实施例。
(第一实施例) 参考图1-19说明第一实施例的文本语音合成装置。
(1)文本语音合成装置的组成 图1是第一实施例的文本语音合成装置的方框图。文本语音合成装置包括文本输入部1、语言处理部2、韵律处理部3、语音合成部4和语音波形输出部5。
语言处理部2在语形和句法上分析从文本输入部1输入的文本,并向韵律处理部3输出分析结果。韵律处理部3根据分析结果处理重音和语调,生成音素序列和韵律信息,并将其向语音合成部4输出。语音合成部4根据音素序列和韵律信息生成语音波形,并通过语音波形输出部5输出。
(2)语音合成部4的组成 图2是图1中的语音合成部4的方框图。如图2所示,语音合成部4包括共振峰参数生成部41、语音单元存储器42、音素环境存储器43、共振峰参数存储器44、音素序列/韵律信息输入部45、语音单元选择部46、语音单元融合部47和融合语音单元编辑/拼接部48。
(2-1)语音单元存储器42 语音单元存储器42存储大量语音单元作为合成单元以生成合成语音。合成单元是音素或被分割的音素的组合,例如,半音素、音子(C,V)、双音子(CV,VC,VV)、三音子(CVC,VCV)、音节(CV,V)(V:元音,C:辅音)。这些作为混合体,可以是不定长的。
(2-2)音素环境存储器43 语音单元环境存储器43存储在语音单元存储器42中存储的每个语音单元的音素环境信息。音素环境是每个语音单元的环境因素的组合。环境因素例如是音素名称、前一个音素、下一个音素、下下一个音素、基频、音素时长、功率、重音、距离重音核心的位置、距离呼吸点的时间、说话速度和感情。
(2-3)共振峰参数存储器44 共振峰参数存储器44存储由共振峰参数生成部41生成的共振峰参数。“共振峰参数”包括共振峰频率和表示每个共振峰的形状的参数。
(2-4)音素序列/韵律信息输入部45 音素序列/韵律信息输入部45输入(从韵律处理部3输出的)音素序列/韵律信息。韵律信息是基频、音素时长和功率。以下,向音素序列/韵律信息输入部45输入的音素序列/韵律信息被分别称为输入音素序列/输入韵律信息。输入音素序列例如是音素符号的序列。
(2-5)语音单元选择部46 对于由合成单元从输入音素序列分割的每个段,语音单元选择部46估计输入韵律信息与在每个语音单元的语音环境中包括的韵律信息之间的失真度,并从语音单元存储器42中选择多个语音单元,以使失真度变得最小。作为失真度,可以使用成本函数(以后说明)。然而,失真度并不限于此。结果,获得与输入音素序列对应的语音单元。
(2-6)语音单元融合部47 对于(由语音单元选择部46选择的)每个段的多个语音单元,语音单元融合部47融合(由共振峰参数生成部41生成的)共振峰参数,并根据融合共振峰参数生成融合语音单元。融合语音单元是指表示多个将要融合的语音单元的每个特征的语音单元。例如,多个语音单元的平均值或者加权平均和,从多个语音单元中分割的每个波段的平均值或加权平均和,可以是融合语音单元。
(2-7)融合语音单元编辑/拼接部48 融合语音单元编辑/拼接部48基于输入韵律信息转换/拼接融合语音单元的序列,并生成合成语音的语音波形。语音波形由语音波形输出部5输出。
(3)语音合成部4的处理的概要 图3是语音合成部4的处理的流程图。在S401,基于输入音素序列/韵律信息,语音单元选择部46对于每个段从语音单元存储器42中选择多个语音单元。(对每个段选择的)多个语音单元对应于该段的音素,并具有与该段的输入韵律信息相似的韵律特征。
(对每个段选择的)多个语音单元的每一个具有目标语音与通过基于输入韵律信息转换语音单元而生成的合成语音之间的最小失真。而且,(对每个段选择的)多个语音单元的每一个具有目标语音与通过将语音单元与下一个段的语音单元拼接而生成的合成语音之间的最小失真。在第一实施例中,通过使用成本函数(以后说明)估计目标语音的失真来选择每个段的多个语音单元。
接下来,在S402,语音单元融合部47从共振峰参数存储器44中提取与(对每个段选择的)多个语音单元对应的共振峰参数,融合这些共振峰参数,并使用融合共振峰参数生成每个段的新的语音单元。然后S403,新的语音单元的序列通过输入韵律信息转换并拼接,并生成语音波形。
以下详细地说明语音合成部4的处理。合成单元的语音单元被看作一个音素。在该例中,语音单元可以是半音素、双音子、三音子、音节或者不定长的混合体。
(4)在语音单元存储器42中存储的信息 如图4所示,语音单元存储器42相应地存储每个音素的语音信号的波形和用于识别音素的语音单元号码。如图5所示,音素环境存储器43按照语音单元号码存储(在语音单元存储器42中存储的)每个语音单元的音素环境信息。作为音素环境信息,存储音素符号(音素名称)、基频、音素时长和拼接边界倒谱。
共振峰参数存储器44按照语音单元号码存储(由共振峰参数生成部41对在语音单元存储器42中存储的每个语音单元生成的)共振峰参数序列。
(5)共振峰参数生成部41 共振峰参数生成部41通过输入在语音单元存储器42中存储的每个语音单元而生成共振峰参数。图6是共振峰参数生成部41的处理的流程图。
在S411,每个语音单元被分割成多个帧。在S412,每个帧的共振峰参数根据该帧的基音波形生成。如图10所示,共振峰参数存储器44按照帧号码和语音单元号码存储每个帧的共振峰参数。在图10中,一个帧中共振峰频率的个数是三个。然而,共振峰频率的个数可以是任意的。
作为窗函数,通过将汉宁窗与具有任意点的DCT基相乘来设置基本函数,窗函数通过基本函数和加权系数向量表示。基本函数可通过窗函数的KL展开而生成。
在图6中的S411和S412,与每个语音单元的基音波形对应的共振峰参数被存储在共振峰参数存储器44中。
(5-1)将段分割成帧的处理 在S411,如果从语音单元存储器42中选择的语音单元是浊音语音的段,则语音单元被分割成多个帧,作为比语音单元更小的单元。帧是指具有比语音单元的时长更短的长度的分割帧(诸如基音波形)。
基音波形是指相当短的波形,其具有几倍于语音信号的基本周期的长度,并且不具有基频。基音波形的频谱表示语音信号的频谱包络。
作为将语音单元分割成帧的方法,使用通过基本周期同步窗口提取的方法、变换(离散傅立叶逆变换)(通过倒谱分析或PSE分析而获得的)功率频谱的包络的方法、或由(通过线性预测分析而获得的)脉冲响应确定基音波形的方法。
在本实施例中,每个帧被设置为基音波形。作为提取基音波形的方法,语音单元被基本周期同步窗口分割成基音波形。图7是提取基音波形的过程的流程图。
在S421,将标记(基音标记)以周期间隔分配给语音单元的语音波形。图8A示出了(语音单元的M个单元中的)一个语音单元的语音波形431,其中基音标记432以周期间隔分配给该语音单元。
在S422,如图8B所示,基于基音标记通过加窗(windowing)提取基音波形。汉宁窗433用于加窗,并且汉宁窗的长度是基本周期的长度的两倍。然后,如图8C所示,被加窗的波形434被提取为基音波形。
(5-2)生成共振峰参数 接下来,在图6的S412,对于(在S411提取的)语音单元的每个基音波形计算共振峰参数。如图8D所示,对于所提取的每个基音波形434生成共振峰参数435。在本实施例中,共振峰参数包括共振峰频率、功率、相位和窗函数。
图9A和9B示出了在共振峰频率的个数是3个的情况下共振峰参数与基音波形之间的关系。在图9A中,水平轴表示时间,垂直轴表示振幅。在图9B中,水平轴表示频率,垂直轴表示振幅。
在图9A中,对于具有功率和相位的(每个共振峰频率的)每个正弦波441、442和443,每个共振峰波形447、448和449通过将每个窗函数444、445和446相乘而获得,并将其相加以生成基音波形450。在该例中,共振峰波形的功率谱并不总是表示语音信号的功率谱的增长部分。作为多个共振峰波形的总和的基音波形的功率谱表示语音信号的功率谱。
在图9B中分别示出了图9A中的正弦波441、442和443的功率谱、窗函数444、445和446的功率谱、共振峰波形447、448和449的功率谱以及基音波形450的功率谱。
(5-3)存储共振峰参数 (由上述处理生成的)共振峰参数被存储在共振峰参数存储器44中。在该例中,按照音素的单元号码存储共振峰参数序列。
(6)音素序列/韵律信息输入部 在对用于文本语音合成的输入文本进行语形分析/语法分析之后,(通过重音/语调处理而获得的)音素序列和韵律信息被输入到图2中的音素序列/韵律信息45。韵律信息包括基频和音素时长。
(7)语音单元选择部46 语音单元选择部46基于成本函数确定语音单元序列。
(7-1)成本函数 成本函数如下确定。首先,如果通过修改/拼接语音单元生成合成语音,则对每个失真因素,确定子成本(subcost)函数Cn(ui ui-1,ti)(n:1,.....N,N是子成本函数的个数)。假设与输入音素序列/韵律信息对应的目标语音是“t=(ti,...,tI)”。在这种情况下,“ti”表示作为与第i个段对应的语音单元的目标的音素环境信息,“ui”表示语音单元存储器42所存储的语音单元中与“ti”相同音素的语音单元。
(7-1-1)子成本函数 子成本函数用于估计目标语音与使用在语音单元存储器42中存储的语音单元生成的合成语音之间的失真。为了计算成本,可以使用目标成本和拼接成本。目标成本用于计算目标语音与使用语音单元生成的合成语音之间的失真。拼接成本用于计算目标语音与通过将语音单元与另一个语音单元拼接而生成的合成语音之间的失真。
作为目标成本,使用基频成本和音素时长成本。基频成本表示目标与在语音单元存储器42中存储的语音单元之间的频率之差。音素时长成本表示目标与语音单元之间的音素时长之差。作为拼接成本,使用表示在拼接边界处的频谱之差的频谱拼接成本。
(7-1-2)子成本函数的例子 基频成本如下计算。
C1(ui,ui-1,ti)={log(f(vi))-log(f(ti))}2....(1) vi:语音单元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) ‖:模; h:提取语音单元ui的拼接边界的倒谱系数(向量)的函数 (7-1-3)合成单元成本函数 这些子成本函数的加权和被定义为合成单元成本函数如下。
wn:子成本函数之间的权重。
为了简化说明,所有的“wn”被设置为“1”。上述公式(4)表示当语音单元被应用于一些合成单元时计算该语音单元的合成单元成本。
对于由合成单元从输入音素序列分割的多个段,每个段的合成单元成本通过公式(4)计算。(总)成本通过将所有段的合成单元成本相加来计算。
(7-2)选择 在图3中的S401,通过使用上述公式(1)-(5)的成本函数,并通过两个步骤对一个段(一个合成单元)选择多个语音单元。图11是选择多个语音单元的过程的流程图。
在S451,从在语音单元存储器42中存储的语音单元中选择具有(由公式(5)计算的)最小成本值的语音单元序列。该语音单元序列(语音单元的组合)被称为“最优单元序列”。简要地说,最优单元序列中的每个语音单元对应于由合成单元从输入音素序列分割的每个段。最优单元序列中的每个语音单元的合成单元成本和(由公式(5)计算的)总成本是任何其它语音单元序列中最小的。在该例中,最优单元序列使用DP(动态编程)方法进行有效地搜索。
接下来,在S452,作为单元选择,使用最优单元序列对一个段选择多个语音单元。假设段的个数是J,并且对每个段选择M个单元的语音单元。详细说明S452的处理。
在S453和S454,J个单元的多个段的一个被设置为注意段(noticesegment)。S453和S454的处理被重复J次,以使J个单元的每个段都被设置为注意段。首先,在S453,最优单元序列中的每个语音单元被固定到除了注意段以外的每个段。在该条件下,对于注意段,在语音单元存储器42中存储的语音单元按由公式(5)计算的成本排列,并且按成本渐高的顺序选择M个单元的语音单元。
(7-3)例子 例如,如图12所示,假设输入音素序列是“ts·i·i·s·a

”。在这种情况下,合成单元对应于每个音素“ts”、“i”、“i”、“s”、“a”、

,并且每个音素对应于一个段。在图12中,与输入音素序列中的第三个音素“i”对应的段是注意段,并对该注意段选择多个语音单元。对于注意段以外的段,固定最优单元序列中的每个语音单元461a、461b、461d、461e、.....。
在这种条件下,在语音单元存储器42中存储的语音单元之中,通过使用公式(5)对每一个具有与注意段相同的音素“i”的语音单元计算成本。如果对每个语音单元计算成本,则注意段的目标成本、注意段与前一个段之间的拼接成本、以及注意段与下一个段之间的拼接成本分别变化。因此,在以下的步骤中只考虑这些成本。
(步骤1)在存储在语音单元存储器42中的语音单元之中,具有与注意段相同的音素“i”的语音单元被设置为语音单元“u3”。通过公式(1)根据语音单元u3的基频f(v3)和目标基频f(t3)计算基频成本。
(步骤2)通过公式(2)根据语音单元u3的音素时长g(v3)和目标音素时长g(t3)计算音素时长成本。
(步骤3)通过公式(3)根据语音单元u3的倒谱系数h(u3)和语音单元461b(u2)的倒谱系数h(u2)计算第一频谱拼接成本。此外,通过公式(3)根据语音单元u3的倒谱系数h(u3)和语音单元461d(u4)的倒谱系数h(u4)计算第二频谱拼接成本。
(步骤4)通过计算基频成本、音素时长成本、以及第一和第二频谱拼接成本的加权和,计算语音单元u3的成本。
(步骤5)对于在语音单元存储器42中存储的语音单元之中每个具有与注意段相同音素“i”的语音单元,通过以上步骤1-4计算成本。这些语音单元按照成本渐低的顺序进行排列,即,成本越小,语音单元的等级越高(图11中的S453)。然后,按照等级渐高的顺序选择M个单元的语音单元(图11中的S454)。例如,在图12中,语音单元462a具有最高的等级,语音单元462d具有最低的等级。对于每个段重复上述步骤1-5。结果,对于每个段分别获得M个单元的语音单元。
作为音素环境信息,说明了音素名称、基频和时长。然而,音素环境信息并不限于这些因素。如果需要,可以有选择地使用音素名称、基频、音素时长、前一个音素、下一个音素、下下一个音素、功率、重音、距离重音核心的位置、距离呼吸点的时间、说话速度和感情。
(8)语音单元融合部47 下面说明语音单元融合部47的处理(图3中的S402)。在S402,对于在S401对每个段选择的M个单元的语音单元,对每个段融合M个单元的语音单元,生成新的语音单元(融合语音单元)。作为浊音语音的语音单元的情况和作为清音语音的语音单元的情况进行不同的处理。
首先,说明浊音语音的情况。在这种情况下,(图2中的)共振峰参数生成部41融合作为从语音单元分割的基音波形的帧的共振峰参数。图13是语音单元融合部47的处理的流程图。
(8-1)提取共振峰参数 在S471,从共振峰参数存储器44中提取与(由语音单元选择部46选择的)每个段的M个单元的语音单元对应的共振峰参数。按照语音单元号码存储共振峰参数序列。因此,基于语音单元号码提取共振峰参数序列。
(8-2)共振峰参数的个数的一致 在S471,在该段中的M个单元的每个语音单元的共振峰参数序列之中,均衡在每个语音单元的共振峰参数序列中的共振峰参数的个数以与共振峰参数的最多个数一致。对于共振峰参数的个数较少的共振峰参数序列,通过复制共振峰参数来增加共振峰参数的较少个数以等于共振峰参数的最多个数。
图14示出了与该段的M个单元(在该例中是3个)的语音单元中的相同帧对应的共振峰参数序列f1-f3。共振峰参数序列f1的共振峰参数的个数是7,共振峰参数序列f2的共振峰参数的个数是5,共振峰参数序列f3的共振峰参数的个数是6。在该例中,共振峰参数序列f1具有的共振峰参数的个数最多。因此,基于序列f1的共振峰参数的个数(在图14中,是7),通过复制每个序列的任意共振峰参数,序列f2和f3的共振峰参数的个数分别增加到等于7。结果,获得与序列f2和f3对应的新的共振峰参数序列f2’和f3’。
(8-3)融合 在S472,在每个语音单元(M个单元)的共振峰参数的个数在S471变得相等之后,每个语音单元中的每个帧的共振峰参数被融合。图15是融合共振峰参数的S472的处理的流程图。
在S481,对于在两个将要融合的共振峰参数之间的每个共振峰,计算估计该共振峰的相似性的融合成本函数。作为融合成本函数,使用共振峰频率成本和功率成本。共振峰频率成本表示两个将要融合的共振峰参数之间的共振峰频率的差(即相似性)。功率成本表示两个将要融合的共振峰参数之间的功率的差(即相似性)。
例如,共振峰频率成本如下计算。
Cfor=|r(qxyi)-r(qx’y’i’)| (6) qx’y’i’:语音单元px的第y个帧中的第i个共振峰; r:从共振峰参数qxyi中提取共振峰频率的函数。
此外,功率成本如下计算。
Cpow=|s(qxyi)-s(qx’y’i’)| (7) s:从共振峰参数qxyi中提取功率频率的函数。
公式(6)和(7)的加权和被定义为将两个共振峰参数相对应的融合成本函数。
Cmap=z1Cfor+z2Cpow(8) z1:共振峰频率成本的权重; z2:功率成本的权重。
为了简化说明,z1和z2被分别设置为“1”。
在S482,对于具有比Tfor小的融合成本函数的共振峰(即,具有相似的共振峰形状的共振峰),两个具有融合成本函数的最小值的共振峰函数相对应。
在S483,对于具有比Tfor大的融合成本函数的共振峰(即,不具有相似的形状的共振峰),对于两个将要融合的共振峰中的(具有更少数量的共振峰参数的)一个,创建具有零功率的虚拟共振峰,并将其与两个共振峰中的另一个对应。
在S484,通过计算共振峰频率、相位、功率和窗函数的每个的平均值来融合相对应的共振峰。可选地,可以从相对应的共振峰中选择一个共振峰频率、一个相位、一个功率和一个窗函数。
(融合的例子) 图16示出了生成融合共振峰参数487的示意图。在S481,计算两个语音单元中相同帧的两个共振峰参数485和486之间的融合成本函数。在S482,将两个共振峰参数485和486之间具有相似形状的两个共振峰相对应。在S483,虚拟共振峰在共振峰参数485’中创建,并与共振峰参数486对应。在S484,在两个共振峰参数485’和486之间融合每两个共振峰,并生成融合共振峰参数487。
如果在共振峰参数485中创建虚拟共振峰,则直接使用共振峰参数486中共振峰号码“3”的共振峰频率的值。然而,也可以使用另一个方法。
(8-5)生成融合基音波形序列 下面,在图13中的S473,根据(在S472融合的)融合共振峰参数序列g1生成融合基音波形序列h1。
图17示出了生成融合基音波形序列h1的示意图。对于具有相等数量的共振峰的每个共振峰参数序列f1、f2’和f3’,在S472,融合每个帧的共振峰参数,并生成融合共振峰参数序列g1。在S473,根据融合共振峰参数序列g1生成融合基音波形序列h1。
图18是在融合共振峰参数序列g1中的元素的个数是K(在图17中,是7)的情况下根据共振峰参数生成基音波形的过程的流程图。
首先,在S473,K个帧的共振峰参数的一个被设置为注意共振峰参数,并且S481的过程被重复K次。简要地说,执行S481的处理以使K个帧的每一个共振峰参数都被设置为注意共振峰参数。
接下来,在S481,注意共振峰参数的NK个共振峰的共振峰频率的一个被设置为注意共振峰频率,并且S482和S483的处理被重复NK次。简要地说,执行S482和S483的处理,以使NK个共振峰的共振峰频率的每一个都被设置为注意共振峰频率。
接下来,在S482,生成具有功率和相位的正弦波(与注意共振峰参数中的共振峰频率对应)。简单地说,生成具有共振峰频率的正弦波。用于生成正弦波的方法并不限于此。但是,如果降低计算准确度或使用减小计算量的表格,则由于计算误差,通常不能生成完美的正弦波。
接下来,在S483,通过用(与共振峰参数中的注意共振峰频率对应的)窗函数对(在S482生成的)正弦波进行加窗,生成共振峰波形。
在S484,将(在S482和S483生成的)NK个共振峰的共振峰波形相加,生成融合基音波形。这样,通过将S481的过程重复K次,融合基音波形序列h1根据融合共振峰参数序列g1生成。
另一方面,在图3中的S402,如果是清音语音的段,则在S401分配给该段的M个单元的语音单元中,选择并使用一个具有第一顺序的语音单元。
如上所述,对于与输入音素序列对应的多个段的每一个,融合对该段选择的M个单元的语音单元,并对该段生成新的语音单元(融合语音单元)。接下来,进行图3中的融合语音单元的编辑/拼接步骤(S403)。
(9)融合语音单元编辑/拼接部48 在S403,融合语音单元编辑/拼接部48基于输入韵律信息修改(在S402获得的)每个段的融合语音单元,并拼接每个段的修改后的融合语音单元以生成语音波形。
对于(在S402获得的)融合语音单元,实际上,序列的每一个元素对如图17中的融合基音波形序列h1所示的基音波形进行塑形。因此,通过叠加基音波形以使融合语音单元的基频和音素时长分别等于(输入韵律信息中的)目标语音的基频和音素时长,生成语音波形。
图19是S403的处理的示意图。在图19中,通过修改/拼接每个段的融合语音单元(每个音素“m”、“a”、“d”、“o”),生成语音单元“MADO”(日语“窗”的含义)。如图19所示,基于输入韵律信息中的目标语音的基频和音素时长,修改每个基音波形的基频和每个段的融合语音单元中基音波形的个数。然后,通过在该段内和在两个段之间拼接相邻的基音波形,生成合成语音。
为了估计目标语音与(通过基于输入韵律信息修改融合音素单元的基频和音素时长而生成的)合成语音之间的失真,需要目标成本来正确地估计失真。作为一个例子,通过公式(1)和(2)计算的目标成本用于通过目标语音与在语音单元存储器42中存储的语音单元之间的韵律信息的差来计算失真。
此外,为了估计目标语音与通过拼接融合语音单元而生成的合成语音之间的失真,需要拼接成本以正确地估计失真。作为一个例子,通过公式(3)计算的拼接成本用于通过在语音单元存储器42中存储的两个语音单元之间的倒谱系数的差计算失真。
(10)与现有技术的不同 下面说明本实施例和现有技术中如多单元选择融合方法的语音合成方法之间的不同。图2中本实施例的语音合成装置包括共振峰参数生成部41和共振峰参数存储器44。通过融合共振峰参数而生成新的语音单元与现有技术不同(例如,JP-A No.2005-164749(公开号))。
在本实施例中,通过融合每个段的多个语音单元(M个单元)的共振峰参数,生成具有清楚的频谱和清楚的共振峰的语音单元。结果,能够更自然地生成高质量合成语音。
(第二实施例) 接下来说明第二实施例的语音合成装置4。图20是第二实施例的语音合成装置4的方框图。在第一实施例中,共振峰参数生成部41事先生成在语音单元存储器42中存储的所有语音单元的共振峰参数,并将共振峰参数存储在共振峰参数存储器44中。
在第二实施例中,由语音单元选择部46选择的语音单元从语音单元存储器42输入到共振峰参数生成部41。共振峰参数生成部41只生成所选择的语音单元的共振峰参数,并输出到语音单元融合部47。因此,在第二实施例中,第一实施例的共振峰参数存储器44不是必需的。结果,除了第一实施例的效果之外,大大减少了存储器容量。
(第三实施例) 接下来说明第三实施例的语音单元融合部47。作为另一个生成合成语音的方法,共振峰合成方法也是公知的。共振峰合成方法是人的说话机制的模型。在该方法中,通过驱动用于用(由来自声门的说话信号模拟的)声源信号模拟声道的特征的过滤器来生成语音信号。作为一个例子,在JP-A(公开号)No.2005-152396中公开了一种使用共振峰合成方法的语音合成器。
图21是第三实施例的语音单元融合部47的处理流程图。在图21中,示出了用在图13中的S473的共振峰合成方法生成语音信号的原理。
通过用脉冲信号497驱动声道过滤器(共振器491、492和493被级联连接),生成合成语音信号498。共振器491的频率特征494由共振峰频率F1和共振峰带宽B1确定。同样,共振器492的频率特征495由共振峰频率F2和共振峰带宽B2确定,共振器493的频率特征496由共振峰频率F3和共振峰带宽B3确定。
如果融合共振峰参数,则在图15中的S484,计算共振峰频率、功率和共振峰带宽的每个的平均值。可选地,可以从在相对应的共振峰中的共振峰频率、功率和共振峰带宽中分别选择一个。
(第四实施例) 下面说明第四实施例的语音单元融合部47。图22是语音单元融合部47的处理的流程图。对于图13中的相同步骤,在图22中使用了相同的步骤号码,并且仅仅说明不同的步骤。
在第四实施例中,新加入了共振峰参数平滑步骤S474。在S474,为了平滑每个共振峰参数的时间变化,平滑共振峰参数。在这种情况下,可以平滑共振峰参数的所有或一部分元素。
图23示出了在共振峰参数中的共振峰频率的个数是三时的共振峰平滑的例子。在图23中,“×”表示平滑之前的每个共振峰频率501、502和503。为了平滑与前一个帧或下一个帧的共振峰频率的变化,生成了用“○”表示的平滑后的共振峰频率511、512和513。
此外,如图24中的共振峰频率502的“×”中所示出的,如果共振峰没有部分地被共振峰频率502的拼接部分包括,则共振峰频率502不能与其它共振峰频率511和513相对应。由于频谱中大的间断,合成语音的语音质量下降。为了阻止这个问题,将由“○”表示的虚拟共振峰相加,如共振峰频率512中所示。在这种情况下,如图25所示,衰减与共振峰频率512对应的窗函数514的功率以不中断共振峰的功率。
在所公开的实施例中,可通过计算机可执行程序实现处理,并且该程序可以在计算机可读存储器设备中实现。
在实施例中,存储器设备,诸如磁盘、软盘、硬盘、光盘(CD-ROM、CD-R、DVD等)、光磁盘(MD等),可用于存储使处理器或计算机执行上述过程的指令。
此外,基于从存储器设备安装到计算机的程序的指示,在计算机上运行的OS(操作系统)或MW(中间件软件),诸如数据库管理软件或网络,可执行每个处理的一部分以实现实施例。
此外,存储器设备并不限于独立于计算机的设备。通过下载通过局域网或因特网传输的程序,包括存储程序的存储器设备。此外,存储器设备并不限于一个。在实施例的处理由多个存储器设备执行的情况下,存储器设备可包括多个存储设备。设备的部件可任意地构成。
计算机可以根据存储在存储器设备中的程序执行实施例的每个处理阶段。计算机可以是诸如个人计算机或者多个处理装置通过网络连接的系统的一个装置。此外,计算机并不限于个人计算机。本领域的普通技术人员将认识到计算机包括信息处理器中的处理单元、微计算机等等。简而言之,能够使用程序执行实施例中的功能的设备和装置通常被称为计算机。
权利要求
1.一种合成语音的方法,包括
将与目标语音对应的音素序列分割成多个段;
对于每个段,从存储具有至少一个帧的语音单元的语音单元存储器中选择多个语音单元,所述多个语音单元具有与所述目标语音一致或相似的韵律特征;
对于所述多个语音单元的每个帧,生成具有至少一个共振峰频率的共振峰参数;
根据所述多个语音单元的每个帧的共振峰参数,生成每个帧的融合共振峰参数;
根据每个帧的融合共振峰参数,生成每个段的融合语音单元;以及
通过拼接每个段的融合语音单元来生成合成语音。
2.根据权利要求1所述的方法,其中,生成共振峰参数包括从存储分别与每个语音单元对应的共振峰参数的共振峰参数存储器中提取所述多个语音单元的每一个的共振峰参数。
3.根据权利要求2所述的方法,其中,所述共振峰参数存储器对应地存储所述共振峰参数的每一个、用于识别语音单元的语音单元号码和用于识别所述语音单元中的帧的帧号码。
4.根据权利要求3所述的方法,其中,所述共振峰参数包括共振峰频率和表示所述语音单元的共振峰的形状的形状参数。
5.根据权利要求4所述的方法,其中,所述共振峰参数存储器存储与相同的语音单元号码对应的多个共振峰参数,所述多个共振峰参数的每一个对应于所述帧号码。
6.根据权利要求4所述的方法,其中,所述形状参数至少包括窗函数、相位和功率。
7.根据权利要求4所述的方法,其中,所述形状参数至少包括功率和共振峰带宽。
8.根据权利要求1所述的方法,其中,生成共振峰参数包括如果所述多个语音单元的每一个中的帧的个数不同,则使所述多个语音单元的每一个的帧的个数相等;以及通过相同的帧位置对应所述多个语音单元中的每个帧。
9.根据权利要求1所述的方法,其中,生成融合共振峰参数包括如果所述多个语音单元的相对应的帧中的共振峰参数的共振峰频率的个数不同,则对应所述相对应的帧中的共振峰参数的每个共振峰频率,以使所述相对应帧中的共振峰参数的共振峰频率的个数相等。
10.根据权利要求9所述的方法,其中,对应每个共振峰频率包括
估计相对应的帧中的两个之间的共振峰参数的每个共振峰频率的相似度;以及
对应两个相对应的帧中具有高于阈值的相似度的两个共振峰频率。
11.根据权利要求10所述的方法,其中,对应两个共振峰频率包括
如果所述相似度不高于所述阈值,则生成具有零功率和与所述两个共振峰频率的一个相同的共振峰频率的虚拟共振峰;以及
将所述虚拟共振峰与所述两个共振峰频率的一个相对应。
12.根据权利要求6所述的方法,其中,生成融合语音单元包括
根据所述多个语音单元的每一个的共振峰参数所包含的共振峰频率、相位和功率生成正弦波;
通过将所述窗函数与所述正弦波相乘来生成所述多个语音单元的每一个的共振峰波形;
通过将所述多个语音单元的每一个的共振峰波形相加来生成每个帧的基音波形;以及
通过叠加每个帧的基音波形来生成融合语音单元。
13.根据权利要求1所述的方法,其中,生成融合共振峰参数包括平滑每个帧的共振峰参数所包含的共振峰参数的变化。
14.根据权利要求1所述的方法,其中,选择包括
估计所述目标语音和使用所述多个语音单元生成的合成语音之间的失真度;以及
对于每个段,选择所述多个语音单元以使所述失真度变得最小。
15.一种合成语音的装置,包括
分割部,用于将与目标语音对应的音素序列分割成多个段;
语音单元存储器,用于存储具有至少一个帧的语音单元;
语音单元选择部,用于对于每个段从所述语音单元存储器中选择多个语音单元,所述多个语音单元具有与所述目标语音一致或相似的韵律特征;
共振峰参数生成部,用于对于所述多个语音单元的每个帧生成具有至少一个共振峰频率的共振峰参数;
融合共振峰参数生成部,用于根据所述多个语音单元的每个帧的共振峰参数生成每个帧的融合共振峰参数;
融合语音单元生成部,用于根据每个帧的融合共振峰参数生成每个段的融合语音单元;以及
合成部,用于通过拼接每个段的融合语音单元来生成合成语音。
全文摘要
与目标语音对应的音素序列被分割成多个段。对于每个段,从存储具有至少一个帧的语音单元的语音单元存储器中选择多个语音单元。多个语音单元具有与目标语音一致或相似的韵律特征。对于多个语音单元的每个帧,生成具有至少一个共振峰频率的共振峰参数。根据多个语音单元的每个帧的共振峰参数生成每个帧的融合共振峰参数。根据每个帧的融合共振峰参数生成每个段的融合语音单元。通过拼接每个段的融合语音单元生成合成语音。
文档编号G10L13/02GK101369423SQ20081021548
公开日2009年2月18日 申请日期2008年8月15日 优先权日2007年8月17日
发明者森中亮, 田村正统, 笼岛岳彦 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1