MATLABでの経験はありません。残念ながら、私のプロジェクトはMATLABにあります。MATLABのビート抽出
基本的な目的は、音楽ソース(mp3形式が望ましいが、.wavもOK)をMATLABに読み込み、拍以外のすべてをフィルタリングするような方法でローパスフィルタを適用することです。次に、各ビートが発生する時間を取得し、結果をテキストファイルに書き込む必要があります。
MATLABでの経験はありません。残念ながら、私のプロジェクトはMATLABにあります。MATLABのビート抽出
基本的な目的は、音楽ソース(mp3形式が望ましいが、.wavもOK)をMATLABに読み込み、拍以外のすべてをフィルタリングするような方法でローパスフィルタを適用することです。次に、各ビートが発生する時間を取得し、結果をテキストファイルに書き込む必要があります。
MATLABは道だけでなく、そのようなもののためのユーティリティを持っているが、それは、私が思う.wavファイルで動作するようにかなり簡単ですが、実際にはそれはありません:ローパスフィルタを実装するためのReading .wav
最も簡単な方法は、移動であります平均フィルタ。
これを行う最も簡単な方法は、データをループしてn値の各グループの平均をとることです。私はカットオフ周波数がnに依存する方法を正確にはわかりませんが、少し実験することができます。
そうでなければ、私はオクターブのための信号処理ツールキットがあることを知っていると私は、MATLABが内蔵フィルタ機能を有することを考える:https://ccrma.stanford.edu/~jos/fp/Matlab_Filter_Implementation.html
がトップ上にある第三の方法は、FFTを実行することであろう周波数領域でのフィルタリングを行う。
信号の低周波部分を取得したら、振幅スレッショルドを上回るサンプルを確認し、データのどこにそれらが見つかったかを出力することができます。キーワードでGoogleで
30秒 "ビート抽出MathWorks社のMATLAB" 得、次の2つのコードソース:
MATLABで使用することができますし、最先端技術のマルチフィーチャービートトラッカーアルゴリズムは、アルゴリズムの情報はここに公開されます: J.R. Zapata、M. DaviesおよびE.Gómez、 "Multi-feature beat tracker"、音声、言語および言語処理に関するIEEE/ACMトランザクション22 multifeatureビートトラッカーの(4)、頁816から825まで、2014年http://dx.doi.org/10.1109/TASLP.2014.2305252
Matlabの実装は次のとおりです。あなたが低い部分を持っていたら https://github.com/JoseRZapata/MultiFeatureBeatTracking
、あなたは自己相関関数を使用することができます(これは私が思うにはFFTを使用しています)、そのような信号の期間を見つけます。 – Marnix