bp神经网络语音情感识别及其改进算法(一)|基本原理
一、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 语音情感特征
如何选择有效的语音情感特征直接影响语音情感识别结果的好坏。从心理学的角度来看,它包括以下七种情绪,即快乐、愤怒、悲伤、恐惧、惊讶、厌恶和中性。本文主要研究四种情绪:愤怒、快乐、悲伤和惊讶。目前,许多研究都将语音情感识别问题转化为模式识别问题。本质是先对语音信号特征进行预处理,然后提取相关特征进行分类。选取语音时长、短时能量、基频、共振峰mfcc等语音信号特征的相关研究。
2.1 演讲时长
speech duration其实就是讲话的时长,往往与讲话的时长有关。表达的情绪是直接相关的。一般来说,人生气的时候,说话的速度更快,说话的时间也更短;当他们悲伤或害怕时,他们说话的速度会变慢,说话的时间也会变长。因此,选择带情绪的语音时长与正常状态下的语音时长的比值作为特征参数。
2.2 短期能量
短期能量直接反映声音的音量。一般来说,清音的能量较小,浊音的能量较高。当一个人的情绪是愤怒或惊讶时,他说话的音量会变大,而短期的能量往往也是比较高的。当一个人的情绪是恐惧或悲伤时,说话的音量会变小,短期的能量往往比较低。因此,本文选取短期能量的均值、最大值、最小值和变化范围。 4个特征参数。
2.3 基频
音调频率简称基频,它直接反映声道的特性,已广泛应用于语音识别、语音合成等诸多领域。一般来说,男性的基频为较低,女性的基频较高。不同情绪状态下基频的大小不同。相关研究表明,生气、高兴和惊讶时的基频变化幅度和均值较高,相反,悲伤时基频的均值和变化幅度较大。小的。因此,本文选取基频的四个特征参数分别为均值、最大值、最小值和变化范围。
2.4 共振峰
共振峰是指声道与通过声道的气流共振的频率。它与情绪有很强的关系,共振峰频率会根据情绪状态而变化。目前,大多数研究使用线性预测方法来提取语音信号中的共振峰频率。共振峰参数的选择对语音情感识别具有重要意义。因此,本文选取第一共振峰频率的平均值、第二共振峰频率的平均值、第三共振峰频率的平均值和第四共振峰频率的平均值作为特征参数。
2.5 mfcc
即使同一个人在不同的情绪状态下说出同一句话,也会有所不同,让听者感觉更加不一样。 mfcc是mel frequency cepstral coefficient的缩写,是通过模拟人耳的听觉特征提取的特征参数,在语音识别和语音合成研究中得到了广泛的应用。因此,选择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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
三、运行结果
四、matlab 版本和参考文献
1个matlab版本
2014a
2 参考文献
[1]韩继清,张磊,郑铁??然。语音信号处理(第3版)[m].清华大学出版社,2019.
[2] 刘若扁.深度学习:语音识别技术实践[m].清华大学出版社,2019.
[3] 徐昭,宋元健。基于bp神经网络的语音情感识别研究。 [j] 软件指南。 2014,13(04)