首页> 中国专利> 语音合成装置、方法和记录语音合成程序的记录介质

语音合成装置、方法和记录语音合成程序的记录介质

摘要

本发明提供一种能够更加自然地拉长合成语音的发声长度的语音合成装置。作为解决方案,首先设定各音素数据的拉长区间。拉长区间不是以元音、辅音为单位设定的,而是用例如音素的音高稳定的区间来设定的。当被提供应拉长发声长度的指示时,帧信息选择部(250)根据该指示内容,对存在于拉长区间内的帧信息的重复播放进行控制。

著录项

  • 公开/公告号CN1661673A

    专利类型发明专利

  • 公开/公告日2005-08-31

    原文格式PDF

  • 申请/专利权人 雅马哈株式会社;

    申请/专利号CN200510007455.7

  • 发明设计人 川原毅彦;

    申请日2005-02-21

  • 分类号G10L13/02;G10L13/04;G10L13/00;

  • 代理机构11112 北京天昊联合知识产权代理有限公司;

  • 代理人何立波;张天舒

  • 地址 日本静冈县

  • 入库时间 2023-12-17 16:29:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-04-06

    未缴年费专利权终止 IPC(主分类):G10L13/06 授权公告日:20070808 终止日期:20150221 申请日:20050221

    专利权的终止

  • 2007-08-08

    授权

    授权

  • 2005-10-26

    实质审查的生效

    实质审查的生效

  • 2005-08-31

    公开

    公开

说明书

技术领域

本发明涉及一种根据所输入的文本信息而生成合成语音的语音合成技术。

背景技术

对所输入的文本信息(「nihao」等)进行单词解析·语法解析等,然后将该文本信息的内容作为合成语音而输出的语音合成装置被广泛使用。在这种语音合成装置中,具有可改变发声速度(发声长度)的功能。例如,在下述专利文献1中,公开了以元音·辅音为单位而使伸缩率变化,由此可改变发声速度的语音合成装置(参照专利文献1)。

专利文献1:特开平6-067685号公报(第3~4页)

发明内容

但是,随着作为合成语音输出的语言种类(例如汉语)不同,虽然能够以元音·辅音为单位改变伸缩率,从而改变发声速度,但对于该语言体系,以这样的单位改变伸缩率不是一般规则,所以会出现合成语音听起来不自然等问题。

本发明就是鉴于上述问题而提出的,其目的在于,提供一种能够更自然地拉长合成语音发声长度的语音合成装置、语音合成方法和记录语音合成程序的记录介质。

为了解决上述问题,本发明的语音合成装置的特征在于,具有:获取单元,从被输入语音合成装置的文本信息,获取用于指定合成语音的音素的音素指定信息和用于指定该合成语音的发声长度的发声长度指定信息;存储单元,存储被设定了拉长区间的、具有规定发声长度的每个音素的音素数据;抽取单元,从上述存储单元抽取出与上述音素指定信息所表示的音素对应的音素数据;以及播放控制单元,当上述发声长度指定信息所表示的发声长度比所抽取出的上述音素数据的发声长度长时,按照上述发声长度信息所表示的发声长度和上述音素数据的发声长度之间的差,来控制上述拉长区间内的上述音素数据的播放。

根据上述结构,当发声长度指导信息所表示的发声长度比音素数据的发声长度长时,对拉长区间的音素数据进行重复播放等的控制。其中,如果将音素的音高稳定的区间设定为拉长区间,则与以元音、辅音为单位来设定拉长区间的情况相比,可以得到拉长方式更自然的合成语音。

这时,优选这样的方式,即上述音素数据由多个帧信息构成,这些帧信息是通过以规定周期切割具有上述规定发声长度的音素而得到的,当上述发声长度指定信息所表示的发声长度比所抽取出的上述音素数据的发声长度长时,上述播放控制单元按照上述发声长度信息所表示的发声长度和上述音素数据的发声长度之间的差,来控制构成上述音素数据的多个帧信息中、存在于上述拉长区间内的帧信息的播放。

