【情感识别】基于支持向量机(SVM)实现语音情感识别matlab源码

1 模型

本文涉及一种语音情感识别系统及方法.采取特征提取分析模块,SVM训练模块和SVM识别模块;训练过程包括特征提取分析,SVM训练;识别过程包括特征提取分析,SVM识别.特征提取分析有全局结构特征参数选择及性别规整,时序结构特征参数选择,性别规整及元音数目规整;支持向量机(SVM)有支持向量机训练,对高兴,生气,悲伤,恐惧,惊讶五种情感进行识别.解决了矢量分割型马氏距离判法,主元分析法,神经网络法,隐马尔可夫法等的各自缺陷.本发明加强了特征参数的有效性,加入性别规整,用最少支持向量,在错分样本和算法复杂度之间获得最好的语音识别,在单个SVM及多个SVM结合的多模式具有连续输出函数,降低误识率.

1.1 SVM支持向量机

【情感识别】基于支持向量机(SVM)实现语音情感识别matlab源码

【情感识别】基于支持向量机(SVM)实现语音情感识别matlab源码

【情感识别】基于支持向量机(SVM)实现语音情感识别matlab源码

1.2 情感特征

【情感识别】基于支持向量机(SVM)实现语音情感识别matlab源码

【情感识别】基于支持向量机(SVM)实现语音情感识别matlab源码

2 部分代码

%:基于SVM的语音情感识别
clc;
clear;
load A_fear fearVec;
load F_happiness hapVec;
load N_neutral neutralVec;
load T_sadness sadnessVec;
load W_anger angerVec;
sampleang=angerVec';
samplehap=hapVec';
sampleneu=neutralVec';
samplesad=sadnessVec';
samplefear=fearVec';
train(1:30,:)=sampleang(1:30,:); %每类三十个样本作为训练样本
test(1:20,:)=sampleang(31:50,:);%每类二十个样本作为测试样本
train(31:60,:)=samplehap(1:30,:);
test(21:40,:)=samplehap(31:50,:);%
train(61:90,:)=sampleneu(1:30,:);
test(41:60,:)=sampleneu(31:50,:);%
train(91:120,:)=samplesad(1:30,:);
test(61:80,:)=samplesad(31:50,:);%
train(121:150,:)=samplefear(1:30,:);
test(81:100,:)=samplefear(31:50,:);%
rate=svmclassfiction(train,test);%调用SVM分类函数
figure(1)
bar(rate,0.5);
set(gca,'XTickLabel',{'生气','高兴','中性','悲伤','害怕'});
ylabel('识别率');
xlabel('五种基本情感');

3 仿真结果

【情感识别】基于支持向量机(SVM)实现语音情感识别matlab源码

4 参考文献

[1]赵 力等. "一种基于支持向量机的语音情感识别方法.", 2007.

5 完整MATLAB代码与数据下载地址

见博客主页头条

上一篇:torch.reshape()的使用


下一篇:《剑指Offer》30-包含min函数的栈