0

自己相関アルゴリズムを使用してモノフォニック サウンド (ハミング、口笛) のピッチ検出を実行していますが、私がやろうとしていることに十分な結果が得られます。しかし、 GF# D#という音符でメロディーを口笛で吹いて結果をログに記録すると、次のシーケンスが得られます。

2x F#
3x G
14x F#
54x G
14x G#
2x D
52x F#
6x G
14x F#
3x G
2x G
28x D#
2x D
33x D#
4x D
16x D#
2x E
2x D
2x D#

正しい音符が認識され、より多くの繰り返しがあることがわかります。それが実際の音符であるか、単なるトランジションであるかをどのように判断できますか? その配列に適用して実際のノート GF# と D# のみを取得できるフィルタはありますか?

私はこのjavascriptコードを使用しています: https://github.com/cwilso/pitchdetectピッチ検出を実行するために、ノートをフィルタリングするために結果に適用できる後処理アルゴリズムがあるかどうか、または持っているかどうか疑問に思っています自己相関アルゴリズムのウィンドウを増やします。

信号処理に関するそのスレッド(https://dsp.stackexchange.com/questions/16753/how-to-get-the-melody-from-a-signal)で受け入れられた回答は、モードを適用する単純な後処理のようなものに言及していますピッチの結果シーケンスをフィルタリングします。このモード フィルターは何でしょうか。

4

1 に答える 1

0

モード フィルターは、どのノートが最も多く発生しているかを確認し、残りを破棄する場所です。たとえば、単純なモード フィルターを実行して 20 未満の値を破棄すると、54x G、52x F#、28x D#、33x D# が得られます。

ただし、ノートのテンポに依存するため、使用するモード値を計算する必要があります。

于 2015-05-10T21:37:23.730 に答える