摘 要: 在基于图像的人脸语音动画合成过程中,为了保证音频帧和视频帧的精确映射关系,需要提取鲁棒的语音信号特征参数,并对特征参数聚类。本文介绍了直接从原始语音信号中提取LPC复倒谱及短时能量组成特征矢量的方法,以及对特征矢量进行聚类的方法。
关键词: 语音特征提取 特征聚类 语音动画
语音动画合成是利用语音动画序列中语音帧与视频帧的潜在对应关系,通过训练特定角色的语音视频样本来建立语音视频对应模型。利用模型,仅仅通过同一角色的语音信息也能重建新的语音视频序列。这样使得以很小的带宽进行实时语音视频通信成为可能。本文主要介绍一个与语种无关的语音动画系统中的语音特征提取和比较聚类模块,并描述了提取语音特征的方法以及对语音特征进行聚类的方法。该系统直接从原始语音信号中提取特征,而无需使用传统的语素级别(音节、声韵母等)的语音特征提取。这样直接得到语音帧到视频帧的映射,大大加强了语音动画系统的语种无关性,避免了由于人的口音、方言等因素造成的误差,增强了系统的适用性。
1 音频特征
音频特征就是用来表征原始音频信息的数据。根据特征空间的不同,音频特征可以分为3类:时域、频域和时频。时域特征包括短时能量、过零率和线性预测系数(Linear Prediction Coefficient,LPC)等;频域特征包括线性预测倒谱系数(LPC Cepstrum)和Mel倒谱系数(Mel Cepstrum)等;时频特征包括短时傅立叶变换和小波系数等。音频特征又可以分为物理特征和感知特征。其中,物理特征包括短时能量、过零率和基本频率等,它来源于音频信号本身。感知特征包括音调和音高等,它依赖于人的听觉模型。下面简单介绍本文所涉及的概念和术语。
1.1 短时平均能量
短时能量分析基于语音信号的能量随时间有较大变化的情况,可以作为一种超音段信息,用于语音识别中。对于基于特定人的语音特征提取,短时平均能量在一定程度上能够作为语音的特征之一来判别2帧语音的相似性。语音数据x(n)的短时平均能量的计算公式为:

其中

式中,h(n)是海明窗(Hamming Window),它能在特定时间指数n上从输入信号中强调出某个分段。窗口的长度N很重要,当使用10kHz采样频率时,N可取200。每帧的平均能量可以作为其特征矢量的一个分量。
1.2 线性预测系数
在长期研究中,研究者发现人的声道模型近似于一个全极点(AR)模型[1],是一个健壮的语音信号数字模型。根据该模型,在数字语音处理中可以做如下假定:一个语音的采样能够用过去的若干个语音采样的线性加权组合来逼近,其加权系数(线性预测系数)可以通过最小化逼近结果和实际采样的均方误差惟一确定。
线性预测的标准方程组可以表示为:

式中,N是语音样本总数,P是线性预测系数维数,由所需精度确定。这是个P阶正定方程组,通过求解式(3)可以得到线性预测系数ai(1≤i≤P)。本文使用基于格型结构形式的递推方法——Berg格型法[2]计算线性预测系数。
1.3 LPC复倒谱
LPC系数是语音分析中的基本系数,在实际应用中,可以将它变换成其他的相关参数,其中之一就是LPC复倒谱。转换过程非常简单,运算量很小。递推公式如下:

使用复倒谱的优点:在聚类中可以使用欧几里得距离(欧氏距离)来代替对数距离作为特征矢量间的失真量度,降低了聚类工作中的计算量。
2 音频特征提取
2.1 准备工作
根据语音动画合成系统的要求,从AVI文件中提取出无噪或低噪音频流,将其存储为Windows PCM 8位、单声道、11 025Hz、10K格式的PCM Wave文件。这样转换主要是为了统一语音格式,减少在后面的聚类工作中因为格式的差异而增加的误差。此外,对于人的语音,左右声道数据相差很小,而且通常左声道为主声道,所以只保留左声道数据。对所得Wave文件提出文件头后,可以将文件按照其采样率切分成20ms的语音帧并标注序号。这里丢弃了文件开头和结尾的小段数据。这是由于通常音视频开始和结束都有小段空白或噪音。
2.2 计算短时平均能量
对于已经提取的语音帧,令N是每一帧数据的样本个数,也就是窗长。N的值可由采样率和样本大小计算得出。利用式(1)和式(2)就可以求出该帧的平均能量。
2.3 计算LPC系数和LPC复倒谱系数
使用Burg算法计算每一帧LPC系数。Burg法是一种递推方法,可以直接由信号样本递推LPC系数和反射系数,避免了使用窗函数,较好地解决了解的精度和稳定性之间的矛盾。下面给出Burg法的计算步骤,其中参数N意义同上,P是线性预测系数的阶,经验值为12~14。
(1)初始化,令i=0,设定前向预测误差f和后向预测误差b的初始值分别为:

