用PHP获取MP3的节拍率

用PHP获取MP3的节拍率,php,mp3,Php,Mp3,是否有可能通过PHP获取服务器上音频文件的节拍率(每分钟节拍或每秒节拍)。 主要的场景是我在服务器上的某个位置有一些音频文件(mp3、wav等),我必须根据它们的节拍对它们进行分类 我明白了: 任何人都可以解释如何使用函数getBPM()拍频(BPM)可以通过多种方式计算。首先,你需要找到如何检测只有局部声能峰值的节拍。假设您要分析WAV文件,最好逐个样本搜索整个文件,并找到连续样本之间的高度差异。差异有多大?很难说,您必须尝试使用不同的值(不同的检测阈值)。MP3检测比较困难,因为它也是压

是否有可能通过PHP获取服务器上音频文件的节拍率(每分钟节拍或每秒节拍)。 主要的场景是我在服务器上的某个位置有一些音频文件(mp3、wav等),我必须根据它们的节拍对它们进行分类


我明白了:

任何人都可以解释如何使用函数getBPM()

拍频(BPM)可以通过多种方式计算。首先,你需要找到如何检测只有局部声能峰值的节拍。假设您要分析WAV文件,最好逐个样本搜索整个文件,并找到连续样本之间的高度差异。差异有多大?很难说,您必须尝试使用不同的值(不同的检测阈值)。MP3检测比较困难,因为它也是压缩的

以下是一些其他想法:

顺便问一下:您确定要使用PHP进行BPM检测吗?如果您有服务器,您可能还可以使用其他语言,比如作为cgi脚本启动的C/C++语言。这将大大提高内存和cpu效率

祝你的项目好运


编辑:尝试使用Google查找不同的项目,但涉及相同的主题(wav分析),即从wav文件中绘制波形图并将其保存到PNG的项目。如果它绘制了波形,那么您就领先了一步,现在您必须实现算法,不绘制样本值,而是分析它们以找到节拍。

在服务器上安装SoundTouch音频处理库后,您可以尝试从php调用该库

FAQ声明它可以检测BPM。我不知道它是否可以处理mp3文件,但是您可以使用ffmpeg将它们转换为wav,然后运行bpm检测

请查看链接以了解更多信息


我为音频文件中的BPM检测编写了一个简单的php类。它使用soundtouch和ffmpeg获取BPM。你可以在这里找到它-

你是指比特率而不是拍频吗?@Antony-不,他们的意思正是他们说的:每分钟拍数,或BPM。我必须用PHP在服务器端完成这项工作:(主要思想是我必须以分类方式反映它们(关于拍频)在一些远程源上。文件在服务器上,我知道的唯一服务器端语言是PHP:)我已经编辑了我的帖子,请尝试此链接并搜索google更多信息。在PHP中很难找到合适的算法,您可能需要找到不同语言的算法作为参考,并尝试将其翻译成PHP。尝试使用NeuroTic在其他答案中发布的库。它没有任何文档,解释如何在PHP中使用它。我已经浏览了u提供的上述链接,我找不到任何关于PHP的文档,因为这个程序不是用PHP编写的。但您可以将它与
exec()
PHP函数(启动外部应用程序)一起使用。你们所要做的就是从link编译程序,这并不难。你不必学习新的语言,但学会编译它总是有用的。我不明白你的意思,请解释一下。阅读第2.2节。编译并安装到服务器上后,可以使用php exec()函数调用它。例如,
$bpm=exec('soundtouch abcxyz.wav-bpm')
。请注意,这只是一个近似的过程。soundtouch上的Good call只是我自己在寻找其他东西。