【语音识别】基于BP神经网络的语音情感识别Matlab源码
1 个模型
语音是人类交流的重要手段,是相互传递信息最方便、最基本、最直接的方式。语音信号在传递语义信息的同时,也传递情感信息,情感在人们的交流中起着重要的作用。因此,随着人机交互技术的飞速发展,语音信号中的情感信息越来越受到研究人员的关注,尤其是在语音合成和语音识别领域。长期以来,情商研究只存在于心理学和认知科学领域,但近年来,随着信息技术的飞速发展以及人与计算机的关系日益密切,如何实现计算机的拟人化和感知周围环境和情绪 此类内容已成为人机交互能力的重要标志和目标。情绪智力与计算机技术的结合产生了情绪识别的新研究课题。语音信号的情感识别也可以看作是模式识别的问题。研究人员通常提取许多语音特征作为情感特征,并将提取的语音特征输入分类器进行情感识别。
论文重点研究了基于BP神经网络的语音情感识别。主要研究内容如下:
(1)语音信号的前端处理。对情感句子执行有效的预加重、加窗和端点检测。研究了短时过零率和短时能量提取方法,并对基音周期估计算法进行了比较和分析。该方法是通过研究前人提出的方法进行改进的。介绍了基音周期估计算法。
(2)语音情感特征参数的分析与提取。对大量情感句子的特征变化规律进行统计分析,研究与情感相关的特征信息,确定用于语音情感识别的16个特征值,形成16维特征向量,包括:第一共振峰,第二和第三共振峰的最大值、最小值和平均值;平均短时过零率的最大值;基音频率的平均值、最大值和最小值以及短时能量的最大值和最小值和平均值。
(3) 因为提取的特征向量是高维的,具有一定的相关性,即存在一定的冗余度。因此,本文对神经网络训练集中的样本进行归一化,然后进行主成分分析,既降低了输入特征向量的维数,又去除了冗余信息。本文还分析了BP神经网络的结构、原理和不足。在MATLAB实验环境中,采用两种改进的BP算法进行语音情感识别。与传统的BP算法相比,改进的BP算法从识别率和收敛速度都得到了一定程度的提升。
1.1 BP 神经网络
1.2 情感特征
2 部分代码
function sum=bpnn(trainsample,testsample,class) %%%% 输入参数:trainsample为训练样本,testsample为测试样本,class代表训练样本的类别,对应trainsample中的数据 %%%%sum:五种基本情绪的识别率 对于 i=1:140 特征(:,i) = trainsample(:,i); 结尾 %%%% 特征值归一化 [input,minI,maxI] = premnmx(feature'); %%%% 构造输出矩阵 s = 长度(类); 输出 = 零 (s, 5); 对于 i = 1: s 输出(i, class(i)) = 1; 结尾 %%%%创建一个神经网络 net = newff( minmax(input), [10 5], {'logsig''purelin'} ,'traingdx'); %%%%创建一个前馈神经网络 %%%% 设置训练参数 net.trainparam.show = 50; net.trainparam.epochs = 150; net.trainparam.goal = 0.1; net.trainParam.lr = 0.05; %%%% 开始训练 净 = 火车(净,输入,输出); %%%% 读取测试数据 对于 i=1:140 Featuretest(:,i) = testsample(:,i); 结尾 c=testsample(:,141); %%%% 测试数据归一化 testInput = Tramnmx(featuretest', minI, maxI); %%模拟 Y = sim(net, testInput) 总和=[0 0 0 0 0]; %%%% 每种情绪的正确识别次数 %%%%统计识别正确样本的数量 对于 i=1:20 如果 Y(1,i)>Y(2,i)&&Y(1,i)>Y(3,i)&&Y(1,i)>Y(4,i)&&Y(1,i)>Y(5) ,一世) 总和(1)=总和(1)+1; 结尾 结尾 对于 i=21:40 如果 Y(2,i)>Y(1,i)&&Y(2,i)>Y(3,i)&&Y(2,i)>Y(4,i)&&Y(2,i)>Y(5) ,一世) 总和(2)=总和(2)+1; 结尾 结尾 对于 i=41:60 如果 Y(3,i)>Y(1,i)&&Y(3,i)>Y(2,i)&&Y(3,i)>Y(4,i)&&Y(3,i)>Y(5) ,一世) 总和(3)=总和(3)+1; 结尾 结尾 对于 i=61:80 如果 Y(4,i)>Y(1,i)&&Y(4,i)>Y(2,i)&&Y(4,i)>Y(3,i)&&Y(4,i)>Y(5) ,一世) 总和(4)=总和(4)+1; 结尾 结尾 对于 i=81:100 如果 Y(5,i)>Y(1,i)&&Y(5,i)>Y(2,i)&&Y(5,i)>Y(3,i)&&Y(5,i)>Y(4) ,一世) 总和(5)=总和(5)+1; 结尾 结尾 sum=sum./20;
3 仿真结果
4 参考
[1] 詹新明,杨灿。 (2009)。基于matlab和bp网络的语音识别系统。微机信息, 25(025), 176-178.
[2] 颜才兵。基于BP神经网络的语音情感识别算法研究。迪斯。武汉理工大学,2009.