1 简介
语种识别系统通常采用支持向量机(support vectormachine,SVM)一对多分类加Gauss后端分类器的方法进行分类.传统的SVM一对一分类在进行线性鉴别性分析(linear discriminant analysis,LDA)时特征值矩阵往往为奇异的,识别性能很低.该文提出一种改进的一对一分类方法,对SVM一对一分类得分重新建模,识别性能明显提高.在美国国家标准技术署(National Institute of Standardsand Technology,NIST)2011年语种识别评测(languagerecognition evaluation,LRE)30s数据集上的实验结果表明:在采用SVM的全变化量因子分析(total variability,iVector)和支持向量机-Gaussn超向量(support vectormachine-Gaussian super vector,SVM-GSV)语种识别系统上,该方法比SVM一对多分类方法性能更好,并且两种方法线性融合可明显提升识别性能,在iVector系统上各指标相对提升7.7%~15.9%,在SVM-GSV系统上各指标相对提升11.2%~33.9%.
2 部分代码
%提取基音周期,得到1*N维的特征向量function PCH=framepitches(x,fs,zchang,zyi)[nrows,ncols]=size(x);if nrows>1x=x';enddata=enframe(x,zchang,zyi);[nframe,flen]=size(data);for ij=1:nframe,R=zeros(1,flen); %基音周期(n)多次分析数组for k=1:flen-1 %求自相关序列for jj=1:flen-kR(k)=R(k)+data(ij,jj)*data(ij,jj+k);endendzer=find(R==0); %找第一个零点如果存在jiaocha=0; %找第一近零点ii=1;while (jiaocha<=0)if(R(ii)>0 && R(ii+1)<0 && (ii+1)<length(R))jiaocha=ii;endii=ii+1;if ii==length(R) %没有找到符合要求的点jiaocha=1;endendif length(zer)>0 %检查是否存在零点if zer(1)<jiaocha %存在,则和jiaocha比较大小,用于祛除前点的对基音周期的查找带来的影响jiaocha=zer(1);endendR(1:jiaocha)=0; %祛除影响maxn=max(R); %找最大值temp=find(R==maxn);%返回第一个最大值nmax=temp(1);pitch=fs/nmax;PCH(1,ij)=pitch;end
3 仿真结果


4 参考文献
[1]王宪亮, 吴志刚, 杨金超,等. 基于SVM一对一分类的语种识别方法[J]. 清华大学学报:自然科学版, 2013(6):5.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
本文提出了一种改进的支持向量机(SVM)一对一分类方法,用于提高语种识别系统的性能。传统SVM在LDA时遇到奇异矩阵问题,识别率低下。新方法通过重新建模SVM一对一分类得分,显著提升了识别效果。在NIST 2011年语种识别评测数据集上,与SVM一对多分类对比,该方法在全变化量因子分析(iVector)和SVM-Gaussn超向量(SVM-GSV)系统中均表现出优越性能,融合后识别性能提升11.2%~33.9%。
1000

被折叠的 条评论
为什么被折叠?



