使用 K-nn 算法处理音乐流派,如何处理提取的特征? [关闭]

Posted

技术标签:

【中文标题】使用 K-nn 算法处理音乐流派,如何处理提取的特征? [关闭]【英文标题】:Processing musical genres using K-nn algorithm, how to deal with extracted feature? [closed] 【发布时间】:2014-12-31 05:47:20 【问题描述】:

我正在开发一个能够对音乐流派进行分类的小工具。为此,我想使用 K-nn 算法(或另一种,但这个似乎足够好),我使用python-yaafe 进行特征提取。

我的问题是,当我从我的歌曲中提取一个特征时(例如:mfcc),因为我的歌曲是 44100Hz 采样的,我检索了很多(采样窗口数)的 12 值数组,我真的不知道该怎么处理。有没有一种方法可以让每个功能和每首歌曲只获得一个代表值?

【问题讨论】:

您可以将数组作为向量处理并计算绝对距离以进行比较...abs_difference=|v1-v2| 您还可以为每个维度添加权重...等等。只制作一个参数不是一个好主意,您会错过太多信息。您也可以将这些向量直接提供给神经网络,为您做出决策... 我会选择不同的路径。 1. 检测与每种音乐流派不同的某些乐器(钢琴、鼓等) 2. 检测主旋律速度/频率及其时间动态性 3. 音量大小和时间动态性 4. 将这些属性与一些界限/列表进行比较为每种支持的流派创建,因此您可以获得每种流派的概率并选择最大的流派... 好的,非常感谢Spektre的回答,我想我会试试的! 【参考方案1】:

一种方法是将信号的最小RMS能量值作为分类参数。

您应该使用音乐片段,而不是使用整个音乐文件进行分类。理论上,从音乐的前 30 秒开始的 30 秒音乐部分最能代表流派分类。

因此,您可以做的是考虑对应于这个时间窗口的部分,而不是整个数组,30sec-59sec。分别计算每个音乐文件的信号的 RMS 能量,在整个时间内取平均值。您还可以考虑其他功能,例如。 ,MFCC。 为了使用 MFCC,您可以使用特定音乐文件的所有信号窗口的平均值。从中制作一个特征向量。

您可以使用特征之间的差异作为数据点之间的距离进行分类。

【讨论】:

以上是关于使用 K-nn 算法处理音乐流派,如何处理提取的特征? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何处理多个异常

如何处理 TDD 的重构阶段

从最近清除应用程序时如何处理作为前台运行的服务?

如何处理来自用户输入的偶数数组并在 C++ 中用空格显示它们

蜡炬教育:如何处理机器学习中大型数据的加载问题?

scrapy list return:如何处理/提取列表的每个元素?