<分区>
我不完全确定这是将此问题发布到的正确堆栈交换子站点,但是...
我正在寻找一种算法,我可以使用它来相当确定地确定一段给定的音频是否是音乐。只是一个 bool 结果就可以了,我不需要知道键、bpm 或类似的东西,我只需要能够确定它是否看起来是音乐(而不是语音)。编程语言无关紧要,但我最终会将其转换为 Python。
<分区>
我不完全确定这是将此问题发布到的正确堆栈交换子站点,但是...
我正在寻找一种算法,我可以使用它来相当确定地确定一段给定的音频是否是音乐。只是一个 bool 结果就可以了,我不需要知道键、bpm 或类似的东西,我只需要能够确定它是否看起来是音乐(而不是语音)。编程语言无关紧要,但我最终会将其转换为 Python。
最佳答案
一句话,Fourier analysis .查看不同频率随时间变化的功率。这是 speech ,这里是 violin playing .前者每一个音节都表现出戏剧性的变化; “流”非常不相交,可以通过将不同频带的导数作为时间函数的算法来拾取。另一方面,在范式音乐中,过渡更平滑,音调更纯净(图中的“模糊”更少)。另见 'spectrogram' wikipedia page .
关于判断音频是否为音乐的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5531949/