此外,优选这样的方式,即在上述拉长区间内存在多个帧信息的情况下,上述播放控制单元分别决定存在于该区间内的各帧信息的播放次数,然后按照所决定的播放次数来播放上述各帧信息,由此来控制存在于上述拉长区间内的多个帧信息的播放。

发明的效果

如上所述,根据本发明,可以更加自然地拉长合成语音的发声长度。

附图说明

图1是表示本实施方式的语音合成装置的功能性结构的框图。

图2是例示出该实施方式的文本信息的图。

图3是例示出该实施方式的音素数据库的登录内容的图。

图4是例示出该实施方式的音素数据的结构的图。

图5是例示出该实施方式的音素数据的合成波形的图。

图6是用于说明包含在该实施方式的音素数据中的帧信息的播放动作的图。

图7是用于说明该实施方式的帧信息的选择动作的图。

图8是用于说明该实施方式的帧信息的选择动作的图。

图9是表示该实施方式中所设定的拉长区间与合成语音波形的关系的图。

具体实施方式

以下参照附图,对本发明的实施方式进行说明。

A.本实施方式

图1是表示本实施方式的语音合成装置100的功能性结构的图。在本实施方式中,假定语音合成装置100安装在移动电话或PHS(Personal Handyphone System:注册商标)、PDA(Personal DigitalAssistance)等对硬件资源有较大限制的移动终端中的情况,但本发明不限于此,可以应用在各种电子设备中。

输入部210将经由未图示的操作部输入的文本信息提供给文本解析部220。图2是例示了文本信息的图。

图2所示的文本信息由以下部分构成:音素文字列「na」,用于指定应发音的合成语音的音素;以及发声长度记号「_」,用于指定该音素的发声长度。图2所示的发声长度记号「_」意味着将发声长度拉长规定长度(例如数ms等),连续的发声长度记号的数量越多,对应的音素(发声长度记号前的音素文字列等)的发声长度越长。

在本实施方式中,以罗马字标记音素文字列,但不限于此,也可以用汉字以及片假名等各种文字、记号来标记。此外,发声长度不仅可以用发声长度记号「_」来标记,也可以用表示发声长度倍率的数字(例如「2」)等来标记。这样,可以相应于语音合成装置100的设计等,来适当设定、改变如何标记文本信息的方法。

文本解析部220对从输入部210提供的文本信息进行解析,然后将解析结果分别提供给音素数据取得部230、帧信息选择部250。具体地讲,当文本解析部220从输入部210接收到文本信息时,将该文本信息分解为音素文字列和发声长度记号。然后,文本解析部220从音素文字列中抽取出音节单位的音素(图2中的「na」),同时从紧接着各音素文字列的发声长度记号(图2中紧接着「na」的「_」)中求出对应音素的发声长度。

其中,对于发声长度,例如可以利用下述计算式(1)等求出,但利用什么样的计算式等来求出发声长度是任意的。

Td=Ts*(n+1)         ……(1)

Td:文本信息所表示的音素的发声长度

Ts:没有被赋予发声长度记号的音素的基准发声长度

N:发声长度记号的数量

文本解析部220当从文本信息中抽取出音节单位的音素,同时求出该音素的发声长度时,生成用于指定各音素的音素信息(音素指定信息),然后提供给音素数据取得部230,另一方面,生成用于指定所求出的发声长度的发声长度信息(发声长度指定信息),然后提供给帧信息选择部250。

音素数据取得部(抽取单元)230将从文本解析部220提供的音素信息作为检索关键字,对音素数据库240进行检索,取得与音素信息所表示的音素对应的音素数据。图3是例示出音素数据库240的登录内容的图。如图3所示,在音素数据库(存储单元)240中,登录有表示特定朗读者发出的音节单位的各音素(「a」、「na」、……「niang」等)的一系列音素数据1~M、以及一系列音素数据的数量(以下称为登录音素数据数量)等。

图4是例示出表示某一音素(例如「niang」)的音素数据结构的图。

如图4所示,音素数据具有:音素识别编号,用于识别各音素数据;帧数量信息,表示包含在各音素数据中的帧信息的数量;多个帧信息,包含在各音素数据中;以及拉长区间设定信息,用于设定后述的拉长区间。所谓的帧信息,例如图5的A所示,是指通过以规定周期(例如10(ms))切断具有规定发声长度(在图5的A中为390(ms))的音素而得到的信息。

