【情感识别】基于matlab BP神经网络语音情感识别【含Matlab源码 349期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、BP神经网络语音情感识别简介

0 引言
随着科技的迅速发展, 人机交互显得尤为重要。语音是语言的载体, 是人与人之间交流的重要媒介。相较于其它交流方式而言, 语音交流更加直接、便捷。近年来, 随着人机交互研究的不断深入, 语音情感识别更成为了学术界研究的热点, 其涉及到信号处理、模式识别、人工智能等相关领域。语音中除了能够传达语义信息外, 还包含了一些情感信息, 然而这些情感信息往往被人们所忽略。语音情感识别实际上是利用计算机所提取的语音信号特征来判断其属于哪一类情感。利用模式识别方法研究语音情感识别的文献较多, 朱菊霞等使用SVM算法对语音情感进行识别, 并取得了86% 的识别率。余华等使用粒子群算法优化神经网络来进行语音情感识别, 识别率较高。BP神经网络是神经网络的一种, 属于多层前馈神经网络, 与其它神经网络算法所不同的是采用了反向传播的学习算法, 不断地计算输出端的误差向回传递来进行权值调整, 从而达到误差最小的效果。

1 BP神经网络
BP神经网络算法由Rumelhart等于1988年提出, 它是一种用于前向神经网络学习训练的误差反向传播算法, 简称BP算法。它是前向神经网络的核心和精华部分, 因其网络结构容易构造, 对输入的数据没有特别要求, 同时相关理论的研究也已经成熟, 因而已经被广泛地应用于模式识别中。目前, 人工神经网络中研究最多的就是BP神经网络及其改进算法。该网络同样由输入层、隐含层、输出层组成, 典型的BP神经网络如图1所示。
在这里插入图片描述
图1 典型的BP神经网络结构
该算法主要由两个阶段组成, 分别是正向传播过程和误差的反向传播过程。正向传播过程是指输入特征向量, 经过输入层、隐含层和输出层逐层计算权值。误差的反向传播过程是指输出层计算出误差之后, 再由输出层传到输入层来进行权值调整。一个标准的BP神经网络流程如图2所示。
在这里插入图片描述
图2 BP神经网络流程
(1) 正向传播过程。从样本数据集中选择一个样本Xi, 将其输入到神经网络, 并计算其实际输出Yi。该过程就是数据样本从输入层输入, 然后经过隐含层和输出层的逐层计算, 得到的输出结果。

(2) 误差的反向传播过程。计算实际输出Yi与理想的输出结果Ai之间的误差, 根据相应的规则不断地调整权值, 并对BP神经网络进行不断训练使得误差能够满足要求。

2 语音情感特征
如何选择有效的语音情感特征, 直接影响到语音情感识别结果的好坏。首先要明确研究哪几类情感, 从心理学的角度来看, 总共包括以下7类情感, 即高兴、生气、悲伤、害怕、惊讶、厌恶、中性。本文主要研究生气、高兴、悲伤和惊讶这四类情感。目前, 很多研究中都是把语音情感识别问题转化为模式识别问题进行研究。其本质就是先对语音信号特征进行预处理, 再提取相关特征, 从而进行分类。选取语音持续时间、短时能量、基音频率、共振峰和MFCC等语音信号特征进行相关研究。

2.1 语音持续时间
语音持续时间实际上就是说话过程中所持续的时间, 其往往与所表达的情感有着直接的关联。一般来说, 人生气时说话速度较快, 语音持续时间较短;而处于悲伤或者害怕时说话的语速就会较慢, 语音持续时间较长。因此, 选择带有情感的语音持续时间与正常状态下的语音持续时间的比值作为一个特征参数。

2.2 短时能量
短时能量直接反映了声音音量的大小。一般来说, 清音的能量较小, 浊音的能量较高。当一个人的情感为生气或者是惊讶的时候, 其说话的音量就会变大, 短时能量往往也比较高。当一个人的情感为害怕或者悲伤的时候, 说话的音量就会变低, 短时能量往往也比较低。因此, 本文选择短时能量的均值、最大值、最小值、变化范围这4个特征参数。

