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

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

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

【问题讨论】:

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

标签: python algorithm classification extraction


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 2014-01-11
    • 2011-07-23
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多