あなたが言及したすべての方法に精通しているわけではありませんが、何を選択するかは、主に入力データの性質に依存する必要があります。純音を分析していますか、それとも入力ソースに複数の音符がありますか? スピーチはあなたのインプットの特徴ですか?入力をサンプリングしなければならない時間の長さに制限はありますか? 精度と速度のトレードオフは可能ですか?
何を選択するかは、計算を時間空間で実行するか、周波数空間で実行するかによってもある程度異なります。時系列を周波数表現に変換するには時間がかかりますが、私の経験では、より良い結果が得られる傾向があります。
自己相関は、時間領域で 2 つの信号を比較します。単純な実装は単純ですが、計算に比較的コストがかかります。これは、元の信号とタイム シフトされた信号のすべてのポイント間のペアワイズ差分、続いて自己相関関数のターニング ポイントを特定するための差分、および対応する最小値の選択が必要になるためです。基本周波数。代替方法があります。たとえば、平均マグニチュード ディファレンシングは自己相関の非常に安価な形式ですが、精度が低下します。関数には基本波以外のピークが存在するため、すべての自己相関手法にはオクターブ エラーのリスクがあります。
ゼロクロス ポイントの測定は単純明快ですが、信号に複数の波形が存在する場合は問題が発生します。
周波数空間では、 FFTに基づく手法が目的には十分効率的である場合があります。1 つの例は、信号のパワー スペクトルを各高調波でダウンサンプリングされたバージョンと比較し、スペクトルを掛け合わせて明確なピークを生成することによってピッチを識別する高調波積スペクトル技術です。
これまでと同様に、問題と制約に最適な方法を経験的に判断するには、いくつかの手法をテストしてプロファイリングすることに代わるものはありません。
このような回答は、このトピックの表面をなぞるだけです。以前のリンクと同様に、さらに読むための関連する参考文献がいくつかあります。