33

私は和音の検出に依存するソフトウェアを開発しています。ケプストラム分析または自己相関に基づく手法を使用したピッチ検出のアルゴリズムをいくつか知っていますが、それらは主にモノラルの物質認識に焦点を合わせています。しかし、私はいくつかのポリフォニック認識、つまり和音のように同時に複数のピッチで作業する必要があります。誰かがその問題に関するいくつかの良い研究や解決策を知っていますか?

私は現在、FFTに基づいていくつかのアルゴリズムを開発していますが、私が使用できるいくつかのアルゴリズムや手法について誰かがアイデアを持っている場合は、非常に役立ちます。

4

7 に答える 7

15

これは非常に優れたオープンソースプロジェクトです: https ://patterns.enm.bris.ac.uk/hpa-software-package

クロマトグラムに基づいてコードを検出します。これは優れたソリューションであり、スペクトル全体のウィンドウをフロート値を持つピッチクラス(サイズ:12)の配列に分解します。次に、コードは隠れマルコフモデルによって検出できます。

..必要なものすべてを提供する必要があります。:)

于 2013-01-21T02:29:17.353 に答える
14

Mac用の転写プログラムであるCapoの作者は、かなり詳細なブログを持っています。エントリ「自動タブに関する注意」には、いくつかの優れたジャンプポイントがあります。

私は2009年半ばに自動文字起こしのさまざまな方法の研究を始めました。これは、このテクノロジーがどれだけ進んでいるか、そしてそれを将来のバージョンのCapoに統合できるかどうかに興味があったためです。

これらの自動転記アルゴリズムはそれぞれ、オーディオデータのある種の中間表現から始まり、それを記号形式(つまり、音符の開始と長さ)に転送します。

ここで、計算コストの高いスペクトル表現(連続ウェーブレット変換(CWT)、一定Q変換(CQT)など)に遭遇しました。これらのスペクトル変換をすべて実装して、論文Iで提示されたアルゴリズムも実装できるようにしました。読んでいた。これは、それらが実際に機能するかどうかのアイデアを私に与えるでしょう。

カポにはいくつかの印象的な技術があります。際立った特徴は、そのメインビューが他のほとんどのオーディオプログラムのような周波数スペクトログラムではないことです。ピアノロールのようにオーディオを表現し、肉眼でノートを表示します。


(出典:supermegaultragroovy.com

(注:ハードノートバーはユーザーが描いたものです。その下のぼやけたスポットは、Capoが表示するものです。)

于 2010-12-02T16:59:05.713 に答える
8

コード検出とキー検出の間にはかなりの重複があります。そのため、論文や論文へのリンクがいくつかあるので、その質問に対する私の以前の回答のいくつかが役立つ場合があります。優れたポリフォニック認識機能を取得することは非常に困難です。

これについての私自身の見解は、ポリフォニック認識を適用してノートを抽出し、次にノートからコードを検出しようとすることは、それを実行するための間違った方法であるということです。その理由は、それがあいまいな問題だからです。正確に1オクターブ離れた2つの複雑な音がある場合、1つまたは2つの音が演奏されているかどうかを検出することはできません(倍音プロファイルを知るなどの追加のコンテキストがない限り)。C5のすべての高調波は、C4(およびC3、C2など)の高調波でもあります。したがって、ポリフォニックレコグナイザーでメジャーコードを試してみると、コードに調和的に関連している一連のノート全体が得られる可能性がありますが、必ずしも演奏したノートとは限りません。自己相関ベースのピッチ検出方法を使用すると、この効果が非常にはっきりとわかります。

代わりに、特定のコード形状(メジャー、マイナー、7番目など)によって作成されたパターンを探す方が良いと思います。

于 2010-12-02T22:31:34.223 に答える
5

この質問に対する私の回答を参照してください: .Net でリアルタイムのピッチ検出を行うにはどうすればよいですか?

この IEEE ペーパーへの参照は、主に探しているものです: http://ieeexplore.ieee.org/Xplore/login.jsp?reload=true&url=/iel5/89/18967/00876309.pdf?arnumber=876309

ハーモニクスがあなたをうんざりさせています。さらに、人間は基音がない場合でも、音の基音を見つけることができます。読むことを考えてください。ただし、文字の半分を覆うことによって。脳が隙間を埋めます。

ミックス内の他のサウンドのコンテキスト、およびその前に発生したものは、ノートを認識する方法にとって非常に重要です。

于 2010-12-02T20:10:59.613 に答える
4

これは非常に難しいパターン マッチングの問題であり、おそらくニューラル ネットワークや遺伝的アルゴリズムのトレーニングなどの AI 技術に適しています。

基本的に、すべての時点で、演奏されている音の数、音、音を演奏した楽器、振幅、および音の長さを推測します。次に、エンベロープのその時点でそのボリュームで演奏されたときに、それらすべての楽器が生成するすべてのハーモニクスと倍音の大きさを合計します (アタック、ディケイなど)。これらすべての高調波の合計を信号のスペクトルから差し引き、すべての可能性の差を最小限に抑えます。トントン/きしみ/はじくトランジェントノイズなどのパターン認識。メモの最初の部分も重要かもしれません。次に、決定分析を行って、選択が理にかなっていることを確認し (たとえば、クラリネットが別の音を演奏するトランペットに突然変わり、80 ミリ秒後に再び戻ることはありませんでした)、エラーの可能性を最小限に抑えます。

特に倍音エネルギーが非常に限られている楽器に対して、選択を制限することができれば (例えば、四分音符だけを演奏するフルートを 2 つだけにするなど)、問題がはるかに簡単になります。

于 2010-12-02T19:55:20.417 に答える
2

またhttp://www.schmittmachine.com/dywapitchtrack.html

dywapitchtrack ライブラリは、オーディオ ストリームのピッチをリアルタイムで計算します。ピッチは、波形の主な周波数です (演奏または歌われる「音符」)。これは、Hz 単位の float として表されます。

そしてhttp://clam-project.org/が少し役立つかもしれません。

于 2014-01-18T08:55:48.457 に答える