合成语音的方法

文档序号:2821032阅读:334来源:国知局
专利名称:合成语音的方法
技术领域
本发明涉及分析和合成语音领域,并具体涉及但不限制于文本到语音(text-to-speech)合成的领域。
背景技术
文本到语音(TTS)合成系统的功能是以给定的语言从普通文本中合成语音。当今,TTS系统已经在许多应用中投入使用,诸如通过电话网络访问数据库或帮助残疾人。一种合成语音的方法是将诸如人类音节(demisyllable)或多音字(polyphone)语音的一组所记录的子单元的元素拼接(concatenate)在一起。多数成功的商用系统采用把多音素拼接在一起的方法。多音素包括多个两个(双音素(diphone))、三个(三音素(trophone))或更多音素所构成的组,并可以通过在稳定的频谱区域将想要的音素组分段,而从无意义的单词中确定。在基于拼接的合成中,两个相邻音素(phone)之间的转变的会话是至关重要的,以便保证合成语音的质量。通过选择多音素作为基本的子单元,两个相邻音素之间的转变保存在所记录的子单元中,并且在相似的音素之间执行拼接操作。
但是在合成之前,必须修改音素的持续时间和音调(pitch),以满足包含这些音素的新词的韵律(prosodic)限制。该处理是必要的,以避免产生单调的声音合成语音。在TTS系统中,由韵律模块来执行该功能。为允许在记录的子单元中修改持续时间和音调,许多基于拼接的TTS系统采用时域音调同步叠加(TD-PSOLA)(E.Moulines和F.Charpentier所著的,“Pitch synchronous waveform processingtechniques for text-to-speech synthesis using diphone”,(“使用双音素的用于文本到语音合成的音调同步波形处理技术”)语音专栏,第9卷,第453-467页,1990年)合成模型。
在TD-PSOLA模型中,语音信号首先经过音调标记算法。该算法在有声段的信号峰值分配标记并在无声段中相隔10ms分配标记。该合成通过位于音调标记中央和从前一音调标记延伸到下一音调标记的海宁(Hanning)加窗段叠加而实现。持续时间修改通过删除或复制一些加窗段来提供。另一方面,音调周期修改可以通过增加或减小加窗段之间的叠加来提供。
除了许多商用TTS系统获得的成功以外,使用TD-PSOLA合成模型产生的合成语音主要在大韵律变化的情况下能够表现出一些缺陷,罗列如下1、音调修改引入了需要适当补偿的修改持续时间。
2、修改持续时间仅仅以一种量化的方式以一个音调周期分辨率(α=...,1/2,2/3,3/4,...,4/3,3/2,2/1,...)来实现。
3、当在无声部分执行持续时间扩大时,段的复制能够引入“尖锐而铿锵声音”的非自然信号(artifact)(类似金属声的合成语音)。
在关于语音和音频处理的IEEE会报的“A Hybrid Model forText-to-Speech Synthesis″(文本到语音合成的混合模型)”中,作者Fábio Violaro和Oliver Beffard,第6卷,NO.5,1998年9月,该文描述了用于基于拼接的文本到语音合成的混合模型。
该语音信号经过音调同步分析并分解为谐波分量,该谐波分量具有可变的最大频率,加上一个噪声分量。该谐波分量被模型化为具有音调倍频的正弦波之和。该噪声分量被模型化为应用于LPC滤波器的随机激励。在无声段中,使谐波分量等于零。在音调修改中,通过在新的谐波频率处再次采样频谱包络来评估新的一组谐波参数。为了在持续时间和/或音调修改中合成谐波分量,给谐波参数引入相位校正。
现有技术中公开了各种其他的所谓“overlap and add(叠加)”方法,诸如PIOLA(pitch Inflected OverLap and Add(音调改变叠加))[P.Meyer,和H.W.Rüehl,R.Krüeger,M.Kugler,L.L.MVogten,A.Dirksen,和K.Belhoula.PHRITTS所著的A text-to-speech synthesizer for the German language(用于德语的文本到语音合成器)。Eurospeech(欧洲语音)’93,第877-980页,柏林,1993年],或PICOLA(Pointr Interval Controlled OverLap andAdd(指针间隔受控叠加))[Morita所著的“A study on speechexpansion and contraction on time axis(时间轴上语音扩展和收缩的研究)”,硕士论文(master thesis),名古屋大学(1987),日本]。这些方法在其标记音调周期位置的方式上彼此不同。
当用作两种不同波形的混合器时,上述方法没有任何一个能给出令人满意的结果。问题在于相位不匹配。谐波的相位受记录设备、室内音响效果、到麦克风的距离、元音(vowel)音色、共同发音(co-articulation)效果等等的影响。其中的一些因素像记录环境能够保持不变,但是像共同发音效果的其他因素却难以(不然的话就是不可能)控制。因此当标记音调周期位置而不考虑相位信息时,其结果是合成质量将受到相位不匹配的影响。
其他类似MBR-PSOLA(Multi Band Resynthesis PitchSynchronous Overlap Add(多频带重新分析音调同步叠加))的方法[T.D utoit和H.Leich.MBR-PSOLAText-To-speech based on anMBE re-synthesis of the segments database(基于段数据库的MBE重新分析的文本到语音分析)。speech communication(语音通信),1993年]再生该相位信息以避免相位不匹配。但是这包括了额外的分析合成操作,它减少了所产生的语音的逼真度(naturalness)。这种合成通常发出机械的声音。
美国专利第5787398号示出了用于通过改变音调来合成语音的设备。该方法的一个不利之处在于,由于音调标记位于激励峰值(excitation peak)的中央并且所测量的激励峰值不必要地具有同步相位,所以产生了相位失真。
通过将语音信号分割为频谱分量和激励分量而改变合成语音信号的音调。后者与一系列叠加窗函数相乘,以将语音信号分割为加窗的语音段,这些语音段在应用可控的时移后再次加到一起,其中在有声语音的情况下,这些函数与音调定时标记信息同步,且该标记信息至少接近地对应于声音激励的瞬时。然后重新组合频谱和激励分量。乘法运算在每个音调周期应用至少两个窗,每个窗具有小于一个音调周期的持续时间。
美国专利第5081681号示出了用于从有声的语音基频来确定每个谐波的相位的一类方法和相关技术。其应用包括语音编码、语音增强、和语音的时间量程修改。基本的方法将包括从基频和有声/无声信息重新创建这些相位信号,以及把随机分量增加到这些重新创建的相位信号以提高合成语音的质量。
美国专利第5081681号描述了一种用于语音处理的相位合成方法。由于相位是合成的,所以合成的结果听起来不像人类声音的许多方面那样自然,以及合成使周围的音响效果被忽略了。