2.3 基音频率
基音频率简称基频, 它直接反映了声道的特征, 已经在多个领域被广泛应用, 如语音识别、语音合成等。一般来说, 男性的基频较低, 女性的基频较高。不同情感状态下基频的大小不同。相关研究表明, 生气、高兴和惊讶时的基频变化范围和均值较高, 相反悲伤时基频的均值和变化范围较小。因此, 本文选取了基频的均值、最大值、最小值和变化范围这4个特征参数。

2.4 共振峰
共振峰指发声的气流经过声道时, 与声道发生共振的频率。其与情感有着很大的关联, 情感状态不同, 共振峰频率也随之发生变化。目前, 大多数的研究都是利用线性预测法来提取语音信号中的共振峰频率。共振峰参数的选择对语音情感识别有着重要意义。因此, 本文选取第一共振峰频率的均值、第二共振峰频率的均值、第三共振峰频率的均值和第四共振峰频率的均值作为特征参数。

2.5 MFCC
即便是同一句话, 同一个人在不同的情感状态下说出来也是不一样的, 让听者听起来感觉更是不一样。MFCC是梅尔频率倒谱系数的简称, 它是模拟人耳听觉特性所提取的特征参数, 已经被广泛应用于语音识别和语音合成的研究中。因而选取12维MFCC均值作为特征参数。

⛄二、部分源代码

%实验要求:基于神经网络的语音情感识别
clc
close all
clear all
load A_fear fearVec;
load F_happiness hapVec;
load N_neutral neutralVec;
load T_sadness sadnessVec;
load W_anger angerVec;
trainsample(1:30,1:140)=angerVec(:,1:30)‘;
trainsample(31:60,1:140)=hapVec(:,1:30)’;
trainsample(61:90,1:140)=neutralVec(:,1:30)‘;
trainsample(91:120,1:140)=sadnessVec(:,1:30)’;
trainsample(121:150,1:140)=fearVec(:,1:30)‘;
trainsample(1:30,141)=1;
trainsample(31:60,141)=2;
trainsample(61:90,141)=3;
trainsample(91:120,141)=4;
trainsample(121:150,141)=5;
testsample(1:20,1:140)=angerVec(:,31:50)’;
testsample(21:40,1:140)=hapVec(:,31:50)‘;
testsample(41:60,1:140)=neutralVec(:,31:50)’;
testsample(61:80,1:140)=sadnessVec(:,31:50)‘;
testsample(81:100,1:140)=fearVec(:,31:50)’;
testsample(1:20,141)=1;
testsample(21:40,141)=2;
testsample(41:60,141)=3;
testsample(61:80,141)=4;
testsample(81:100,141)=5;
class=trainsample(:,141);
sum=bpnn(trainsample,testsample,class);
figure(1)
bar(sum,0.5);
set(gca,‘XTickLabel’,{‘生气’,‘高兴’,‘中性’,‘悲伤’,‘害怕’});
ylabel(‘识别率’);
xlabel(‘五种基本情感’);

p_train=trainsample(:,1:140)‘;
t_train=trainsample(:,141)’;
p_test=testsample(:,1:140)‘;
t_test=testsample(:,141)’;
sumpnn=pnn(p_train,t_train,p_test,t_test);
figure(2)
bar(sumpnn,0.5);
set(gca,‘XTickLabel’,{‘生气’,‘高兴’,‘中性’,‘悲伤’,‘害怕’});
ylabel(‘识别率’);
xlabel(‘五种基本情感’);
sumlvq=lvq(trainsample,testsample,class);
function sum=bpnn(trainsample,testsample,class)
%输入参数:trainsample是训练样本,testsample是测试样本,class表示训练样本的类别,与trainsample中数据对应
%sum:五种基本情感的识别率
for i=1:140
feature(:,i)= trainsample(:,i);
end
%特征值归一化
[input,minI,maxI] = premnmx( feature’) ;

