1.一种基于冗余特征和多类多词典表示的语音情感识别系统,其特征在于,所述方法包括:
(1)对训练样本库中每个语音情感信号进行预处理,得到语音情感数据帧;
(2)对(1)中的语音情感数据帧进行特征抽取,包括小波特征、基于改进的谐波总和算法的F0特征、响度(Loudness)特征、谱特征中的MEL频率子带能量系数(MFBECS)特征和线性谱频率(LSF)特征,然后将各特征首尾相接形成一列特征向量,从而得到训练样本冗余特征向量;
(3)对(2)中所提取的情感特征向量进行归一化以及用主成分分析法(PCA)进行降维,再进行多类多词典表示学习,得到多词典对;
(4)对测试样本语音情感信号进行预处理,如(2)中的特征提取,并进行特征向量组合,再进行归一化以及PCA降维;
(5)使用得到的词典对来对(4)中得到的测试样本进行重构,并根据最小重构误差来对该语音情感样本的类别进行判别。
2.根据权利要求1所述的方法,其特征在于,所述步骤(1)中具体包括:
(11)对语音情感信号的音频文件进行解码处理,将其转换成PCM格式的波形文件,再对语音情信号进行重采样处理;
(12)对(11)中得到的语音信号预加重处理,提高情感信号的高频分量
(13)对(12)中得到的语音信号进行汉明窗分帧处理。
3.根据权利要求1所述的方法,其特征在于,所述步骤(2)中具体包括:
对预处理后的语音情感信号进行响度(Loudness)特征、谱特征中的MFBECS特征和LSF特征提取;
对(13)中预处理后的每一帧情感信号进行傅里叶变换,求得时域点对应的频谱,并对每个频率及其所有倍频谐波成分进行叠加,叠加公式如下所示:
其中,R为要考虑的谐波数量,本发明中该参数取15;参数c的作用是在统计谐波总和能量时,降低谐波能量的影响,本发明中该值取0.85;
针对谐波叠加的能量,在给定的基频范围内(fmin,fmax)进行极大值的寻找;为了提取更准确的F0特征,为了消除二倍频的影响,本发明提出改进的谐波和计算公式如下:
从而完成基于改进算法的F0特征提取;
(24)使用Gabor带通滤波器对(13)中预处理后的语音情感数据帧进行十七个临界带的滤波处理;Gabor带通滤波器的具体公式如下所示:
其中,Sx为输入的语音情感信号的方差,Sy的取值为1;
(25)对每个情感数据帧的每一个临界带进行三层小波包变换(WPT),从而获得相应的小波系数;
(26)对17个临界带的每个小波系数进行自相关系数的计算;采用归一化的自相关系数来作为特征,从而得到小波特征,共136维;
从而完成基于临界带多分辨率分析的小波特征提取;
(27)直接将以上得到的不同的情感特征组成一个列向量,从而得到情感冗余特征组合。
4.根据权利要求1所述的方法,其特征在于,所述步骤(3)中具体包括:
对所提取的情感特征向量进行归一化以及使用主成分分析法(PCA)进行降维;
(31)使用训练样本的语音情感的特征数据构建情感模型;本发明引进变量XK,使得Xk=PkYk,对目标函数进行优化,目标函数为
其中Dk=[d1d2…dl]∈Rd×l,Pk∈Rl×d分别表示第k类训练样本得到的合成字典和分析字典;D=[D1,…Dk,…DC]是合成字典,P=[P1,…Pk,…PC]是分析字典,其中C类的训练样本数据Y=[Y1,…Yk,…YC]∈Rd×N,d表示训练样本的特征维数,NK表示第k类的样本总个数,λ为标量参数,N表示训练样本的总个数di是合成矩阵D的第i个列向量;
(33)使用训练样本数据训练字典对,得到合成字典D以及分析字典P,具体步骤如下:
步骤1.输入:C个目标类的训练语音情感样本构成的数据矩阵Y=[Y1,…YK,…YC],所需的参数λ、λ1及1(字典的个数);
步骤2.初始化:随机初始化Dk∈Rd×l和Pk∈Rl×d,这两个矩阵均具有归一化的F范数;
步骤3.固定D与P,使用公式对X进行更新;
步骤4.固定D与X,使用公式对P进行更新;
步骤5.固定X与P,使用公式对D进行更新;
步骤6.断定是否收敛,若收敛,则转到步骤7;否则步骤3,继续对D、P、X进行更新;
步骤7.输出:分析字典P,合成字典D。
5.根据权利要求1所述的方法,其特征在于,所述步骤(4)中具体包括:
对测试样本语音情感信号行预处理,并抽取响度(Loudness)特征、谱特征中的MFBECS特征、LSF特征、基于改进算法的F0特征和基于临界带多分辨率分析的小波特征,然后将得到的情感特征首尾相接形成一个列向量,再进行归一化以及PCA降维。
6.根据权利要求1所述的方法,其特征在于,所述步骤(5)中具体包括:
使用得到的多类多词典对来对测试样本进行重构,并根据最小重构误差来对该语音情感样本的类别进行判别;
具体基于多类多词典表示的分类过程如下:
步骤1.输入:C个目标类的语音情感训练样本构成的数据为Y=[Y1,Y2…Yj,…YC],以及测试样本数据矩阵A=[x1,x2…xk,…xN]∈Rd×N;
步骤2.使用式Yk≈DPY=D1P1Yk+D2P2Yk+…DkPkYk+…DCPCYk进行求解合成字典D与分析字典P;对于测试样本数据中的每一个测试样本x∈Rd,重复进行步骤3与步骤4;
步骤3.对于每一类k,k=1,2,…,C,重复进行下面两个步骤
(1)计算重构的样本xrecons(k)=DkPkx
(2)计算原测试样本x与重构样本之间的残差rk(x)=||x-xrecons(k)||2
步骤4.输出: