简单想了想
1、对信号做希尔伯特变换,分析瞬时频率和瞬时幅度。然后分析瞬时幅度峰值出现的频率和规律性(熵)。这步能基本确定音乐的节奏。而且如果瞬时幅度的规律性不强,可以初步识别为抒情类的流行音乐或者轻音乐。
2、用带通滤波器把人声的频段300Hz-1Khz滤出来,分析瞬时频率的半音程熵,这步能识别是不是说唱。这个算法通常用来识别语音和音乐,比较成熟的算法。
3、分析瞬时幅度绝对值方差,相当于分析音乐的动态性。用以识别一些动态性比较大的音乐(古典)和动态较小的音乐(重摇滚)。
做是肯定能做,就是识别率可能不会太高。比较难以克服的问题一个是现在音乐的编曲都越来越多元化和互相融合,不同类型音乐的时频域特点越来越趋于同化。还有一个就是不同类型音乐之间的识别可能要用到完全不同的算法,需要对信号处理有个全面的把握才行,而且这其中将会用到的某些算法可能目前还不是十分成熟。而且如果任意两种音乐之间的识别率不高的话,都会极大的影响总识别率。最后势必要加入一些统计学的概率检验。