私は最近この質問をしました:
ピッチを検出するアルゴリズムを探しています。回答の 1 つは、最初の FFT を使用して基本的な周波数応答を取得し、どの周波数が発声されているかを把握し、関心のある各領域でバンドパス フィルターを使用してフォローアップすることを提案しました。
少し高度なアルゴリズムでは、次のようなことができます。
- ピッチ周波数を大まかに検出します (DFT で実行できます)。
- ピッチ周波数を分離するためのバンドパス信号。
- フィルター処理された信号の 2 つのピーク間のサンプル数をカウントします。
これで、最初のステップを問題なく実行できます (私は iOS 用にコーディングしており、Apple には FFT などを実行するためのフレームワーク (加速フレームワーク) があります。
私はここから始めました: しかし、私は問題を見ることができます: 歌うことができる可能性のあるすべての音符を区別する FFT は、多くのサンプルを必要とし、あまり多くの不必要な計算を実行したくありません。モバイル デバイスをターゲットにします。
したがって、上記のこの回答に頭を悩ませようとしていますが、バンドパスフィルターの概念をコードに適用する方法がわかりません。
誰でも助けることができますか?