一种基于面部表情识别和循环神经网络的音乐生成方法与流程

文档序号:18834099发布日期:2019-10-09 04:30阅读:623来源:国知局
一种基于面部表情识别和循环神经网络的音乐生成方法与流程

本发明涉及计算机技术领域及数字音乐生成领域,特别是涉及一种基于表情情绪识别和循环神经网络的音乐生成方法。



背景技术:

音乐对人的身心有着潜移默化影响,伴随着互联网与云音乐的发展与进步,音乐在人们的日常生活中所占用的时间越来越多,并默默地调节着人们的身心健康。在平时生活中我们可以深刻的感受到音乐的作用。比如程序员在听音乐的时候编程效率会提高,健身者习惯利用音乐来调节自己的健身节奏,驾驶员利用音乐来提升开车时的注意力等等。合适场合听合适的音乐也可以让人们的身心得到极大的舒展,如在情绪低落时听激情澎拜的交响乐可以使人们低落的心情得到一定的释放,在心情烦躁时听轻音乐也可以让人们烦躁的心情得到一定的平抚。

但是现有的音乐都是音乐人根据自己对音乐的理解去创作的,可能并不能满足听者的个性化需求。在特定的场合,不合适的曲调可能会使音乐的正向效果减弱甚至会产生负面效果,如驾驶时播放舒缓的音乐可能会加深驾驶员的疲劳,增加交通事故的发生率;在人生气的时候播放激情澎拜的音乐可能会刺激当事人的情绪而使当事人做出一些过激行为。反之,如果能够识别当事人的情绪并生成个性化的音乐来调节人的情绪则可以使音乐的正向化效果达到最大。然而在现有的技术中还没有通过分析人的情绪来生成个性化音乐的技术。



技术实现要素:

为了弥补现有音乐无法满足听众在特定场合下的个性化需求的缺陷,本发明结合面部表情情绪识别和循环神经网络音乐生成两种技术,提出一种基于表情情绪识别和循环神经网络的音乐生成方法,其中面部表情情绪识别采用visualgeometrygroup-19卷积神经网络模型(简称vgg19),循环神经网络的音乐生成方法采用循环神经网络-受限玻尔兹曼机(recurrentneuralnetwork-restrictedboltzmannmachine,简称rnn-rbm)算法。

本发明所采用的技术方案如下:

一种结合面部表情情绪识别和循环神经网络的音乐生成方法,包括以下步骤:

s1:获取音乐音频数据和人物表情数据;

s2:对数据进行分类和标记;

s3:音频数据和图像数据处理;

s4:初始化rnn-rbm神经网络;

s5:训练rnn-rbm神经网络;

s6:使用vgg19识别面部表情;

s7:将识别好的情绪信息输入到训练好的rnn-rbm网络中,即得到最终的音乐生成。

进一步,所述步骤s1包含以下步骤:

s1.1:获取来自于classicalpianomidi数据集的音频数据;

s1.2:获取fer2013和ck+人脸表情数据库;

s1.3:采用网络爬虫的方法从互联网爬取对应需求的图像数据和音频数据。

再进一步,所述步骤s2包括以下步骤:

s2.1:手动对爬取到的图片数据和音频数据进行标注和分类;

s2.2:将图片数据分为训练数据和测试数据。

所述步骤s3包括以下步骤:

s3.1:将音频数据全部转化为midi格式,采用附录中的二进制矩阵来对每一首歌曲进行编码:

其中前n列是编码note-on事件,后面n列是编码note-off事件。n的数量是要表示的音符数。

s3.2:图像数据按照fer2013数据集中的格式,扩充该数据集;

将愤怒和厌恶情绪归为d1类,开心和惊讶归为d2类,难过归为d3类,恐惧和剩余情绪归到d4中。

所述步骤s4中,对rnn-rbm的权重参数进行初始化;

所述步骤s5中,在音乐生成部分,rnn隐藏单元将正在播放的歌曲的情绪传送给rbm,这些信息调节rbm的概率分布,模拟音符在歌曲过程中变化的方式,过程为:rnn隐藏单元将正在播放的歌曲的情绪p1传送给rbm,然后使用rnn-to-rbm加权和偏置矩阵以及rnn隐藏单元ut-1的状态来确定rbmt的偏差矢量

之后用rbm创建了一些音符,用vt初始化rbmt并执行单次gibbs采样迭代以从rbmt对进行采样:

使用下面的损失函数计算vt相对于rbmt的负对数似然的对比散度估计:

用新信息更新rnn对歌曲状态的内部表示。用vt,rnn隐藏单元ut-1的状态以及rnn的权重和偏差矩阵来确定rnn隐藏单元ut的状态:

ut=σ(bu+vtwvu+ut-1wuu)。

所述步骤s6包含以下步骤:

s6.1:对人脸图像进行数据增强,如翻转,切割,旋转等变化,使训练数据数量增加;

