一种音标到语音的转换方法

文档序号:2824583阅读:335来源:国知局
专利名称:一种音标到语音的转换方法
技术领域
本发明涉及音标到语音的转换方法。
背景技术
“语音”是一种最直接、最人性化的人机交互手段,随着科学技术的发展、现代化水平的提高,各类语音的需求层出不穷,但是由于TTS(Text-to-Speech,文本到语音的转换)对于运算和存储资源要求比较高,使得TTS技术主要局限在服务器级和桌面级的应用。然而,近几年随着嵌入式技术的蓬勃发展,手机、车载GPS系统、电子词典、多语言翻译机、智能信息终端、智能玩具、智能家电、移动办公设备等嵌入式设备越来越受到社会的认同,为了满足用户对于嵌入式设备更便捷、更自然使用的需求,将语音技术应用到嵌入式设备中成了必然的趋势。
公开日为2003年4月2日,申请号为CN01130994.6的中国专利公开了一种英语音标分解与合成的方法,该方法为一种分解英语的K.K音标并依音调加以分类的方法,可将已知音标分解为数段基本发音单元,再寻找相对应的基本音波形数据合成为语音,具有降低原始语音数据量并保持原始语音音调的优点。但是,该方法同时存在以下缺点1)该方法在分解合成时需要运用大量的规则进行逻辑运算,操作复杂,会占用很多的CPU和系统内存资源,不适合于嵌入式系统使用。
2)该方法设置了大量规则来分解合成音标,这些规则是英语的K.K.音标所特有的,不能用于其他音标或者其他语言。
3)该方法通过设置大量规则来分解合成音标,这些抽象出来的规则并不具有普遍的适用性,使得合成结果不够准确,使用也不够灵活。

发明内容
本发明要解决的技术问题是提出的一种音标到语音的转换方法,该方法不受音标类型和语言的限制,且占用资源少,适合在嵌入式系统中使用。
为了解决上述技术问题,本发明提供了一种音标到语音的转换方法,包括以下步骤(a)建立一个音素和基本音的对应表,将该表和表中基本音对应的语音数据保存用于音标到语音转换的装置中;(b)所述装置接收到输入的要分解的音标后,先将其按不同划分方式分解为若干个音素序列;(c)对每个音素序列,分别根据其包含的音素到所述对应表中搜索匹配的基本音序列,选择其中最优的一条搜索路径所匹配到的基本音序列作为所述音标的匹配结果;(d)根据所述音标匹配到的基本音序列找到对应的语音数据,合成出该音标的语音。
进一步地,上述转换方法还可具有以下特点所述步骤(a)进一步分为以下步骤(a1)对训练样本的音标进行分解,记录各个音标分解得到的音素,以及该音素实际发音对应的基本音;(a2)对每种音素,从记录的与其对应的基本音中选择一种,在音素和基本音对应表中保存该音素与该基本音的对应关系;(a3)将所述音素和基本音对应表以及表中基本音对应的语音数据保存到所述音标到语音转换的装置中,供实际转换时使用。
进一步地,上述转换方法还可具有以下特点所述步骤(a1)和(b)将音标分解为音素时,先将音标划分为一个或多个由音标中字符构成的基本符号,然后对每一基本符号,根据其组成字符在该音标中的语音特征添加重音符号、前接音符号和后接音符号中的一种或任意组合,得到该音标分解出的各个音素。
进一步地,上述转换方法还可具有以下特点所述步骤(a1)中记录与音素实际发音对应的基本音时,是根据音素在训练样本中的实际发音情况,确定一个与其对应的实际发音符号并记录,该实际发音符号中包括一个基本发音符号,或包括一个基本发音符号和一个重音符号。
进一步地,上述转换方法还可具有以下特点所述步骤(a1)中记录与音素实际发音对应的基本音时,在确定了音素对应的实际发音符号后,还在该符号后添加音量符号和/或音速符号,在所述步骤(d)进行语音合成时,还根据所述音量符号和/或音速符号对语音数据进行调整。
进一步地,上述转换方法还可具有以下特点所述步骤(a1)中对训练样本音标的分解和记录是通过人工完成的,或者是程序进行分解和记录后,由人工加以校对而完成的。
进一步地,上述转换方法还可具有以下特点所述步骤(a)和步骤(b)之间还包括以下训练步骤(i)以训练样本的音标为输入,运行所述装置上的音标分解和匹配程序,按照步骤(b)和步骤(c)同样方式处理,得到各个音标匹配的基本音序列;(ii)将所述装置匹配得到的基本音序列与手工对训练样本分解或经手工校对得到的基本音序列进行比较,判断其准确率是否达到要求,如果达不到要求,执行步骤(iii),如果达到要求,训练成功,执行步骤(b),且在步骤(b)中使用安装了该训练好的音标分解和匹配程序的所述音标到语音转换装置对输入音标进行分解;(iii)修改搜索时对代价成本的计算方法,返回步骤(i)。
进一步地,上述转换方法还可具有以下特点所述步骤(b)中,得到分解出的音素序列后,还在对应于发音中需要停顿的地方插入静音符号,再执行步骤(c)。
进一步地,上述转换方法还可具有以下特点所述步骤(a)中保存基本音对应的语音数据时,先对数据进行压缩再保存;所述步骤(d)中找到压缩的语音数据后,先要对数据解压。
与现有技术相比,本发明具有如下显著优点1)本发明利用一个音素和基本音的对应表,用搜索对应表代替了音标分解过程中的复杂运算,大大减少了对CPU和内存资源的占用,特别适用于嵌入式系统。当然,同样可应用于PC机或其它装置。
2)本发明分解音标时,只是充分利用了音标的自身语音规则,不设置某一音标所特有的规则,因而不受音标类型和语言的限制,可以分解英语的K.K音标或者其它音标,也可以分解其它语言。
3)本发明由于在分解和匹配过程中,利用了训练样本的人工分解结果产生所述对应表,并对用于语音分解和匹配程序进行训练,因而合成的音标准确、使用灵活。


