首页> 中国专利> 一种结合自然样本挑选与声学参数建模的语音合成方法

一种结合自然样本挑选与声学参数建模的语音合成方法

摘要

本发明公布了一种结合自然样本挑选与声学参数建模的语音合成方法,本发明的特征是在Trainable TTS中引入了自然样本单元挑选的概念,并用决策树进行单元的预选来弥补单纯的数据驱动方法在高层韵律描述不足的缺点,最后通过参数生成算法生成出比较接近自然的参数然后进行语音合成,实现了合成语音在音质、自然度以及平稳性上的一个折中平衡。

著录项

  • 公开/公告号CN1835075A

    专利类型发明专利

  • 公开/公告日2006-09-20

    原文格式PDF

  • 申请/专利权人 安徽中科大讯飞信息科技有限公司;

    申请/专利号CN200610039675.2

  • 发明设计人 王玉平;凌震华;王仁华;

    申请日2006-04-07

  • 分类号G10L13/08(20060101);G10L13/00(20060101);G10L13/02(20060101);

  • 代理机构合肥华信专利商标事务所;

  • 代理人余成俊

  • 地址 230088 安徽省合肥市黄山路616号

  • 入库时间 2023-12-17 17:38:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-04-01

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G10L13/08 变更前: 变更后: 申请日:20060407

    专利权人的姓名或者名称、地址的变更

  • 2011-06-29

    授权

    授权

  • 2006-11-22

    实质审查的生效

    实质审查的生效

  • 2006-09-20

    公开

    公开

说明书

技术领域

本发明涉及语音合成领域,具体是对语音合成中波形拼接和参数合成两种常用方法进行有效结合,达到同时提高合成语音的音质和平稳性的目的。

背景技术

目前,基于自然样本的波形拼接和基于模型预测的参数合成是两种常用的语音合成方法。前者可以取得较高质量的合成语音音质,但是在稳定性和拼接的连续性上会存在一定问题;后者可以实现稳定、平滑的语音合成,但是由于模型预测的声学参数和自然语音声学参数的差异,会造成合成语音的音质较差。这里,我们考虑将自然声学样本的挑选与参数的统计建模相结合,同时保证最终合成使用参数与自然样本的接近程度和对于统计模型的符合程度,以此在音质、自然度与平稳性之间达到更好的平衡。

大语料库语音合成方法是一种比较流行的基于自然样本的波形拼接语音合成方法,它根据某种计算法则运用Viterbi算法挑选到合适的自然样本单元,然后对自然样本进行拼接合成。这种方法的优势就是能获得自然发音人的音质,但是在拼接的地方往往会存在连续性上的问题,如果不能挑选到合适的单元的话,那么它的整体感觉会受很大的影响,所以,这种方法对语料库的要求很高,往往一个覆盖面很广的中文大语料库就会有1G以上的存储空间,这就导致了这种方法的可扩展性较差。

由于现在合成语音的音质和自然度都不错,大家对合成系统提出了更多的需求,比如多样化的语音合成,包括多个发音人、多种发音风格、多语种等,由上面的分析可以看出,虽然大语料库合成系统的效果不错,但也存在不少缺陷,比如:合成语音的效果不稳定,音库构建周期太长以及合成系统的可扩展性太差等。这些缺陷明显限制了大语料库合成系统在多样化语音合成方面的应用,因此,近年来可训练语音合成方法被提出并逐渐得到越来越广泛的应用。

基于隐马尔可夫模型的可训练语音合成(HMM-based Trainable SpeechSynthesis)方法就是将HMM用于语音信号的建模和预测的参数合成方法,它能够实现稳定平滑的语音合成,但是由于参数是模型预测的,所以它合成出来的语音的音质存在一定的缺陷。

基于上面的分析,为了使得合成语音在音质、自然度以及平稳性上达到更好的平衡,在HMM-based语音合成方法的基础上,结合自然样本的波形拼接合成的思想,实现了合成语音在音质、自然度以及平稳性上的一个更好的平衡,提高语音合成系统的总体水平。

发明内容

