我正在考虑尝试使程序,将自动生成鼓标签使用只包含鼓点的音频文件。
我曾想过使用FFT来获得xxxx毫秒间隔内的平均频谱峰值,然后将其与包含特定鼓套件和音响装置的所有鼓部件(网罗、墓穴、基鼓等)的表进行比较。
但我有一种感觉,这不会那么容易。你们有什么建议可以用来解决我的问题吗?
// Eric
发布于 2013-05-24 07:16:11
这对任何事情都不容易,除了一个微不足道的信号。几乎所有的西方古典音乐和商业音乐都以重合的鼓声为特色。
1:叠加:原始源在频域中以与在时域中类似的方式相加。每个FFT bin包含来自当前正在演奏的所有乐器的贡献(以及那些未衰减、仍在衰减或共鸣的乐器)。解开各种来源是很困难的--当然也不能与光谱库进行比较。
2: FFT按照其定义对时域中的音频进行窗口,并在该窗口周期内产生每个面元中的基函数的幅度和相位。您可以说的最好的说法是,在窗口周期内,内容出现在与鼓声相对应的bin中。如果要计算1024点的FFT,窗口持续时间将为23ms,频率为44.1 the。从音乐的角度来看,每分钟120bpm的第16个音符相隔31.3毫秒。你可以用较小的FFT逃脱惩罚。
3:打击乐器的信号往往看起来很像噪音-至少在乐器被击中的地方是这样。这就是说,将有能量在整个频谱上传播,没有明显的主导频率。在冲击之后,调整后的打击乐开始看起来更“音调”。
您可能需要查看时域方法来准确检测起始点(起始点检测)。从那里,您可以查看信号的时域或频域特性,以尝试推断出有问题的仪器。对于正在播放的音乐类型的先验知识,你可能也可以做很多事情,让你可以预测可能出现的模式。
这是更一般的音频源分离问题的一个特殊情况。在这一领域有大量的学术活动,因此有许多描述方法的已发表论文。查找源分离、音乐信息检索、音频特征检测
https://stackoverflow.com/questions/16723426
复制相似问题