一、簡介
基于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
三、運行結果








四、備注
完整代碼或者代寫添加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期】
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/262032.html
標籤:其他
上一篇:你好,我是程式員
下一篇:洛谷P1138 第k小整數