图5的A是例示出原封不动地播放(正常播放)音节单位的音素数据「niang」时的合成波形的图,图5的B是例示出均匀地拉长音素数据「niang」的辅音之后部分(具体地讲,是「iang」)时的合成波形的图,图5的C是例示出在拉长区间中拉长音素数据「niang」时的合成波形的图。另外,图5的A例示出了基准发声长度Ts=390(ms)情况下播放(发声)音素数据「niang」时的合成波形,图5的B和图5的C均例示出了发声长度Td=1560(ms)情况下播放「niang」音素数据时的合成波形。此外,图5的A~C中,分别以20ms/块、50ms/块、50ms/块表示横轴。

图4所示的第一~第n帧信息,分别是表示图5的A所示的第一~第n帧的语音特征的信息,是由通过对各帧进行共振峰分析而得到的共振峰信息(成对的共振峰频率和共振峰幅度等构成)等构成的(省略图示)。对于帧信息,只要是能够生成上述合成波形即可,并不限定为包含共振峰信息等的构成。

另一方面,图4所示的拉长区间设定信息是用于设定图5的A所示的拉长区间的信息,它由以下部分构成:开始帧信息编号,用于确定拉长区间开始的帧信息;以及结束帧信息编号,用于确定拉长区间结束的帧信息。如图5所示,在本实施方式中,不是以元音、辅音为单位来设定拉长区间(参照发明要解决的技术问题),而是例如将音素的音高稳定的区间设定为拉长区间。

通过进行这样的设定,与以元音、辅音为单位来拉长合成语音发声长度的情况相比(参照图5的B),可以更自然地进行拉长(参照图5的C)。另外,关于为了拉长发声长度而进行的具体处理,将在后面说明。

音素数据取得部230从音素数据库240中取得与音素信息对应的音节单位的音素数据(「niang」、「a」等),然后将这些各音素数据提供给帧信息选择部250。

帧信息选择部(播放控制单元)250当从音素数据取得部230接收到音素数据,同时从文本解析部220接收到发声长度信息时,根据这些信息,判断发声长度信息所表示的发声长度Td是否比音素数据的基准发声长度Ts长。以图5为例进行说明,例如相对于所提供的音素数据的基准发声长度Ts为390(ms),如果发声长度信息所表示的发声长度Td为1560(ms),则帧信息选择部250就会判断发声长度信息所表示的发声长度Td比该音素数据的基准发声长度Ts长。

如果进行了这样的判断,则帧信息选择部250求出为了实现发声长度Td而必需的帧信息数量n′(以下称为总帧信息数量)。总帧信息数量n′例如可以用下述计算式(2)来求出,但可以适当改变用何种方法求出。

n′=n*(Td/Ts)        ……(2)

n′:总帧信息数量

n:音素数据中包含的帧信息数量

帧信息选择部(播放控制单元)250求出总帧信息数量n′后,按照规定规则选择音素数据中包含的各帧信息(后面详细说明),由此来补充为了实现发声长度Td而不足的帧信息数量。

图6的A是例示出某一音素数据中包含的8个(n=8)帧信息的图,图6的B是用于说明利用图6的A所示的音韵数据来播放发声长度信息等所表示的12个帧信息(n′)时的动作图。另外,在图6中,纵轴表示被播放的帧信息的帧信息编号,横轴表示帧信息的播放时间。

如图6的A所示,在音素数据中包含的第1~第8帧信息中,第4帧信息被设定为拉长区间的开始帧信息,第6帧信息被设定为拉长区间的结束帧信息。另外,将哪一个帧信息作为拉长区间的开始帧信息(或结束帧信息),可以由拉长区间设定信息来适当地设定·变更。