本发明提供了一种提高基于隐马尔可夫模型的可训练语音合成系统合成音质的办法,通过结合单元挑选和参数建模两方面的技术,使得最终合成语音稳定性、平滑性以及音质都得到较大幅度的提高。

本发明的技术方案如下:

2.一种结合自然样本挑选与声学参数建模的语音合成方法,其特征是具体的实现方式如下:

(1)、参数建模:运用隐马尔科夫模型对语音信号三个方面的参数进行建模,这三个方面的参数分别是:基频、时长和线谱频率系数LSF;所有模型都在一个语音库上用隐马尔科夫模型进行模型的训练;语音库的规模一般在1000句话左右;

(2)、单元预选:是指从所有的自然样本中挑选出那些比较符合条件的自然样本的过程,目的是在基本保持语音合成系统合成效果的情况下减少合成系统所需存储的单元样本数目以及降低系统的运算复杂度;单元预选的过程描述如下:

首先运用隐马尔科夫模型模型,对训练语音数据库进行状态切分工作,并把切分好的每个状态都对应到决策树上的一个节点上,把这个状态模型的相关数据作为一个自然样本单元保存到相应的叶子节点下,同时,计算这个自然样本单元与隐马尔科夫模型之间的线谱频率差值,定义为频谱代价,定义式如下:

>>lsf>cos>t>=>>Σ>>i>=>1>>N>>>(>>x>i>>->>μ>i>>)>sup>>Σ>i>>->1>sup>>>(>>x>i>>->>μ>i>>)>>>s>

xi,μi,∑i分别表示自然线谱频率系数LSF、模型均值和模型方差,N为LSF参数维数;考虑在单元挑选时基频变化特性,在进行单元预选的同时,需要对基频进行用k-means方法来进行聚类;通过预选仅保留一定数目(如30个)的样本单元,并能涵盖了训练数据中的所有的基频变化情况,预选的时候就是结合频谱代价和基频变化来进行的,选择两者只和最小的一些样本作为预选所得的自然样本单元;

(3)、单元挑选:单元挑选阶段就是进行在预选所得的自然样本单元中进行Viterbi搜索得到代价最小的自然单元序列;这里需要计算的代价是:

基频代价: >>f>0>cos>t>=>>Σ>>i>=>1>>3>>>(>>x>>i>,>>f>0>>>>->>μ>>i>,>>f>0>>>>)>sup>>Σ>i>>->1>sup>>>(>>x>>i>,>>f>0>>>>->>μ>>i>,>>f>0>>>>)>>>s>

频谱代价: >>lsf>cos>t>=>>Σ>>i>=>1>>N>>>(>>x>i>>->>μ>i>>)>sup>>Σ>i>>->1>sup>>>(>>x>i>>->>μ>i>>)>>>s>

           目标代价:trg cost=lsf cost+f0 cost以上xi,f0,μi,f0,∑i分别表示预选所得到的自然样本的基频参数、基频模型的均值、基频模型的方差,其中x1,f0,μ1,f0表示绝对基频值,也可称为静态参数,x2,f0,μ2,f0,x3,f0,μ3,f0表示基频的一阶和二阶差分即动态参数,计算式如下:

>>Δ>>c>t>>=>>Σ>>τ>=>-sup>>L>->>(>1>)>sup>>sup>>L>+>>(>1>)>sup>>>>ω>>(>1>)>>>>(>τ>)>>>c>>t>+>τ>>>,>>Δ>2>>>c>t>>=>>Σ>>τ>=>-sup>>L>->>(>2>)>sup>>sup>>L>+>>(>2>)>sup>>>>ω>>(>2>)>>>>(>τ>)>>>c>>t>+>τ>>>>s>

连接代价:由于Viterbi挑选所得的自然样本序列是一系列从自然语句中截取的自然样本的组合,它与自然语句的自然样本序列是不同的,它前后帧的静态参数可能发生了变化,所以在自然语句中计算的动态参数就会发生变化,应该更新动态参数来计算挑选的连接代价,同样按上式进行动态参数的更新;

所以连接代价的计算如下:

