【语音识别】基于MPCC+IPL特征结合SVM实现中英语种识别含Matlab源码
【语音识别】基于MPCC+IPL特征结合SVM实现中英语种识别含Matlab源码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
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>1
x
=
x’;
end
data
=
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-k
R(k)
=
R(k)+data(ij,jj)*data(ij,jj+k);
end
end
zer
=
find(R==0); %找第一个零点如果存在
jiaocha
=
0; %找第一近零点
ii
=
1;
while
(jiaocha<=0)
if(R(ii)>0
&& R(ii+1)<0 && (ii+1)<length(R))
jiaocha
=
ii;
end
ii
=
ii+1;
if
ii==length(R) %没有找到符合要求的点
jiaocha
=
1;
end
end
if
length(zer)>0 %检查是否存在零点
if
zer(1)<jiaocha %存在,则和jiaocha比较大小,用于祛除前点的对基音周期的查找带来的影响
jiaocha
=
zer(1);
end
end
R(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代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