这些音素信息中包含的各帧信息,如图6的B所示被播放。即,对于处于拉长区间之外的帧信息(第1~第3帧信息、第7、第8帧信息),每个仅播放1次(换句话说,重复播放0次)。与此相对,对于处于拉长区间内的帧信息(第4~第6帧信息),播放2次或3次(换句话说,重复播放1次或2次)。具体地讲,在处于拉长区间内的第4~第6帧信息中,对于第4帧信息和第5帧信息,分别重复播放1次,而对于第6帧信息,重复播放2次。这样,在本实施方式中,当发声长度指定信息中表示的发声长度比音素数据的基准发声长度长时,根据发声长度指定信息中表示的发声长度与上述基准发声长度之间的差,来重复播放处于拉长区间内的帧信息(换句话说,控制拉长区间内的音素数据的播放)。上述音素数据的播放控制是由以下说明的帧信息选择部(播放控制单元)250、语音信号生成部(播放控制单元)270来实现的。

(帧信息的选择动作)

图7和图8是用于说明帧信息选择部250进行的帧信息选择动作的图。在以下的说明中,假定进行图6所示的播放的情况。

帧信息选择部250首先将选择帧信息编号FrmTimer设置为「1」,同时将选择循环次数LoopTimer设定为「0」。其中,选择帧信息编号FrmTimer表示被选择的帧信息的帧信息编号,选择循环次数LoopTimer表示在拉长区间内选择帧信息编号FrmTimer的帧信息被重复选择的次数(后面详细说明)。此外,帧信息选择部250将后述的选择次数变更标记LoopNumIncFrag设置为“False”,然后计算出以下说明的选择次数LoopNum、选择增加帧信息编号LoopNumIncFrm(步骤S1)。

(选择次数LoopNum的算法)

帧信息选择部250首先利用下述计算式(a1)~(a3),求出帧信息的选择次数(播放次数)LoopNum。

(拉长区间帧信息数量)=(结束帧信息编号)-(开始帧信息编号)+1                ……(a1)

(在拉长区间内播放的帧信息数量)=(总帧信息数量)-(在拉长区间外播放的帧信息数量)            ……(a2)

选择次数LoopNum=(在拉长区间内播放的帧信息数量)/(拉长区间帧信息数量)            (a3)

(其中,计算式(a3)中舍去小数以下部分)

具体地说,帧信息选择部250首先利用计算式(a1),计算出拉长区间帧信息数量。其中,由于结束帧信息编号是「6」,开始帧信息编号是「4」(参照图6),所以拉长区间帧信息数量是「3」。接下来,帧信息选择部250利用计算式(a2),计算出在拉长区间内播放的帧信息数量。其中,由于总帧信息数量是「12」,在拉长区间外播放的帧信息数量是「5」(参照图6),所以在拉长区间内播放的帧信息数量是「7」。然后,帧信息选择部250将由计算式(a1)、(a2)得到的结果代入计算式(a3),由此求出选择次数LoopNum。其中,由于拉长区间帧信息数量是「3」,在拉长区间内播放的帧信息数量是「7」,所以舍去小数以下部分而得到的选择次数LoopNum是「2」。

(选择增加帧信息编号LoopNumIncFrm)

接下来,帧信息选择部250利用下述计算式(b1),求出选择增加帧信息编号(具体地讲,是将要增加选择次数LoopNum的帧信息的帧信息编号)LoopNumIncFrm。但是,如果在利用上述计算式(a3)求选择次数LoopNum时没有余数(即被整除),则不利用下述计算式(b1)求选择增加帧信息编号LoopNumIncFrm,而是将选择增加帧信息编号LoopNumIncFrm设为「0」。

选择增加帧信息编号LoopNumIncFrm=(结束帧编号+1)-{(在拉长区间内播放的帧信息数量)-选择次数LoopNum*(拉长区间帧信息数量)}                    (b1)

其中,由于结束帧编号是「6」,在拉长区间内播放的帧信息数量是「7」,选择次数LoopNum是「2」,拉长区间帧信息数量是「3」,所以选择增加帧信息编号LoopNumIncFrm是「6」。

帧信息选择部250按照这种方式求出选择次数LoopNum、选择增加帧信息编号LoopNumIncFrm之后,将求得的结果存储在存储器(图示省略)中,进入步骤S2。