>>link>cos>t>=>>Σ>>i>=>1>>N>>>(>>x>pi>>->>μ>pi>>)>sup>>Σ>pi>>->1>sup>>>(>>x>pi>>->>μ>pi>>)>>+>>Σ>>i>=>1>>N>>>(>>x>ci>>->>μ>ci>>)>sup>>Σ>ci>>->1>sup>>>(>>x>ci>>->>μ>ci>>)>>>s>

总体代价:cost=trg cost+link cost

这里xpi,μpi,∑pi表示前一帧的自然样本参数和前一个模型的参数,xci,μci,∑ci表示当前帧的自然样本参数和当前模型参数;

最后由Viterbi算法得到一组总体代价最小的自然样本序列;

(4)、改进参数生成:Viterbi挑选出自然单元序列之后,可以用改进的参数生成算法来对参数进行生成,这种方法就是把自然的参数也当作一个模型来约束最后的参数生成;

原始的参数生成算法是基于最大似然的准则下来进行参数生成的:

    L=log P(O|Q,λ)

其中O表示目标矢量参数,Q状态序列,λ表示模型参数;

求解上式的最大值就可以得到生成的参数;

而经过了自然单元的挑选之后,每帧又有了对应的自然的频谱参数,所以参数生成的时候把自然的频谱参数当作一个简单的约束模型对似然值进行约束,所以似然值计算为:

    L=log{P(O|Q,λ)*P(C|Ct)α}

其中C,Ct分别表示目标矢量参数中的静态参数和自然样本的静态参数;

这里简单的把自然的和预测的静态参数之间的欧氏距离作为模型的约束进行计算,所以似然值可以表示为:

>>L>=>log>{>P>>(>O>|>Q>,>λ>)>>*>P>>>(>C>|>>C>1>>)>>α>>}>>s>

>>=>log>{>P>>(>O>|>Q>,>λ>)>>>>[>>e>>->>1>2>>D>>(>C>,>>C>t>>)>>>>]>>α>>}>>s>

>>=>->>1>2>>>O>T>>>U>>->1>>>O>+>>O>T>>>U>>->1>>>M>->>1>2>>α>>>(>C>->>C>t>>)>>T>>>(>C>->>C>t>>)>>>s>

>>>>∂>L>>>∂>C>>>=>->>W>T>>>U>>->1>>>WC>+>>W>T>>>U>>->1>>>M>->α>>(>C>->>C>t>>)>>>s>

>>>>∂>L>>>∂>C>>>=>0>,>>s>即得:

-WTU-1WC+WTU-1M-α(C-Ct)=0

所以(WTU-1W+αI)C=WTU-1M+αCt解上面这个方程就可以得到所要的基于自然单元挑选和参数生成的结果,包括频谱、时长、基频参数;α值为系数,α值选取的不同,得到的效果也就各不相同,α取得过小,那么生成的参数就距离自然的频谱参数很远,合成的语音的音质也没有明显提高,如果α选取过大,那么生成的就很接近自然的频谱参数,这样又会造成状态与状态之间的不连续现象,影响合成语音的听感,而且状态与状态之间和状态内部的α值也应该不一样,这样可以保证状态内部的参数的自然性和状态交接处的参数平滑过渡;

经过了上面的流程之后,频谱、时长、基频等参数得以生成,进而最后的语音合成得以实现。

发明的效果

本发明的方法嵌套在Trainable TTS系统中,在Trainable TTS系统中添加了相关处理模块,具有可扩展性,

音质的提高:经过了这种方法的改进之后,合成语音的音质明显得到提高,语音的听感不像之前的那么闷而是更加清晰了,而且音色也更像自然发音人。

参数的低存储性:频谱决策树的每个叶子节点下只保存30个自然样本单元的静态参数数据,大概需要65M的存储空间,实验证明,如果进一步做压缩而又保持音质的话,大概能降到5.5M左右,这样可以在一些受限领域里应用。

术语解释