图1为本发明实施例音标分解和记录过程的流程图。
图2为本发明实施例对音标分解和匹配程序的训练过程的流程图。
图3为本发明实施例实际使用中音标分解过程的流程图。
具体实施例方式
下面结合附图和具体实施例对本发明作进一步的介绍,但不作为对本发明的限定。
本实施例是一种音标到语音的转换方法,主要用于单词的发音,也可以用于短语发音。可以分为音标分解与匹配方法、语音合成方法。
下面先对本发明的两个重要术语进行一下定义音素指对音标分解得到的一个基本单元,用一个符号序列表示,该符号序列总是包括一个由音标中字符构成的基本符号,还可以包括若干用于表示语音特征的附加符号。
音素序列是指一个单词或者短语分解得到的一个或多个音素的总称。
基本音指用于语音合成的一个基本单元,用一个符号序列表示,该符号序列总是包括一个对应于语音数据的实际发音符号,还可以包括若干用于表示韵律特征的附加符号。
基本音序列是指一个单词或者短语匹配到的一个或多个基本音的总称。
本发明中,用一个基本音来记录一个音素的实际发音情况。
本实施例在进行实际的音标到语音的转换前,先进行对训练样本音标的分解和记录过程和对音标分解和匹配程序的训练过程。
对训练样本音标的分解和记录过程如图1所示,是由人工完成的,包括以下步骤步骤110选择训练样本,由人工对训练样本中单词或短语的音标进行划分,得到一个或多个由音标中字符构成的基本符号;训练样本可以是单词或短语,数量可自选。先以KK音标的分解实例加以说明。
输入的训练样本为a_good_deal_ofK.K.音标为/6′gUddil6v/手工分解的基本符号序列为6gUd dil 6 v由于K.K.音标在PC机上显示时,有些发音显示较困难,所以上面使用了一种显示替代方案用/6′gUddil6v/表示/’gu:ddilv/。本发明在手工分解时并不局限于特定的一种将音标方式划分基本符号的方式。
步骤120,对每一基本符号,根据其组成字符在该音标中的重音、前接音和后接音情况,附加上代表重音、前接音和后接音的符号,得到该单词或短词分解出的各个音素;对于重音,用接在基本符号后周“.”分隔开的符号表示,“1”表示非词尾重音,“2”表示非词尾次重音,“3”表示非词尾音,“4”表示词尾重音,“5”表示词尾次重音,“6”表示词尾音。
对于前接音,用接在重音符号后用“.”分隔开的符号表示,如用“h”表示p,t,k,h,用“1”表示!,1,用“U”表示o,u,U,用“<”表示其它情况,等等。
对于后接音,用接在前接音符号后用“.”分隔开的符号表示,如用“c”表示o,c,用“a”表示“x,6,3,2,!,0,M,^,a”,用“n”表示n,m,7,用“>”表示其它情况,等等。
由此,上述训练样本a_good_deal_of分解得到的音素序列为6.3.<.> gUd.1.<.> dil.3.<.a 6.6.1.> v.0.<.>
其中6.6.1.>表示此音素发音为/6/,为词尾音,前接音为/1/类,后接音为/>/类。
在别的实施例中,还可以在基本符号后加上更多的反映其它语音特征的符号,这样分解得到的音素可以更细致地区分各种不同的情况,提高音标到语音转换的准确性。或者,如果对性能要求不高,也可以只附加一个或两个符号,甚至不附加符号。
步骤130,对分解得到的音素,根据其在该单词或短语中的实际发音情况,确定一个与其对应的实际发音符号并记录;实际发音符号进一步由一个基本发音符号加上表示重音和音调的符号组成。一个实际发音符号对应于一个实际的语音波形,该波形可以从录制的训练样本的发音中截取出来。
基本发音符号为一个或多个字符,与音素有些相似,但根据实际发音进行了一些变形。
接在基本发音符号后用“_”分隔开的是重音符号“_1”表示头部或中部非重音;“_2”表示头部或中部重音;“_3”表示尾部非重音;“_4”表示尾部重音或单音节词。
接在重音符号后用“_”分隔开是音调符号如“_1”、“_2”等。该符号不是必须的。
步骤140,在每个实际发音符号后增加表示其在该单词或短语中的音量和音速的符号,构成该单词或短语的各个基本音;
接在重音或音调符号后,用“.”分隔开的是音量符号“0”表示降低音量,“1”表示正常音量,“2”表示增大音量。
接在音量符号后用“.”分隔开的音速符号“0”表示慢速,“1”表示正常速度,“2”表示快速。
由此,上述训练样本a_good_deal_of可记录如下输入的训练样本为a_good_deal_of分解的基本符号序列为6 gUd dil 6 v记录的基本发音符号序列为6 gu ii6 16 v记录的实际发音符号序列为6_1_2 gu_2 ii6_1 l6_3 v_1记录的基本音序列为6_1_2.1.1 gu2.1.1 ii6_1.1.1 l6_3.0.1 v_1.1.1。
例如,6_1_2.1.1表示的含义是音素为“”,头部或中部非重音,正常音量,正常速度。
在其它实施例中,在实际发音符号后可以加上更多用于表示其它发音特征的符号,或者,在要求不高时,也可以不带有上述表示韵律特征的音量和音速符号。
步骤150,对训练样本中所有单词和短词的音标,记录其分解得到的各个音素与每个音素对应的基本音,对每种音素,从记录的与其对应的基本音中选择一种建立两者的对应关系,并保存在一个音素和基本音对应表中;选择时,可以从音素对应的多种基本音中选择使用次数最多的一种基本音建立与该音素的对应关系,但不局限于此。
下面是该对应表局部的一个示例6.3.<.>6_1_2.1.1gUd.1.<.>gu_2.1.1dil.3.<.aii6_1.1.1
6.6.1.>l6_3.0.1v.0.<.>v_1.1.1左边的字段是音素,右边的字段是它对应的基本音。对应表中还可以保存一些静音符号,如用符号“-”来代表一段静音,“-.n”代表n段时长静音。
上述训练样本的个数可以根据需要任意选择。
下面再举两个实例,一个是日文的分解,给出3个单词的分解结果1)单词図書館音标/としよかん/分解得到的音素为/と/+/しょ/+/かん/分解后音素对应的基本音为と_1.1.1 しよ_2.1.1 かん_3.1.12)单词万年筆音标/まんねんひつ/分解后音素对应的基本音为まん_1.1.1 ねん_2.1.1 ひつ_3.1.13)单词郵便局音标/ゆうびんきよく/分解后音素对应的基本音为ゆう_1.1.1 びん_2.1.1 きよ_3.1.1く_3.1.1另一个实例是法语的分解,给出两个单词的分解结果1)单词madame音标/ma′dam/分解得到的音素为/ma/+/da/+/m/分解后音素对应的基本音为ma_1.1.1 da_2_m.1.1 m_3.1.12)单词asseyez音标/asEje/分解得到的音素为/a/+/sE/+/je/
分解后音素对应的基本音为a_1.1.1 sE_3_a.1.1 je_4_e.1.1分解这两个实例时,同对英文的分解原则是基本相同的,但可能会根据各个语言的特点对上述的重音等相关规定做一些修改。
在描述对音标分解和匹配程序的训练过程之前,先对本实施例的音标分解和匹配程序的组成进行一下介绍,该程序主要包括音标分解子程序和搜索匹配子程序,其中由上述步骤110-步骤150所获得的音素和基本音对应表以数据库的形式被所述搜索匹配子程序所调用。
音标分解子程序用于将输入音标按不同划分方式进行分解,得到若干个音素序列。其中将输入音标划分为基本符号时可以为随机任意划分,也可以制订一些简单的划分规则,例如/6′gUddil6v/可能分解为6 gUd dil6v;6gUd dil6v;6 gUd dil6 v等各种情况,然后在得到的各个基本音符号后按步骤120的方式加上附加符号就得到了若干个音素序列。
搜索匹配子程序根据音标分解子程序得到的若干音素序列,分别搜索所述音素和基本音对应表以寻找相匹配的基本音序列,将最优搜索路径匹配到的基本音序列作为匹配结果。该搜索方法可以采用Viterbi搜索算法。
对音标分解和匹配程序的训练过程如图2所示,包括以下步骤步骤210,输入训练样本中单词或短语的音标,运行音标分解子程序,将音标按不同划分方式分解成若干个音素序列;将音标分解为音素序列的步骤与人工分解是相同的,分解出的音素也包括由音标中字符组成的基本符号和表示这些字符在音标中重音、前接音和后接音情况的附加符号;步骤220,运行搜索匹配子程序,对每个音素序列,根据其包含的音素用Viterbi方法在音素与基本音对应表中进行搜索,计算每种搜索路径的代价成本(cost),选择出其中的最优路径,将该路径匹配到的基本音序列作为该音标的匹配结果;例如/6′gUddil6v/可能分解为6 gUd dil6v; 6 gUd di l6v; 6 gUd dil6v等各种情况,但是,只有根据/6/ /gUd/ /dil/ /6/ /v/音素序列进行搜索时代价成本最大,则将该搜索路径匹配到的基本音序列作为匹配结果。
步骤230,将音标分解和匹配程序最终匹配到的基本音序列和手工分解得到的基本音序列相比较,判断其准确率是否达到要求,如果达不到要求,则修改搜索匹配子程序中代价成本(cost)的计算方法,返回步骤210再次运行修改后的音标分解和匹配程序,如果达到要求,则程序训练成功,结束。
本实施例采用的语音合成方法与中国专利CN01130994.6基本相同,也是采用语音波形拼接的合成技术。不同之处在于,先将对应于基本音的语音波形的数据进行压缩后再保存在相应语音合成程序的数据库中,可以采用现有的各种语音压缩算法。基本音对应的语音波形可以从录制的训练样本的语音波形中切割得到,也可以利用已有的语音波形数据库。
将上述人工分解获得的音素与基本音对应表、训练好的音标分解和匹配程序以及语音合成程序、语音数据安装到嵌入式系统或者PC机中,即构成一个可以完成音标到语音转换的装置,将要转换的音标输入该装置,即可得到该音标的语音。
实际使用中,将要处理的单词或短语的音标输入音标到语音的转换装置,如图3所示,由该转换装置通过以下步骤实现转换步骤310接收到输入的音标后,先将其按不同划分方式分解为若干个音素序列,这里的具体分解方法已经在上文中介绍过,这里不再赘述;步骤320,在各个音素序列对应于发音中需要停顿的地方插入静音符号,以在语音合成时能够体现出发音间的停顿来;步骤330,对每个音素序列,根据其包含的音素到音素和基本音对应表中搜索,计算每条搜索路径的cost值以选出一条最佳路径,以该路径所匹配到基本音序列作为该音标的匹配结果;步骤340,根据匹配到的基本音序列,找到各个基本音所对应的压缩的语音波形数据,对其解压缩后,重新生成语音波形;步骤350,根据基本音中反映韵律特征的音量符号和音速符号对相应语音波形进行调整,最后将各个语音波形拼接,合成语音。
应该指出的是,如果输入的是文本,只需要在对音标分解前加入一个获取输入文本的音标的步骤,就可以实现TTS,即文本到语音的转换。
与现有技术相比,本发明具有如下显著优点1)本发明利用一个音素和基本音的对应表,用搜索对应表代替了音标分解过程中的复杂运算,大大减少了对CPU和内存资源的占用,特别适用于嵌入式系统。当然,同样可应用于PC机或其它装置。
2)本发明分解音标时,只是充分利用了音标的自身语音规则,不设置某一音标所特有的规则,因而不受音标类型和语言的限制,可以分解英语的K.K音标或者其它音标,也可以分解其它语言。
3)本发明由于在分解和匹配过程中,利用了训练样本的人工分解结果产生所述对应表,并对用于语音分解和匹配程序进行训练,因而合成的音标准确、使用灵活。
在上述实施例的基础上,本发明还可以有各种变换,例如为了降低人工分解的工作量,在另一实施例中,可以利用现有程序(如申请号为CN01130994.6的中国专利中的程序)或者专门编制一个程序,在程序中利用音标自身的发音规律设定一些规则来完成对训练样本中音标到基本音序列的分解。为了有更好的效果,可以对程序的分解结果进行手工校对。不过这里说的程序只是为了得到音素和基本音对应表的一个辅助工具,并不在实际的音标分解和匹配中使用。
在又一实施例中,语音合成可以利用参数(例如共振峰参数、线性预测参数,基频参数等等)合成的方法,保存基本音对应的参数,需要发音时,直接调用相应的参数串联合成语音,而不需要从录制的语音波形中切割出基本音的语音波形。除了以上两种算法,采用任何其它的语音合成方法也是可以的。
权利要求
1.一种音标到语音的转换方法,包括以下步骤(a)建立一个音素和基本音的对应表,将该表和表中基本音对应的语音数据保存用于音标到语音转换的装置中;(b)所述装置接收到输入的要分解的音标后,先将其按不同划分方式分解为若干个音素序列;(c)对每个音素序列,分别根据其包含的音素到所述对应表中搜索匹配的基本音序列,选择其中最优的一条搜索路径所匹配到的基本音序列作为所述音标的匹配结果;(d)根据所述音标匹配到的基本音序列找到对应的语音数据,合成出该音标的语音。
2.如权利要求1所述的转换方法,其特征在于,所述步骤(a)进一步分为以下步骤(a1)对训练样本的音标进行分解,记录各个音标分解得到的音素,以及该音素实际发音对应的基本音;(a2)对每种音素,从记录的与其对应的基本音中选择一种,在音素和基本音对应表中保存该音素与该基本音的对应关系;(a3)将所述音素和基本音对应表以及表中基本音对应的语音数据保存到所述音标到语音转换的装置中,供实际转换时使用。
3.如权利要求2所述的转换方法,其特征在于,所述步骤(a1)和(b)将音标分解为音素时,先将音标划分为一个或多个由音标中字符构成的基本符号,然后对每一基本符号,根据其组成字符在该音标中的语音特征添加重音符号、前接音符号和后接音符号中的一种或任意组合,得到该音标分解出的各个音素。
4.如权利要求2所述的转换方法,其特征在于,所述步骤(a1)中记录与音素实际发音对应的基本音时,是根据音素在训练样本中的实际发音情况,确定一个与其对应的实际发音符号并记录,该实际发音符号中包括一个基本发音符号,或包括一个基本发音符号和一个重音符号。
5.如权利要求4所述的转换方法,其特征在于,所述步骤(a1)中记录与音素实际发音对应的基本音时,在确定了音素对应的实际发音符号后,还在该符号后添加音量符号和/或音速符号,在所述步骤(d)进行语音合成时,还根据所述音量符号和/或音速符号对语音数据进行调整。
6.如权利要求2所述的转换方法,其特征在于,所述步骤(a1)中对训练样本音标的分解和记录是通过人工完成的,或者是程序进行分解和记录后,由人工加以校对而完成的。
7.如权利要求2所述的转换方法,其特征在于,所述步骤(a)和步骤(b)之间还包括以下训练步骤(i)以训练样本的音标为输入,运行所述装置上的音标分解和匹配程序,按照步骤(b)和步骤(c)同样方式处理,得到各个音标匹配的基本音序列;(ii)将所述装置匹配得到的基本音序列与手工对训练样本分解或经手工校对得到的基本音序列进行比较,判断其准确率是否达到要求,如果达不到要求,执行步骤(iii),如果达到要求,训练成功,执行步骤(b),且在步骤(b)中使用安装了该训练好的音标分解和匹配程序的所述音标到语音转换装置对输入音标进行分解;(iii)修改搜索时对代价成本的计算方法,返回步骤(i)。
8.如权利要求1所述的转换方法,其特征在于,所述步骤(b)中,得到分解出的音素序列后,还在对应于发音中需要停顿的地方插入静音符号,再执行步骤(c)。
9.如权利要求2所述的转换方法,其特征在于,所述步骤(a)中保存基本音对应的语音数据时,先对数据进行压缩再保存;所述步骤(d)中找到压缩的语音数据后,先要对数据解压。
全文摘要
一种音标到语音的转换方法,先建立一个音素和基本音的对应表,将该表和表中基本音对应的语音数据保存用于音标到语音转换的装置中;所述装置接收到输入的要分解的音标后,先将其按不同划分方式分解为若干个音素序列;对每个音素序列,分别根据其包含的音素到所述对应表中搜索匹配的基本音序列,选择其中最优的一条搜索路径所匹配到的基本音序列作为所述音标的匹配结果;根据所述音标匹配到的基本音序列找到对应的语音数据,合成出该音标的语音。本发明方法不受音标类型和语言的限制,且占用资源少,适合在嵌入式系统中使用。
文档编号G10L13/08GK1979636SQ20051012792
公开日2007年6月13日 申请日期2005年12月7日 优先权日2005年12月7日
发明者鲁弘茂, 温莉 申请人:凌阳科技股份有限公司, 北京北阳电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1