s6.2:采用“vgg深度模型”+”dropout”+”10折交叉验证”+”softmax分类”的方法对表情进行识别。

所述步骤s6中,先对人脸图像进行数据增强,采用随机切割44*44的图像,并将图像进行随机镜像,然后进行训练。测试阶段将图片在左上角,左下角,右上角,右下角,中心进行切割并做镜像操作,使数据集扩大10倍,并用vgg深度模型和dropout防过拟合方法进行处理,最后用softmax进行分类,得到当前用户的表情。

所述步骤s7中,根据相应的权重从音乐数据集中随机抽取相应数量的音乐,输入到已经训练好的rnn-rbm网络中得到最终音乐。

本发明所述方法具有如下有益效果:

(1)本发明所述的方法具有极大的应用前景,如针对检测疲劳驾驶和趣味音乐生成。

(2)本发明所述的方法集合了面部表情识别和循环神经网络音乐生成技术,硬件依赖性低,普通的手机就可以实现。

(3)本发明所述的方法采用了参数量较小的预训练模型,在识别速度上具有较好的性能体验。

附图说明

图1是歌曲编码方式说明图。

图2是rnn-rbm神经网络的参数示意图。

图3是一种基于表情识别和循环神经网络的音乐生成方法的流程图。

图4是实际生成的乐谱图。

具体实施方式

下面结合附图对本发明作进一步说明。

参照图1~图4,-种基于表情识别和循环神经网络的音乐生成方法,包括以下步骤:

s1:获取音乐音频数据和人物表情数据;

s2:对数据进行分类和标记;

s3:音频数据和图像数据处理;

s4:初始化rnn-rbm神经网络;

s5:训练rnn-rbm神经网络;

s6:使用vgg19识别面部表情;

s7:将识别好的情绪信息输入到训练好的rnn-rbm网络中,即得到最终的音乐生成。

本实例对自己采集的图片和音频数据进行音乐生成,所述方法包括以下步骤:

s1:获取音频数据和图像数据:

音频数据有部分来自于classicalpianomidi数据集。图片数据主要来源是fer2013和ck+人脸表情数据库。

s2:对数据进行分类和标记:

手动对爬取到的图片数据和音频数据进行标注和分类,将音乐数据分成4类“生气,开心,难过,其它”。并按照4∶1的比例将图片数据分为训练集和测试集。

s3:音频数据和图像数据处理,过程如下:

s3.1:使将音频数据全部转化为midi格式的,采用附录中图1结构的二进制矩阵来对每一首歌曲进行编码:

其中前n列是编码note-on事件,后面n列是编码note-off事件。n的数量是要表示的音符数。note-on事件中,1表示该音符被播放,0表示不播放。note-off事件中,1表示该音符被释放,0则反之。以上编码中,每一行表示一个时间步骤,每个时间步骤是一个训练样本。时间是在midi节拍中量化的,默认设置是每拍96个节拍,一个节拍指四分音符。每跳96次拍子导致每个时间步骤解析1/384个音符。这种数据表示也可以表达为钢琴卷表示。

s3.2:图像数据按照fer2013数据集中的格式,扩充该数据集。将愤怒和厌恶情绪归为d1类,开心和惊讶归为d2类,难过归为d3类,恐惧和剩余情绪归到d4中。

s4:初始化rnn-rbm神经网络:

用常用的初始化函数随机初始化rnn-rbm的权重;

s5:训练rnn-rbm神经网络,过程如下:

s5.1:在音乐生成部分,rnn隐藏单元将正在播放的歌曲的情绪传送给rbm,这些信息调节rbm的概率分布,模拟音符在歌曲过程中变化的方式。具体模型见图2

用rnn-to-rbm加权和偏置矩阵以及rnn隐藏单元ut-1的状态来确定rbmt的偏差矢量

用rbm创建了-些音符,用vt初始化rbmt并执行单次gibbs采样迭代以从rbmt对进行采样。

计算vt相对于rbmt的负对数似然的对比散度估计。损失函数如下:

用新信息更新rnn对歌曲状态的内部表示。用vt,rnn隐藏单元ut-1的状态以及rnn的权重和偏差矩阵来确定rnn隐藏单元ut的状态。公式如下:

ut=σ(bu+vtwvu+ut-1wuu)

s6:使用vgg19模型识别面部表情:

训练阶段,采用随机切割44*44的图像,并将图像进行随机镜像,然后进行训练。测试阶段将图片在左上角,左下角,右上角,右下角,中心进行切割并做镜像操作,使数据库扩大10倍,并用vgg深度模型和dropout防过拟合方法进行处理,最后用softmax进行分类,得到表情识别结果。

s7:将识别好的情绪信息输入到训练好的rnn-rbm网络中

表情识别得到的是4种情绪各自的占比,然后根据相应的权重从音乐数据集中随机抽取相应数量的音乐,输入到已经训练好的rnn-rbm网络中得到最终音乐。其中得到的一份生成乐谱如附录中图4所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1