计算机研究与发展
JOURNAL OF COMPUTER RESEARCH AND DEVELOPMENT
1999　Vol.36　No.6　P.664-667



神经网络在汉语两字词韵律规则学习中的应用
朱廷劭　高文　凌晓峰
摘　要：韵律规则主要包括基频和音长变化规律，目前的韵律规则大多是通过人工得到的一些定性描述.为了学习汉语两字词的韵律规则，文中将韵律规则看做是孤立音节语音和其在词中发音两者之间的映射关系，从而使用神经网络来学习这种映射.文中将介绍这种方法的神经网络结构并给出实验结果.
关键词：语音合成，韵律规则，时间规整，神经网络
分类号：TP18
NEURAL NETWORK IN LEARNING MANDARIN 
TWO-WORD PHRASES FULL PITCH VARIATION PATTERNS
ZHU Ting-Shao，GAO Wen
(Institute of Computing Technology,Chinese Academy of Sciences,Beijing 100080)
Charles LING
(Department of Computer Science,University of Western Ontario London, Ontario, Canada, N6A 5B7)
Abstract：Prosodic model includes pitch model and duration model,and these models being used are described qualitatively.In order to learn the prosodic patterns from Chinese two-word phrases,the patterns are regarded as the mapping between the isolate syllable and the same one when it is spoken in phrases,and the mapping can be learned by using neural network.In the paper here,the architecture of learning neural networks is introduced,and the results are also given.
Key words：speech synthesis, prosodic rules, time wrapping, neural network▲
1　问题的提出
　　为了合成高自然度高清晰度的语音必须有完善的韵律规则，而且韵律规则的总结应该采用定量的方法.汉语的韵律规则主要表现在音节的时长分布、音高的变化、能量的变化及适当的停顿等几个方面，其中音高和音长的变化对自然度的影响最显著［1］.吴宗济［2］曾对汉语的两字组的声调模式做过很多研究,给出了一些定性的描述.林茂灿等［3］通过对普通话两字组正常重音的声学分析，得到关于普通话两字组中前后音节的音长和音高的关系描述.初敏［1］利用存储的14种单音节的音高模式和22种两字词声调模式进行合成时的音高曲线修改，对声母段时长不做修改，韵母段时长按照不同层面的时长系数进行调整.目前的音高和音长变化规律大多是根据语言学的研究得出的一些定性的描述或者是对韵律规则的部分定量描述.
　　韵律规则主要描述了音节在各种组合情况下的音高和音长的变化，音节在孤立发音和在词中发音两种情况下的基频和音长有很大变化，韵律规则可以看做是对孤立音节和词中发音的一种映射关系的描述.基于这种思路，我们使用误差逆传播神经网络学习孤立音节和该音节在词中发音时的基频和时长的映射关系，利用训练后得到的网络直接计算出所需的基频.
　　神经网络系统是由大量的、同时也是简单的处理单元（或称神经元）广泛地互相连接而形成的复杂网络系统.至今为止，人们提出了很多神经网络模型.误差逆传播网络 (back propagation
,BP)是一种多层结构的映射网络，更由于它的一些特点使得其成为目前应用最广泛的一种神经网络模型［4］.
2　神经网络结构
　　汉语中两字词出现的概率最大，因此我们对汉语中两字词的音频和音长变化规律分别进行了学习.一般在两字词中基频发生很大变化的是前音节，后音节的变化不如前者的那样明显.
　　我们使用了两个网络进行学习，一个是学习两字词中前音节基频的变化，另一个是学习后音节基频的变化规律，此外在时长学习中，将训练例分为阴平和其他声调两类分别进行学习.这样共有6个网络，可以分为两组，3个学习前音节的基频和音长变化，3个用于后音节有关规律的学习.在每组的3个网络中，一个学习所有两字词中对应音节的基频变化规律，另两个分别学习对应音节中所有声调为阴平或其他声调情况下的时长变化规律.图1给出了结构图.


