我想在android中的音频文件中计算每分钟的节拍,我只是一个小线索,有一个Visualizer库用音频文件波创建DIGITAL BAR效果,我可以用这个检查节拍,这是正确的解决方案还是有任何正确的方法来做到这一点?我想以适当的方式对音频文件进行分类。根据档案中的节拍/分钟。
任何帮助都会很棒
答案 0 :(得分:3)
每分钟节拍可以用多个级别计算,一个简单的能量计算器,你应该通过应用电平表或VAD(语音/音频活动探测器)来制作,在某些方面可以做得很简单,作为一个合适的音高探测器,这是一个复杂的过程,隔离音乐片段的节拍可能很复杂,因为节拍的感觉很复杂。 如果你只是对能量计算器/节拍功能感兴趣,你可以做的是有两个运行平均值,看看你的信号相对于另一个有多大。
X= [x1……xn] input audio samples, separate the buffers into smaller segment say 100 samples. n=100,
Take the absolute value for this array abs(X),
Simple one pole smoothing function can be made with
X_filtered_long= X_filtered_long . (1-alpha) + abs(X). alpha // alpha is .02, value depends on the sample rate, signals and what beat of interest
Create the second filtered signals
X_filtered_short= X_filtered_short . (1-beta) + abs(X). beta // beta is .2
If (X_filtered_short > X_filtered_long)
Detected_beat= 1;
InsideBeat=+1;
else
Detected_beat= 0;
InsideBeat=0;
如果您愿意,“我想以适当的方式对音频文件进行分类。根据文件中的节拍/分钟。”这只能通过使用MFCC等参数手指打印音频来完成。 好的参考将是
音乐内容的自动流派分类:调查
Scaringella,N .; Zoia,G .; Mlynek,D。
IEEE信号处理杂志
卷:23,问题:2
答案 1 :(得分:0)
你在这里问的是非常困难的。
通过使用信号处理技术将音频信号从时域变换到频域,通常通过对音频数据的复杂数学处理来进行音频分析以获得节拍。有完整的书籍专门讨论这个主题。
您在内部提到的可视化器使用了许多这些DSP技术,分析可视化器数据可能比音频数据更糟糕。
即使您设法找到一个为您执行此操作的库,结果也会非常不可靠。也许对于电子音乐来说节拍更明显,你会得到比古典音乐或爵士乐更好的效果。