【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】

一、简介

基于matlab GUI语音情感分类识别

二、源代码

clc;
close all;
defcolor=[0,0,0];
h_fig=figure(1);
set(h_fig,'Menubar','name','语音情感识别系统 v1.0',...
    'Numbertitle','off',...
    'color',[0.9023    0.9074    0.8055]);
h_text=uicontrol(h_fig,'style','text','unit','normalized',...
    'position',[0.0,0.0,1,1]);
h_text1=uicontrol(h_fig,'style','text','unit','normalized',...
    'position',[0.0,0.85,0.25,0.05],'horizontal','left',...
    'string','请选择待检测wav文件:','fontsize',10,'ForegroundColor',defcolor);
h_edit1=uicontrol(h_fig,'style','edit','unit','normalized',...
    'position',[0.28,0.80,0.5,0.1],'horizontal','left',...
   'fontsize',10, 'ForegroundColor',defcolor);
h_push3=uicontrol(h_fig,'style','push','unit','normalized',...
    'position',[0.78,0.8,0.08,0.1],'horizontal','left',...
    'string','...','fontsize',20,'ForegroundColor',defcolor,'callback','getfile');
h_push1=uicontrol(h_fig,'style','push','unit','normalized',...
    'position',[0.4,0.75,0.18,0.05],'horizontal','left',...
    'string','确定','fontsize',10,'ForegroundColor',defcolor,'callback','process');
h_text3=uicontrol(h_fig,'style','text','unit','normalized',...
    'position',[0,0.5,0.28,0.1],'horizontal','left',...
    'string','传统KNN算法获得结果为:','fontsize',10,'ForegroundColor',defcolor);
h_edit2=uicontrol(h_fig,'style','edit','unit','normalized',...
    'position',[0.28,0.5,0.3,0.1],'horizontal','left',...
    'fontsize',10,'ForegroundColor',defcolor);
    [y,fs]=wavread(filename);
sound(y,fs)
X3=mean(FunFre(y,fs));
[X1,X2,X4]=TimePara(y);
k=13;
XA=[Aa Ah As X1];XE=[Ea Eh Es X2];XF=[Fa Fh Fs X3];XZ=[Za Zh Zs X4];  
PA=mapzo(XA);PE=mapzo(XE);PF=mapzo(XF);PZ=mapzo(XZ);
a=[PA(1:30);PE(1:30);PF(1:30);PZ(1:30)];
h=[PA(31:60);PE(31:60);PF(31:60);PZ(31:60)];
s=[PA(61:90);PE(61:90);PF(61:90);PZ(61:90)];
x=[PA(91);PE(91);PF(91);PZ(91)];
%%%传统KNN算法
disp('使用传统KNN算法识别结果为:')
A=oushi(a,x);
H=oushi(h,x);
S=oushi(s,x);
set(h_edit2,'style','text');
set(h_edit2,'string',judge(A,H,S,k));
%%%%%%%改进算法
disp('使用改进算法识别结果为:')
B=mean([Aa' Ah' As' Ea' Eh' Es' Fa' Fh' Fs' Za' Zh' Zs']);
A=reshape(B,3,4);
O=reshape([Aa Ah As],30,3);
for i=1:3
    for j=1:30
     OO(j,i)=(abs(O(j,i)-A(i,1))/A(i,1))^2;
    end
end
O=sqrt(sum(OO));
P=reshape([Ea Eh Es],30,3);
for i=1:3
    for j=1:30
     PP(j,i)=(abs(P(j,i)-A(i,2))/A(i,2))^2;
    end
end
P=sqrt(sum(PP));
Q=reshape([Fa Fh Fs],30,3);
for i=1:3
    for j=1:30
     QQ(j,i)=(abs(Q(j,i)-A(i,3))/A(i,3))^2;
    end
end
Q=sqrt(sum(QQ));
R=reshape([Za Zh Zs],30,3);
for i=1:3
    for j=1:30
  RR(j,i)=(abs(R(j,i)-A(i,4))/A(i,4))^2;
    end
end
R=sqrt(mean(RR));
X=[O' P' Q' R'];
for i=1:3
    for j=1:4
       V(i,j)=(sum(X(i,:))-X(i,j))/sum(X(i,:));
    end
    function [str]=judge(A,H,S,k)
f=[A H S];  %将欧距三个个矩阵合并
g=[A H];
d=numel(f);
c=[1:d];                      %用来存放排序后的欧距
c=lowtohigh(f,d);
 num1=0;                         %用来记录被判x类的次数
 num2=0;                         %用来记录被判y类的次数
 num3=0;
 for i=1:k
    for j=1:d
        if (c(i)==f(j))
            if j<=numel(A)      %如果选中的欧距出自x类
            num1=num1+1;
            elseif  j>numel(g)             %如果选中的欧距出自y类
               num3=num3+1;
            else
               num2=num2+1;       
            end
        end
        j=j+1;
    end
    i=i+1;
 end 
 
 if(num1>num2&num1>num3)
     w=0;
 elseif(num2>num1&num2>num3) 
     w=1;
 elseif(num3>num1&num3>num2) 
     w=2;
 end
