1

私が無知になるかもしれないのなら許してください、しかし私はノートオンセット検出のためのフィルターアルゴリズムの使用に関していくつかの質問をしたいと思います。

  1. 「検出機能」は、オーディオ信号にフィルターを使用するのと同じですか?または、一般的に、検出機能、フィルタリング(信号の前処理)、およびピークピッキングの違いは何ですか?

  2. ローパス(またはハイパス)フィルターについてはいつも聞いていますが、混乱しています。特定のしきい値を下回る(または上回る)特定の周波数をキャンセルすることで機能することを読みました。ただし、ノートオンセットの計算には時間領域を使用しています(つまり、信号の振幅/エネルギーの変化を使用しています)。そのため、時間領域にローパスフィルタリングを適用する方法がわかりません。音の発生を検出するための他の優れたフィルターはありますか?

  3. スペクトルエネルギーと相エネルギーの違いは何ですか?(スペクトルはスペクトログラムまたは周波数を指すと思いますが、フェーズが何であるかはわかりません)

  4. 動的しきい値の操作に問題があります。良いアルゴリズムの提案はありますか?たとえば、次のシグナルがあります。

ここに画像の説明を入力してください

上の画像に示されているように、私が見逃したメモの開始があります。アルゴリズムの簡単な説明として、オーディオ信号で発生するエネルギー/振幅の変化を計算して記録します。次に、最大の「エネルギー変化」を取得し、感度に基づいて、そのパーセンテージを取得し、それをしきい値として設定します。したがって、ここでさまざまな程度の振幅/エネルギーを処理する問題が発生します。感度を低く設定しすぎると、「ゴースト」の開始が発生し、感度を高く設定しすぎると、一部の開始を見逃します。私が使用しているアルゴリズムを改善する(または新しいアルゴリズムを提案する)ための提案はありますか?

100%の精度を得るのは難しいと思いますが、現在の場合と比較して、音符の開始を検出するためのより優れたアルゴリズムが必要です。私が得ることができるすべての助けをいただければ幸いです。どうもありがとうございます!

4

1 に答える 1

0

1 つの方法は、振幅エンベロープの急激な増加を検出することです。振幅エンベロープを計算する 1 つの方法は、入力信号を整流し (つまり、絶対値を取る)、それをローパス フィルター処理することです。タイム ドメイン フィルターの例とエンベロープ フォロワーについては、 http://www.musicdsp.orgのコード例を確認してください。

于 2011-08-22T22:49:32.010 に答える