我不确定这是否是正确的堆栈交换子网站来发布这个问题,但是...
我正在寻找一种算法,可以用它来确定给定的音频片段是否为音乐。只需要一个布尔结果就可以了,我不需要知道键、BPM或任何其他东西,我只需要能够确定它是否似乎是音乐(而不是语音)。编程语言无关,但我最终会将其转换为Python。
我不确定这是否是正确的堆栈交换子网站来发布这个问题,但是...
我正在寻找一种算法,可以用它来确定给定的音频片段是否为音乐。只需要一个布尔结果就可以了,我不需要知道键、BPM或任何其他东西,我只需要能够确定它是否似乎是音乐(而不是语音)。编程语言无关,但我最终会将其转换为Python。
在音乐音调范围内寻找一系列FFT的小“第一微分”(即:对于每个1024个样本的块运行FFT,然后绘制chunk1-chunk0、chunk2-chunk1等)。作为第一次近似,这应该足以检测简单的事情。
这是一种可以通过特定类型的方式进行调整的算法。音乐本身通常也是周期性的,因此需要想出一种方法来在FFT上运行FFT。而且寻找一致的两个十二次根数的频率分布听起来非常可信。
我敢打赌你希望找到一个免费的Python库,让你只需将文件拖放进去就可以了。 :-)