图1　基频和音长规律的训练与使用
　　同一音节的基音周期数在孤立发音情况下和在词中时是有所不同的，对某些合成算法而言，以基音周期为单位进行合成，因此基音周期数的变化也就反映了时长的变化.对于时长变化规律的学习可以通过学习基音周期数即基频数的变化来实现.
　　使用神经网络进行语音韵律规则的学习主要是将音节在孤立发音以及在词中发音的前后变化看作是一种映射关系，从而使用BP网络来学习这种映射.图1(a)是进行训练的流程，图1(b)给出了进行测试和使用的流程.
3　数据预处理
　　语音数据库采用的是语音合成语料库CoSS-1，它是“八六三”支持项目，由清华大学计算机系、中国科学院声学研究所和社会科学院语言研究所共同完成的.CoSS-1包括1268个有调音节和640个两字词，并且同步录制语音声压波形和声门波阻抗波形.声门波阻抗波形是将说话人的声带处的振动波形记录下来，因此与语音波形比较起来周期性更明显.目前虽然有很多基频计算方法，但精确度都不高［5］.我们通过对声门波的基音标注，可以得到准确的基音周期值.由数据库中提取出的基频取值范围为50～260，而对于神经网络来说，训练数据的取值范围应该是-1.0～+1.0，因此对标注后得到的基频数据必须进行标准化处理.
　　为了满足神经网络训练的要求，必须将长度不同的各个训练例中的基频串规整到同一长度，即对于长度为PitchLen的基频串Pitch将其规整为长度WrapLen.假设规整后的基频，对于0≤j<WrapLen，其在PitchLen中的相应位置应该为Loc=j * PitchLen/WrapLen，因此规整后的基频串中j位置的基频应该为Pitch对应的基频曲线中Loc所对应的数值.为了计算基频曲线中Loc位置的数值，我们采用了插值的方法，即找出Loc附近的4个基频点，然后使用这4个节点通过插值得到Loc对应的数值.
4　韵律规则学习
4.1　基频变化规律的学习
　　用于基频变化规律学习的网络分为3层：输入层、隐含层和输出层，各层之间全互连.网络的学习率取0.25，使用Sigmoid函数作为输出函数，隐含层节点数为100，使用两个神经网络分别学习两字词训练例中前音节和后音节的基频变化规律.
　　在输入节点中包括音节单独发音时的基频值及前后声调，由于汉语共有4种声调，在输入层使用8个节点表示前后音节的声调，其中前4个节点表示第1个音节的声调，后4个节点表示第2个音节的声调，如：01001000表示第1个音节为二声，第2个音节的声调为一声.输出节点为该音节在两字词中发音时的基频值，这些基频值是经过首先对两字词进行切分、基频标注、时间规整和标准化后得到的数据.输入节点和输出节点的个数随规整的长度而不同，取所有孤立音节的基音周期数的平均值作为输入层的基频数据的规整长度，二字词中所有前音节的基音周期数或后音节的基音周期的平均值作为相应网络的输出层的节点个数.
4.2　时长变化规律的学习
　　学习时长变化规律的神经网络与基频变化学习网络相似，共分为3层：输入层、隐含层和输出层，各层之间实行全互连.网络的学习率取0.25，采用Sigmoid函数作为输出函数，隐含层节点数为20.
　　一共有4个网络用于学习时长的变化规律，其中两个是学习所有训练例的前音节的时长的变化，所有阴平音节的时长变化规律使用一个网络进行学习，其他声调则使用另一个网络；后音节也使用同样的两个网络进行训练和测试.对两字词中的前后音节，其输入层参数不仅包括该音节孤立发音时的基频数，而且包括其所在两字词的前后音节的声调和声韵母.输出节点为该音节在两字词中发音时的基频数.
5　实验结果
　　为了对训练后的网络进行测试，我们从CoSS-1中随机选择了一批数据作为实验数据，分别用于基频和时长的训练和测试，其中测试例并没有包括在训练例中.
　　表1中的统计是基于规整后的两字词中音节的基频值与经过训练后由神经网络计算得到的基频值的基础上进行的，最大最小值的统计是针对两者差的绝对值进行的，其他的统计是在原始基频与计算基频差的基础上直接进行的，从两者的比较可以直接看出学习的效果.表2给出了时长的部分实验结果.
　　对一些测试结果不好的测试例，通过显示其词中的基频曲线看出往往是由于基频标注的误差很大.如果对所有训练数据进行平滑处理后，学习效果会有进一步的提高.由时长测试结果可以看出，阴平的学习结果并不是很理想，其他声调的测试结果与实际数据比较接近.
　　为了更方便地查看学习效果，我们还设计了一个显示程序，将测试结果以图形显示，将实际基频值与计算后得到的基频值直观地显示出来，可以很清楚地看到两者的吻合程度.由于篇幅所限，在此就不给出显示实例.
6　结束语
　　韵律规则对于合成高质量语音非常重要，而目前所使用的一些韵律规则多是一些语言学方面的定性描述.我们采用神经网络并结合数据挖掘技术对两字词中的基频和时长变化规律进行了学习，取得了较好的学习结果.利用机器学习的方法进行规则的提取，不仅使得对大规模语音数据进行处理成为可能，而且通过使用知识发现的新算法可以更好地提高学习效果.我们希望利用机器学习方法得到更全面更系统的语音变化规律，以有利于提高合成语音的质量.
表1　基频实验结果