end

三、运行结果

【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】_第1张图片
【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】_第2张图片
【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】_第3张图片
【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】_第4张图片
【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】_第5张图片
【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】_第6张图片
【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】_第7张图片
【情感识别】基于matlab GUI语音情感分类识别【含Matlab源码 354期】_第8张图片

四、备注

完整代码或者代写添加QQ 1564658423
往期回顾>>>>>>
【信号处理】基于matlab HMM的睡眠状态检测【含Matlab源码 050期】
【信号处理】基于matlab CDR噪声和混响抑制【含Matlab源码 051期】
【信号处理】基于matlab最小二乘法解决稀疏信号恢复问题【含Matlab源码 052期】
【信号处理】基于matlab小波变换的音频水印嵌入提取【含Matlab源码 053期】
【信号处理】基于matlab ICA算法信号分离【含Matlab源码 054期】
【信号处理】基于matlab GUI界面的脉搏信号之脉率存档【含Matlab源码 237期】
【信号处理】基于matlab GUI界面的虚拟信号发生器(各种波形)【含Matlab源码 271期】
【信号处理】基于matlab GUI界面信号发生器之电子琴【含Matlab源码 272期】
【信号处理】基于matlab的数字电子琴设计与实现【含Matlab源码 273期】
【雷达通信】基于matlab的雷达数字信号处理【含Matlab源码 281期】
【雷达通信】基于matlab线性调频(LFM)脉冲压缩雷达仿真【含Matlab源码 283期】
【雷达通信】基于mtatlab距离多普勒(RD)、CS、RM算法的机载雷达成像【含Matlab源码 284期】
【雷达通信】《现代雷达系统分析与设计》大作业【含Matlab源码 285期】
【信号处理】基于matlab GUI语音信号综合处理平台【含Matlab源码 290期】
【信号处理】基于matlab GUI语音信号采集【含Matlab源码 291期】
【信号处理】基于matlab GUI语音幅度调制【含Matlab源码 292期】
【信号处理】基于matlab GUI语音合成【含Matlab源码 293期】
【信号处理】基于matlab GUI语音基频识别【含Matlab源码 294期】
【信号处理】基于matlab GUI语音信号加密解密【含Matlab源码 295期】
【信号处理】基于matlab小波变换的语音增强【含Matlab源码 296期】
【信号处理】基于matlab GUI语音傅立叶变换降噪混频【含Matlab源码 297期】
【信号处理】基于matlab GUI维纳滤波之语音增强【含Matlab源码 298期】
【音频处理】基于matlab GUI语音信号处理2【含Matlab源码 299期】
【雷达通信】基于matlab GUI雷达定位【含Matlab源码 302期】
【雷达通信】基于matlab GUI雷达脉冲压缩【含Matlab源码 303期】
【雷达通信】基于matlab GUI雷达定位模拟【含Matlab源码 304期】
【雷达通信】基于matlab SVM识别雷达数据【含Matlab源码 305期】
【雷达图像】SAR合成孔径雷达成像及处理【含Matlab源码 307期】
【信息处理】基于GUI数字波束的算法库【含Matlab源码 313期】
【通信】基于matlab的OFDM-MIMO通信建模与仿真【含Matlab源码 314期】
【通信】基于matlab的OFDM仿真【含Matlab源码 315期】
【信号处理】基于matlab窗函数法的FIR数字滤波器设计【含Matlab源码 316期】
【通信】基于matlab FIR低通数字滤波器设计【含Matlab源码 323期】
【通信】基于matlab FIR IIR数字滤波器设计【含Matlab源码 324期】
【信号处理】基于matlab的语音信号频谱分析仪【含Matlab源码 325期】
【调制信号】基于matlab GUI数字调制信号仿真【含Matlab源码 336期】
【通信】基于matlab的扩频通信系统设计【含Matlab源码 337期】
【通信】基于matlab多径衰落信道的仿真【含Matlab源码 338期】
【语音识别】基于matlab BP神经网络的语音情感识别【含Matlab源码 349期】
【信号处理】基于matlab音频水印嵌入与提取【含Matlab源码 350期】
【音频水印】基于matlab小波变换的量化音频数字水印【含Matlab源码 351期】
【语音去噪】基于matlab低通和自适应滤波去噪【含Matlab源码 352期】
【信号处理】基于matlab 8级m序列【含Matlab源码 353期】

你可能感兴趣的:(matlab,信号处理)