具体实施方式
用于进行频率弯曲的频率弯曲函数试图通过两个说话者的语音的频谱特征例如共振峰参数之间的差别和关系,来反映说话者的声道长度和形状等特征之间的差别和关系。鉴于在现有技术的方法中,将每个说话者的大量语音数据中的不同上下文中的共振峰参数混合在一起计算其统计平均值,并不能反映不同说话者之间的声道的不同,并认识到弯曲函数的好坏不取决训练数据的多少,而仅取决于训练数据的好坏,而提出了本发明。本发明的关键在于基于源说话者的语音和目标说话者的语音的一对对齐的帧的共振峰参数来生成频率弯曲函数。使用所生成的频率弯曲函数,可以将源说话者的语音转换为类似于目标说话者的语音。
图1示出了根据本发明的方法与现有技术的方法的主要区别。从图中可见主要区别在于共振峰的生成方式不同。在最接近的现有技术中,是使用源说话者和目标说话者的训练语音中相同的音素生成匹配共振峰,不考虑音素所在的上下文以及音素中的稳定部分和过渡部分的区别,并且是从训练语音中的相同音素的大量出现中求出共振峰的平均值,同时源说话者的共振峰和目标说话者的共振峰是相互独立地得出的;而本发明的方法是使用源和目标训练语音中的一对对齐的帧来生成共振峰参数,也就是说共振峰的对应关系是建立在选出的源说话者和目标说话者的对应语音基础上。
图2示出了根据本发明一优选实施例的用于生成频率弯曲函数和进行频率弯曲的方法的流程图。如图所示,本发明的方法分为两个部分,即训练部分和转换部分。训练部分用于使用源说话者和目标说话者的训练语音,对本发明的系统进行训练,从而得出适合于对该源说话者的语音进行转换、使其类似于该目标说话者的语音的频率弯曲函数。而转换部分则用于使用从训练部分得到的频率弯曲函数,对来自所述源说话者的语音进行实际的转换。
下面首先参照图2中的训练部分对根据本发明的用于生成频率弯曲函数的方法进行说明。
在步骤201,准备源说话者和目标说话者的训练语音。可以各种已知方式准备所述训练语音,例如通过录音,从音频、视频或其他多媒体资源中提取等。在所述训练语音中可以包含噪音和音乐。对训练语音的多少没有限制,一个句子就足够了,实际上往往有目标说话者的所发出的一个音就可以了,只要能从中提取出与源说话者的语音相匹配的帧即可。所述目标说话者的语音,既可以是一说话者的实际语音,也可以是一种“标准说话者”的语音,即从大量说话者的语音得出平均语音。根据不同实施例,可要求所述源说话者和目标说话者的训练语音是源说话者和目标说话者的相同同容的语音,或不同内容的语音。
在步骤202,将源说话者和目标说话者的训练语音进行帧对齐。即将源说话者和目标说话者的训练语音或其中的一部分划分为帧并以将在下文中详细描述的方法将源说话者和目标说话者的训练语音中的某些帧进行对齐。
在步骤203,使用将在下文中详细描述的方法,从所述已对齐的各帧中选择出最佳的对齐的帧。既可以提取出一对匹配的帧,也可以提取出多对匹配的帧;而且所述多对匹配的帧,既可以是属于不同的音素,也可以是属于相同的音素。
在步骤204,从所述对齐的帧获得相匹配的共振峰参数组。可使用任何已知的用于从语音中提取共振峰参数的方法来提取所述相匹配的共振峰参数组。共振峰参数的提取可自动进行,也可以手动进行。一种可能的方式是使用某种语音分析工具例如PRAAT来提取共振峰参数。在提取对齐的帧的共振峰参数时,可利用相邻帧的信息来使提取出的共振峰参数更为稳定可靠。
在本发明的一个实施例中,所述共振峰参数为共振峰频率。且所述共振峰参数组为前4个共振峰频率。但所述共振峰参数并不限于共振峰频率,而是可包括带宽、振峰等共振峰参数。它也可包括规定了类似信息的其他参数,例如Q参数。
在该步骤中,既可以从一对匹配的帧中获得一对匹配的共振峰参数组,也可以从多对匹配的帧中获得多对匹配的共振峰参数组,并求出该多对匹配的共振峰参数组的平均,作为一对匹配的共振峰参数组。也可以直接将从多对匹配的帧中获得的多对匹配的共振峰参数组提供给下一步骤。
在步骤204,使用所述获得的相匹配的共振峰参数组生成频率弯曲函数。在本发明的一个实施例中,将一对匹配的共振峰参数组中的各对匹配的共振峰参数用作关键点来生成一个频率弯曲函数。
在该步骤中,既可以使用一对匹配的共振峰参数组来生成一个频率弯曲函数,该一个频率弯曲函数将用于在本发明的方法的转换部分中转换源说话者的全部语音;也可以使用多对匹配的共振峰参数组分别生成多个频率弯曲函数。该多个频率弯曲函数将用于在本发明的方法的转换部分分别转换源说话者的语音中的相应音素;还可以使用多对匹配的共振峰参数组分别生成多个频率弯曲函数,并求出该多个频率弯曲函数的平均,用于在本发明的方法的转换部分中转换源说话者的语音。
作为说明,将源说话者的共振峰参数记为:[F1s,F2s,F3s,..Fns],将目标说话者的共振峰参数记为:[F1t,F2t,F3t,..Fnt]。使用匹配的共振峰参数对[Fit,Fis]作为关键点来定义一从目标频率轴映射到源频率轴的分段线性函数。可使用线性插值法来生成两个相邻关键点之间的部分,但也可使用其他插值方法来生成这些部分。
假设两个说话者具有相同的最大频率,记为Fmax。为了便于在所述共振峰参数组的最大共振峰参数和最小共振峰参数之外进行插值,可增加[0,0]、[Fmax,Fmax]作为端点。当然,也可使用其他端点。
作为示例,使用如下的前4个共振峰参数:源说话者[690,2290,3080,4450],目标说话者[560,2180,2750,4040]。两个说话者的最大频率均为8000。则从目标频率轴到源频率轴的频率弯曲函数如图3所示。
下面详细说明本发明的用于生成频率弯曲函数的方法中进行帧对齐的步骤202和选择对齐的帧的步骤203的几个实施例。
图4是示出了本发明的进行帧对齐和选择帧的方法的第一个实施例的流程图。在该第一个实施例中,不要求在步骤201中准备源说话者和目标说话者说出的相同的内容训练语音。
在步骤401中,从源说话者和目标说话者的训练语音中选择一对语音段,该对语音段属于源说话者和目标说话者的训练语音中具有相同或相似上下文的相同或相似音素。此处所说的上下文包括但不限于:相邻的语音、在词中的位置、在词组中的位置、在句子中的位置等。
如果找到了多对具有相同或相似上下文的音素,则可优选某些音素。某些音素例如“e”的共振峰被认为变化较小,因此这种音素的共振峰能更好地代表说话者的特征。
如果所找到的多对具有相同或相似上下文的音素是彼此相同的,则可优选某些上下文。因为,在某些上下文中,音素的共振峰较小可能受相邻音素的影响。例如,根据在本发明的一实施例中,选择具有“爆破音”或“摩擦音”或“静音”作为其相邻音素的语音段。
如果所找到的多对具有相同或相似上下文的音素中,彼此的上下文和音素均相同,则可随机选择一对语音段。
当得到一对对齐的语音段之后,在步骤402中,将源说话者的语音段的中间的帧与目标说话者的语音段的中间的帧对齐。中间的帧被认为变化较小,因此它较小受相邻音素的共振峰的影响。在步骤203中,该对中间的帧即被选择来提取其共振峰参数。
也可以从该对对齐的语音段中其共振峰随时间变化缓慢的稳定部分中选择对齐的帧,用来提取其共振峰参数。
图5是示出了本发明的进行帧对齐和选择帧的方法的第二个实施例的流程图。在该第二个实施例中,当在步骤401中以上述第一实施例的方法得到一对语音段之后,在步骤501中将目标说话者的语音段的各帧与源说话者的语音段的各帧对齐。可以使用已知的动态时间规整算法(DTW)进行这种对齐。该方法的要点在于发现通过将一个模式的声学特征映射到另一个模式的声学特征的网格的最优路径。发现最优路径需要解决评估两个语音模式之间的差异的最小化问题。为了得到有意义的结果,需要施加约束。
因为DTW方法可获得多个对齐的帧,所以需要在步骤203中进行选择。一种进行选择的方法是基于帧在音素中的位置。即优选其中源帧处于源说话者的语音段的中间的对齐的帧。中间的帧被认为较小变化,因而较不易受来自相邻音素的共振峰的过渡的影响。另一种进行选择的方法是基于对齐的帧之间的声学差异。即优选具有最小声学差异的对齐的帧。这两种选择方法也可以合并执行。然后,可将该被选择的对齐帧提供给本发明的用于生成频率弯曲函数的后续步骤。
图6是示出了本发明的进行帧对齐和选择帧的方法的第三和第四个实施例的流程图。在该第三个实施例中,要求在步骤201中准备源说话者和目标说话者说出的相同内容的训练语音。
如图6所示,在步骤202中,使用动态时间规整(DTW)算法将源说话者的语音与相应的目标说话者的相同内容的语音进行对齐。
在对齐操作之后,得到了很多对齐的帧。在步骤203中,从中选择一对对齐的帧:
第一种选择方法是基于源帧所属的音素。某些音素是优选的,因为某些音素例如“e”比其他音素较小变化。因此这种音素能更好地代表说话者的特征。
第二种选择方法是基于源帧所在的上下文。某些上下文是优选的,因为其中音素的共振峰较小受相邻因素的影响。例如,在本发明的一个实施例中,选择具有“爆破音”或“摩擦音”或“静音”作为其相邻音素的音素。
第三种选择方法是基于帧在音素中的位置。优选其中源帧位于源说话者的音素的中间的对齐的帧。中间的帧被认为较小变化,因而较不易受来自相邻音素的共振峰的过渡的影响。
第四种选择方法是基于对齐的帧之间的声学差异。优选具有最小声学差异的一对对齐的帧。所述最小声学差异可以是所述对齐的帧的FFT(快速傅立叶变换)幅度谱或FFT倒数域幅度谱或MFCC(Mel频率倒谱系数)或LPC(线性预测编码)或LSF(线谱频率)或MCA(多形心分析)参数等的欧氏距离或者加权距离。
对以上四种选择方法,也可以任何方式和顺序合并执行。
随后,可将所选择出的对齐的帧提供给本发明的用于生成频率弯曲函数的方法的后续步骤。
在第四个实施例中,在步骤202中以上述方法使用动态时间规整(DTW)算法将源说话者的语音与相应的目标说话者的相同内容的语音进行对齐之后,在步骤203中使用如下一种基于不同成本的加权和的选择方法来从许多对帧中选择一对帧。
首先,赋予每对对齐的帧如下成本:
1)基于源帧所属的音素的成本。某些音素是优选的,因为某些音素例如“e”比其他音素较小变化。因此这种音素能更好地代表说话者的特征。于是根据每对对齐的帧的源帧所属的不同音素赋予其不同的成本。
2)基于源帧的上下文的成本。某些上下文是优选的,因为其中音素的共振峰较小受相邻因素的影响。例如,在本发明的一个实施例中,选择具有“爆破音”或“摩擦音”或“静音”作为其相邻音素的音素。于是根据每对对齐的帧的源帧的不同上下文其不同的成本。
3)基于在音素中的位置的代码。优选其中源帧位于源说话者的音素的中间的对齐的帧。中间的帧被认为较小变化,因而较不易受来自相邻音素的共振峰的过渡的影响。于是根据每对对齐的帧的源帧在源音素中不同位置赋予其不同的成本。
4)基于对齐的帧的声学差异的成本。优选具有最小声学差异的一对对齐的帧。于是根据每对对齐的帧的声学差异赋予其不同的成本。
然后,计算出每对对齐的帧的以上不同成本的加权和,并选择具有最小成本加权和的一对对齐的帧。
以上说明了根据本发明的用于生成频率弯曲函数的方法。下面参照图2中的转换部分说明根据本发明的进行频率弯曲的方法使用所生成的频率弯曲函数进行频率弯曲的步骤。
假设源说话者的频谱是S(w),并且从目标频率轴到源频率轴的频率弯曲函数是F(w),则从源说话者的频谱转换而来的频谱Conv(w)计算为:
Conv(w)=S(F(w))。
在图2的转换部分中,首先获得源说话者的语音的频谱。
其次,使用以上根据本发明的用于生成频率弯曲函数的方法生成一个或多个频率弯曲函数。以上两个步骤可以任意顺序执行。
然后,使用所生成的一个或多个频率弯曲函数进行将原说话者的语音的频谱转换为类似于目标说话者的语音的频谱。
在本发明的一个实施例中,将同一个频率弯曲函数应用于源说话者的语音中的所有语音段。试验显示该实施例的方法能够成功地转换说话者的身份,并同时产生高质量的转换语音,这是由于由本发明的方法所生成的频率弯曲函数尽管可能基于一对匹配的帧,却能很好地反映不同说话者的固有的语音特征之间的差异。此外,该实施例的方法还能避免产生在将不同弯曲函数应用于不同帧时产生的不连续的问题。
在本发明的另一个实施例中,将不同的频率弯曲函数应用于源说话者的语音中的不同的语音段。这需要一种频率弯曲函数选择方法,以选择用于特定语音段的不同频率弯曲函数。一种可能的实现方式为,在上述频率弯曲生成方法中为不同的音素生成了不同的频率弯曲函数,这样就可根据源说话者的语音中的相应音素来应用不同的频率弯曲函数。但这需要使用频谱平滑技术来避免帧边界处的不连续。可使用在现有技术中已知的多种频谱平滑技术之一。
另一种可能的实现方式为,使用输入频谱的向量量化来确定使用哪个频率弯曲函数。该实现方式的一种变体是使用基于音素的用于向量量化的码本。
这样,使用上述步骤就生成了源话说者的语音的转换后的频谱,该频谱类似于在训练阶段所使用的目标说话者的频谱。
本发明还提供了进行语音转换的方法,以及进行语音识别的方法。在所述进行语音转换的方法中,使用在以上进行频率弯曲的方法中所生成的转换后的频谱来重建转换后的语音,从而完成说话者的身份转换。该进行语音转换的方法的其余部分与现有技术相同,在此不再赘叙。
同样,在所述进行语音识别的方法中,使用在以上进行频率弯曲的方法中所生成的转换后的频谱,作为语音识别中的后续步骤的输入,从而获得更好的识别效果。该进行语音识别的方法的其余部分与现有技术相同,在此不再赘叙。
与本发明的以上各方法相应地,还提供了用于实现以上各方法的装置和系统。
图7示出了根据本发明的用于生成频率弯曲函数的装置及用于使用该装置进行频率弯曲的装置的示意性结构框图。如图所示,本发明主要包括一种用于生成频率弯曲函数的装置701,该装置包括:一准备装置703,其用于准备源说话者和目标说话者的训练语音;一对齐装置705,其用于将所述源说话者和目标说话者的训练语音进行帧对齐;一选择装置707,其用于从所述帧对齐的源说话者和目标说话者的训练语音中选择对齐的帧;一提取装置708,其用于提取所述选择的对齐的帧的相对应的共振峰参数组;以及一生成装置709,其用于根据所述相对应的共振峰参数组生成频率弯曲函数。本发明还包括一频率弯曲装置700,该装置包括用于获得源说话者的频谱的装置(未示出),上述用于生成频率弯曲函数的装置701,以及用于使用所获得的频率弯曲函数将源说话者的频谱转换成类似于目标说话者的频谱的装置702。
根据本发明的一实施例,所述提取装置708用于从训练语音中提取共振峰频率。
根据本发明的一实施例,所述生成装置709包括用于将所述相对应的共振峰参数组中的各对对应的共振峰参数作为分段线性频率弯曲函数中的关键点,以此来生成该频率弯曲函数的装置。
根据本发明的一实施例,所述提取装置708包括还使用相邻的帧的信息以使所提取的共振峰参数更为稳定可靠。
根据本发明的一实施例,所述提取装置708提取来自多对选择的对齐的帧的多对相对应的共振峰参数组,并包括用于求出该多对相对应的共振峰参数组的按照源和目标各自的平均,作为用于生成频率弯曲函数的所述相对应的共振峰参数组的装置。
根据本发明的一实施例,所述提取装置708提取来自多对选择的对齐的帧的多对相对应的共振峰参数组;且其中所述生成装置包括用于根据每对相对应的共振峰参数组生成一频率弯曲函数,并计算该各频率弯曲函数的平均,作为所述频率弯曲函数的装置。
根据本发明的一实施例,所述对齐装置705包括:用于从源说话者和目标说话者的训练语音中选择相对应的语音段的装置704;以及用于将所述相对应的语音段进行帧对齐装置。
根据本发明的一实施例,所述相对应的语音段是在源说话者和目标说话者的训练语音中具有相同或相似上下文的相同或相似音素。
根据本发明的一实施例,所述相同或相似上下文包括相同或相似的相邻音素、相同或相似的在词中的位置、相同或相似的在词组中的位置、相同或相似的在句子中的位置中的至少一个。
根据本发明的一实施例,所述用于选择相对应的语音段的装置704用于当存在多对具有相同或相似上下文的相同或相似音素、且各对相同或相似音素之间彼此不同时,选择其共振峰参数的变化较小的相对应的相同或相似音素,作为所述相对应的语音段。
根据本发明的一实施例,所述用于选择相对应的语音段的装置704包括用于当存在多对具有相同或相似上下文的相同或相似音素、且各对相同或相似音素之间也彼此相同时,选择其上下文较小影响其共振峰参数的相对应的相同或相似音素,作为所述相对应的语音段的装置。
根据本发明的一实施例,所述其上下文较小影响其共振峰参数的相对应的相同或相似音素包括其相邻音素为爆破音或摩擦音或静音的相对应的相同或相似音素。
根据本发明的一实施例,所述用于选择对齐的帧的装置707用于选择所述相对应的语音段的中间的对齐的帧。
根据本发明的一实施例,所述选用于择对齐的帧的装置707用于选择所述相对应的语音段中共振峰随时间变化缓慢的部分的对齐的帧。
根据本发明的一实施例,所述用于将相对应的语音段进行帧对齐的装置用于使用动态时间规整算法(DTW)706进行帧对齐。
根据本发明的一实施例,所述用于选择对齐的帧的装置707用于选择所述相对应的帧对齐的语音段的中间的对齐的帧、和选择具有最小声学差异的对齐的帧中的至少一个。
根据本发明的一实施例,所述准备装置703用于准备源说话者和目标说话者的相同内容的训练语音;且所述对齐装置705用于使用动态时间规整算法(DTW)将源说话者和目标说话者的相同内容的所述训练语音进行帧对齐。
根据本发明的一实施例,所述选择装置707用于从共振峰参数的变化较小的音素中进行选择、从其相邻音素较小影响其共振峰参数的音素中进行选择、从音素的中间部分进行选择、和选择具有最小声学差异的对齐的帧中的一个或多个。
根据本发明的一实施例,所述对齐的帧之间的所述最小声学差异可以是所述对齐的帧的FFT幅度谱或FFT倒数域幅度谱或MFCC或LPC或LSF或MCA参数等的欧氏距离或者加权距离。
根据本发明的一实施例,所述选择装置707包括:赋予装置,用于对于所述源说话者和目标说话者的训练语音中每对对齐的帧,分别根据该对帧所属的音素、该对帧的上下文、该对帧在其音素中的位置、该对帧之间的声学差异来赋予该对帧相应的成本;计算装置,用于计算所述每对帧的所述各成本的加权和以获得每对帧的总成本;以及选择装置,用于选择总成本最低的一对帧,作为用于提取相对应的共振峰参数组的所述对齐的帧。
根据本发明的用于进行语音转换的系统包括上述进行频率弯曲的装置700以及其他与现有技术相同的部件。
根据本发明的语音识别系统包括上述进行频率弯曲的装置700以及其他与现有技术相同的部件。
以上描述了根据本发明的一种用于生成频率弯曲函数的方法及装置、用于进行频率弯曲的方法及装置、以及包括所述进行频率弯曲的装置的语音转换系统和语音识别系统。以上描述示例性的,旨在使本领域的技术人员可实现本发明,而不是对本发明的限制。所描述的根据本发明的各实施例的方法中的各步骤也可以不同顺序进行,或增加、删除、替换其中的某些步骤,而不脱离本发明的范围。所描述的根据本发明的各实施例的装置及系统中的各部件可实现为软件、固件、硬件或其任意组合,并且这些部件可以相互拆分或合并,只要能够完成所述功能即可。在一优选实现方式中,这些装置为通用计算机硬件与相应在的软件功能模块的结合。本申请所要求保护的范围不由以上说明规定,而是唯一由以下权利要求规定。