IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> ?【信号识别】基于K近邻分类算法的语音情感识别matlab代码 -> 正文阅读

[人工智能]?【信号识别】基于K近邻分类算法的语音情感识别matlab代码

1 简介

随着计算机技术的不断发展,语音情感识别成为人工智能领域的研究热点.语音情感识别包括语音信号预处理,特征参数提取和情感识别分类器等.本文着重对语音情感的特征提取方法与特征计算的分类进行研究,采用对情感语音进行预处理,包括抗混叠滤波,预加重,加窗以及端点检测等,对高兴,愤怒和悲伤3种语音情感提取短时能量,过零率,短时幅度以及MFCC等参数,根据柏林情感语音库中的90句情感语音,使用K近邻算法对语音的3种情感进行识别.

2 部分代码

%% knn分类主程序(利用采集的情感语音信号特征数据进行分类识别)
clc
clear?all;
close?all;

%% 载入各情感的特征向量矩阵
load?A_fear.mat;
load?F_happiness.mat;
load?N_neutral.mat;
load?T_sadness.mat;
load?W_anger.mat;
NumberOfTrain=size(fearVec,2)/2;?%一半测试用,一半训练用
trainVector=[fearVec(:,1:NumberOfTrain),hapVec(:,1:NumberOfTrain),neutralVec(:,1:NumberOfTrain),sadnessVec(:,1:NumberOfTrain),angerVec(:,1:NumberOfTrain)];?% 构建训练样本集
testVector=[fearVec(:,(NumberOfTrain+1):size(fearVec,2)),hapVec(:,(NumberOfTrain+1):size(hapVec,2)),neutralVec(:,(NumberOfTrain+1):size(neutralVec,2)),sadnessVec(:,(NumberOfTrain+1):size(sadnessVec,2)),angerVec(:,(NumberOfTrain+1):size(angerVec,2))];?% 构建测试样本集
k=9;?%k 最近邻
distanceMatrix=zeros(size(trainVector,2),size(testVector,2));?% 每一列表示某个测试语音与所有训练集样本的距离
%% 计算每个测试样本和训练样本集各样本的距离
for?i=1:size(testVector,2)
? ?for?j=1:size(trainVector,2)
? ? ? ?distanceMatrix(j,i)=norm(testVector(:,i)-trainVector(:,j));?%计算欧氏距离
? ?end
end
%% 统计分类结果 (根据相应的特征向量在数组trainVector或testVector中所处的位置来辨别类型)
totalTestNumber=size(fearVec,2)-NumberOfTrain;
emtionCounter=zeros(1,5);
n1=NumberOfTrain;
n2=n1+NumberOfTrain;
n3=n2+NumberOfTrain;
n4=n3+NumberOfTrain;
n5=n4+NumberOfTrain;
p1=size(fearVec,2)-NumberOfTrain;
p2=p1+size(hapVec,2)-NumberOfTrain;
p3=p2+size(neutralVec,2)-NumberOfTrain;
p4=p3+size(sadnessVec,2)-NumberOfTrain;
p5=p4+size(angerVec,2)-NumberOfTrain;
if(n5~=size(trainVector,2)||p5~=size(testVector,2))
? ?disp('data error')
? ?return;
end

for?i=1:size(distanceMatrix,2)
? ?flag=zeros(1,5);
? [sortVec,index]=sort(distanceMatrix(:,i));
? ?% 统计K个近邻中各类别的数量
? ?for?j=1:k
? ? ? ?if(n1>=index(j)&&index(j)>=1)
? ? ? ? ? ?flag(1)=flag(1)+1;
? ? ? ?elseif(n2>=index(j)&&index(j)>n1)
? ? ? ? ? ?flag(2)=flag(2)+1;
? ? ? ?elseif(n3>=index(j)&&index(j)>n2)
? ? ? ? ? ?flag(3)=flag(3)+1;
? ? ? ?elseif(n4>=index(j)&&index(j)>n3)
? ? ? ? ? ?flag(4)=flag(4)+1;
? ? ? ?else
? ? ? ? ? ?flag(5)=flag(5)+1;
? ? ? ?end
? ?end
? [~,index1]=sort(flag);
? ?% 如果K个近邻中数量最多的类别与该样本实际的类别一致,则认为算法识别正确,相应counter加一。
? ?if((p1>=i&&i>=1)&&index1(5)==1)
? ? ? ?emtionCounter(index1(5))=emtionCounter(index1(5))+1;
? ? ??
? ?elseif((p2>=i&&i>p1)&&index1(5)==2)
? ? ? ?emtionCounter(index1(5))=emtionCounter(index1(5))+1;
? ? ? ?
? ?elseif((p3>=i&&i>p2)&&index1(5)==3)
? ? ? ?emtionCounter(index1(5))=emtionCounter(index1(5))+1;
? ? ? ?
? ?elseif((p4>=i&&i>p3)&&index1(5)==4)
? ? ? ?emtionCounter(index1(5))=emtionCounter(index1(5))+1;
? ? ??
? ?elseif((p5>=i&&i>p4)&&index1(5)==5)
? ? ? ?emtionCounter(index1(5))=emtionCounter(index1(5))+1;
? ? ??
? ?end

end

%% 显示结果
ratio=emtionCounter./totalTestNumber;
bar(ratio);
ylim([0,1])
set(gca,'XTickLabel',{'惊恐','高兴','中性','高兴','生气'});
n=1:5;
for?i?=?1:length(ratio)
text(n(i)-0.18,ratio(i)+0.02,num2str(ratio(i)));
end
title(strcat('KNN 算法识别结果\_ ',strcat('K = ',num2str(k))));
xlabel('情感类别')
ylabel('识别率')

3 仿真结果

4 参考文献

[1]吕志浩, 马赫, and 鲁润南. "基于模糊K近邻的语音情感识别." 2016-19(2021):279-280.

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:23:44  更:2021-11-20 18:24:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 4:23:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码