专利名称:一种嵌入式语音合成方法及系统的制作方法
技术领域:
本发明涉及一种语音合成方法及系统,尤其涉及一种便携式(含手持)手持数字移动设备,包括移动电话(手机)和个人数字助理(PDA)的语音合成方法及系统。
语音合成技术在近年来,特别是在实际应用方面的进展十分迅速。经过多年来的研究积累和实践经验,当今的语音合成系统不仅在可懂度上毫无问题,而且在自然度上也已经取得了十分明显的进步。当今主流的技术大多采用波形拼接的算法并配合上大规模预先建立好的音库的方法,通过分析,找到音库中最大长度的匹配音段,在结合一些韵律调整的算法来提高合成系统的自然度。最终系统的自然度很大程度上取决于音库的大小和覆盖程度,因此,很多合成系统往往需要很大的音库。这样的方法的采用对当前桌面PC的CPU处理能力、内存和其他资源的配置来讲当然是不成问题的。但是对于当前的主流手持设备(包括手机和PDA)来说,要完成同样的任务几乎是不可能的。
虽然,目前有的语音合成厂商已经开发出了嵌入式语音合成系统,但这类系统目前只是音库最少也需要1M以上的存储空间,这对于当前主流的手持设备来说仍然是非常大的开销,因为语音合成只是增加了设备的一项特性而已,但它的代价或说成本还是很高的。因此,一个占用较少资源而又能被用户接受的语音合成系统对于手持设备来说是非常具有商业价值的。对于目前的手持数字通信设备来说,一个占用的全部资源在500K字节以内的语音合成系统才是真正可以在所说的设备上实际采用的系统,而且对所说的设备几乎不用增加什么成本。
为了实现上述目的,本发明提供了一种嵌入式语音合成方法,用于手持式数字移动通信设备操作系统将文字信号转换成语音信号进行回放,其特点在于包括如下步骤A、文本输入步骤,用于通过所述通信设备操作输入文本文字;B、文本分析步骤,用于分析输入文本的格式和内容并将输入的文字转换成相应的拼音符号,形成拼音符号序列输出;C、码字序例生成步骤,用于接收所述拼音符号序列,并通过检索预设的压缩语音库得到所述拼音序列对应压缩语音的码字序列输出;D、语音解码步骤,用于接收所述压缩语音的码字序列,利用与压缩语音库压缩算法相对应的解压算法还原出未经压缩的原始语音的数据信号,并所述语音数据信号输出;E、波形拼接合成步骤,用于将所述语音数据信号片断进行波形拼接在一起,作平滑处理后输出;F、数字语音信号输出步骤,用于将合成的整句文字信息的语音信号输出。
上述的嵌入式语音合成方法,其特点在于所述文本分析步骤还进一步包括多音字处理步骤,根据输入文字内容的上下文,通过查找预设的多音字表,得到所述文字中多音字正确的拼音。
上述的嵌入式语音合成方法,其特点在于在所述码字序例生成步骤中,所述压缩语音库中存储经编码压缩/包装的数字化语音信号,所述数字化语音信号包括有所有汉语/日文/韩文音节以及特殊文字、数字、符号的原始发音经模/数转换后的数字化语音信号。
上述的嵌入式语音合成方法,其特点在于在所述码字序例生成步骤中,是通过建立一个快速索引表来检索所述压缩语音库的。
上述的嵌入式语音合成方法,其特点在于所述预设的压缩语音库是通过如下步骤生成的步骤一,创建一个空的语音库;步骤二,每次从原始语音库中读入一个原始语音片断;步骤三,通过语音压缩算法将该段语音压缩成能代表所述段语音的码字序列;步骤四,为该段语音码字序列建立一个索引标记并将该段标记和码字序列一起放入新建立的压缩语音库;步骤五,判断是否处理完全部的原始语音库,如果是,则离线部分程序结束;如果否,则返回步骤二重复步骤二、三、四和步骤五,直到处理完全部原始语音库。
上述方法不仅通过采用波形拼接和语音压缩算法大大降低了语音合成部件对整个系统资源的要求,同时汉字多音字处理以及对一些自定义特殊符号的处理,比如句间停顿、整句处理等技术的采用使得合成的语音具有较好的可懂度和自然度。由于整句的语音是通过单音节的发音拼接而成,因此有必要对拼接后的整句语音做一个后处理来提高合成语音的效果。所采用的方法是时域-基音同步叠加算法TD-PSOLA。在本发明中该算法用来将拼接起来的各音节片断的发音听起来更为紧凑,并按句式的种类调整整句语音的音调变化,比如疑问句尾的音调上升、陈述句尾的降调等。
为了更好地实现上述目的,本发明还提供了一种嵌入式语音合成系统,设置于手持数字移动通讯设备的操作系统,其特点在于,包括一输入模块,用于操作所述设备的操作系统输入文本信息,并将所述文本信息输出;一文本分析模块,用于分析接收的所述文本信息格式和内容并将其转换成拼音符号后输出;一码字序列生成模块,用于接收所述文本分析模块输出的拼音符号序列,并将通过检索内设的压缩语音模块得到所述拼音序列对应压缩语音的码字序列输出;一语音解音码模块,用于接收所述码字序列,利用与压缩语音模块压缩算法相对应的解压算法还原所述码字序列,并将还原出未经压缩的原始语音的数据信号输出;一波形拼接合成模块,用于将所述语音数据信号片断进行波形拼接在一起,作平滑处理后输出数字语音信号。
上述的嵌入式语音合成系统,其特点在于,还进一步包括一多音字处理模块,用于根据内设的多音字词表模块所提供的信息查找所要分析的输入文本中有无多音字,并根据文本分析结果为输入文本中具有多音的汉字确定一个正确的发音。
上述的嵌入式语音合成系统,其特点在于还进一步包括有数字与特殊字符处理模块,用于将接收的数字与特殊字符转换成拼音符号后输出。
上述的嵌入式语音合成系统,其特点在于所述压缩语音模块进一步包括存储所有述汉字/日文字/韩文字音节的压缩语音库和用于快速检索所述压缩语音库的索引表。
上述嵌入式语音合成系统,其特点在于所述压缩语音库还包括特殊符号的码字,所述特殊符号包括数字、标点以及自定义的表示语音停顿、语法、语气含义的标记。
上述嵌入式语音合成系统,其特点在于在所述设备的系统资源中,所述嵌入式语音合成系统占用的资源在500K字节以内,计算复杂度小于5MIPS。
依据上述方法形成的一个语音合成系统,完全可以在手持通信设备应用,而且所需的计算能力不超出所说的手持设备本身所具有的计算处理能力。
下面结合附图
和实施例对本发明进一步说明,通过结合附图对系统各组成部件的详细说明将会更好地描述实现本发明的步骤和过程。
其中,原始语音库模块80和压缩/包装模块50只在该语音合成系统的离线工作状态时使用,这两个模块只是用于生成该合成系统在线工作时需要用到的压缩语音库模块70。即为了形成压缩语音库模块70中的压缩语音库,该语音合成系统利用一语音合成系统离线部分4,用于将原始语音库模块80通过编码压缩/包装模块50形成压缩语音库。在原始语音库模块80的原始语音库中存储有所有汉语音节以及一些特殊的文字、数字及符号的原始发音经模/数转换后的数字化语音信号。编码压缩/包装模块50用于将该原始语音库中所有的语音片断通过一定的语音压缩算法压缩成占用空间更小的语音片断,并以一定的方式将所有汉语音节以及一些特殊的文字、数字及符号的压缩码字包装在一个文件中以便于语音解码模块30查找。在本发明的实施例中,编码压缩/包装模块50所采用的压缩语音库包装方法是以一定规则将编码压缩后的语音码字组合成一个文件的形式,该压缩语音库的索引是根据用来代表不同语音码字的符号建立的,这些符号可以是拼音和/或一些特殊符号的字符表示。其中索引表的建立可以使用例如HASH表的方式建立。该文件即构成了压缩语音库模块70。在本实施例中,本发明所采用的压缩语音库的方法可以是任意一种能够满足所述手持设备资源要求(包括存储空间和计算复杂度)的且能够达到听觉要求(用户满意)的算法,例如码激励线性预测(CELP)等具有低码速率的、在通信系统中广泛采用的语音压缩算法,或者其他具有高压缩率和低失真的语音编解码算法,只要其运算复杂度和存储要求能够在所述的手持设备上运行即可。合成系统离线部分的压缩/包装模块50中所用到的语音压缩方法决定了该语音系统在线部分中语音解码模块30中所采用的方法,这两个模块中的压缩和解压缩算法是统一且互相配合使用的。此外,在压缩语音库中不仅存放有所有汉语音节(包括数字)的发音的压缩后的码字,而且该压缩语音库模块7还包括有一些特殊的符号,比如标点,以及自定义的表示语音停顿、疑问等含义的标记所对应的发音压缩后的码字。
该文本分析及多音字处理模块10可以接收文本形式的输入,通过分析输入文本的格式和内容将输入汉字、日文文字或韩文字转换成相应拼音符号。在本发明的实施中,所采用的多音字处理方法是根据一个以自定义格式存储的多音字词表来分析文本上下文,从而得到输入文本的正确发音。特别是由于汉字的发音存在一字多音的现象,故多音字词表模块60中存储了所有具有“一字多音”现象的汉字以及其所对应的发音和相应的规则。该多音字词表模块60可以预先构建好,当该语音合成系统处于工作状态时,由文本分析及多音字处理模块10调用。因此,文本分析及多音字处理模块10会根据多音字词表模块60所提供的信息查找所要分析的输入文本中有无多音字,并根据文本分析的结果为输入文本中具有多发音的汉字确定一个正确的发音;此外,文本分析及多音字处理模块10还可进一步包括对输入文本中数字及符号的处理,最终,文本分析及多音字处理模块10将输入文本所对应的拼音符号输出到码字序列生成模块20。而码字序列生成模块20接收来自文本分析及多音字处理模块10输出的拼音符号序列,通过检索经压缩编码并按一定规则包装存储的压缩语音库模块70,得到该拼音序列所对应的压缩语音的码字序列,然后将该码字序列输出到语音解码模块30。该压缩语音库模块70可以预先构建好,当该语音合成系统处于工作状态时,由码字序列生成模块20调用。语音解码模块30接收来码字序列生成模块20输出的代表将要合成的语音的经过一定编码算法压缩过后的码字序列,通过与编码压缩方法相应的解压缩算法还原出未经压缩的原始语音的数字信号,并输出到波形拼接合成模块40。波形拼接合成模块40将所接收到的来自语音解码模块30的语音数字信号拼接在一起,合成输出最终给用户的听的声音信号的数字化表示。语音合成在线部分中所采用的语音解压缩算法既可以通过软件实现,也可以通过芯片实现。算法的选用也可以同所用的手持设备紧密相关,也就是说可以利用手持设备上已有的DSP芯片和/或手持设备的CPU资源。当然也可以使用为该功能新增的芯片(但这样会增加已有设备的成本)。
图2-图5给出了一个依据本发明方法的语音合成系统的实施例的流程说明。图2、图3和图4是该语音合成系统在线部分的程序流程示意;图5是该语音合成系统离线部分的程序流程示意。
如图2所示,在该语音合成系统被初始化时,会加载多音字词表模块60和压缩语音库模块70,并在程序中为压缩语音库建立一个快速索引表,以备图4中步骤110使用;如图3所示,该语音合成系统在线部分退出时,会执行如图2相反的步骤,即删除所建立的快速索引表,并卸载多音字词表模块60和压缩语音库模块70。
为了更好地说明图4中所示该语音合成系统(在线部分)的主要合成步骤,下面以输入文字内容为“欢迎使用语音手机通,请问您想查谁的电话?”为例,描述合成语音的生成过程。
首先,步骤100通过手机操作系统输入上述文字;步骤110,根据接收到的上述文本字信息,通过文本及多音字处理模块10得到该文字所对应的符号序列,该符号序列包括拼音以及一些表示例如停顿的特殊符号。该实施例中生成的符号序列为“huan1 ying2 shi3 yong4 yu3 yin1 shou3 ji1 tong1@dhqing3 wen4 nin1 xiang3 cha2 shui2 de0 dian4 hua4@wh”。该步骤110的处理包括将文字转换成其所对应的正确的发音,针对一字多音的情况,根据文字内容的上下文,通过查找系统初始化步骤预先加载的多音字词表模块60,来得到要合成的文字中的多音字的正确的拼音,比如,“查”就有两个发音,“cha2”和“zha1”,通过分析多音字词表得出,只有在姓氏中才念成“zha1”,所以该字的正确发音应是“cha2”。除了对多音字处理之外,该步骤110还对比如标点符号等做了特殊的处理并标记以自定义的特殊符号以便后续步骤中合成出更好的语音,比如该例中,逗号被标记成“@dh”,问号被标记成“@wh”;步骤120,利用该系统初始化步骤中所建立的索引表,将符号序列转换成预先存储在压缩语音库中对应于该符号的码字序列,该例中,“huan1”的原始语音所对应的压缩后的码字序列记为$huan1($huan1其中包含表示发音huan1的多个CELP编码的子码字)从压缩语音库中首先被提取出来,接着是“ying2”的,以此类推,最终的码字序列为“$huan1,$ying2,$shi3,$yong4,$yu3,$yin1,$shou3,$ji1,$tong1,$@dh,$qing3,$wen4,$nin1,$xiang3,$cha2,$shui2,$de0,$dian4,$hua4,$@wh”;步骤130,通过语音解码算法将每一个码字,比如$huan1,还原成其所对应的语音信号的数字表示,也就是原始语音片断的波形,记为#huan1,其余的码字处理与此相同。其中,对于$@dh的处理是要在两个子句的连接时插入例如300毫秒的停顿(即无声的语音断),记为#silence300;而对$@wh的处理是要将整句合成语音的音调在句尾即“谁”字上升高,使得合成的语音更像一个疑问句,记为#pitchup,因此,本实施例中该步骤130的输出是“#huan1,#ying2,#shi3,#yong4,#yu3,#yin1,#shou3,#ji1,#tong1,#silence300,#qing3,#wen4,#nin1,#xiang3,#cha2,#shui2,#de0,#dian4,#hua4,#pitchup”;步骤140,首先将还原出的所有语音片断直接拼接在一起,也就是将波形#ying2直接接在#huan1之后,而#shi3直接接在#ying2之后,以此类推。然后按照时域-基音同步叠加算法TD-PSOLA对直接拼接在一起的语音波形做后处理。该实施例中对于#pitchup处理是将整句语音中出现在该标记前的一个字即“谁”字,根据TD-PSOLA算法升高它的音调(即基频),使得合成的语音更像一个疑问句。
步骤150,最终,将最后处理过的合成语音输出。
下面进一步说明图3给出了该语音合成系统离线部分创建压缩语音库的步骤。
步骤200,程序创建一个空的语音库;步骤210,每次从原始语音库中读入一个原始语音片断,比如一个汉字的音节;步骤220,通过采用码速率为4.8kbps的码激励线性预测(CELP)算法将该段语音压缩成能代表该段语音的码字序列。比如,“huan1”的发音的压缩后的码字序列标记为$huan1,其中包含表示该发音的CELP的码字序列(该码字序列通过CELP解压缩算法就可以还原出听起来与“huan1”大体一致的发音)。
步骤230,为该段语音码字序列建立一个索引标记并将该标记如$huan1和其CELP码字序列一起放入新建立的压缩语音库;步骤240,判断是否处理完全部的原始语音库,即是否处理完所有汉语的音节及标点符号,如果是,则离线部分程序结束;如果否,则返回步骤210,重复步骤210、步骤220、步骤230和步骤240,直到处理完全部原始语音库。
本发明在手持式移动通信设备,如手机上的应用,可以为手机实现多种语音输入功能。例如,基于本发明的系统支持用户自己定制某些功能菜单下的个性化的提示语音,从而使得用户手持设备更具个人特色。比如收到短信后,用户可以通过菜单(包括语音通)定制系统提示“快点儿看xx的信”或“你有信了”等等;又比如对某些较长的提示可以定制用户自己喜欢的短语等。具体来说用户通过设备菜单可以将相同的控制操作定义成不同的提示信息(如上例收到短信),当手机判断出用户需要语音提示时就会调用语音合成系统完成用户所希望的文本信息语音输出。
本发明涉及一种语音合成方法和系统,能够直接应用于手持数字移动设备如手机、PDA上而无需增添新的资源。该方法和系统可以充分利用手持设备本身的资源,从而大大降低语音合成系统所占用的系统资源。依据本发明的语音合成系统占用的总资源(包括音库和系统动态内存)不到500K字节,计算复杂度小于5MIPS,能够运行在当前主流的手机之中。
本发明在手机上应用时,所有语音功能均可以随时在手持设备上启用或关闭。在没有启用语音功能时,原手持设备的各种功能将不受任何影响。语音功能启用或关闭可以通过手持设备上的按键、或是手持设备菜单中的某项设置、或是语音命令直接完成。
上述的实施例,仅为本发明的较佳实施例,并非是对本发明的限定,本发明的应用不仅限于手机,而且可以应用到多种手持式移动通信设备,而且该语音合成方法不仅可以适用于中文汉字,而且可以适用其他东方文字,如日文文字和韩文文字。根据本发明的主要构思,本领域普通技术人员均可以产生多种相类似的或等价的应用,因此,本发明的保护范围应以权利要求的保护范围为准。
权利要求
1.一种嵌入式语音合成方法,用于手持式数字移动通信设备操作系统将文字信号转换成语音信号进行回放,其特征在于包括如下步骤A、文本输入步骤,用于通过所述通信设备操作输入文本文字;B、文本分析步骤,用于分析输入文本的格式和内容并将输入的文字转换成相应的拼音符号,形成拼音符号序列输出;C、码字序例生成步骤,用于接收所述拼音符号序列,并通过检索预设的压缩语音库得到所述拼音序列对应压缩语音的码字序列输出;D、语音解码步骤,用于接收所述压缩语音的码字序列,利用与压缩语音库压缩算法相对应的解压算法还原出未经压缩的原始语音的数据信号,并所述语音数据信号输出;E、波形拼接合成步骤,用于将所述语音数据信号片断进行波形拼接在一起,作平滑处理后输出;F、数字语音信号输出步骤,用于将合成的整句文字信息的语音信号输出。
2.根据权利要求1所述的嵌入式语音合成方法,其特征在于所述文本分析步骤还进一步包括多音字处理步骤,根据输入文字内容的上下文,通过查找预设的多音字表,得到所述文字中多音字正确的拼音。
3.根据权利要求1所述的嵌入式语音合成方法,其特征在于在所述码字序例生成步骤中,所述压缩语音库中存储经编码压缩/包装的数字化语音信号,所述数字化语音信号包括有所有汉语/日文/韩文音节以及特殊文字、数字、符号的原始发音经模/数转换后的数字化语音信号。
4.根据权利要求1、2或3所述的嵌入式语音合成方法,其特征在于在所述码字序例生成步骤中,是通过建立一个快速索引表来检索所述压缩语音库的。
5.根据权利要求4所述的嵌入式语音合成方法,其特征在于所述预设的压缩语音库是通过如下步骤生成的步骤一,创建一个空的语音库;步骤二,每次从原始语音库中读入一个原始语音片断;步骤三,通过语音压缩算法将该段语音压缩成能代表所述段语音的码字序列;步骤四,为该段语音码字序列建立一个索引标记并将该段标记和码字序列一起放入新建立的压缩语音库;步骤五,判断是否处理完全部的原始语音库,如果是,则离线部分程序结束;如果否,则返回步骤二重复步骤二、三、四和步骤五,直到处理完全部原始语音库。
6.一种嵌入式语音合成系统,设置于手持数字移动通讯设备的操作系统,其特征在于,包括一输入模块,用于操作所述设备的操作系统输入文本信息,并将所述文本信息输出;一文本分析模块,用于分析接收的所述文本信息格式和内容并将其转换成拼音符号后输出;一码字序列生成模块,用于接收所述文本分析模块输出的拼音符号序列,并将通过检索内设的压缩语音模块得到所述拼音序列对应压缩语音的码字序列输出;一语音解音码模块,用于接收所述码字序列,利用与压缩语音模块压缩算法相对应的解压算法还原所述码字序列,并将还原出未经压缩的原始语音的数据信号输出;一波形拼接合成模块,用于将所述语音数据信号片断进行波形拼接在一起,作平滑处理后输出数字语音信号。
7.根据权利要求6所述的嵌入式语音合成系统,其特征在于,还进一步包括一多音字处理模块,用于根据内设的多音字词表模块所提供的信息查找所要分析的输入文本中有无多音字,并根据文本分析结果为输入文本中具有多音的汉字确定一个正确的发音。
8.根据权利要求7所述的嵌入式语音合成系统,其特征在于还进一步包括有数字与特殊字符处理模块,用于将接收的数字与特殊字符转换成拼音符号后输出。
9.根据权利要求6、7或8所述嵌入式语音合成系统,其特征在于所述压缩语音模块进一步包括存储所有述汉字/日文字/韩文字音节的压缩语音库和用于快速检索所述压缩语音库的索引表。
10.根据权利要求9所述嵌入式语音合成系统,其特征在于所述压缩语音库还包括特殊符号的码字,所述特殊符号包括数字、标点以及自定义的表示语音停顿、语法、语气含义的标记。
11.根据权利要求6、7、8或10所述嵌入式语音合成系统,其特征在于在所述设备的系统资源中,所述嵌入式语音合成系统占用的资源在500K字节以内,计算复杂度小于5MIPS。
全文摘要
本发明公开了一种嵌入式语音合成方法及系统,用于手持数字移动通讯设备的操作系统,通过在该操作系统中加载文本分析模块、码字序列生成模块、语音解音码模块输入模块和波形拼接合成模块,可以使输入的文本信息转换成数字语音信号输出。该方法和系统可以充分利用该设备本身的资源,从而大大降低语音合成系统所占用的系统资源。依据本发明的语音合成系统占用的总资源不到500K字节,计算复杂度小于5MIPS,能够运行在当前主流的手机之中。
文档编号G10L13/00GK1455386SQ0214665
公开日2003年11月12日 申请日期2002年11月1日 优先权日2002年11月1日
发明者刘建, 汪俊杰, 颜永红, 张建平 申请人:中国科学院声学研究所, 北京中科信利技术有限公司