语音合成(Text-To-Speech):又称为文语转化。它涉及声学、语言学、数字信号处理、多媒体等多种学科,是中文信息处理领域的一项前沿技术。语音合成技术解决的主要问题是:如何将电子化文本的文字信息转化为能够播放的声音信息。近代语音合成技术是随着计算机技术和数字信号处理技术的发展而发展起来的,目的是让计算机能够产生高清晰度、高自然度的连续语音。

可训练语音合成(Trainable TTS):就是可自动训练的语音合成,其基本原理就是基于一套自动化的流程,根据输入的语音数据进行训练,最后形成一个相应的语音合成合成系统。

隐马尔科夫模型(Hidden Markov Model,HMM):俄国有机化学家VladimirVasilyevich Markovnikov于1870年提出,其本质上是一种随机过程,它包括具有状态转移概率的马尔可夫链和输出观测值的随机过程,因为其状态是不确定或不可见的,只有通过观测序列的随机过程才能表现出来,所以称为隐马尔科夫模型。

决策树:基本上,我们可以把决策树当作一个布尔函数(Boolean function),其输入是物体或情况的一组属性,其输出为“是”或“否”的决策值,在决策树里,每个树枝节点对应到一个有关某项属性的测试,每个叶子节点对应到一个布尔函数值,它呈树状结构,所以称为决策树。

附图说明

附图:结合自然样本单元挑选与参数生成的可训练语音合成系统流程图。

具体实施方式

一种结合自然样本挑选与声学参数建模的语音合成方法,具体的实现方式如下:

1.参数建模:运用隐马尔科夫(HMM)对语音信号三个方面的参数进行建模,这三个方面的参数分别是:基频(Fundamental Frequency)、时长(Duration)和线谱频率系数LSF(Line Spectral Frequency)。所有模型都在一个语音库上用HTK(the Hidden Markov ModelToolkit)进行模型的训练,语音库的规模一般在1000句话左右;

2.单元预选:单元预选是指从所有的自然样本中挑选出那些比较符合条件的自然样本的过程,单元预选的目的是在基本保持语音合成系统合成效果的情况下减少合成系统所需存储的单元样本数目以及降低系统的运算复杂度。单元预选的过程描述如下:

首先运用HMM模型,对训练语音数据库进行状态切分工作,并把切分好的每个状态都对应到决策树上的一个节点上,把这个状态模型的相关数据作为一个自然样本单元保存到相应的叶子节点下。同时,计算这个自然样本单元与隐马尔科夫模型之间的线谱频率差值,我们定义为频谱代价,定义式如下:

>>lsf>cos>t>=>>Σ>>i>=>1>>N>>>(>>x>i>>->>μ>i>>)>sup>>Σ>i>>->1>sup>>>(>>x>i>>->>μ>i>>)>>>s>

xi,μi,∑i分别表示自然LSF、模型均值和模型方差,N为LSF参数维数。

这种基于决策树的单元预选方法有效了弥补单纯的数据驱动方法对高层韵律描述不足的缺点,同时,考虑在单元挑选时基频变化特性,在进行单元预选的同时,需要对基频进行用k-means方法来进行聚类。通过预选我们仅保留一定数目(如30个)的样本单元,他们涵盖了训练数据中的所有的基频变化情况。

单元挑选:单元挑选阶段就是进行Viterbi搜索得到代价最小的自然单元序列。这里需要计算的代价是:

基频代价: >>f>0>cos>t>=>>Σ>>i>=>1>>3>>>(>>x>>i>,>>f>0>>>>->>μ>>i>,>>f>0>>>>)>sup>>Σ>i>>->1>sup>>>(>>x>>i>,>>f>0>>>>->>μ>>i>,>>f>0>>>>)>>>s>

频谱代价: >>lsf>cos>t>=>>Σ>>i>=>1>>N>>>(>>x>i>>->>μ>i>>)>sup>>Σ>i>>->1>sup>>>(>>x>i>>->>μ>i>>)>>>s>

目标代价:trg cost=lsf cost+f0 cost以上xi,f0,μi,f0,∑i分别表示自然样本的基频参数、基频模型的均值、基频模型的方差,其中x1,f0,μ1,f0表示绝对基频值,也可称为静态参数,x2,f0,μ2,f0,x3,f0,μ3,f0表示基频的一阶和二阶差分即动态参数,计算式如下:

