首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器音乐的背后是创造力吗?-之二

520研究了好久,有点小失望啊。 虽然最终出来的结果机器人创作的音乐差别并不大。 但是再深入看了算法的代码之后,觉得也没有我想象的那么智能。

接下来将分两步介绍,在开始研究该算法前我的理解,和该算法的音乐制作的原理:

我的理解:

首先,音乐不同于图片识别。对于音乐包含两个元素: 顺序和单音;

关于单音,肯定不会以字母的形式表达,应该会给每个单音一个数字标签;

关于顺序,虽然还没有学习过RNN算法,但是类似LSTM算法的作用也听说过。所以可以预见,该算法将肯定会,收集一些音乐,学习每个音乐的顺序;

关于神经网络,最后肯定是通过某种类型的神经网络学习,但是如何预测呢? 神经网络预测时,输入值是什么呢?

音乐创作就是一个预测问题,但是是以什么结构进行预测呢? 一个单音一个单音预测,还是10个 10个预测呢?

算法实践:

数据收集:

我们需要学习的是音乐的“顺序”,我们将100个音节定义为一个“顺序”单元(100是人为定的)

所以训练收据收集的目的是获取更多的 “顺序”单元

首先,收集了92首单乐器的音乐,钢琴曲。

然后,将92首钢琴曲,用Music92 分解为上一篇提到的乐谱格式。

然后,将92首钢琴曲的音阶组合成一个包含56807个音阶列表

最后,每隔一个音阶,切割100个单音组合成的序列。 最终得到 (56807-100+1)个训练样本

训练数据收集的过程,可以简单理解为,将92首钢琴曲组合在一起,然后再切割的过程。 但是这个处理方式有一个问题,就是可能存在 不同钢琴曲的衔接,造成 音阶顺序并不代表音乐。

神经网络结构:

要说明神经网络结构,需要先说明,神经网络的目的。

该算法制作音乐的方法,很“直接”,就是预测 ”下一个音阶“。 简单来说,就是输入100个音阶,输出一个预测的音阶。

那么从神经网络的目的,我们就能得知:

神经网络的输入层为100个单元

神经网络的输出层为314个单元(这92首歌有314个不同的和弦或者音阶)

神经网络隐藏层,为 循环神经网络结构 LSTM(还未完整学习)

训练及预测:

训练就不多讲了,直接进入预测环节。

按照该神经网络的模式,是输入100个音阶,然后预测1个音阶。 那么该算法是如何处理的呢?

首先,该算法从我们用于训练的(56807-100+1)个样本中随机抽取一个,输入神经网络(100个音阶),然后预测出第101个音阶。

然后,将原来100个音阶的第一个删除,再加上原来第101个音阶,形成新的100个音阶;

然后,循环以上操作100次,那么剩下的100个音阶都是预测得出的。

评价: 不知道其他音乐制作的算法是如何运作的,仅评价该算法

首先,用于预测的初始100个音阶是人类音乐。 所以从根源上,其就不是完整的机器音乐;

其次,该算法的机器音乐实际上,只是将原人类音乐(100个音阶)进行了非常复杂的变形。其并不能体现机器创造力;

最后,在神经网络训练完成后,输入的原始100个音阶,就决定了预测出的100个音阶。 所以旋律是否也会和原100音阶有一定联系;

结论,仅就该算法, 只是将原音乐以100音阶为单元进行了复杂的变形,背后并没有创造力的体现。 不过,LSTM算法还是很有意思的,虽然很复杂。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180520G1HD7G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券