ギターコードに適した優れたデジタル信号処理アルゴリズムは何ですか? 高速フーリエ変換以降、ギターで演奏される単一の音符でのみ正確であり、同時に演奏される音符 (つまりコード) では正確ではないと思います。
ありがとう!
ギターコードに適した優れたデジタル信号処理アルゴリズムは何ですか? 高速フーリエ変換以降、ギターで演奏される単一の音符でのみ正確であり、同時に演奏される音符 (つまりコード) では正確ではないと思います。
ありがとう!
簡単に言えば、複数のアルゴリズムが必要だということです。優れたコード認識方法は、より適切に「システム」と表現できますが、通常、それらは実際には周波数領域への初期変換 (ほとんどの場合 DFT) に基づいています。
これに似た曲のコード表現が必要な場合
C G Am F7 F6 C ...
これは実際には、オーディオの音符の認識からわずかに取り除かれる問題です。実際には、(大まかに言えば) 2 つの問題があります。
時間領域 (通常のオーディオ) から周波数領域 (スペクトル表現) に変換する方法は、あまり重要ではないことがわかります。その後に何をするかは非常に重要であり、多くの場合、洗練された確率モデル (音声認識のモデルに似ています: HMM、DBN など) がこの問題に取り組むために使用されます。
この分野の高度な研究については、Google Scholar の「コード トランスクリプション」、「コード検出」、または「コード ラベル付け」を試してください。
これらのアプローチのほとんどは、離散フーリエ変換 (DFT) を使用して初期スペクトログラムを作成します。その後の処理でも、異なる時系列平滑化手法が使用されていますが、わずかに異なる傾向があります。たとえば、隠れマルコフ モデル、動的ベイジアン ネットワーク、サポート ベクター マシン (SVMstruct)、条件付きランダム フィールドなどがあります。最も高度なトランスクリプターは、結果を改善するために、自動チューニング、キー情報、ベース ノート情報、およびメトリック位置の情報を使用します。私の論文(第 2 章) は素晴らしい概観を与えてくれます。
オープンソースのコード検出アルゴリズム:
お役に立てれば。
DFT(FFT)を使用するかなり成功したツールがいくつかありますが、それらはDFTを計算した後に多くの処理を行います。
現在の最先端の概要についてはこのリンクを、オープンソースのコード抽出アルゴリズムについては「Chordino」または「Chordata」をグーグルで試してください。
ウェーブレットなど、周波数領域の別のアルゴリズム セットを試すことができます。しかし、それがあなたの精度の問題に役立つかどうかはわかりません。実は、あなたが FFT でどのような問題を抱えているのか、私にはわかりませんでした。それは常に和音の近似値であり、音に関するその種の情報を取得する完全な方法はありません。
したがって、それはそのスペクトルに対して行う分析に依存します。単音では、実際にはFFTよりも優れたアルゴリズムがたくさんありますが、和音では、FFTを使用する必要がある可能性が非常に高くなります.
あなたが対処しなければならない問題は、基本倍音を高倍音から分割することです.1つの助けになるかもしれないことは、ギターの範囲にある周波数のみを考慮することです. ギターの音だけを扱う必要がある場合は、ギターの通常の周波数領域のグラフを調べて、それを使用して精度を向上させるために時間を割く必要があります。