使用神经网络变换文本为声频信号的设备的制作方法

文档序号:6417553阅读:257来源:国知局
专利名称:使用神经网络变换文本为声频信号的设备的制作方法
技术领域
本发明为一件分案申请,原申请的申请号为95190349.7,申请日为1995年3月21日,发明名称为“使用神经网络变换文本为声频信号的方法和设备”。
本发明涉及变换文本为声频信号的领域,特别涉及使用神经网络变换文本信号为声频信号。
文本/话音变换涉及变换文本信息流为话音波形。这个变换过程通常包括文本的话音表示物变换为多个话音参数,然后话音参数由话音合成器变换为话音波形。使用级联系统(Concatenative sys-tem)变换话音表示物为话音参数。级联系统存储由话音分析产生的可能是二重单音或半音节的参数,和响应话音表示物,使用以调节它们的持续期间和平滑诸多跳变(transition)以产生话音参数的存储图型串接起来。级联系统的一个问题是必须存储大量的图型。一般地,在级联系统中必须存储1000个以上的图型。另外,在存储图型之间的跳变不是平滑的。还使用按规则合成(synthesis-by-rule)系统变换话音表示物为语音参数。按规则合成系统存储每个可能的语音表示物的目标话音参数。按照一组规则在语音表示物之间跳变的基础上修改目标话音参数。按规则合成系统的问题是语音表示物之间的跳变是不自然的,因为跳变规则仅仅要产生跳变的几个类型(style)。另外,必须存储一个大的规则集。
还使用神经网络变换语音表示物为话音参数。神经网络被训练用于将话音参数与记录消息的文本的语音表示物相关联。该训练导致神经网络具有加权,这代表从语音表示物产生话音波形所要求的转移函数。神经网络克服了级联系统和按规则合成系统的大量存储的要求,因为知识库存储在加权中,而不存储在存储器中。
用于变换包括音素的语音表示物为话音参数的一个神经网络实施例使用一组或窗口的音素为其输入。该窗口的音素数量是固定的并且是预定的。神经网络产生该窗口的中间音素的几个话音参数帧,而在中间音素周围的窗口中的其它音素给该神经网络提供一个前后关系(context)用于确定话音参数。这个实施例的问题是所产生的话音参数不产生语音表示物之间平滑的跳变,因此产生的话音不自然而且可能是不可理解的。
据此,现在需要一种减少存储要求、提供语音表示物之间的平滑跳变以产生自然的和可理解的语音的文本/话音变换系统。