发明内容
本发明提供了一种分析语音的方法,具体而言提供了一种分析自然语音的方法。根据本发明的分析语音的方法基于以下的发现,即语音信号特别是双音素语音信号和该语音信号的第一谐波之间的相位差,为一个依赖说话者的参数,该参数对于不同的双音素而言基本上为一个常量。
根据本发明的优选实施例,通过确定语音信号的最大值和确定零相位,即,第一谐波的正的零交叉,从而获得该相位差。最大值相位和零相位之差为依赖说话者的相位差参数。
在一个应用中,该参数用作一个确定窗函数的基础,诸如凸起余弦窗(raised cosine)或三角形(triangular)窗。优选地,窗函数位于相位角的中央,且该相位角由第一谐波的零相位加上相位差来确定。优选地,该窗函数在该相位角上具有最大值。例如,选择的窗函数关于该相位角而对称。
为了语音合成,通过窗函数给双音素采样加窗,借此窗函数和将要加窗的双音素采样由相位差进行补偿。
以这种方式加窗的双音素采样被拼接起来。这样保存了自然相位信息,从而语音合成的结果听起来宛如自然的一样。
根据本发明的优选实施例,提供指示双音素和音调轮廓(contour)的信息。例如,通过文本到语音系统的语言处理模块能够提供这种控制信息。
与其他的时域叠加方法相比,本发明特别有益的是,由第一谐波的相位来同步音调周期(或音调脉冲)位置。
通过对原始语音信号的第一谐波进行低通滤波并将正的零交叉(zero-crossing)用作零相位指示符来提取相位信息。通过这种方式,从而避免了相位不连续的假象(artifact)而不改变原始的相位信息。
本发明语音合成方法和语音合成设备的应用包括电信服务、语言教育、帮助残疾人、会说话的书籍和玩具、语音监控、多媒体、人机通信。


