我正在开发一种能够对音乐类型进行分类的小工具。要做到这一点,我想使用K-nn算法(或另一个算法,但这个算法似乎已经足够好了)并且我使用python-yaafe
进行特征提取。
我的问题是,当我从我的歌曲中提取一个特征(例如:mfcc)时,由于我的歌曲是44100Hz采样的,我检索了很多(12个值数组的样本窗口数),我真的不知道如何处理。是否有方法只为每首歌曲和每首歌曲获得一个代表值?
答案 0 :(得分:2)
一种方法是将信号的最小RMS能量值作为分类参数。
你应该使用音乐片段,而不是使用整个音乐文件进行分类。从理论上讲,30秒的音乐部分,从音乐的前30秒开始,最能代表流派分类。
因此,您可以做的不是取整个数组,而是考虑与此时间窗对应的部分,30秒-59秒。分别为每个音乐文件计算信号的RMS能量,在整个时间内平均。您也可以考虑其他功能,例如。 ,MFCC。 为了使用MFCC,您可以查找特定音乐文件的所有信号窗口的平均值。制作一个特征向量。
您可以使用要素之间的差异作为分类数据点之间的距离。