附代码 你想用深度学习谱写自己的音乐吗?这篇指南来帮助你!

作者:ARAVIND PAI
翻译:吴金笛
校对:和中华
本文长度为6800字 , 建议阅读15分钟
本文手把手带你使用Python编写一个自动生成音乐的模型 。
总览

  • 学习如何开发一个自动生成音乐的端到端模型
  • 理解WaveNet架构并使用Keras从零开始实现它
  • 在建立自动音乐生成模型的同时 , 比较了WaveNet和Long-Short-Term Memory的性能
介绍
“如果我不是物理学家 , 我可能会成为音乐家 。我经常在音乐中思考 。我活在音乐的白日梦里 。我从音乐的角度来看待我的生活 。”——阿尔伯特·爱因斯坦
我可能不是爱因斯坦先生那样的物理学家 , 但我完全同意他对音乐的看法!我不记得有哪一天我没有打开音乐播放器 。我上下班都伴随着音乐的旋律 , 老实说 , 它帮助我专注于工作 。
我一直梦想着作曲 , 但却不懂乐器 。直到我遇到了深度学习 , 这一切都成了过去 。使用某些技术和框架 , 我能够在不了解任何乐理的情况下创作自己的原创音乐乐谱!
这是我最喜欢的专业项目之一 。我结合了两个爱好——音乐和深度学习——创建了一个自动的音乐生成模型 。梦想成真了!
附代码 你想用深度学习谱写自己的音乐吗?这篇指南来帮助你!

文章插图
 
我很高兴与你分享我的方法 , 包括使你也能够生成原创音乐的全部代码!首先 , 我们将快速理解自动音乐生成的概念 , 然后再深入了解用于执行此操作的不同方法 。最后 , 我们将启用Python并设计我们自己的自动音乐生成模型 。
目录
1. 什么是音乐自动生成?
2. 音乐的组成要素是什么?
3. 生成音乐的不同方法
  • 使用WaveNet架构
  • 使用Long-Short-Term Memory(LSTM)
4. 实现——使用python进行自动作曲
什么是音乐自动生成?
“音乐是一种艺术 , 是一种通用的语言 。”
我把音乐定义为不同频率的音调的集合 。因此 , 自动音乐生成是一个用最少的人为干预来创作一首短曲的过程 。
附代码 你想用深度学习谱写自己的音乐吗?这篇指南来帮助你!

文章插图
 
产生音乐最简单的形式是什么?
这一切都是从随机选择声音并将它们组合成一段音乐开始的 。1787年 , 莫扎特为这些随机声音的选择提出了骰子游戏 。他手动合成了近272个音调!然后 , 他根据两个骰子点数之和选择一个音调 。
附代码 你想用深度学习谱写自己的音乐吗?这篇指南来帮助你!

文章插图
 
另一个有趣的想法是利用音乐语法来生成音乐 。
“音乐语法是指对音乐声音的合理安排和组合以及对音乐作品的正确表现所必需的知识”
-《音乐语法基础》
在20世纪50年代早期 , Iannis Xenakis使用统计学和概率的概念来创作音乐——通常被称为随机音乐(Stochastic Music) 。他将音乐定义为偶然出现的一系列元素(或声音) 。因此 , 他用随机理论来表述它 。他对元素的随机选择完全依赖于数学概念 。
最近 , 深度学习架构已经成为自动音乐生成的最新技术 。在本文中 , 我将讨论使用WaveNet和LSTM(Long-Short-Term Memory)架构来实现自动作曲的两种不同方法 。
注意:本文需要对一些深度学习概念有基本的理解 。我建议阅读以下文章:
  • 从头开始学习卷积神经网络(CNNs)的全面教程
https://www.analyticsvidhya.com/blog/2018/12/guide-convolutional-neural-network-cnn/?utm_source=blog&utm_medium=how-to-perform-automatic-music-generation
  • 深度学习要领:长短期记忆(LSTM)入门
https://www.analyticsvidhya.com/blog/2017/12/fundamentals-of-deep-learning-introduction-to-lstm/?utm_source=blog&utm_medium=how-to-perform-automatic-music-generation
  • 学习序列建模的必读教程
https://www.analyticsvidhya.com/blog/2019/01/sequence-models-deeplearning/?utm_source=blog&utm_medium=how-to-perform-automatic-music-generation
音乐的组成要素是什么?
音乐本质上是由音符和和弦组成的 。让我从钢琴的角度来解释这些术语: