基于录制的语音模板生成合成语音的方法和系统转让专利

申请号 : CN200510079778.7

文献号 : CN1889170B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 秦勇朱维斌张维沈丽琴

申请人 : 纽昂斯通讯公司

摘要 :

本发明提供一种将录制的语音模板与TTS系统相结合生成高质量的合成语音的方法和系统。在本发明中:在包含预先录制的语音模板的数据库中搜索与希望合成语音的文本内容最匹配的语音模板;将最匹配的语音模板截成多个片断,生成与文本内容相同的保留片断以及与文本内容不同的差异片断;对与差异片断对应的文本内容部分进行语音合成;以及将合成的语音与最匹配的语音模板的保留片断进行拼接。采用本发明的方法和系统产生的合成语音继承了人说话的韵律结构,极大提高了合成语音的质量。此外,在本发明中,采用编辑距离算法搜索最匹配的语音模板,可以保证输出的最匹配模式具有最小的编辑操作次数,从而避免了很多接合点。

权利要求 :

1.一种用于生成合成语音的方法,包括以下步骤:

在包含预先录制的语音模板的数据库中搜索与希望合成语音的文本内容最匹配的语音模板;

将所述最匹配的语音模板截成多个片断,生成与所述文本内容相同的保留片断以及与所述文本内容不同的差异片断;

对与所述差异片断对应的所述文本内容部分进行语音合成;以及

将上述合成的与所述差异片断对应的所述文本内容部分的语音与所述最匹配的语音模板的保留片断进行拼接。

2.根据权利要求1所述的方法,其中,所述搜索步骤包括:计算所述文本内容与所述数据库中的每个语音模板之间的编辑距离;选择具有最小编辑距离的语音模板作为最匹配的语音模板;以及确定将所述最匹配的语音模板转变为所述文本内容的编辑操作。

3.根据权利要求2所述的方法,其中,所述计算编辑距离按照如下公式进行:其中,S=s1…si…sN表示语音模板的词的序列,T=T1…tj…tM表示所述文本内容的词的序列,E(i,j)表示将s1…si转变为T1…tj的编辑距离,Dist(si,tj)表示用所述文本内容的词tj替换语音模板的词si时的替换处罚,Ins(si)表示插入si的处罚,以及Del(tj)表示删除tj的处罚。

4.根据权利要求2所述的方法,其中,所述确定编辑操作包括:确定编辑的位置和对应的编辑类型。

5.根据权利要求4所述的方法,其中,将所述最匹配的语音模板截成多个片断的步骤包括:按照确定的编辑的位置从所述最匹配的语音模板中截出被编辑的片断,所述被编辑的片断是差异片断,其余的片断是保留片断。

6.一种用于生成合成语音的系统,包括:

语音数据库,用于存储预先录制的语音模板;

文本输入装置,用于输入希望合成语音的文本内容;

搜索装置,用于在所述语音数据库中搜索与输入文本内容最匹配的语音模板;

语音拼接装置,用于将最匹配的语音模板截成多个片断,生成与所述文本内容相同的保留片断和与所述文本内容不同的差异片断;对与所述差异片断对应的输入文本内容部分进行语音合成;将合成的语音部分与保留片断进行拼接;以及语音输出装置,用于输出对应于输入文本内容的语音。

7.根据权利要求6所述的系统,其中,所述搜索装置进一步包括:计算单元,用于计算所述文本内容与所述语音数据库中的每个语音模板之间的编辑距离;选择单元,用于选择具有最小编辑距离的语音模板作为最匹配的语音模板;以及确定单元,用于确定将所述最匹配的语音模板转变为所述文本内容的编辑操作。

8.根据权利要求7所述的系统,其中,所述计算单元按以下公式计算编辑距离:其中,S=s1…si…sN表示语音模板的词的序列,T=T1…tj…tM表示所述文本内容的词的序列,E(i,j)表示将s1…si转变为t1…tj的编辑距离,Dist(si,tj)表示用所述文本内容的词tj替换语音模板的词si时的替换处罚,Ins(si)表示插入si的处罚,以及Del(tj)表示删除tj的处罚。

9.根据权利要求7所述的系统,其中,所述确定单元包括:确定编辑的位置和对应的编辑类型的单元。

10.根据权利要求9所述的系统,其中,所述语音拼接装置根据确定的编辑的位置从所述最匹配的语音模板中截出被编辑的片断,所述被编辑的片断是差异片断,其余的片断是保留片断。

