PHP を使用して、サーバーに配置されたオーディオ ファイルのビート レート (1 分あたりのビート数または 1 秒あたりのビート数) を取得できる可能性はありますか。主なシナリオは、サーバーのどこかにいくつかのオーディオ ファイル (mp3、wav など) があり、ビート レートに従ってそれらを分類する必要があるというものです。
関数 getBPM() の使用方法を説明してください。
PHP を使用して、サーバーに配置されたオーディオ ファイルのビート レート (1 分あたりのビート数または 1 秒あたりのビート数) を取得できる可能性はありますか。主なシナリオは、サーバーのどこかにいくつかのオーディオ ファイル (mp3、wav など) があり、ビート レートに従ってそれらを分類する必要があるというものです。
関数 getBPM() の使用方法を説明してください。
オーディオ ファイルの BPM 検出用の単純な php クラスを作成しました。BPM を取得するには、soundtouch と ffmpeg を使用します。ここで入手できます - php-bpm-detect
サーバーにインストールした後、SoundTouch オーディオ処理ライブラリを php から呼び出してみてください。
FAQ には、BPM を検出できると記載されています。mp3 ファイルを処理できるかどうかはわかりませんが、ffmpeg を使用して wav に変換し、bpm 検出を実行できます。
詳細については、リンクを確認してください。
ビート レート (BPM) は、さまざまな方法で計算できます。まず、音エネルギーの局所的なピークに過ぎないビートを検出する方法を見つける必要があります。WAV ファイルを分析したい場合、ファイル全体をサンプルごとに検索し、連続したサンプル間の大きな違いを見つけるのが最善です。大きな違いは?わかりにくいので、別の値 (別の検出しきい値) で試す必要があります。MP3 も圧縮されているため、MP3 の検出は困難です。
その他のアイデアを次に示します。
ところで: BPM 検出に PHP を使用してもよろしいですか? サーバーをお持ちの場合は、cgi スクリプトとして起動される C/C++ など、他の言語も使用できるでしょう。これにより、メモリと CPU の効率が大幅に向上します。
あなたのプロジェクトで頑張ってください!
EDIT : Google を使用してさまざまなプロジェクトを見つけてみてください。ただし、同じトピック (wav 分析) をカバーしています。 PNGに保存します。波形を描画する場合は、一歩先を行っています。サンプル値を描画するのではなく、それらを分析してビートを見つけるアルゴリズムを実装する必要があります。