>>Δ>>c>t>>=>>Σ>>τ>=>-sup>>L>->>(>1>)>sup>>sup>>L>+>>(>1>)>sup>>>>ω>>(>1>)>>>>(>τ>)>>>c>>t>+>τ>>>,>>Δ>2>>>c>t>>=>>Σ>>τ>=>-sup>>L>->>(>2>)>sup>>sup>>L>+>>(>2>)>sup>>>>ω>>(>2>)>>>>(>τ>)>>>c>>t>+>τ>>>>s>

连接代价:由于Viterbi挑选的自然样本序列与自然语句的自然样本序列是不同的,它前后帧的静态参数可能发生了变化,所以在自然语句中计算的动态参数就会发生变化,应该更新动态参数来计算挑选的连接代价,同样按上式进行动态参数的更新。

所以连接代价的计算如下:

>>link>cos>t>=>>Σ>>i>=>1>>N>>>(>>x>pi>>->>μ>pi>>)>sup>>Σ>pi>>->1>sup>>>(>>x>pi>>->>μ>pi>>)>>+>>Σ>>i>=>1>>N>>>(>>x>ci>>->>μ>ci>>)>sup>>Σ>ci>>->1>sup>>>(>>x>ci>>->>μ>ci>>)>>>s>

总体代价:cost=trg cost+link cost

这里xpi,μpi,∑pi表示前一帧的自然样本参数和前一个模型的参数,xci,μci,∑ci表示当前帧的自然样本参数当前模型参数。

最后由Viterbi算法得到一组总体代价最小的自然单元序列。

改进参数生成:Viterbi挑选出自然单元序列之后,可以用改进的参数生成算法来对参数进行生成,这种方法就是把自然的参数也当作一个模型来约束最后的参数生成。

原始的参数生成算法是基于最大似然的准则下来进行参数生成的:

    L=logP(O|Q,λ)

求解上式的最大值就可以得到生成的参数。

而经过了自然单元的挑选之后,每帧又有了对应的自然的频谱参数,所以参数生成的时候把自然的频谱参数当作一个简单的模型对似然值进行约束,所以似然值计算为:

  L=log{P(O|Q,λ)*P(C|Ct)α}这里简单的把自然的和预测的静态参数之间的欧氏距离作为模型的约束进行计算,所以似然值可以表示为:

>>L>=>log>{>P>>(>O>|>Q>,>λ>)>>*>P>>>(>C>|>>C>t>>)>>α>>}>>s>

>>=>log>{>P>>(>O>|>Q>,>λ>)>>>>[>>e>>->>1>2>>D>>(>C>,>>C>t>>)>>>>]>>α>>}>>s>

>>=>->>1>2>>>O>T>>>U>>->1>>>O>+>>O>T>>>U>>->1>>>M>->>1>2>>α>>>(>C>->>C>t>>)>>T>>>(>C>->>C>t>>)>>>s>

>>>>∂>L>>>∂>C>>>=>->>W>T>>>U>>->1>>>WC>+>>W>T>>>U>>->1>>>M>->α>>(>C>->>C>t>>)>>>s>

>>>>∂>L>>>∂>C>>>=>0>,>>s>即得:

-WTU-1WC+WTU-1M-α(C-Ct)=0

所以(WTU-1W+αI)C=WTU-1M+αCt解上面这个方程就可以得到所要的基于自然单元挑选和参数生成的结果。

当然,如果α值选取的不同,得到的效果也就各不相同,α取得过小,那么生成的参数就距离自然的频谱参数很远,合成的语音的音质也没有明显提高,如果α选取过大,那么生成的就很接近自然的频谱参数,这样又会造成状态与状态之间的不连续现象,影响合成语音的听感,而且状态与状态之间和状态内部的α值也应该不一样,这样可以保证状态内部的参数的自然性和状态交接处的参数平滑过渡。

经过了上面的流程之后,参数就可以得以生成出来了,进而最后的语音合成得以实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号