%构造输出矩阵
s = length( class ) ;
output = zeros( s , 5 ) ;
for i = 1 : s
output( i , class( i ) ) = 1 ;
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.
[3]徐照,松元建.基于BP神经网络的语音情感识别研究.[J]软件导刊. 2014,13(04)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 7
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: 语音情感识别是目前计算机科学领域的研究热点之一,它可以识别语音中表现出的情感。基于MATLAB(Matrix Laboratory)平台的语音情感识别主要采用信号处理技术和机器学习算法来实现。其中,信号处理技术主要包括语音分析、预处理、特征提取等方面,而机器学习算法则主要利用支持向量机、人工神经网络等模型进行情感分类。具体实现流程包括: 1. 语音采集及预处理:通过调用 MATLAB 中的录音函数实现语音采样,并通过滤波等方法进行信号预处理,以去除背景噪声、滤除杂音等。 2. 语音信号分析:基于MATLAB平台的语音信号分析工具箱,对信号进行分析,提取语音的基本特征,如基频、声道长度等。 3. 特征提取:基于上一步提取的语音基本特征,提取更高级别的特征,如音高、语速、语调等,以用于情感分类。 4. 情感分类:利用支持向量机、人工神经网络等机器学习算法建立情感分类模型,并对语音特征进行训练,以实现对语音情感的分类识别。 总的来说,基于MATLAB语音情感识别能够对语音中所表现的情感进行准确的判断和识别,可以广泛应用于人机交互、情感识别等领域。 ### 回答2: 语音情感识别是一项非常有意义的研究领域,对于帮助人们更好地理解和识别语音中的情感信息有重要作用。近年来,利用机器学习算法和深度学习模型进行语音情感识别的研究越来越受到关注,并取得了不错的成果。 基于matlab语音情感识别研究可以从以下几个方面入手: 1. 特征提取:语音情感识别的关键是如何提取有效的特征信息。常用的特征包括语调、语速、音量、音调等。在matlab中,可以使用信号处理工具箱对语音进行预处理,如去噪、降噪、滤波等操作,然后提取各种特征信息。 2. 模型建立:根据提取的特征信息,可以建立不同的机器学习或深度学习模型进行训练和预测。如支持向量机、朴素贝叶斯、决策树、神经网络等。其中,基于深度学习的模型,如卷积神经网络(CNN)、循环神经网络(RNN)和长短时记忆网络(LSTM)等,由于其在语音情感识别中的优异性能,被广泛应用。 3. 数据集获取:`语音情感识别的模型需要使用大量的训练和测试数据集进行训练和验证,可以从公开数据集中获取,如EmoDB、RAVDESS、IEMOCAP等。 综上所述,基于matlab语音情感识别需要在特征提取、模型建立和数据获取等方面进行深入的研究和探索,以提高识别性能和效果。 ### 回答3: 语音情感识别是指通过分析人的语音信号,来判断说话者表达的情感状态,包括愉快、悲伤、愤怒等。基于matlab语音情感识别主要是通过语音信号处理、特征提取、模式分类等方法来实现。 在语音信号处理中,主要是对语音进行去噪、预加重、分帧、窗函数等处理,目的是为了使得后续的处理更加准确。在特征提取中,需要提取出语音信号的频域特征和时域特征,如MFCC、LPC、Pitch、Energy等特征,可以通过matlab语音处理工具箱中的函数进行提取。特征提取完成后,需要进行特征归一化,将特征缩放到同一尺度,减少特征之间的差异。 在分类模型的选择上,常见的方法包括SVM、KNN、神经网络等。基于matlab语音情感识别主要采用的是SVM分类模型,其优点是对处理非线性数据具有较高的效率和准确性。 综合以上,基于matlab语音情感识别主要分为以下几个步骤:语音信号处理、特征提取、特征归一化、模型训练、模型测试等。通过这些步骤的实现,可以对说话者的情感状态进行准确的判断和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值