首页 > 行业资讯 > 【情感识别】基于改近最近邻实现语音情感分类识别含Matlab源码

【情感识别】基于改近最近邻实现语音情感分类识别含Matlab源码

时间:2022-06-21 来源: 浏览:

【情感识别】基于改近最近邻实现语音情感分类识别含Matlab源码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #图像处理matlab源码 686个

1 简介

K近邻(K-NearestNeighbor,KNN)算 法是 一种基于实例的统计学习方法,其基本思想是在多维空间Rn中,对于一个待分类样本x,根据距离找到与未知样本最近邻的k个训练样本点,然后根据这k个近邻样本点的类别决定待分类样本的类别.K近邻算法的具体实现包括两 个 阶 段.

(1)训练阶段:对 训 练 样 本 进 行 离 散 化,读 取 和 存 储;

(2)分类阶段:首先对于待分类的样本,计算它与其他的训练样本的欧式距离.选择其中距离最近的K个样本.并查看这K个近邻的分类标记,根 据多 数 表 决原则确定待测样本的类别.重复以上步骤直至所有待分类的样本分类结束.

2 部分代码

function[A,E,Z] =TimePara(y) y_length=length(y); %声音信号的长度 Ny= 512 ; %短时帧长 frame_all=floor((y_length-(Ny/ 2 ))/(Ny/ 2 )); y2_sound=y( 1 :(frame_all+ 1 )*(Ny/ 2 )); y3=reshape(y2_sound,(Ny/ 2 ),[]); y4=[y3(:, 1 :frame_all);y3(:, 2 :(frame_all+ 1 ))]; %%%%%%加hamming窗 win_h=hamming(Ny); %win_y=y_sound.*win_h; for i= 1 :(frame_all) A_y(i)=sum(abs(y4(:,i).*win_h)); %计算短时幅值 E_y(i)=sum((y4(:,i).*win_h).*(y4(:,i).*win_h)); %计算短时能量 Z_y(i)=sum(abs(sign(y4( 2 : 80 ,i))-sign(y4( 1 : 79 ,i))))/ 2 ; %计算短时过零率 end A=mean(A_y); E=mean(E_y); Z=mean(Z_y); figure( 3 ); plot(y);grid on ; xlabel( ’样本数’ ); title( ’语音信号时域波形’ ); figure( 4 ); plot(A_y, ’*r’ );hold on ; plot(Z_y, ’^g’ );hold on ; plot(E_y, ’sb’ );grid on ; xlabel( ’帧数’ ); title( ’短时幅值,过零率,能量’ ); legend( ’幅值’ , ’过零率’ , ’能量’ );

3 仿真结果

4 参考文献

[1]龚灵杰, 袁家政, 刘宏哲. 基于加权最近邻的语音情感识别方法[C]// 中国计算机用户协会网络应用分会2017年第二十一届网络新技术与应用年会论文集. 2017.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