【情感识别】基于matlab支持向量机(SVM)的语音情感识别【含Matlab源码 543期】

一、简介

支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。
1 数学部分
1.1 二维空间
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2 算法部分
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、源代码

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,:);
function rate=svmclassfiction(samples,test)   %构造五种情感分类器
train1=samples(1:60,:);%用来构造生气-高兴分类模型训练样本
train2=[samples(1:30,:);samples(61:90,:)];%用来构造生气-中性分类模型训练样本
train3=[samples(1:30,:);samples(91:120,:)];%用来构造生气-悲伤分类模型训练样本
train4=[samples(1:30,:);samples(121:150,:)];%用来构造生气-害怕分类模型训练样本
train5=[samples(31:60,:);samples(61:90,:)];%用来构造高兴-中性分类模型训练样本
train6=[samples(31:60,:);samples(91:120,:)];%用来构造高兴-悲伤分类模型训练样本
train7=[samples(31:60,:);samples(121:150,:)];%用来构造高兴-害怕分类模型训练样本
train8=[samples(61:90,:);samples(91:120,:)];%用来构造中性-悲伤分类模型训练样本
train9=[samples(61:90,:);samples(121:150,:)];%用来构造中性-害怕分类模型训练样本
train10=[samples(91:120,:);samples(121:150,:)];%用来构造悲伤-害怕分类模型训练样本
for i=1:30                %正类样本标记
    trainlabel(i)=1;
end
for i=30:60               %负类样本标记
    trainlabel(i)=-1;
end
trainlabel=trainlabel';
svmStruct(1)= svmtrain(train1,trainlabel);    %构造两类SVM分类模型
svmStruct(2)= svmtrain(train2,trainlabel);    
svmStruct(3)= svmtrain(train3,trainlabel);   
svmStruct(4)= svmtrain(train4,trainlabel);    
svmStruct(5)= svmtrain(train5,trainlabel);    
svmStruct(6)= svmtrain(train6,trainlabel);    
svmStruct(7)= svmtrain(train7,trainlabel);   
svmStruct(8)= svmtrain(train8,trainlabel);    
svmStruct(9)= svmtrain(train9,trainlabel);    
svmStruct(10)= svmtrain(train10,trainlabel);  
sumang=0; %生气情感正确识别个数
sumhap=0; %高兴情感正确识别个数
sumneu=0; %中性情感正确识别个数
sumsad=0; %悲伤情感正确识别个数
sumfea=0; %害怕情感正确识别个数
for i=1:100
    for k=1:5
        votes(k)=0;   %多个SVM分类器将待测样本规定为某一类别个数
    end
    for j=1:10
       C(j) = svmclassify(svmStruct(j),test(i,:));
    end
    if(C(1)==1)    %第一个判决器结果
         votes(1)=votes(1)+1;  %生气情感获得票数
    elseif(C(1)==-1)
         votes(2)=votes(2)+1;  %高兴情感获得票数
    end
    if(C(2)==1)    %第二个判决器结果
         votes(1)=votes(1)+1;  %生气情感获得票数
    elseif(C(2)==-1)
         votes(3)=votes(3)+1;  %中性情感获得票数
    end
    if(C(3)==1)    %第三个判决器结果
         votes(1)=votes(1)+1;  %生气情感获得票数
    elseif(C(3)==-1)
         votes(4)=votes(4)+1;  %悲伤情感获得票数
    end
     if(C(4)==1)    %第四个判决器结果
         votes(1)=votes(1)+1;  %生气情感获得票数
    elseif(C(4)==-1)
         votes(5)=votes(5)+1;  %害怕情感获得票数
     end

三、运行结果

在这里插入图片描述

四、备注

