質問

前回の続きとして 質問, スマートフォン アプリケーションに特定の音符を検出させたい場合、音のキーが x セントずれていることを許容するために、入ってくるサウンドがその音符であるかどうかをある程度のあいまいさで知る必要があるだけであるとします。 。

そう考えると、速度と精度の点で他の方法よりも優れた方法はあるのでしょうか?つまり、探しているノートが、たとえば #C3 であることがわかった場合、そのノートが存在するかどうかをどのように判断するのが最善でしょうか?すべての波形を分離して基本周波数の結果を確認するよりも、単一の音を探す方が簡単だと思います。

私の最初の質問に対する回答の中で、ある回答者は、音符が特定の範囲内にあることがわかっている場合には、自己相関がうまく機能する可能性があると示唆しました。特定の音符 (+/- x セント) の有無をチェックするだけでよい場合、自己相関はさらにうまく機能するのではないかと思います。

それらのメソッドは次のとおりです。

  • キスFFT
  • FFTW
  • 離散ウェーブレット変換
  • 自己相関
  • ゼロクロス解析
  • オクターブ間隔のフィルター
  • DWT

ご意見をお待ちしております。

役に立ちましたか?

解決

あなたはそれを記述すると、あなただけの特定のピッチが存在するかどうかを決定する必要があります。非常に単純な(高速な)検出器は、単に、別の期間を記録し、単純化(シングル遅れ)の自己相関のような、それらの相関波形の一の周期に相当する記録することになります。高い一致がある場合、あなたは同じ期間のまわりで繰り返している記録された波形、またはそれの高調波を知っています。

例えば、別の1ミリ秒を記録し、それらを比較し、次いで、1 kHzの、オーディオのレコード1ミリ秒(48kHzで48サンプル)を検出する(すべてのサンプル及び和を乗算=相関)。彼らは(ある閾値以上の相関関係)をラインアップした場合は、1 kHzで、2 kHzの、3 kHzの、またはいくつかの他の複数のを聴いています。いくつかの期間を行うと、あなたにマッチにもっと自信を与えるだろう。

それはあなたにとって重要な場合は、

真の自己相関は、具体的には、その高調波を教えてくれます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top