我正计划制作一个AI歌曲作曲家,它会吸收一组乐器的歌曲,从声波中提取音符(比如ABCDEFG)和某些特征,预制板机器学习(很可能是通过递归神经网络),并输出一系列ABCDEFG音符(也就是产生自己的歌曲/音乐)。
我认为这将是一个没有监督的学习问题,但我不太确定。
我想我会使用递归神经网络,但我有几个关于如何处理这个问题的问题:
发布于 2015-07-16 23:55:59
首先,忽略仇恨者。很久以前,我就开始研究音乐中的ML,并利用该作品获得了几个学位。我刚开始的时候问别人的问题和你一样。这是一个迷人的领域,总是有一个新的空间。我们都得从某个地方开始。
您正在查询的学习领域是音乐信息检索(Wiki链接)和计算机音乐(Wiki链接)。你已经做出了一个很好的选择,把你的问题缩小到单一乐器(单声道音乐),因为复调音乐大大增加了难度。
你真的想解决两个问题:
1)单声道音乐(更多读数)的自动转录,这是从单个乐器音乐中提取音符的问题。
2)算法合成(更多读数)是利用转录音乐的语料库生成新音乐的问题。
直接回答你的问题:
我认为这将是一个没有监督的学习问题,但我不太确定。
因为这里有两个学习问题,所以有两个答案。对于自动转录,您可能需要遵循监督学习方法,其中您的分类是您想要提取的笔记。对于算法合成问题,它实际上可以走任何一条路。这两个领域的一些数据都能很好地澄清这一点。
我应该从声波中提取什么特征,这样输出的音乐才是悦耳的?
在和平号中有很多常用的特性。@abhnj在他的回答中列出了MFCC的名字,但还有更多。MIR中的特征分析在多个领域中进行,每个领域都有各自的特性。一些领域是:
你将面临的第一个问题是如何分割或“分割”你的音乐信号,以便你可以提取特征。这就是分割问题(一些读数),它本身就很复杂。一旦你切断了你的声源,你可以应用不同的功能到你的片段,然后从它们提取特征。其中一些函数(称为窗口函数)是:矩形函数、Hamming函数、Hann函数、Bartlett函数、三角形函数、Bartlett_hann函数、Blackman函数和Blackman_harris函数。
一旦您将您的段从您的域剪切,您就可以提取功能来表示这些段。其中一些将取决于您选择的域。几个特征的例子是:您的正常统计特征(均值、方差、偏度等)、ZCR、RMS、谱质心、光谱不规则性、谱平坦度、谱调性、谱峰峰、谱斜率、谱Rolloff、谱朗度、谱螺距、谐波奇偶比、‘s和Bark标度。还有更多,但这些都是很好的基础。
有可能用递归神经网络输出顺序音符向量(ABCDEF)吗?
是的。已经有几个工作要做了。(以下是几个读数)
有什么聪明的方法可以让我在声波的特征以及音符序列中补充信息呢?
标准的方法是使用我上面所做的解释(域、段、特征提取等)。为了节省您的一些工作,我强烈建议您从一个MIR框架开始,比如MARSYAS (马赛亚斯)。它们将为您提供特征提取的所有基础知识。有很多框架,所以只需要找到一个使用你喜欢的语言的框架。
发布于 2015-07-15 00:15:11
我相信问题是,你想要从音乐作品中学习,并尝试从经过训练的实例中产生一首曲子。让我们看看我是否可以建立一个简单的模型来做这个,然后你可以从那里推断。
因此,当使用声音时,MFCC是一个很好的特性。您可以使用它从歌曲的1到2秒窗口中提取特征。您现在有了音频文件的指纹。看看条件限制Boltzmann机器。它们是利用多个二进制状态对时间序列信息进行编码的神经网络。正如你在网页上看到的,他们对人体步态数据进行了训练,现在可以产生自己的人类步态。这基本上是你想要的,但对于音乐文件。所以你可以在音频MFCC矢量上训练CRBM。
在训练完成后,要生成一个音频文件,您可以用几秒钟的旋律“种子”CRBM,或者只是随机初始化它。然后,只要让CRBM发疯,并记录它产生的任何东西。这是你的新音频文件。要生产另一个样品,请使用不同的种子。
这解决了如何实现“旋律”生成方案的问题。当然也有不同的地方。除了MFCC之外,还可以向矢量添加其他功能。您还可以使用其他时间序列预测器,如LSTM或马尔可夫模型。
尽管如此,创作音乐的问题可能比乍一看要微妙得多。机器学习算法只是在数据中应用以前学过的模式。如何与“创造”新音乐相对应,是一个哲学问题。如果我们分析上述算法,从本质上讲,CRBM将根据它所学习到的概率分布生成下一个输出。这将是非常有趣的,看看它产生什么样的输出,当所述的分布是音符。
https://datascience.stackexchange.com/questions/6459
复制相似问题