图1示出根据本发明使用文本/声频变换的一个车辆导航系统。
图2-1和2-2示出根据本发明的为用于文本/声频变换的神经网络而产生的训练数据的方法。
图3示出根据本发明的用于训练神经网络的方法。
图4示出根据本发明的用于从文本流产生声频的方法。
图5示出根据本发明的可用作声频帧的语音表示物的二进制字。
本发明提供一种变换文本为声频信号(如话音)的方法。这是通过首先训练神经网络使记录的话音消息的文本与那些消息的话音相关而实现的。为了开始训练,记录的话音消息被变换为具有固定持续时间的一系列声频帧。然后,每个声频被指定一个语音表示物和一个目标声频表示物,语音表示物是代表声频的音素和清晰度特性的二进制字,而目标声频表示物是声频信息如节奏和能量的一个矢量。利用这个信息,训练神经网络从文本流产生声频表示物,以使文本可变换为话音。
参照图1-5对本发明进行更详细地叙述。图1示出一个车辆导航系统100,它包括一个定向数据库102、文本/音素处理器103、持续期间处理器104、预处理器105、神经网络106和合成器107。定向数据库102内含一组文本消息,用以代表街名、公路、陆标和引导车辆操作者需要的其它数据。定向数据库或某些其它信源把文本流101提供给文本/音素处理器103。文本/音素处理器103产生提供给预处理器105的文本流的音素和清晰度特性。预处理器105也从持续处理器104接收文本流101的持续期间数据。响应持续期间数据和音素及清晰度特性,预处理器105产生一系列固定持续期间的音素帧。神经网络106接收每个音素帧并基于其内部加权产生音素帧的声频表示。合成器107响应由神经网络106产生的声频表示物产生一个声频108。车辆导航系统100使用通用或数字信号处理器以软件实现。
定向数据库102产生被表达的文本。在车辆导航系统的上下文本中,这可能是该系统提供的方向和信息,用于引导用户到他或她的目的地。这个输入文本可以是任何语言,而且不需要是该语言的书写形式表示物。该输入文本可以是该语言的音素形式。
文本/音素处理器103一般变换文本为一系列音素表示物和句法边界的描述及句法成分的起伏度。变换为音素表示物和确定起伏度可用各种方法实现,包括字母/声音规则和文本的形态分析。类似地,确定句法边界的技术包括根据标点符号的位置和公共功能字,诸如前置词、代词、冠词和连接词分析该文本和简单的边界插入。在优选的实施例中,定向数据库102提供一个音素和文本的句法表示物,包括一系列音素,每字的字类别,句法边界和句法成分的起伏度和重音。所用的音素系列是来自Garafolo,John S.的文章“The Struc-ture And Format of The DARPA TIMIT CD-ROMPrototype”,1988年国家标准与技术学院出版。字类别一般指示文本流中该字的作用。作为结构的字,诸如冠词、前置词和代词按功能分类。加上含义对结构的字按内容分类。第三个字类别存在用于不是字的一部分的声音,即无声和一些声门的停止。在文本流中识别的句法边界是句子边界,从句边界,词组边界和字边界。字的起伏度分为1至13的值,代表最小的起伏度和最大的起伏度,而音节重音分类为主要、辅助、无重音和强调。在优选的实施例中,由于定向数据库存储文本的音素和句法表示,所以文本/音素处理器103简单地传送那个信息到持续期间处理器104和预处理器105。
持续期间处理器104指定一个持续期间给定从文本/音素处理器103输出的每个音素。该持续期间是正在发出该音素的时间。该持续期间可由各种方式产生,包括神经网络和基于规则的部件。在优选的实施例中,对于给定音素的持续期间(D)利用基于规则的部件产生如下该持续期间由下式(1)确定D=dmin+t+(λ(dinherent-dmin)) (1)式中dmin是最小持续期间、dinherent是固有持续期间,二者从下表1中选择。λ值由以下规则确定表 1音素 dmin(msec) dinherent(msec)aa 185110ae 19085ah 13065ao 180105aw 185110ax 80 35axh 80 35axr 95 60ay 17595eh 12065er 115100ey 16085ih 10550ix 80 45iy 12065ow 15575oy 205105uh 12045uw 13055ux 13055el 160140hh 95 70hv 60 30l 75 40r 70 50w 75 45y 50 35em 205 125en 205 115eng 205 115m 85 50n 75 45ng 95 45dh 55 5f 125 75s 145 85sh 150 80th 140 10v 90 15z 150 15zh 155 45bcl 75 25dcl 75 25gcl 75 15kcl 75 55pcl 85 50tcl 80 35b 10 5d 20 10dx 20 20g 30 20k 40 25p 10 5t 30 15ch 120 80jh 115 80q 55 35nx 75 45sil 200 200
如果音素是核心,即音节中的元音或音节的辅音,或者在从句的最后音节中的核心之后,且音素是一个翻转的、横向的或鼻音的,则λ1=λinitial×m1和m1=1.4,否则λ1=λinitial如果音素是该核心或者在从句的最后音节中核心之后并且不是翻转的(retroflex)、横向(lateral)的、或鼻音的,则λ2=λ1m2和m2=1.4,否则λ2=λ1如果音素是一个音节的核心,且核心并示结束一个词组,则λ3=λ2m3和m3=0.6,否则λ3=λ2如果该音素是一个字音节的核心,该音节结束一个词组,而且不是一个元音,则λ4=λ3m4和m4=1.2,否则λ4=λ3如果该音素跟着该音节中的一个元音,该音节结束一个词组,则λ5=λ4m5和m5=1.4,否则λ5=λ4
如果该音素是一音节的核心,该音节不结束一字,则λ6=λ5m6和m6=0.85,否则λ6=λ5如果该音素是二音节以上的字,而且是不结束该字的音节的核心,则λ7=λ6m7和m7=0.8,否则λ7=λ6如果该音素是一个辅音,该辅音不在一个字的第一音节核心的前面,则λ8=λ7m8和m8=0.75,否则λ8=λ7如果该音素是在非重读的字节中而且不是该字节的核心,或者它是在该字节的核心之后,则λ9=λ8m9和m9=0.7,除非该音素是后接一个元音的半元音,在这种情况,则λ9=λ8m11和m10=0.25,否则λ9=λ8如果音素是字中间字节的核心,该字节为非重读或者具有次重音,则λ10=λ9m11和m11=0.75,否则λ10=λ9如果音素是非字中间字节的核心,该字节为非重读或者具有次重音,则λ11=λ10m12和m12=0.7,否则λ11=λ10如果音素是结束一个字的一个元音,而且是在词组的最后字节中,则λ12=λ11m13和m13=1.2,否则λ12=λ11如果音素是结束一个字的一个元音,而且不在词组的最后字节中,则λ13=λ12(1-(m14(1-m13)))和m14=0.3,否则,λ13=λ12如果音素是后接相同字中的一个摩擦音的一个元音,且该音素不是在词组的最后字节中,则λ15=λ14(1-(m14(1-m15)))否则λ15=λ14如果音素是在相同字中后接一个闭合音的元音,且该音素是在词组的最后字节中,则
λ16=λ15m16和m16=1.6,否则λ16=λ15如果音素是在相同字中后接一个闭合音的元音,且该音素不在词组中的最后字节中,则λ17=λ16(1-(m14(1-m16)))否则λ17=λ16如果音素是后接一个鼻音的元音,且该音素是在词组的最后字节中,则λ17=λ16m17和m17=1.2,否则λ17=λ16如果音素是后接一个鼻音的一个元音,且该音素不在词组的最后字节中,则λ18=λ17(1-(m14(1-m17)))否则λ18=λ17如果音素是一个后接一个元音的元音,则λ19=λ18m18和m18=1.4,否则λ19=λ18如果音素是一个元音,其前面为一个元音,则λ20=λ19m19和m19=0.7,否则λ20=λ19如果音素是一个“n”,在同一字中其前面为一个元音且在同一字中后接一个非重读的元音,则λ21=λ20m20和m20=0.1,否则λ21=λ20如果音素是一个辅音,在同一词组中其前面是一个辅音而在同一词组中其后面不接辅音,则λ22=λ21m21和m21=0.8,除非这两个辅音具有相同的发音位置,在这种情况下,则λ22=λ21m21m22和m22=0.7,否则λ22=λ21如果音素是一个辅音,在同一词组中其前面没有辅音在同一词组中其后接一辅音,则λ23=λ22m23和m23=0.7,除非这两个辅音具有相同的发音位置,在这种情况下,则λ23=λ22m22m23否则λ23=λ22如果音素是一个辅音,在同一词组中其前面为一个辅音和在同一词组中其后接一个辅音,则,λ=λ23m24和m24=0.5。除非这些辅音具有相同的发音位置,在这种情况下,则λ=λ23m22m24否则λ=λ23值t确定如下如果音素是一个重音的元音,前面为一个不发音的释放或塞擦音,则t=25毫秒,否则t=20。
另外,如果音素在非重读的音节中,或者音素放在它所在的字节的核心之后,则在它用于等式(1)之前,最小持续期间dmin被减去一半。
dmin、dinherent、t和m1至m24的最佳值使用标准的数字技术确定以使使用等式(1)计算的持续期间和从记录话音的数据库来的实际持续期间的均方差最小。在确定dmin、dinherent、t和m1至m24期间选择λinital的值为1。但是,在实际文本/话音的变换期间,对于较慢的更可懂的话音的最佳值是λinital=1.4。
预处理器105变换持续期间处理器104和文本/音素处理器103的输出为神经网络106的适当输入。预处理器105将时间划分为一系列的固定持续期间的帧,并给每帧指定一个音素,在那个帧期间该音素通常是发声的。这是从每个音素的表示法及其由持续期间处理器104提供的持续期间的直接变换。指定给一帧的周期将落入指定给一个音素的周期中。那个音素是在该帧期间通常发声的音素。对于这些帧的每一帧,音素的表示是根据通常发声的该音素产生的。该音素表示识别该音素和与该音素相关的发音特征。下面的表2-a至2-f列出在优选实施例中使用的60个音素和36个发音特征。也产生每帧的前后关系的描述,包括该帧的音素表示,在相邻帧中其它帧的音素表示和附加的前后关系数据,该数据指明句法边界,字的起伏度,字节重音和字类别。与现有技术相比,前后关系的描述不由分离音素的数量确定,而是由主要是时间测量量的帧数确定。在优选的实施例中,中心在所考虑的帧附近的51帧的音素表示包括在该前后关系描述中。另外,从文本/音素处理器103和持续期间处理器104的输出得到的前后关系数据包括六个距离值,这些值指示到三个前面的和三个后面的音素的中间的时间距离,两个距离值指示到目前音素的开始和结束的时间距离,八个边界值指示到前面和后面字、词组、从句和句子的时间距离;两个距离值指示到前面和后面音素的时间距离;六个持续期间值指示三个前面和三个后面音素的持续期间;目前音素的持续时间;51个值指示51个音素表示物的每个表示物的字起伏度;51个值指示51个音素的表示物的每个表示物的字类别;和51个值指示51帧的每帧的音节重音。
表2a
表2b
表2c
表2d
表2e
表2f
<p>神经网络106接收由预处理器105提供的前后关系描述和基于其内部加权产生合成器107需要的以产生声频帧的声频表示。在优选实施例中使用的神经网络106是四层重复前向馈送网络。在输入层它有6100个处理单元(PE),在第一隐藏层有50个PE,在第二隐藏层有50个PE和在输出层有14个PE。两个隐藏层使用反曲传输函数,而输入和输出层使用线性传输函数。对于51个音素表示该输入层再分为4896个PE,每个音素表示使用96个PE;140个PE用于重复输入,即在输出层14个PE的十个过去的输出状态;和1064个PE用于前后关系数据。用于前后关系数据的1064个PE再划分,900个PE用于接收指示到三个前面和三个后面音素的中间的时间距离的六个距离值,两个距离值指示到当前音素的开始和结束的时间距离,六个持续期间值指示三个前面和三个后面音素的持续时间,和本音素的持续时间;8个PE用于接收指示到前面与后面字、词组、从句和句子的时间距离的八个边界值;2个PE用于指示到前面和后面音素的时间距离的两个距离值;1个PE用于本音素的持续期间;51个PE用于指示51个音素表示的每个表示的字起伏度的51个值;51个PE用于指示51个音素表示的每个表示的字类别的51个值;和51个PE用于指示51帧的每帧的字节重读的51个值。用于接收指示到三个前面和三个后面音素的中间的时间距离的六个距离值,指示到本音素的开始和结束的时间距离的两个距离值,六个持续期间值和本音素的持续期间的900个PE是这样安排的,即在每个音素的基础上一个PE专用于每个值。由于有60个可能的音素和15个值,那6个距离值指示到前三个和后三个音素的中间的时间距离,2个距离值指示到目前音素的开始和结束的时间距离,6个持续期间值和本音素的持续期间,需要900个PE。神经网络106产生话音参数的声频表示,由合成器107用于产生声频帧。在优选实施例中产生的声频表示包括14个参数,即音高;能量;由于说话估计的能量;基于能量值的历史的参数,它影响有声和无声频带间划分的安排;和从该帧的线性预测编码(LPC)分析导出的前十个记录区(log area)比率。
合成器107变换由神经网络106提供的声频表示为声频信号。可用于这里的技术包括格式合成,多带激励合成和线性预测编码。在优选实施例中使用的方法是LPC,利用从神经网络提供的记录区比率产生的在自回归滤波器激励中的一个变量。自回归滤波器使用由神经网络提供的音高上具有话音激励的低频和具有非话音激励的高频的双频激励方案进行激励。激励的能量由神经网络提供。截止频率由以下等式确定,在该频率以下用于话音激励。fcutoff=8000(1-1-VEE(0.35+3.5P8000)K)+2P----(2)]]>式中fcutoff为截止频率,以Hz为单位,VE是话音能量,E是能量,P是音高,K是阈值参数。VE,E,P和K的值由神经网络106提供。VE是由于话音激励在该信号中能量的倾向性估计,而K是从能量值的历史中导出的阈值调整。音高和这两个能量在神经网络的输出中以对数刻度。截止频率调整到最接近的频率,对于某个整数n可表示为(3n+1/2)P,因为话音和无声判定是对音高的三个谐波频带进行的。另外,如果截止频率大于35倍的音高频率,则激励完全是话音的。
图2-1和2-2以图表示用于训练神经网络的目标声频表示208是如何从训练文本200产生的。训练文本200是口说的和记录的,产生训练文本的记录声频消息204。然后训练文本200转换为音素形式,该音素形式与训练文本的记录声频消息204时间对准以产生多个音素,多个音素的每个音素的持续期间变化并且由该记录声频消息204确定。然后记录声频消息划分为一系列声频帧205,每个声频帧具有固定的持续期间213。固定持续期间最好为5毫秒。类似地,多个音素201被变换为具有相同固定持续期间213的一系列音素表示物202,每个声频帧有相应的音素表示物。特别地,声频帧206相应于指定的音素代表214。对于声频帧206,还产生前后关系描述207,包括指定的音素表示214和在该声频帧206每侧的多个声频帧的音素表示。前后关系表述207最好包括指示句法边界,字起伏度,字节重读和字类别的前后关系数据216。声频帧系列206使用声频或语音编码器,最好是线性预测编码器进行编码,产生一系列目标声频表示208,以便每个声频帧有相应的指定目标声频表示。特别地,声频帧206相应指定的目标声频表示212。目标声频表示208代表话音编码器的输出,而且可包括一系列数字矢量,这些矢量描述帧的特征,诸如音高209,信号能量210和记录区比率211。
图3示出在正常操作之前建立神经网络106必须出现的神经网络训练过程。神经网络基于其输入矢量和由PE使用的内部传递函数产生输出矢量。在训练过程期间用于该传递函数的系数是变化的,以便变化该输出矢量。传递函数和系数一起称为神经网络106的加权,在训练过程中加权是变化的,以便变化由给定的输入矢量产生的输出矢量。加权初始地设定为小的随机值。前后关系描述207用作输入矢量并且加到神经网络106的输入。前后关系描述207根据神经网络加权值进行处理产生一个输出矢量,即相关的声频表示300。在训练期间的开始,该相关的声频表示300无意义,因此神经网络加权是随机值。产生差错信号矢量正比于相关声频表示300和指定的目标声频表示211之间的距离。然后加权值以减少这个差错信号的方向进行调整。对于相关对的前后关系描述207和指定目标声频表示211,这个过程重复很多次。使相关声频表示300接近指定目标声频表示211的这个调整加权的过程是神经网络的训练。这种训练使用标准差错后传播方法。一旦训练神经网络106,加权值具有变换前后关系描述207为数值类似于指定目标声频表示211的一个输出矢量需要的信息。上面对照图1叙述的优选神经网络的实施例在认为完全训练之前要求多达一千万的前后关系描述的表示207给其输入和下面的加权调整。
图4表示如何在正常操作期间使用训练的神经网络106变换文本流400为声频的。文本流400变换为具有固定持续期间213的一系列音素帧401,每帧的表示与音素表示203的类型相同。对于每个指定音素帧402,产生前后关系描述403与前后关系描述207的类型相同。这被提供作为神经网络106的输入,为指定的音素帧402产生一个产生的声频表示物405。对于系列的音素帧401中的每个指定的音素帧402执行变换产生多个声频表示物404。多个声频表示物404提供作为合成器107的输入,产生声频108。
图5示出音素表示物203的优选实施例。一帧的音素表示203包括二进制字500,它被分为音素ID501和发音特征502。音素ID501只是在该帧期间通常为发声的音素的N个码表示之一。音素ID501包括N比特,每比特代表一个音素,它在给定帧中可发声。这些比特之一被置位,指示正发声的音素,而其它的比特被清除。在图5中,正发声的音素是B的释放音,所以比特B506被置位,而比特AA503、AE504、AH505、D507、JJ508和音素ID501中的所有其它比特都被清除。发音特征502是叙述正在发声音素的发声方法。例如,上述B是发声的唇音释放,因此清除比特元音509,半元音510,鼻音511,人工音514和代表B释放不具有的特征的其它比特,同时设定代表B释放具有的特征如鼻音512和发声513的比特。在优选的实施例中,有60个可能的音素和36个发音特征,二进制字500是96比特。
本发明提供变换文本为声频信号如话音的一种方法。利用这样的方法,话音合成系统被训练自动地产生讲话者的话音,而无需按规则合成系统要求的冗长乏味的规则产生或者串联系统要求的边界相符与平滑。这个方法提供对以前试图将神经网络应用到该问题的改进,因为所用的前后关系描述在音素的表示边界上不产生大的改变。
权利要求
1.一种变换文本为声频信号的设备,其特征在于,包括一个文本/音素处理器,其中该文本/音素处理器翻译文本流为一系列音素表示物;一个持续期间处理器,可操作地接到该文本/音素处理器,其中该持续期间处理器为该文本流产生持续期间数据;一个预处理器,其中该预处理器变换该系列音素表示和该持续期间数据为一系列音素帧,其中该系列音素帧的每个音素帧具有固定持续期间并具有一个前后关系描述,和其中该前后关系表述是基于该系列音素帧的每个音素帧和该系列音素帧的至少一些其它音素帧;一个神经网络,其中该神经网络基于该前后关系描述为该系列音素帧的一个音素帧产生一个声频表示物。
2.根据权利要求1的设备,其特征在于,进一步包括一个合成器,可操作的接到该神经网络,响应该声频表示物产生一个可闻信号。
3.一种车辆导航系统,其特征在于,包括由多个文本流组成的定向数据库;一个文本/音素处理器,可操作地接到该定向数据库,其中该文本/音素处理器翻译该多个文本本流的一个文本流为一系列音素表示物;一个持续期间处理器,可操作地接到该文本/音素处理器,其中该持续期间处理器对该文本流产生持续期间数据;一个预处理器,其中该预处理器变换该系列音素表示和该持续期间数据为一系列音素帧,其中该系列音素帧的每个音素帧具有固定持续期间并且具有一个前后关系描述,和其中该前后关系描述是基于该系列音素帧的每音素帧和该系列音素帧的至少一些其它音素帧;一个神经网络,其中该神经网络基于该前后关系描述为该系列音素帧的一个音素帧产生一个声频表示物。
4.根据权利要求3的车辆导航系统,其特征在于,进一步包括一个合成器,可操作地接到该神经网络,响应该声频表示物产生一个可闻信号。
全文摘要
首先训练一个神经网络106使用记录的声频消息204,文本可变换为可闻信号,如话音。为了开始训练,记录的声频消息被变换为具有固定持续期间213的一系列声频帧205。然后,每个声频帧被指定一个音素表示物203和一个目标声频表示物208,该音素表示物203是一个二进制字,代表该声频帧的音素和发音特征,而该目标声频表示物208是一个声频信息如音高和能量的矢量。在训练后,神经网络106用于将文本变换为话音。首先,被变换的文本被翻释为与该音素表示物208相同形式的并且具有固定持续期间213的一系列音素帧401。然后响应包括一些音素帧401的前后关系描述207,该神经网络产生声频表示物。然后该声频表示物由合成器107变换为话音波形。
文档编号G06N3/00GK1275746SQ99127510
公开日2000年12月6日 申请日期1999年12月29日 优先权日1994年4月28日
发明者奥尔汉·卡拉里, 杰拉尔德·爱德华·科里恩, 艾拉·艾伦·拉尔森 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1