2

私はピッチ検出システムを開発する必要があるPythonでプロジェクトを開始しています.基本的に私がしなければならないことは、ギターの弦からの音を録音し、その音のトーンを特定することです.

ウェブサイト (stackoverflow を含む) を読んで検索したので、FFT、タイムドメイン、周波数ドメイン、ハーモニクス、ピッチ検出アルゴリズム、オクターブエラーなどの重要な事柄の主なアイデアを理解できます。

調査の結果、HPS (高調波積スペクトル) アルゴリズムを使用できることがわかり、そのアルゴリズムは周波数ドメイン アプローチに属しています。つまり、(一般的な手順で) する必要があります。

  1. ギターの音を録音します(外部ノイズを避けます)。
  2. FFT 機能を使用して、オーディオを時間領域から周波数領域に変換できるようにします (これが FFT の機能です)。
  3. そのデータ (配列) を取得したら、HPS を使用して、トーン ストリング サウンドとなる最高のトーンを見つける必要があります。

私の問題は最後のステップから始まります.HPSのecuationとそれに関するいくつかの講義を読みましたが、それでも理解できず、独自の機能を開発できません.

私が理解していない何かまたは何かが欠けていますか? 独自の HPS アルゴリズムをプログラムする方法が見つかりません。

4

2 に答える 2

1

ここのHPSの質問では:

高調波積スペクトルを使用して基本周波数を取得する方法は?

考慮される高調波の数は 5 (R = 5) です。5 つの高調波スペクトルは、順次高調波比によるダウンサンプリング後の hps2 から hps5 (および元の FFT スペクトル) にあります。

次に、5 つのダウンサンプリングされたスペクトルが合計されます。

次に、HPS サミング アレイの長さ全体が検索され、合計された 5 つの高調波のピークまたは最大値がどこにあるかが検索されます。

その例では、最適な HPS 推定値のダウンサンプリングと検索が最適に実行されない可能性があります。しかし、それは別の Q&A です (その一部は、上記の SO の質問に対する回答に既に含まれています)。

于 2016-09-09T22:16:49.473 に答える