11.根据权利要求6至10中任何一个权利要求所述的系统,其中,所述语音拼接装置进一步包括:用于将最匹配的语音模板截成多个保留片断和差异片断的截取单元;用于对与差异片断对应的输入文本内容部分进行语音合成的语音合成单元;以及用于将合成的语音与多个保留片断拼接的拼接单元。

说明书 :

基于录制的语音模板生成合成语音的方法和系统

技术领域

[0001] 本发明涉及语音合成技术,具体地说,涉及将录制的语音模板与文本语音转换(Text to Speech,简称TTS)系统相结合生成高质量的合成语音的方法和系统。

背景技术

[0002] 语音是人类最方便的进行相互交流的方式,随着语音技术的发展,语音已经成为人类与机器/计算机交流的最方便的接口。语音技术主要包括语音识别和文本语音转换技术。
[0003] 现有的TTS系统,如共振峰和小型语料库连续式TTS系统,传送的语音的质量大多数听众还无法接受。最近关于大型语料库连续式TTS系统的发展使得合成语音越来越容易接受,这也使得人机交互系统能够应用得更广。由于TTS系统的质量提高,各种人机交互系统如电子邮件阅读器、新闻阅读器或车载信息系统等都变得可行。
[0004] 然而,随着各种人机交互系统的应用愈来愈广,人们更加希望通过对TTS系统的深入研究,来进一步改进这些人机交互系统的语音输出质量。
[0005] 一般,通用TTS系统是根据处于很低级别的语音单元来模仿人的语音,例如音素、音节等。选择这样的小的语音单元实际上是在TTS系统的质量和灵活性之间采取的折中办法。一般来说,使用如音节或音素这样小的语音单元的TTS系统,可以以相对合理数量的接合点来处理任何文本内容,所以灵活性好,而使用大的语音单元,如词、短语等,可以改进TTS的质量,因为语音单元之间的接合点相对较少,但是其缺点在于大的语音单元在处理“词表外的词(Out of Vocabulary,简称OOV)”时比较困难,即:使用大的语音单元的TTS系统的灵活性较差。
[0006] 关于合成语音的应用,可以发现,有些应用的使用领域很窄,例如天气预报交互式语音应答(IVR)系统、股票报价IVR系统、航班信息查询IVR系统等。这些应用是高度依赖使用领域的,具有非常有限的合成模式。在这种情况下,TTS系统有机会发挥如词/短语等大的语音单元的作用,以避免较多的接合点,并且模拟高质量的语音。
[0007] 在现有技术中,存在许多基于词/短语拼接技术的TTS系统。转让给本发明同一受让人的美国专利US6,266,637就公开了一种基于词/短语拼接技术的TTS系统。这类TTS系统将所有词或短语拼接在一起,以构建非常自然的语音。当这类基于词/短语拼接技术的TTS系统不能在其词典中找到相应的词或短语时,就利用通用TTS系统来产生对应该词或短语的合成语音。虽然词/短语拼接技术的TTS系统可搜索来自不同语音的词或短语的片断,但不能保证合成后的语音的连续和自然。
[0008] 众所周知,与基于词/短语拼接技术产生的合成语音相比,人类语音是最自然的声音。人类语音以完全自然的方式嵌有许多句法和语义信息。当研究人员不断进行改善通用TTS时,也承认如果能够对于预先录制的人类语音加以利用,则是再好不过的事情了。于是为了进一步提高合成语音的质量,在特定的应用领域中,应充分发挥更大的语音单元如语句的作用,从而保证合成后的语音的连续和自然。但是目前还没有直接使用这类更大的语音单元来产生高质量的合成语音的技术方案。

发明内容

