前の質問のフォローアップとして、スマートフォンアプリケーションで特定の音符を検出したい場合、着信音がその音符であるかどうかを知るだけで、ある程度のあいまいさがあり、 xセントオフキーであることに注意してください。
それを考えると、速度と精度の点で他の方法よりも優れた方法はありますか?つまり、探しているメモがたとえば#C3であることを知ることで、そのメモが存在するかどうかを判断するのに最適な方法はありますか?すべての波形を分離してから基本周波数の結果を確認するよりも、1つの音符を検索する方が簡単だと思います。
私の最初の質問への回答で、ある回答者は、メモが特定の範囲内にあることがわかっている場合、自己相関がうまく機能する可能性があると提案しました。特定の音符(+/- xセント)の有無を確認するだけでよい場合、自己相関がさらにうまく機能するのではないかと思います。
それらの方法は次のとおりです。
- キスFFT
- FFTW
- 離散ウェーブレット変換
- 自己相関
- ゼロクロッシング分析
- オクターブ間隔のフィルター
- DWT
どんな考えでもいただければ幸いです。