完整代码或者代写添加QQ 1564658423
往期回顾>>>>>>
【特征提取】基于matlab小波变换的音频水印嵌入提取【含Matlab源码 053期】
【语音处理】基于matlab GUI语音信号处理【含Matlab源码 290期】
【语音采集】基于matlab GUI语音信号采集【含Matlab源码 291期】
【语音调制】基于matlab GUI语音幅度调制【含Matlab源码 292期】
【语音合成】基于matlab GUI语音合成【含Matlab源码 293期】
【语音加密】基于matlab GUI语音信号加密解密【含Matlab源码 295期】
【语音增强】基于matlab小波变换的语音增强【含Matlab源码 296期】
【语音识别】基于matlab GUI语音基频识别【含Matlab源码 294期】
【语音增强】基于matlab GUI维纳滤波之语音增强【含Matlab源码 298期】
【语音处理】基于matlab GUI语音信号处理【含Matlab源码 299期】
【信号处理】基于matlab的语音信号频谱分析仪【含Matlab源码 325期】
【调制信号】基于matlab GUI数字调制信号仿真【含Matlab源码 336期】
【情感识别】基于matlab BP神经网络的语音情感识别【含Matlab源码 349期】
【语音隐写】基于matlab小波变换的量化音频数字水印【含Matlab源码 351期】
【特征提取】基于matlab音频水印嵌入与提取【含Matlab源码 350期】
【语音去噪】基于matlab低通和自适应滤波去噪【含Matlab源码 352期】
【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】
【基础处理】基于matlab语音信号的预处理【含Matlab源码 364期】
【语音识别】基于matlab 傅立叶变换0-9的数字语音识别【含Matlab源码 384期】
【语音识别】基于matlab GUI DTW的0-9数字语音识别【含Matlab源码 385期】
【语音播放】基于matlab GUI MP3设计【含Matlab源码 425期】
【语音处理】基于人耳掩蔽效应的语音增强算法信噪比计算【含Matlab源码 428期】
【语音去噪】基于matlab谱减法去噪【含Matlab源码 429期】
【语音识别】基于matlab带动量项的BP神经网络语音识别【含Matlab源码 430期】
【语音隐写】基于matlab LSB语音隐藏【含Matlab源码 431期】
【语音识别】基于matlab男女声识别【含Matlab源码 452期】
【语音处理】基于matlab语音加噪和降噪处理【含Matlab源码 473期】
【语音去噪】基于matlab最小二乘法(LMS)自适应滤波器【含Matlab源码 481期】
【语音增强】基于matlab谱减法、最小均方和维纳滤波语音增强【含Matlab源码 482期】
【通信】基于matlab GUI数字频带(ASK、PSK、QAM)调制仿真 【含Matlab源码 483期】
【信号处理】基于matlab心电信号ECG滤波处理【含Matlab源码 484期】
【语音播报】基于matlab语音播报【含Matlab源码 507期】
【信号处理】基于matlab小波变换脑电信号特征提取【含Matlab源码 511期】
【语音处理】基于matlab GUI双音多频(DTMF)信号检测【含Matlab源码 512期】
【语音隐写】基于matlab LSB实现语音信号的数字水印【含Matlab源码 513期】
【语音增强】基于matlab匹配滤波器的语音识别【含Matlab源码 514期】
【语音处理】基于matlab GUI语音时域频域频谱图分析【含Matlab源码 527期】
【语音去噪】基于matlab LMS、RLS算法语音去噪【含Matlab源码 528期】
【语音去噪】基于matlab LMS谱减法语音去噪【含Matlab源码 529期】
【语音去噪】基于matlab 软阈值、硬阈值、折中阈值语音去噪【含Matlab源码 530期】
【语音识别】基于matlab特定人的语音识别分辨【含Matlab源码 534期】
【语音去噪】基于matlab小波软阈值语音降噪【含Matlab源码 531期】
【语音去噪】基于matlab小波硬阈值语音降噪【含Matlab源码 532期】
【语音识别】基于matlab MFCC和SVM的特定人性别识别【含Matlab源码 533期】
【语音识别】基于MFCC的GMM语音识别【含Matlab源码 535期】
【语音识别】基于matlab VQ特定人孤立词语音识别【含Matlab源码 536期】
【语音识别】基于matlab GUI声纹识别【含Matlab源码 537期】
【采集读写】基于matlab语音采集与读写【含Matlab源码 538期】
【语音编辑】基于matlab语音编辑【含Matlab源码 539期】
【语音模型】基于matlab语音信号数学模型【含Matlab源码 540期】
【语音响度】基于matlab语音声强与响度【含Matlab源码 541期】
【情感识别】基于matlab K近邻分类算法的语音情感识别【含Matlab源码 542期】

猜你喜欢

转载自blog.csdn.net/TIQCmatlab/article/details/114954400