[0009] 本发明正是鉴于上述技术问题提出的,其目的在于提供一种将录制的语音模板与TTS系统结合以生成高质量的合成语音的方法和系统。根据本发明的方法和系统充分利用了人类语音中嵌入句法和语义信息,从而提高了合成语音的质量,而且使得合成语音的语音单元之间的接合点最少。
[0010] 根据本发明的一个方面,提出一种用于生成合成语音的方法,包括以下步骤:
[0011] 在包含预先录制的语音模板的数据库中搜索与希望合成语音的文本内容最匹配的语音模板;
[0012] 将所述最匹配的语音模板截成多个片断,生成与所述文本内容相同的保留片断以及与所述文本内容不同的差异片断;
[0013] 对与所述差异片断对应的所述文本内容部分进行语音合成;以及
[0014] 将上述合成的与所述差异片断对应的所述文本内容部分的语音与所述最匹配的语音模板的保留片断进行拼接。
[0015] 优选地,所述搜索步骤包括:计算所述文本内容与所述数据库中的每个语音模板之间的编辑距离;选择具有最小编辑距离的语音模板作为最匹配的语音模板;以及确定将所述最匹配的语音模板转变为所述文本内容的编辑操作。
[0016] 优选地,所述计算编辑距离按照如下公式进行:
[0017]
[0018] 其中,S=s1…si…sN表示语音模板的词的序列,T=t1…tj…tM表示所述文本内容的词的序列,E(i,j)表示将s1…si转变为t1…tj的编辑距离,Dist(si,tj)表示用所述文本内容的词tj替换语音模板的词si时的替换处罚,Ins(si)表示插入si的处罚,以及Del(tj)表示删除tj的处罚。
[0019] 优选地,所述确定编辑操作包括:确定编辑的位置和对应的编辑类型。
[0020] 优选地,将所述最匹配的语音模板截成多个片断的步骤包括:按照确定的编辑的位置从所述最匹配的语音模板中截出被编辑的片断,所述被编辑的片断是差异片断,其余的片断是保留片断。
[0021] 根据本发明的另一个方面,提出一种用于生成合成语音的系统,包括:
[0022] 语音数据库,用于存储预先录制的语音模板;
[0023] 文本输入装置,用于输入希望合成语音的文本内容;
[0024] 搜索装置,用于在所述语音数据库中搜索与输入文本内容最匹配的语音模板;
[0025] 语音拼接装置,用于将最匹配的语音模板截成多个片断,生成与所述文本内容相同的保留片断和与所述文本内容不同的差异片断;对与所述差异片断对应的输入文本内容部分进行语音合成;将合成的语音部分与保留片断进行拼接;以及
[0026] 语音输出装置,用于输出对应于输入文本内容的语音。
[0027] 优选地,所述搜索装置进一步包括:计算单元,用于计算所述文本内容与所述语音数据库中的每个语音模板之间的编辑距离;选择单元,用于选择具有最小编辑距离的语音模板作为最匹配的语音模板;以及确定单元,用于确定将所述最匹配的语音模板转变为所述文本内容的编辑操作。
[0028] 优选地,所述语音拼接装置进一步包括:用于将最匹配的语音模板截成多个保留片断和差异片断的截取单元;用于对与差异片断对应的输入文本内容部分合成语音的语音合成单元;以及用于将合成的语音与多个保留片断拼接的拼接单元。

附图说明

[0029] 图1是根据本发明的一个优选实施例的用于生成合成语音的方法的流程图;
[0030] 图2是图1所示方法中搜索最匹配的语音模板的流程示意图;以及
[0031] 图3是根据本发明的一个优选实施例的用于生成合成语音的系统的示意图。

具体实施方式

[0032] 相信通过以下结合附图对本发明具体实施例的详细描述,本发明的上述和其它目的、特征和优点会变得更清楚。
[0033] 图1是根据本发明的实施例的生成合成语音方法的流程图。如图1所示,在步骤101中,对于希望合成语音的文本内容,在包含预先录制好的语音模板的数据库中搜索与其最匹配的语音模板。数据库中的语音模板包含了在某个应用领域中频繁使用的语句文本,以及这些语句事先由同一个人录制好对应的语音。
[0034] 在该步骤中,搜索最匹配的语音模板是基于编辑距离算法实现的,具体的步骤参见图2所示的流程。首先,在步骤201中,计算希望合成语音的文本内容与数据库中的每个语音模板之间的编辑距离。通常编辑距离用于计算任何两个字符串之间的相似性,在本实施例中,字符串是词汇学的词(Lexical Words,简称为LW)构成的序列。假定源LW序列为S=s1…si…sN,目标LW序列为T=t1…tj…tM,则编辑距离用于定义这两个LW序列之间的相似性的度量。源LW中的si与目标LW中的tj之间距离Dis(si,tj)的测量可以有多种标准定义,最简单的方式是在两个LW序列之间进行字符串匹配,如果相等,则距离为0,否则将距离设为1。当然还有其它更复杂的方法来定义两者之间的距离,由于这不属于本发明的范围,此处不再赘述。
[0035] 当比较两个LW序列时,通常两个LW序列之间不是一一对应的,通常会发现在两者之间需要进行一些删除词和/或插入词的操作才能完全对应。因此,可以使用编辑距离模拟两个LW序列之间的相似性,其中编辑就是一系列的操作,包括替换、插入和删除。编辑源LW序列S=s1…si…sN并将其转换为目标LW序列T=t1…tj…tM的成本是所有所需操作的成本的总和,那么编辑距离是在所有可能的将源序列s1…si…sN转变为目标序列t1…tj…tM的编辑序列中的最小成本,这可以通过使用动态规划方法来计算。
[0036] 在本实施例中,如果用E(i,j)表示编辑距离,源LW序列S=s1…si…sN是语音模板的词的序列,目标LW序列T=t1…tj…tM是希望合成语音的文本内容的词的序列,那么可采用下面的公式计算编辑距离:
[0037]
[0038] 其中,Dist(si,tj)表示用文本内容的词tj替换语音模板的词si时的替换处罚(penalty),Ins(si)表示插入si的处罚,Del(tj)表示删除tj的处罚。
[0039] 然后,在步骤205,选择具有最小编辑距离的语音模板作为最匹配的语音模板,这样可以保证后面的拼接操作的次数最少,从而避免具有很多接合点。最匹配的语音模板作为将要合成语音的文本内容的语音母版,经过适当的修改,就能形成所希望的语音。在步骤210,对将最匹配的语音模板转变为希望的文本内容的编辑操作进行确定。通常,最匹配的语音模板与希望的文本内容不完全相同,两者之间还存在一定的差异,需要对最匹配的语音模板进行适当的编辑操作,才能获得希望的文本内容。如上所述,编辑是一系列的操作,包括替换、插入和删除。在该步骤中,需要在最匹配的语音模板上确定进行编辑的位置以及在该位置要进行的编辑的类型,进行编辑的位置可以采用被编辑的内容的左右边界定义。
[0040] 通过以上的步骤,可以获得与希望合成语音的文本内容最匹配的语音模板,并且获得需要对最匹配的语音模板进行编辑的位置和相应的编辑类型。
[0041] 返回图1,在步骤105中,将最匹配的语音模板按照确定的编辑的位置截成多个片断,其中需要被编辑的与希望的文本内容不同的片断是差异片断,差异片断包括替换片断、插入片断和删除片断;其余的与希望的文本内容相同的片断则是保留片断,而保留片断将继续用于合成语音,这样可使得最后的合成语音继承了与人说话几乎完全相同的韵律结构,如重读、词语组织方式、音节周期等,提高合成语音的质量,容易被听众所接受。截取的位置即成为后面拼接操作的接合点。
[0042] 在步骤110中,对与差异片断对应的文本内容部分合成语音片断,这可以采用现有技术的文本语音转换方法实现。合成后的语音片断在步骤115中与保留片断在相应的接合点进行拼接,生成希望的文本内容的语音。拼接操作中的一个关键在于如何无缝、平滑地在接合点连接保留片断和新合成的语音片段,而这种片断接合技术本身是很成熟的,通过仔细处理如音调同步、频谱平滑和能量轮廓平滑等问题,就可以获得可接受的接合质量。
[0043] 通过以上描述可以知道,采用本实施例的基于语音模板的拼接TTS方法,由于语音模板是预先录制的人的语音,因此人说话的韵律结构,如重读、词组织方式、音节周期等,几乎完全相同地被合成的语音承袭,从而极大提高了合成语音的质量,并且通过在句子层面搜索整个句子的片断,可以保证保持原句子的结构不变。此外,采用编辑距离算法搜索最匹配的语音模板,可以保证输出的最匹配模式具有最小的编辑操作次数,与基于音素/音节的通用TTS方法或者基于词/词组的通用TTS方法相比,避免了很多接合点。
[0044] 下面给出根据本发明的方法在天气预报这个具体应用领域中的应用。首先需要在数据库中存储在天气预报中频繁使用的语句模式的语音模板。这些语句模式例如是:
[0045] 模式1:北京;晴;最高温度30度;最低温度20度。
[0046] 模式2:纽约;多云;最高温度25度;最低温度18度。
[0047] 模式3:伦敦;小雨;最高温度22度;最低温度16度。
[0048] 在设计或收集了上述频繁使用的语句模式后,由同一个广播员预先录制好每一个模式的语音模板,分别是语音模板1、2和3。然后将其存储在数据库中。
[0049] 假设需要合成关于西雅图的天气状况的文本内容的语音,例如“西雅图;晴;最高温度28度;最低温度23度”(为简便,以下称为目标模板)。首先,搜索上述数据库,查找最匹配目标模板的语音模板。根据上面所述的编辑距离算法,计算目标模板与数据库中每一个语音模板之间的编辑距离。以语音模板1为例,此时,源LW序列为“北京;晴;最高温度30度;最低温度20度”,目标LW序列为“西雅图;晴;最高温度28度;最低温度23度”,那么它们之间的编辑距离为3。类似地,与语音模板2之间的编辑距离为4,与语音模板3之间的编辑距离也为4。这样,具有最小编辑距离的语音模板为语音模板1,则语音模板1就是最匹配的语音模板。并且,根据编辑距离可获得对语音模板1需要进行3次编辑操作,编辑的位置分别是“北京”、“30”和“20”,并且都是替换操作,即用“西雅图”替换“北京”,用“28”替换“30”,用“23”替换“20”。
[0050] 然后,按照编辑的位置,将语音模板1截成多个片断,分别是“北京”、“晴”、“最高温度”、“30”、“度”、“最低温度”、“20”和“度”8个片断,其中需要进行编辑的“北京”、“30”和“20”片断是与文本内容不同的差异片断,而其余的片断“晴”、“最高温度”、“度”、“最低温度”和“度”是保留片断,接合点在“晴”的左边界,“最高温度”的右边界,“度”的左边界,“最低温度”的右边界以及“度”的左边界。
[0051] 对与差异片断对应的目标模板部分进行语音合成,即对“西雅图”、“28”和“23”合成语音。在这里,合成语音可以采用现有技术的语音合成方法,如通用TTS方法,从而得到合成后的语音片断。将合成后的语音片断与保留片断在相应的接合点进行拼接,这样就形成了目标模板“西雅图;晴;最高温度28度;最低温度23度”。
[0052] 图3是根据本发明的一个优选实施例的合成语音系统的示意图。如图所示,合成语音系统包括语音数据库301、文本输入装置302、搜索装置303、语音拼接装置304以及语音输出装置305。预先录制的语音模板被存储在语音数据库301中,以提供在某个应用领域中频繁使用的语句的语音模板。
[0053] 当希望合成语音的文本内容通过文本输入装置302输入后,搜索装置303访问语音数据库301,以搜索与输入的文本内容最匹配的语音模板,并在找到最匹配的语音模板后,确定将该最匹配的语音模板转变为输入文本内容需要的编辑操作,包括进行编辑的位置和相应的编辑类型。将最匹配的语音模板和相应的编辑操作信息输出到语音拼接装置304中,由语音拼接装置304将最匹配的语音模板截成多个片断(保留片断和差异片断),然后调用通用TTS方法对与差异片断对应的输入文本内容部分进行语音合成,得到相应的合成语音片断,将合成的语音片断与保留片断进行拼接,得到与输入的文本内容对应的语音。最后,与输入的文本内容对应的语音通过语音输出装置305输出。
[0054] 在本实施例中,搜索装置303是基于编辑距离算法实现的,进一步包括:用于计算编辑距离的计算单元3031,该计算单元3031对输入的文本内容与语音数据库301中的每个语音模板之间的编辑距离进行计算;用于选择最匹配的语音模板的选择单元3032,其选择具有最小编辑距离的语音模板作为最匹配的语音模板;以及用于确定编辑操作的确定单元3033,对最匹配的语音模板进行编辑的位置和相应的编辑类型进行确定,编辑的位置可采用被编辑的输入文本内容部分的左右边界定义。
[0055] 此外,语音拼接装置304进一步包括:用于将最匹配的语音模板截成多个保留片断和差异片断的截取单元3041,在该截取单元3041中进行的截取操作是根据编辑的位置进行的;语音合成单元3042,用于对与差异片断对应的输入文本内容部分进行语音合成,可以通过现有技术的通用TTS方法实现;以及用于将合成的语音与多个保留片断拼接的拼接单元3043。
[0056] 本实施例的合成语音系统的各个组件可以采用硬件或软件模块或者硬件与软件的组合来实现。
[0057] 通过以上描述可知,采用本实施例的合成语音系统,可以基于预先录制的语音模板生成合成语音,使得合成语音可以继承人说话的韵律结构,从而大大提高了合成语音的质量。此外,采用编辑距离算法搜索最匹配的语音模板,可以保证输出的最匹配模式具有最小的编辑操作次数,从而避免了很多的接合点。