计算机音乐软件系统实现与应用毕业论文
2021-03-11 23:57:56
摘 要
有史以来,许多伟大的作曲家创作的作品都是具有创造性和独特性的,譬如像巴赫一样众所周知的作曲家,他创作音乐作品是基于大量的基础音乐结构精确创造的。那么,计算机也有可能学习这样的音乐结构之后会创造出与之类似的音乐。计算机音乐软件系统是一个音乐生成模型,它以keras神经网络框架为支持,在时间关系上来建立长短期记忆神经网络(LSTM),构成深层的神经网络,以此来对音乐作曲这种不存在线性关系的操作进行建模。对音乐原数据进行常规机器处理之后形成数据集,然后从中提取特征值和音符数据对模型进行训练,这里将分别训练四个声部,每个声部训练10Epoch(时期)以上,进行深度学习之后,创造出新的音乐,听起来尽可能的像人类所创作的音乐一样。
关键词:计算机音乐 深度学习 神经网络 训练
Abstract
In history, many great composers of the works are creative and unique, for example, as everyone knows composers like Bach, and his music is a music based structure based on precise creation. So, it is possible for the computer to learn the music structure and create a similar music. Computer music software is a music generating model, it uses keras neural network framework for support, in time to start to establish Long Short-Term Memory model (LSTM), neural network is deep, in order to music this nonlinear relationship model. After conventional machine processing of music original data form data set, and then extract the characteristic value on the model training and the notes data from here, were trained in four parts, each part of training 10Epoch (period), after deep learning, creating new music, sounds as much as possible as a human creation like the music.
Key Words:Computer music Deep learning Neural network Train
目 录
第1章 绪 论 1
1.1 背景 1
1.2 研究现状 2
1.3 未来意义 2
第2章 数据 4
2.1 MIDI数据 4
2.2 pickle 4
第3章 模型与环境搭建 6
3.1 python 6
3.2 LSTM神经网络 6
3.3 keras神经网络框架 8
3.4 Music21工具包 9
3.5 TQDM进度条工具 10
3.6 环境搭建 10
第4章 实验 12
4.1 keras训练方法 12
4.2 Music21生成音乐 14
第5章 系统的实现与应用 16
5.1 数据获取以及初始化 16
5.2 神经网络的构建 19
5.2.1 创建神经网络 19
5.2.2 训练神经网络 22
5.3 音乐合成 23
5.4 系统运行界面 26
结 论 33
参考文献 34
附 录 35
致 谢 62
- 绪 论
- 背景
生物学不断的发展告诉我们,在人类的大脑中存在着许许多多的神经元,它们一个个的互相连接之后构成了我们的神经系统,与体内其他器官、系统相互作用、相互牵制。正因为有了这些神经元,我们人类才可以快速的感受到刺激并且做出反应,按照文章的理论显示,人的大脑是由百亿条神经组成,而每一条神经分别连结着其它几千条的神经[1]。正因为这样的构成方式,使得神经能够接收并且发送不同数量的能量。神经有一个重要的功能就是它们可以一次次的接受能量,然后将能量存储起来,并不立即做出响应,当累加的足够多的时候,它们就把之前获取到的那些能量分别发送给其它的神经。人类的大脑就是通过这些连结神经传递能量来进行学习的。虽然这里讲的是生物体的特征,但同样也可以应用在神经网络的模型中。
人类依照大脑的神经构建了神经网络NN,目的是希望计算机也可以拥有“大脑”,和人类一样学习,并且基于计算机高速的运算能力,计算机的学习能力也应该是相当的高。在我们的日常生活中,我们对于世界的理解通常是基于我们大脑中已有的信息和认知的,并不是每一次的理解都是从零开始。所以,研究者们对传统的神经网络NN进行了改进,试图让它也拥有“记忆”,可以通过以前的认知来对现在的状况进行判断与预测。添加了循环递归模块来保持信息的传递,这就是大家都知道的递归神经网络[2]。由于递归神经网络RNN按照时间的顺序依次展开形成循环结构,基于该种结构的特点这里可以利用前向传播算法(forward propagation)之后利用反向传播算法(BP)来处理,但是,当遇到“长期依赖关系”的模型时,后期时间节点对前期时间节点的感知能力会有所下降,出现“梯度消失(vanishing gradient)”的一系列问题,这使得对于此时的理解和预测都会产生一定的偏差。为了解决这一问题,一种特殊的RNN——长短期记忆网络[3](LSTM)被提出。LSTM在RNN的基础上做了很多改进,通过四个层来控制信息的删减,这不仅解决了这一问题,而且依旧保持了RNN长期记忆的特点。
胡等人在作曲家分类问题的研究中提到:音乐的产生过程是层次化的,即音高、强度的组合构成旋律,而旋律的组合构成音乐的小节、语句、段落、章节乃至整首音乐作品[4]。“作曲”这个概念起源于西方国家,意思是编写音乐。“编写”则代表“作曲”是要以书面的形式编写曲谱,待谱子编写好了,要让它称为音乐的话,还需要演奏出来。那么,我们的计算机音乐则是包含这两步,首先要谱曲,之后演奏,即文献[5]提出的第三种音乐。我们将构建LSTM神经网络进行深度学习之后,模仿人类进行谱曲[6]。
- 研究现状
深度学习在最近几年发展的很迅速,它在机器学习的领域中也越发重要。随着各种神经网络的兴起,深度学习也不断被创新,不断应用到新的领域。人们的思维有多广阔,科学技术也将随之发展。近几年开发出很多新颖的应用,例如:提高图片像素,模仿人声阅读,训练机器人直立行走、盲人看照片、实时翻译、自动驾驶等,覆盖多个领域。李在报道人工智能时提到,谷歌地图搭建了能够深度学习的人工智能系统—— Google Brain,从此代替了繁琐的人工街拍,使得加载地图的速度也随之提升,2016年3月AlphaGo与围棋世界冠军、职业九段选手李世石进行人机大战,并以4:1的总比分获胜,至此更是将深度学习推到了顶峰[7]。
深度学习在音乐领域也自然发展壮大,关于通过深度学习来创作音乐,之前的研究表明,只能产生一首只有一个旋律的曲子没有和声[8]。研究者还省略了点音符,休止符和所有和弦。他们提到的主要问题之一是音乐缺乏整体结构。这表明,有两个主要的方面需要提高,一是结合节奏、更复杂的结构并且利用所有类型的音符包括点音符,长和弦和休止符来创建音乐。二是创建一个模型,能够学习长期结构,并有能力建立一个旋律,并返回到整个曲子。也有研究者在LSTM使用两种不同的网络结构来学习和弦,一级结构和一个存在长期依赖关系结构,来尝试学习一阶旋律。这点可以应用到音乐的生成。然而,这一架构和和弦不可以创建一个不同的组合记录[9]。黄等人在2016年提出了如何解决学习复杂的结构和节奏的问题。做了MIDI实验和“钢琴卷”实验,和前人的实验作对比,得到了初步成功。
- 未来意义
深度学习的热度一直在升高,人们对于未知的未来存在好奇心,让机器像人一样学会学习,在以前看似是不可能的事情,但是在当下的时代这已经不是什么难事了。人们对新技术的关注度也有所增加,深度学习所依赖的神经网络更是在不断的更新、改进之中[10][11]。未来深度学习会被应用到生活的各个领域,改变我们的生活方式,成为我们日常的一部分,就像如今的互联网一样,融入我们的生活,成为必需品。更为重要的是,深度学习潜移默化的改变了人们常有的思考方式,这将引起一场大的思想观念变革。