通过参考以下附图更详细描述了本发明的以下优选实施例,其中图1示例了在第一谐波上确定双音素之间相位差的方法流程图;图2示出了图1的方法的一个应用实例的信号图;图3示例了用于合成语音的本发明方法的一个实施例;图4示出了图3的方法的一个应用实例;图5示例了用于处理自然语音的本发明的一个应用;图6示例了用于文本到语音的转换的本发明的一个应用;图7为包含语音信息的文件的一个实例;图8为从图7的文件中提取的包含双音素信息的文件的一个实例;图9示例了处理图7和8的文件的结果;图10示出了根据本发明的语音分析和合成设备的方框图。
具体实施例方式
图1的流程图示例了根据本发明的语音分析的方法。在步骤101输入自然语音。为了输入自然语音,能够使用公知的无意义(nonesense)单词的训练序列。在步骤102从自然语音中提取双音素。该双音素从自然语音中截取并且包括从一个音素到另一个音素的转变。
在下一步骤103,对至少一个双音素进行低通滤波以包含双音素的第一谐波。该第一谐波为一个依赖说话者的特征,并且该特征在记录过程中保持为常量。
在步骤104确定第一谐波和双音素之间的相位差。同时,该相位差为说话者专门的声音参数。该参数对于语音合成是有用的,正如将参考图3到图10详细说明的那样。
图2示例了一种确定第一谐波和双音素之间相位差的方法(比较图1的步骤4)。从自然语音中获取的声波201形成了分析的基础。以大约为150Hz的截止频率对声波201进行低通滤波,以获得声波201的第一谐波202。第一谐波202的正的零交叉将相位角定义为零。如图2所示的第一谐波202涵盖了数量为19的连续完整周期。在这里考虑的实例中,周期的持续时间从周期1到周期19轻微地增加。对于其中的一个周期,确定该周期内声音波形201的局部最大值。
例如,周期1内声波201的局部最大值为最大值203。周期1内最大值203的相位在图2中表示为max。周期1的max和零相位0之间的相位差Δ为取决于说话者的参数。在这里考虑的实例中,该相位差大约为0.3π。应该注意到该相位差大致为一个常量,而不考虑使用哪一个最大值来确定该相位差。但是,优选地为这种测量选择一个具有明显最大能量位置的周期。例如,如果使用周期9内的最大值204执行该分析,产生的相位差大约与周期1的相位差相同。
图3示例了本发明的语音合成方法的一种应用。在步骤301通过在0+Δ处具有最大值的窗函数,给已经从自然语音中获得的双音素加窗;例如,能够选择一个相对于相位0+Δ而言居于中央的凸起余弦。
通过这种方式在步骤302提供了双音素的音调钟形波(pitchbell)。在步骤303输入语音信息。该信息为已经从自然语音或文本到语音系统中获得的信息,诸如这种文本到语音系统的语言处理模块。
根据语音信息选择音调钟形波。例如,语音信息包含双音素和要合成的音调轮廓的信息。在本例中,在步骤304相应地选择音调钟形波,从而在步骤305音调钟形波的拼接产生了在步骤306中想要的语音输出。
图3的方法的一种应用通过图4中的实例来示出。图4示出了包含大量双音素的声波401。上述参考图1和图2来说明的分析应用于声波401,以便为每个音调间隔获得零相位0。如在图2的实例中,零相位0从音调间隔内的相位最大值max中补偿大致为常量的Δ相位角。
凸起余弦402用于给声波401加窗。凸起余弦402相对于相位0+Δ而言居于中央。通过凸起余弦402为声波401加窗提供了连续的音调钟形波403。通过这种方式,声波401的双音素波形被分隔为这钟连续的音调钟形波403。通过凸起余弦从两个相邻周期中获得该音调钟形波403,其中该余弦位于相位0+Δ的中央。使用凸起余弦而不是矩形函数的优点是,余弦的边缘平滑。应该注意到通过以相同的顺序叠加所有的音调钟形脉冲403使该操作是可逆的;这差不多产生了原始的声波401。
通过重复或跳过音调钟形波403和/或彼此相对接近或远离音调钟形波403能够改变声波401的持续时间,从而改变了音调。通过以高于原始音调的音调来重复相同的音调钟形波403的方式合成该声波404,以便增加声波401的原始音调。应该注意到,由于之前所执行的窗操作考虑到了特征相位差Δ,因此相位由于该叠加操作的结果而保持了节拍。通过这种方式,能够使用音调钟形波403作为构造块以合成准自然的语音。
图5示例了处理自然语音的一种应用。在步骤501输入已知说话者的自然语音。这对应于图4所示的输入声波401的操作。通过凸起余弦402(比较图4)或另一个合适的窗函数给自然语音加窗,该窗函数相对于零相位0+Δ而言位于中央。
通过这种方式,自然语音被分解为步骤503所提供的音调钟形波(比较图4的音调钟形波403)。
在步骤504,步骤503中提供的音调钟形波用作语音合成的“构造块”。一种处理方法是,使得音调钟形波不发生变化,而忽略一定的音调钟形波或重复一定的音调钟形波。例如,如果每四个音调钟形波就忽略一个音调钟形波,这将语音速度提高25%,而不会改变语音的声音。同理,通过重复一定的音调钟形波能够降低语音的速度。
可选择地或另外地,为了增加或减小音调而修改音调钟形波之间的距离。
在步骤505对处理的音调钟形波进行叠加,以便产生听起来宛如准自然的合成语音波形。
图6示例了本发明的另一个应用。在步骤601提供语音信息。该语音信息包括音素、音素的持续时间和音调信息。并通过现有技术的文本到语音处理系统从文本中产生这种语音信息。
在步骤602,从在步骤601提供的该语音信息中提取双音素。在步骤603,基于步骤601提供的信息,确定时间轴上所需要的双音素的位置和音调轮廓。
在步骤604,根据在步骤603确定的定时和音调需求来选择音调钟形波。拼接所选的音调钟形波以在步骤605提供准自然的语音输出。
进一步通过图7到9所示的实例来描述该处理过程。
图7示出了句子“HELLO WORLD(世界你好)!”的语音转录(phonetic transcription)。第一栏701的转录包括SAMPA标准标注法中的音素。第二栏702以千分之一秒来指示各个音素的持续时间。第三栏包括音调信息。音调变化以两个量来表示位置,如音素持续时间的百分比,以及音调频率,单位Hz。
该合成以查询先前所生成的双音素数据库开始。双音素从实际语音截取并包括从一个音素到另一个音素的转变。用于特定语言的所有可能的音素组合必须与类似音素边界的一些额外信息一起存储在该数据库中。如果有多个不同说话者的数据库,选择特定的说话者能够成为合成器的一个额外输入。
图8示出了句子“HELLO WORLD(世界你好)!”的双音素,即图7中701栏的所有音素转变。
图9示处了音素边界、双音素边界的位置和要合成的音调周期位置的计算结果。通过加上音素持续时间来计算音素边界。例如,在静默100毫秒之后开始音素“h”。在155毫秒即100毫秒+55毫秒之后开始音素“schwa”,等等。
从数据库中检索双音素边界作为音素持续时间的百分比。各个音素以及双音素的位置在图9中都以上面的框图901表示,其中指示了双音素的开始点。并根据栏702所给的音素持续时间和栏703中所给的音素持续时间百分比计算该开始点。
图9中的框图902示出了“HELLO WORLD!”的音调轮廓。该音调轮廓是根据栏703(比较图7)中包含的音调信息来确定的。例如,如果当前音调位置在0.25秒,那么音调周期就会位于第一‘1’音素的50%处。相应的音调位于133和139Hz之间。下面线性方程能够计算该音调(0.8·63+0.5·64)·133+(0.2·128+0.5·64)·1390.8·63+64+0.2·128=135.5Hz----(1)]]>下一音调位置将位于0.2500+1/135.5=0.2574秒。而且还有可能使用非线性函数(如ERB速率比例)用于上述计算。ERB(等价于矩形带宽)为一种从心理声学(Glasberg和Moore,1990年)测量所得出的比例,并通过考虑人耳的掩蔽属性给出了较好的表示法。频率到ERB转换的公式是
ERB(f)=21.4log10(4.37·f) (2)其中f为频率,单位kHz。原理是ERB速率比例中的音调变化可由人耳感知为线性变化。
应该注意到即使无声部分没有音调,但无声的区域还以音调周期位置来标记。
变化的音调由框图902的音调轮廓给出,还在框图901内通过垂直线903所示例,这些线具有变化的距离。两条线903之间的距离越大,音调则越低。框图901和902中所给出的音素、双音素和音调信息是用于要合成的语音的规格。双音素采样,即音调钟形波(比较图4中的音调钟形波403)来自双音素数据库。对于每一个双音素,用于该双音素的大量的这种音调钟形波,与大量的音调钟形波拼接起来,这些钟形波对应于双音素的持续时间,音调钟形波之间的距离对应于如框图902中的音调轮廓给出的所需的音调频率。
拼接所有音调钟形波的结果是准自然合成的语音。这是因为,在双音素边界与相位有关的不连续性通过本发明予以防止。与现有技术相比,这种不连续性是不可避免的,这是因为音调周期的相位不匹配。
而且,韵律(prosody)(音调/持续时间)是正确的,因为每个双音素两侧的持续时间已经正确地调整了。另外,音调匹配了所要的音调轮廓函数。
图10示出了诸如个人计算机的一个设备950,该设备已经被编程用来实现本发明。设备950具有用于确定特征相位差Δ的语音分析模块951。为此目的,语音分析模块951包括一个存储器952,用于存储一个双音素语音波。为了获得不变的相位差Δ,只有一个双音素就足够了。
而且,语音分析模块951包括一个低通滤波模块953。低通滤波模块953具有大约150Hz的截止频率,或者其他合适的截止频率,以便过滤出存储器952中存储的双音素的第一谐波。
设备950的模块954用于确定双音素一定周期内的最大能量位置和它的第一谐波零相位位置之间的距离(该距离被转换为相位差Δ)。这能够通过确定第一谐波正零交叉所给出的零相位和该谐波周期内双音素的最大值之间的相位差来实现,如图2的实例中所示。
作为语音分析的结果,语音分析模块951提供了特征相位差Δ,因此为数据库中的所有双音素提供了周期位置(例如,在该位置上,凸起余弦窗位于中央以得到该音调钟形波)。相位差Δ存储在存储器955中。
设备950还具有一个语音合成模块956。该语音合成模块956具有一个存储音调钟形波即双音素采样的存储器957,该采样已经由如图2所示的窗函数加窗。应该注意到,存储器957不必必须为音调钟形波。全部的双音素都能够以周期位置信息来存储,或者能够使得双音素单调为不变的音调。通过这种方式,有可能使用合成模块中的窗函数从数据库中提取音调钟形波。
模块958用于选择音调钟形波并且使音调钟形波适于所要求的音调。这是基于提供给模块958的控制信息完成的。
模块959用于拼接在模块958中所选择的音调钟形波以通过模块960提供语音输出。
附图标记列表声波 201第一谐波 202最大值 203最大值 204声波 401凸起余弦 402音调钟形波 403声波 404栏 701栏 702栏 703图 901图 902设备 950语音分析模块 951存储器 952低通滤波模块 953模块 954存储器 955语音合成模块 956存储器 957模块 958模块 959模块 960
权利要求
1.一种用于分析语音的方法,该方法包括以下步骤-输入一个语音信号,-获得该语音信号的第一谐波,-确定语音信号和第一谐波之间的相位差(Δ)。
2.根据权利要求1所述的方法,所述确定相位差的步骤包括以下步骤-确定语音信号最大值的位置,-确定语音信号的第一谐波的最大值和零相位之间的相位差。
3.根据权利要求1或2所述的方法,其中语音信号为双音素信号。
4.一种用于合成语音的方法,该方法包括以下步骤-选择加窗的双音素采样,该双音素采样通过相对于相位角而言位于中央的窗函数进行加窗,其中通过语音信号和语音信号的第一谐波之间的相位差来确定该相位角,-拼接所选的加窗双音素采样。
5.根据权利要求4所述的方法,该语音信号为双音素信号。
6.根据权利要求4或5所述的方法,该窗函数为凸起余弦或三角形窗。
7.根据权利要求4、5或6的任意一个所述的方法,还包括输入指示双音素和音调轮廓的信息,该信息形成了选择加窗双音素采样的基础。
8.根据权利要求4到7中任何一个所述的方法,其中从一个文本到语音系统的语言处理模块提供该信息。
9.根据权利要求4到8中任何一个所述的方法,还包括-输入语音,-通过窗函数给语音加窗以获得该加窗的双音素采样。
10.一种用于执行根据上述权利要求1到9的任意之一所述方法的计算机程序产品。
11.一种语音分析设备,包括-用于输入语音信号的装置,-用于获得语音信号的第一谐波的装置,-用于确定语音信号和第一谐波之间的相位差(Δ)的装置。
12.根据权利要求11所述的语音分析设备,用于确定相位差的装置适于确定语音信号的最大值和确定语音信号的零相位(0),以便确定该语音信号的最大值和零相位之间的相位差。
13.根据权利要求11或12所述的语音分析设备,其中该语音信号为双音素信号。
14.一种语音合成设备,包括-用于选择加窗的双音素采样的装置,该双音素采样通过相对于相位角而言位于中央的窗函数进行加窗,其中该相位角通过语音信号和该语音信号的第一谐波之间的相位差来确定,-用于拼接所选的加窗双音素信号的装置。
15.根据权利要求14所述的语音合成设备,其中该语音信号为双音素信号。
16.根据权利要求14或15所述的语音合成设备,其中该窗函数为凸起余弦或三角形窗。
17.根据权利要求14、15或16所述的语音合成设备,还包括用于输入指示双音素和音调轮廓信息的装置,以及用于选择加窗双音素的装置适于根据该信息执行选择操作。
18.一种文本到语音系统,包括-用于提供指示双音素和音调轮廓信息的语言处理装置,-语音合成装置,包括用于根据该信息选择加窗的双音素采样的装置,其中该双音素采样通过相对于相位角而言位于中央的窗函数进行加窗,并且所述相位角通过语音信号和该语音信号的第一谐波之间的相位差来确定,以及用于拼接所选的加窗双音素采样的装置。
19.根据权利要求18所述的文本到语音系统,其中该窗函数为凸起余弦或三角形窗。
20.一种语音处理系统包括-用于输入包括自然语音信号的信号的装置,-用于通过窗函数给自然语音信号加窗以提供加窗的双音素采样的装置,所述窗函数相对于相位角而言位于中央,其中所述相位角通过语音信号和该语音信号第一谐波之间的相位差来确定,-用于处理该加窗的双音素采样的装置,-用于拼接所选的加窗双音素采样的装置。
全文摘要
本发明涉及一种分析语音的方法,该方法包括以下步骤a)输入一个语音信号,b)获得该语音信号的第一谐波,c)确定语音信号和第一谐波之间的相位差Df。
文档编号G10L13/06GK1647152SQ03808627
公开日2005年7月27日 申请日期2003年4月1日 优先权日2002年4月19日
发明者E·F·吉吉 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1