　拼音MaxMinMean均方差
前音节chuang1
shan440-1.4772064.376950
jin4
zhan4130-0.24121042.273769
liu2
xie4180-4.52561615.284344
gong1
hui41502.65648310.662880
wang2
pai2902.0161557.791716
后音节zhi4
xun260-0.0010932.958961
bing3
yao4140-3.63853923.004646
bao3
xian370-0.52798410.082108
la1
suo3700.1686617.902920
xiao4
you31904.45394624.817568

表2　时长实验结果

　　拼音在词中数值测试结果
前音节阴平la1suo35150
cao1yan33549
chong1ren42941
chuan1ma33650
a1pian43642
其他tu2an43130
chuo4hao43229
shu4e22729
cuo4shou33735
fu3ai43530
后音节阴平ta1yang15051
xiang1Yue17551
sui2jun14151
qie4sheng14043
ban4yin15052
其他can2ren34440
du1fu33336
wei2ao44237
yi2zhi43540
fu2fu23939

■
基金项目：本课题得到“中国科学院百人计划”项目基金资助.
作者简介：朱廷劭，男，1971年12月生，博士研究生，研究方向为数据挖掘、数据库和语音合成.
　　　　　高文，男，1956年4月生，教授，博士生导师，现任中国科学院计算技术研究所所长，国家“八六三”计划智能计算机主题专家组组长(首席专家)，联想中央研究院院长，主要研究领域为人工智能和多媒体技术，侧重于计算机视觉、模式识别与图像处理、多媒体数据压缩等.
　　　　　凌晓峰，男，加拿大西安大略大学计算机系副教授，研究方向为机器学习和数据挖掘.
作者单位：朱廷劭（中国科学院计算技术研究所　北京　100080）
　　　　　高文（中国科学院计算技术研究所　北京　100080）
　　　　　凌晓峰（西安大略大学计算机科学系　加拿大安大略省　N6A 5B7） 
参考文献：
［1］敏.高清晰度高自然度汉语文语转换系统的研究［博士论文］．中国科学院声学研究所,北京，1995
(Chu Min. Research on Chinese TTS system with high intelligibility and naturalness (in Chinese). Institute of Acoustics, Chinese Academy of Sciences, Beijing,1995)
［2］宗济.普通话语句中的声调变化.中国语文,1982,(6):439～449
(Wu Zongji. The tone variation in Mandarin. Chinese Grammar (in Chinese), 1982, (6): 439～449)
［3］茂灿,颜景助,孙国华.北京话两字组正常重音的初步实验.方言,1984,(1)
(Lin Maocan, Yan Jingzhu, Sun Guohua. Experiment of the normal accent in Beijing dialect.Dialect (in Chinese). 1984,(1))
［4］伟.人工神经网络原理――入门与应用.北京：北京航空航天大学出版社,1995
(Wang Wei. Principle of Artificial Neural Network――Primer and Implementation (in Chinese). Beijing:Beijing University of Aeronautics and Astronautics Press, 1995)
［5］行峻,迟惠生等.语音信号数字处理.北京：电子工业出版社,1990
(Yang Xingjun Chi Huisheng et al. Speech Signal Digital Processing (in Chinese). Beijing:Publishing House of Electronic Industry,1990)
收稿日期：1998-07-14
修稿日期：1998-11-02