求出LPC系数后,就可以应用公式(4)求LPC复倒谱
。在实验中使用经验数据12作为LPC系数以及复倒谱系数的阶数。这样就有了1维平均能量和12维LPC复倒谱共13维的特征矢量。记录特征矢量,准备下一步的聚类工作。
3 语音特征聚类
在语音识别中,需要消除相似语音导致的冗余计算,这可以通过对语音特征聚类实现。结合各种语言的音节和音素研究,本着简单化的原则,在实验中划分了26类。
3.1 失真测度
失真测度就是对矢量之间差异进行量化,也就是矢量间的距离。主要包括均方误差失真测度(即欧氏距离)、加权均方误差失真测度和似然比失真测度等。对于线性预测系数来说,欧氏距离是不适合作为其失真测度的,因为仅仅预测系数的欧氏距离并不能表明2帧语音的差距。使用较频繁的是板仓-斋藤(Itakura-Saito)距离[1]。为了计算简便,选择LPC复倒谱,因为这样就可以使用欧氏距离作为其失真测度。为了使平均能量也参与失真测度计算,可以使用下面的失真测度公式:

上式表示当2个矢量能量相近时,忽略能量差异;能量差较大时,进行线性加权;当能量差超过某一阈值时,就固定于该阈值。这里的几个阈值xd、xF和加权系数a都要在实验中动态确定。
3.2 初始码本的选取
码本的尺寸(码本中中心矢量的数目)和需要划分的类别数目相同。由于初始码本中心矢量的选取对聚类结果有很大影响,所以需要进行预处理来确定较优的初始码本。在随机选取码本法的基础上进行改进,通过处理,使得所选取的矢量中心之间的距离大于某一个阈值,这样会得到较好的聚类效果。
3.3 使用LBG算法聚类特征
LBG算法是矢量量化的一个基本算法,只要确定了失真测度和初始码本,就可以使用LBG算法进行聚类了。随机选取26个矢量作为初始码本,对这些码本进行计算,使用新矢量替换距离较小的矢量,使得它的距离比较平均。使用得到的码本,通过LBG算法进行聚类,记录聚类结果。记录的每一个类别包括以下内容:该类的中心矢量、属于该类的所有原始语音帧的序号以及这些原始帧到中心矢量距离的最大值(即样本空间半径,用于后面的识别)。这里要注意的是,矢量的失真测度不再是简单的欧氏距离,而是3.1节中提到的改进距离。
通过上面的工作,解决了语音短时帧的特征提取和聚类工作。整个语言特征提取和聚类系统工作流程示意图如图1所示。
经过实验,在训练样本充足的情况下,本模块工作情况良好,能够提取鲁棒的语音短时特征,其结果能很好地满足语种无关的人脸动画合成系统的需要。
4 总结和展望
本文介绍了从原始语音中提取短时帧的语音特征参数组成特征矢量,然后对特征矢量进行聚类的方法。该方法满足了语音动画合成工作对语音信号处理的需求,完成了整个语音动画系统的语音处理的基本工作模块。
本实验仍然有待进一步改进,主要有:帧间连续性对分类的影响;如果使用LPC复倒谱系数以外的语音特征参数,或者更进一步地使用这些特征参数的组合,可能会得到更加符合要求的鲁棒的特征矢量。
参考文献
1 胡航.语音信号处理(修订版).哈尔滨:哈尔滨工业大学出版社,2002
2 易克初,田斌,付强.语音信号处理.北京:国防工业出版社,2000
3 陈益强,高文,王兆其.基于机器学习的语音驱动人脸动画方法.软件学报,2003;14(2)
