我正在建立一个系统,利用机器学习实时生成一个伴随的旋律,因为一个主旋律正在播放。它使用了一种递归神经网络,在每一步它都试图预测下一个音符在伴随的轨道上。此时,我对仅仅处理midi文件感到满意。
我遇到了严重的困难,找培训数据。我最初的想法是从米迪达b等网站下载midi文件并将其转换为csv,但问题是,很难找到区分主旋律和伴随旋律的方法。有时这是可能的,但我还是希望伴奏曲目总是来自同一(或类似的)乐器,因为不同的乐器使用不同的乐器(音符的持续时间和音高在一种乐器和另一种乐器之间非常不同等等)。这只会让整个网络变得很混乱。
我在UCI机器学习库上找到巴赫·科拉莱斯。但是,这个数据集的问题是,它只有一个声音的旋律。我想要有两个声音的数据集,其中一个是主旋律,另一个是伴奏旋律。
我明白这是很困难的,所以任何有关如何处理这个问题的意见都会很感激。我有将midi文件转换为csv格式的工具,如果您能想到某些类型/类型的歌曲,对于这些类型/类型,很容易区分主要歌曲和伴随歌曲(通过编程或手动方式),请告诉我。如有任何建议,将不胜感激。
发布于 2014-02-26 19:41:03
激动人心的话题。除了您提到的集合之外,没有太多用于数据挖掘的其他数据库。所以你得有点创意。
你读过Jürgen Schmidhuber用LSTM递归神经网络进行音乐创作的方法吗?如果没有,你绝对应该这样做:
LSTM递归神经网络在音乐创作中的应用
寻找音乐中的时间结构: LSTM递归网络中的布鲁斯即兴创作
你可以浏览他在他的网站上的作品
现在,第一篇论文创建了自己的数据集,您可以尝试询问作者。后一篇论文的训练集可以看到他们在书房的网页上。
我认为最好的方法是生成您自己的数据集:
1)请注意,他们使用了单张(pdf)和音频(不仅是midi,还包括wav/mp3),所以您可能需要考虑从wav文件中提取和弦,并用可能的旋律和声手工标记它们。
2)可以直接搜索单个分数,而不是数据挖掘数据集。例如www.free-scores.com来找出具体的分数。您可以编辑它们,将它们导入Sibelius或Finale,并在这些程序中将它们转换为midi。最简单的方法是,如果你能找到分数写在西贝柳斯/终结本身,所以你可以把它们立即导出到midi。
编辑:
再评论一下你的和弦/旋律结构。一开始尽量保持简单。尝试保持类似于“第一次看.”的格式。纸张: Melody+Chord结构。没有乐器。在此之后,您可以尝试达到相同的结果,建立这个代表从多个乐器的分数。如果这是可行的,尝试从midi建立多个仪器得分。如果这是可行的,从真正的音频文件开始。
https://stackoverflow.com/questions/22030235
复制相似问题