帧信息选择部250进入步骤S2之后,判断选择帧信息编号FrmTimer的帧信息是否存在于拉长区间内。具体地讲,帧信息选择部250对选择帧信息编号FrmTimer和包含在音素数据中的开始帧信息编号(或结束帧信息编号)等进行比较,由此来判断上述帧信息是否存在于拉长区间内。

在开始帧信息编号和结束帧信息编号分别是「4」、「6」(参照图6),而选择帧信息编号FrmTimer例如是「1」的情况下,帧信息选择部250判断在拉长区间内不存在选择帧信息编号FrmTimer为「1」的帧信息(步骤S2:NO)。当帧信息选择部250根据该判断结果而进入步骤S3后,选择选择帧信息编号FrmTimer为「1」的帧信息,然后使选择帧信息编号FrmTimer递加「1」(步骤S4)。随后,帧信息选择部250判断递加后的选择帧信息编号FrmTimer是否比包含在音素数据中的帧信息数量(以下称为音素帧信息数量)FrmNum大(即是否应该结束)(步骤S4→步骤S5)。

由于递加后的选择帧信息编号FrmTimer是「2」,而音素帧信息数量FrmNum是「8」(参照图6),所以帧信息选择部250判断还不应该结束(步骤S5:NO),从而返回步骤S2,重复执行步骤S2→步骤S3→步骤S4→步骤S5这一系列处理。

然后,当选择帧信息编号FrmTimer变为「4」,并判断帧信息编号FrmTimer为「4」的帧信息存在于拉长区间内时(步骤S2:YES),帧信息选择部250进入步骤S6,对是否增加该帧信息的选择次数LoopNum进行判断。具体地讲,帧信息选择部250判断选择次数变更标记LoopNumIncFrag是否为“False”,并且判断选择帧信息编号FrmTimer和在步骤S1中求得的选择增加帧信息编号LoopNumIncFrm是否一致(步骤S6)。选择次数变更标记LoopNumIncFrag是这样的标记,当由帧信息选择部250对选择次数LoopNum进行递加时,选择次数变更标记LoopNumIncFrag从“False”变为“True”(参照步骤11)。

其中,由于选择帧信息编号FrmTimer是「4」,选择增加帧信息编号LoopNumIncFrm是「6」,所以帧信息选择部250判断它们不一致(步骤S6:NO)。在进行了这样的判断之后,帧信息选择部250进入步骤S7,选择选择帧信息编号FrmTimer的帧信息,然后使选择循环次数LoopTimer递加「1」(步骤S8)。

当帧信息选择部250进入步骤S9之后,判断选择次数LoopNum与选择循环次数LoopTimer是否一致。这时,由于在步骤S1中求得的选择次数LoopNum是「2」,而选择循环次数LoopTimer是「1」(步骤S9:NO),所以帧信息选择部250返回步骤S2。然后,帧信息选择部250进入步骤S2→步骤S6→步骤S7→步骤S8→步骤S9,再次判断选择次数LoopNum与选择循环次数LoopTimer是否一致。其中,由于选择次数LoopNum和选择循环次数LoopTimer都是「2」(步骤S9:YES),所以帧信息选择部250进入步骤S10,对选择循环次数LoopTimer进行初始化(即将选择循环次数LoopTimer设定为「0」)。

帧信息选择部250在对选择循环次数LoopTimer进行初始化之后,使选择帧信息编号FrmTimer递加「1」,然后判断递加后的选择帧信息编号FrmTimer是否比音素帧信息数量FrmNum大(即是否应该结束)(步骤S4→步骤S5)。

由于递加后的选择帧信息编号FrmTimer是「5」,而音素帧信息数量FrmNum是「8」(参照图9),所以帧信息选择部250判断还不应该结束(步骤S5:NO),从而返回步骤S2,重复执行上述一系列处理。

