12

クロマチック楽器チューナーの最も堅牢なアルゴリズムを知っているのは誰ですか?

楽器チューナーを書こうとしています。次の2つのアルゴリズムを試しました。

  1. ウェルチピリオドグラムを作成してピーク周波数を検出するFFT

  2. 単純な自己相関(http://en.wikipedia.org/wiki/Autocorrelation

次の基本的な問題が発生しました。

  1. 精度1:FFTでは、サンプルレート、記録長、ビンサイズの関係は固定されています。これは、数セントの精度を得るには、1〜2秒のデータを記録する必要があることを意味します。これは、私がリアルタイムと呼ぶものとは正確には異なります。

  2. 精度2:自己相関は少し良く機能します。必要な数セントの精度を得るには、サンプルの線形補間を導入する必要がありました。

  3. 堅牢性:ギターの場合、倍音がたくさん見られます。一部の倍音は、実際には弦によって生成されるメイントーンよりも強いです。演奏する正しい弦を選択するための確実な方法を見つけることができませんでした。

それでも、安価な電子チューナーは私の実装よりも堅牢に動作します。それらのチューナーはどのように実装されていますか?

4

2 に答える 2

6

FFT を内挿することもできます。多くの場合、より高い高調波を使用して精度を高めることができます。生成された楽器のハーモニクスについて少し知る必要があります。ターゲットから 0.5 オクターブ未満ずれていると仮定できれば簡単ですが、それがなくても、基本周波数は通常はるかに強力です。 1 次高調波よりも大きく、1 次高調波をそれほど下回っていません。単純なヒューリスティックにより、基本周波数を選択できるはずです。

自己相関法が機器間でそれほどロバストに機能するとは思えませんが、1 つの基本周波数だけオフセットしたときに最高になる一連の自己相似スコアを取得する必要があります。2 つにすると、同じスコアが再び得られるはずです (異なる高調波のノイズと微分減衰の範囲内で)。

于 2010-05-20T13:55:20.627 に答える