技术简介:
本专利针对语种识别中SDC特征高维相关性问题及HLDA算法计算量大的缺陷,提出CHLDA方法。通过分块计算均值协方差、约束对角块状变换矩阵,实现特征降维与去相关,使运算资源节约90%且等错率降低至2.35%。
关键词:语种识别,特征降维,CHLDA算法
专利名称:用于语种识别的约束异方差线性鉴别分析方法
技术领域:
本发明属于语音识别领域,具体地说,涉及一种约束异方差线性鉴别分析方法,可用于语种识别中高维特征矢量的快速降维和去相关处理。
背景技术:
语种识别是指使用机器从一段语音信号中识别出其语言的种类。语种识别主要用于多语种人机口语对话、语音翻译、跨语言语音检索以及语音侦听等系统。
目前语种识别中使用最为普遍的特征是MFCC(Mel频率倒谱系数)及其衍生特征。在衍生特征中最为成功的是SDC(偏移差分倒谱)特征,它充分利用了语音信号中的时序信息,提高了特征的鉴别性。SDC特征实际上是由K块一阶差分特征拼接而成的,假设第t帧的基本特征为{cj(t),j=1,2,...,N},其中N为基本特征维数,下标j为维数索引,如附图1所示SDC可以表示为 s(iN+j)(t)=cj(t+iS+b)-cj(t+iS-b),j=1,2,...,N;i=0,1,...,K-1 其中b为计算一阶差分特征时的帧数差,一般取值为1;K为块数,一般取值为7;S为各块之间的偏移帧数,一般取值为3。
另外还有一种常用的衍生特征是差分特征,一般包括一阶差分和二阶差分。一阶差分特征为其中D为差分窗的大小,一般取值为2。同理,由一阶差分进行计算即可得到二阶差分。实验证明,在语种识别中SDC特征比差分特征更为有效。
SDC特征之所以能取得成功,主要是因为它的时间跨度比较大,含有了较多的时序信息。但是从其计算过程也可以看到它也存在一定的问题SDC实质上是由若干块一阶差分拼接而成的,拼接以前各帧的特征存在一定的相关性,拼接以后变成了一帧特征内各维之间的相关性,这不利于后端分类器对其建模。为了解决这一问题,可以先将基本特征依次拼接成一个高维的超矢量,然后采用HLDA(异方差线性鉴别分析)方法进行处理,这样既能去除各维之间的相关性,又能降低特征的维数,减轻后端分类器的运算复杂度。但是,由于超矢量维数很高,对于大量数据而言,直接采用HLDA算法运算量极大,按目前数字集成电路芯片的计算能力几乎不能实现。
发明内容 为了克服现有HLDA算法应用于高维超矢量时存在的问题,本发明提供一种CHLDA(约束异方差线性鉴别分析)算法,大大降低了运算量。使用数字集成电路实现时,与HLDA算法相比,采用本发明可使芯片运算模块节约资源90%以上。
本发明的特征在于,所述方法是在数字集成电路芯片中按以下步骤实现的(如附图2所示) 步骤(1)把一帧语音信号输入到N维特征提取电路,得到N维Mel频率倒谱系数MFCC的基本特征矢量,N=10, 步骤(2)用步骤(1)所述的方法提取出连续M帧语音信号的Mel频率倒谱系数MFCC的N维基本特征矢量,M=21,并输入到一个倒谱矩阵形成电路,得到一个倒谱矩阵C
步骤(3)把步骤(2)得到的倒谱矩阵C输入到一个串并转换电路,按行展开,得到一个超矢量特征c步骤(4)把步骤(3)得到的超矢量特征c输入到一个分路器,分成N块其中c(n)=[cn1 cn2…cnM]T代表超矢量特征中的第n块,T代表转置, 步骤(5)对每个语种的语音数据均按照步骤(1)-(4)进行操作,假设一共有L个语种,第1个语种可得到超矢量特征I1帧,所有语种共得到超矢量特征I帧,即 步骤(6)按以下步骤用一个逻辑电路分块计算各语种的超矢量特征的统计量和所有语种总的超矢量特征的统计量,n=1,2,....,N 步骤(6.1)计算第1个语种的各帧中第n块超矢量特征c(n)的均值
计算第1个语种的第n块超矢量特征c(n)的协方差矩阵
其中∑g(i)=l表示对所有帧中属于第1个语种的特征矢量求和; 步骤(6.2)计算所有语种第n块超矢量特征c(n)的总均值m(n)计算所有语种第n块超矢量特征c(n)的总协方差矩阵T(n)步骤(7)用一个变换矩阵运算电路按以下步骤分块计算超矢量特征的变换矩阵,n=1,2,....,N 步骤(7.1)初始化第n块变换矩阵为单位阵A(n)=I, 步骤(7.2)把上述第n块变换矩阵划分为两部分其中,其中
代表第n块变换矩阵A(n)的前U(n)行,
代表剩下的M-U(n)行,M=21, 步骤(7.3)按下式计算第n块变换矩阵的第m行
其中
是中间变量H(n)矩阵的第m行 H(n)=det(A(n))(A(n))-1,为
的对角线元素
其中det代表求矩阵的行列式,diag代表取矩阵的对角线元素, 步骤(7.4)当达到20次迭代或两次迭代det(A(n))数值相对变化小于1/1000时,停止迭代,否则转步骤(7.2)继续迭代, 步骤(8)用变换矩阵A(n)对超矢量特征
)分块进行变换,得到新的特征矢量x(n),i=1,2,...,I,n=1,2,....,N步骤(9)取出所述特征矢量x(n)的前U(n)维,得到
n=1,2,....,N,再用一个合路器把各块特征依次进行拼接,得到新的特征矢量
图1是SDC特征示意图。
图2是本发明进行CHLDA特征变换的硬件结构和步骤框图。
图3是本发明进行CHLDA特征变换的流程框图。
具体实施例方式 假设c是超矢量特征,对于HLDA算法来讲,其目标是寻找一个线性变换矩阵A,使得 x=Ac 为变换后得到新矢量,其鉴别性信息的压缩到前面若干维。本发明中c是由基本特征拼接而成的,由于求取基本特征时已经进行过DCT(离散余弦变换),这样基本特征帧内的相关性已经较弱,问题的关键编程去除基本特征帧间的相关性。回到倒谱矩阵C,我们可以只研究横向变换,相应的变换矩阵A应具有对角块状矩阵的形式,即
另外,根据超矢量特征的特点,我们通过理论推导和实验验证,可以证明其协方差矩阵具有近似对角块状矩阵的形式,即
基于以上考虑,本发明对HLDA问题进行解耦,可以分解成N个独立的小规模HLDA问题。一般的HLDA问题对A和W矩阵是没有限制的,本发明针对具体应用情况引入了对角块状矩阵的约束条件,在此基础上,又将整个“大”问题简化成若干”小“问题,所以我们将这种算法称为约束HLDA(CHLDA)算法。
本发明将超矢量特征表示为其中c(n)相当于倒谱矩阵C中第n行转置形成的列向量,即超矢量特征的第n块。
假设一共有L个语种,第1个语种的特征矢量有I1帧,所有语种的特征矢量共有I帧,这样可以分块计算第1个语种的均值和协方差矩阵 其中∑g(i)=l表示对第1个语种的特征矢量求和。总均值和总协方差矩阵为 然后根据上述统计量即可分块计算CHLDA变换矩阵,一共N个块状矩阵,第n个矩阵的迭代公式为 (1)初始化变换矩阵为单位阵A(n)=I; (2)将变换矩阵划分为两部分其中,其中
代表A(n)的前U(n)行,
代表剩下的M-U(n)行,然后计算H(n)矩阵和矩阵 H(n)=det(A(n))(A(n))-1
其中det代表求矩阵的行列式,diag代表取矩阵的对角线元素; (3)计算新的变换矩阵,矩阵第m行的计算公式为其中
是H(n)矩阵的第m行,如果满足一定迭代步数或两次迭代数值变化不大时,停止迭代,否则转步骤(2)继续迭代。
然后利用每个变换矩阵分块对原始特征进行变换,得到新的特征矢量最后将每个新的特征矢量进行降维,x(n)保留前U(n)维,得到
对各块特征进行拼接可得到新的特征矢量如附图3所示,实施本发明的具体步骤如下 (1)首先由语音信号进行MFCC特征提取,得到多帧N维的MFCC基本特征矢量; (2)选取连续M帧MFCC特征并列放置,形成倒谱矩阵; (3)将倒谱矩阵按行展开,形成超矢量特征; (4)由超矢量特征分块计算均值和协方差统计量; (5)按迭代公式分块计算变换矩阵; (6)使用变换矩阵对超矢量分块进行变换,对各块特征进行降维和拼接,得到新的特征矢量。
本发明实验采用国际上标准的NIST 2003语种评测数据,共12个语种,含1280段长约为30秒的电话对话语音,训练数据采用CallFriend数据库语音。
对SDC特征和本发明提出的CHLDA变换的特征进行对比测试。将所有测试段对每个语种分别进行语种确认,调节虚警率和漏报率相等时,可以得到系统的等错率,采用各语种平均的等错率作为系统的评价指标,等错率越低,表明系统性能越好。
实验中,采用GMM(高斯混合模型)作为分类器,每个GMM由256个高斯分量构成。分别采用最大互信息方法进行训练,先用Bauman-Welch算法迭代8次,再用扩展的Bauman-Welch算法迭代20次。
SDC特征的N-b-S-K参数采用7-1-3-7(包含C0),再加上7维MFCC特征,共形成共56维的特征矢量。CHLDA变换采用的参数为N=10,M=21。n从1到10,第n块保留的维数为11-n,即第1块保留的维数为10,第2块保留的维数为9,......,第10块保留的维数为1,这样最后形成了一个保留了55维,即拼接成55维的特征矢量。
实验表明采用SDC特征,语种识别等错率为2.93%;采用CHLDA变换后的特征,语种识别等错率为2.35%。可见,本发明提出的约束异方差线性鉴别分析方法用于语种识别可使其性能有较大提高。另外,在数字集成电路实现时,与HLDA算法相比,采用本发明运算模块节约资源90%。
权利要求1.用于语种识别的约束异方差线性鉴别分析方法,其特征在于,所述方法是在数字集成电路芯片中依次按以下步骤实现的
步骤(1)把一帧语音信号输入到N维特征提取电路,得到N维Mel频率倒谱系数MFCC的基本特征矢量,N=10,
步骤(2)用步骤(1)所述的方法提取出连续M帧语音信号的Mel频率倒谱系数MFCC的N维基本特征矢量,M=21,并输入到一个倒谱矩阵形成电路,得到一个倒谱矩阵C
步骤(3)把步骤(2)得到的倒谱矩阵C输入到一个串并转换电路,按行展开,得到一个超矢量特征c
步骤(4)把步骤(3)得到的超矢量特征c输入到一个分路器,分成N块
其中c(n)=[cn1 cn2…cnM]T代表超矢量特征中的第n块,T代表转置,
步骤(5)对每个语种的语音数据均按照步骤(1)-(4)进行操作,假设一共有L个语种,第1个语种可得到超矢量特征I1帧,所有语种共得到超矢量特征I帧,即
步骤(6)按以下步骤用一个逻辑电路分块计算各语种的超矢量特征的统计量和所有语种总的超矢量特征的统计量,n=1,2,....,N步骤(6.1)计算第1个语种的各帧中第n块超矢量特征c(n)的均值
i=1,2,...,I,
计算第1个语种的第n块超矢量特征c(n)的协方差矩阵
其中∑g(i)=l表示对所有帧中属于第1个语种的特征矢量求和;
步骤(6.2)计算所有语种第n块超矢量特征c(n)的总均值m(n)
计算所有语种第n块超矢量特征c(n)的总协方差矩阵T(n)
步骤(7)用一个变换矩阵运算电路按以下步骤分块计算超矢量特征的变换矩阵,n=1,2,....,N
步骤(7.1)初始化第n块变换矩阵为单位阵A(n)=I,
步骤(7.2)把上述第n块变换矩阵划分为两部分
其中,其中
代表第n块变换矩阵A(n)的前U(n)行,
代表剩下的M-U(n)行,M=21,
步骤(7.3)按下式计算第n块变换矩阵的第m行
其中
是中间变量H(n)矩阵的第m行
H(n)=det(A(n))(A(n))-1,
为
的对角线元素
其中det代表求矩阵的行列式,diag代表取矩阵的对角线元素,
步骤(7.4)当达到20次迭代或两次迭代det(A(n))数值相对变化小于1/1000时,停止迭代,否则转步骤(7.2)继续迭代,
步骤(8)用变换矩阵A(n)对超矢量特征
分块进行变换,得到新的特征矢量x(n),i=1,2,...,I,n=1,2,....,N
步骤(9)取出所述特征矢量x(n)的前U(n)维,得到
n=1,2,....,N,再用一个合路器把各块特征依次进行拼接,得到新的特征矢量
全文摘要用于语种识别的约束异方差线性鉴别分析方法涉及一种高维特征矢量的降维和去相关处理方法,其特征在于,所述方法首先由语音信号提取MFCC特征,选取连续M帧MFCC特征并列放置得到倒谱矩阵,然后将其按行展开,形成超矢量,再分块计算超矢量的均值和协方差,并用迭代法分块计算变换矩阵,接着用变换矩阵对超矢量分块进行变换,最后将各块进行降维和拼接处理,可得到新的特征矢量。该方法计算量小,得到的特征矢量去除了各维之间的相关性,鉴别性高且维数低。可以用于语种识别。
文档编号G10L15/02GK101546555SQ200910081899
公开日2009年9月30日 申请日期2009年4月14日 优先权日2009年4月14日
发明者张卫强, 加 刘 申请人:清华大学