然后,帧信息选择部250当判断选择次数变更标记LoopNumIncFrag是“False”,并判断选择帧信息编号FrmTimer与选择增加帧信息编号LoopNumIncFrm「6」一致时(步骤S6:YES),进入步骤S11。帧信息选择部250在步骤S11中,使选择次数LoopNum递加「1」,同时使选择次数变更标记LoopNumIncFrag从“False”切换为“True”(步骤S11),然后返回步骤S7。该递加后的选择次数LoopNum也被应用于这之后的拉长区间的帧处理中。即,在使利用上述计算式(a3)求出的选择次数(即没有被整除情况下的选择次数)LoopNum递加后的情况下,可以从所设定的拉长区间的最后帧开始向最初帧,按顺序(换句话说,即按逆序回溯)应用递加的选择次数LoopNum。举一个具体例子进行说明,在上述实施例中,由于结束帧编号和选择增加帧信息编号LoopNumIncFrm都是「6」,所以仅对拉长区间的最后帧(帧编号:「6」)应用了递加后的选择次数LoopNum,但在例如结束帧编号是「6」,在拉长区间内播放的帧信息数量是「8」,拉长区间帧信息数量是「3」的情况下,由上述计算式(a3)求出选择次数LoopNum是「2」,由上述计算式(b1)求出选择增加帧信息编号LoopNumIncFrm是「5」。在该情况下,由于结束帧编号是「6」,而选择增加帧信息编号LoopNumIncFrm是「5」,所以对于拉长区间的最后帧(帧编号:「6」)及其前一个帧,即从最后帧向前回溯一个的帧(帧编号:「5」),可以应用递加后的选择次数LoopNum。

当返回步骤S7之后,帧信息选择部250重复执行上述一系列处理。然后,帧信息选择部250选择最后的帧信息(选择帧信息编号FrmTimer为「8」的帧信息),当检测到递加后的选择帧信息编号FrmTimer「9」比音素帧信息数量FrmNum「8」大时(步骤S5:YES)时,结束以上说明的帧选择动作。

帧信息选择部250当以上述方式按顺序选择包含在各音素数据中的帧信息后,按顺序将这些帧信息提供给语音信号生成部270。语音信号生成部270根据从帧信息选择部250提供的帧信息,生成合成语音信号。其结果是如图9所示,相对于具有基准发声长度Ts的合成语音,拉长区间被大致均匀拉长的发声长度Td(>Ts)的合成语音,通过扬声器(图示省略)等被输出到外部。

如上说明,采用本实施方式的语音合成装置,将音素音高稳定的区间等设定为拉长区间,通过重复选择·播放存在于该拉长区间中的帧信息,来生成发声长度比基准发声长度长的合成语音。由此,与以元音、辅音为单位设定拉长区间的情况相比(参照为解决技术问题而采取的技术方案部分),可以获得拉长方式更加自然的合成语音。对于例如汉语那样,在一个音素中具有多个元音的复合元音、以及除了元音还有鼻音那样的语言的情况,上述方法特别有效。

B.变形例

(变形例1)

在以上说明的本实施方式中,在由计算式(a3)求得的选择次数LoopNum没有被整除的情况下,从所设定的拉长区间的最后帧开始向最初帧按顺序应用递加后的选择次数LoopNum,但不限于此。也就是说,可以大致均等地拉长拉长区间,例如可以从拉长区间的最初帧开始按顺序选择作为应用对象的帧,或以规定间隔(例如按照3个帧中选择1个帧的比例等)来选择作为应用对象的帧。

(变形例2)

此外,在本实施方式中,将音高稳定的区间设定为拉长区间,但也可以将共振峰频率或共振峰幅度稳定的区间设定为拉长区间。在该情况下,只要将低次共振峰稳定的区间设定为拉长区间即可。另外,在各音素中设定的拉长区间不限于1个,可以设定多个。

(变形例3)

此外,在本实施方式中,对在音素数据库240中登录了一系列音素数据1~M、登录音素数据数量的情况进行了说明,但除此之外,也可以登录用于指定该音素的音高的C(哆)这样的音高信息(参照图3的括号中部分)、每个帧的共振峰信息数量(共振峰数量信息:参照图3的括号中部分)。

(变形例4)

此外,为了通过CPU(或DSP)执行存储在ROM等存储器中的程序,以实现以上说明的语音合成装置100的各种功能,可以将上述程序记录在CD-ROM等记录介质上而颁布,或者可以经由互联网等通信网络来颁布。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号