web-dev-qa-db-ja.com

コード検出アルゴリズム?

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

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

29
Nemeth

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

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

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

12
pianissimo

Mac用のトランスクリプションプログラムである Capo の作者は、かなり詳細なブログを持っています。エントリ "自動タブに関する注意" にはいくつかの良いジャンプポイントがあります:

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

これらの自動トランスクリプションアルゴリズムはそれぞれ、オーディオデータのある種の中間表現から始まり、それをシンボリック形式(つまり、音符の開始と持続時間)に転送します。

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

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


(出典: supermegaultragroovy.com

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

12
John Kugelman

コード検出とキー検出の間にはかなりの重複があるので、論文や論文へのリンクがいくつかあるので、その質問に対する私の 前の回答 のいくつかが役立つかもしれません。優れたポリフォニックレコグナイザーを取得することは非常に困難です。

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

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

7
the_mandrill

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

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

倍音はあなたを失望させています。さらに、ファンダメンタルズが存在しない場合でも、人間はサウンドのファンダメンタルズを見つけることができます。読むことを考えてください、しかし手紙の半分をカバーすることによって。脳はギャップを埋めます。

ミックス内の他のサウンドのコンテキスト、および以前に発生したものは、ノートをどのように知覚するかにとって非常に重要です。

5
Brad

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

基本的に、すべての時点で、演奏されているノートの数、ノート、ノートを演奏した楽器、振幅、およびノー​​トの長さを推測します。次に、エンベロープ内のそのポイントでそのボリュームで演奏されたときにすべての楽器が生成するすべての倍音と倍音の大きさを合計します(攻撃、減衰など)。信号のスペクトルからこれらすべての高調波の合計を差し引き、すべての可能性の差を最小限に抑えます。ゴツゴツ/きしみ音/引き抜き過渡ノイズなどのパターン認識。ノートの冒頭でも重要かもしれません。次に、いくつかの決定分析を行って、選択が理にかなっていることを確認します(たとえば、クラリネットが突然別の音を演奏するトランペットに変わり、80 mS後に再び戻ってこない)、エラーの可能性を最小限に抑えます。

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

4
hotpaw2

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

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

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

2
kervin

この投稿は少し古いですが、私は次の論文を議論に追加したいと思いました:

Klapuri、Anssi; 聴覚モデルを使用したポリフォニック音楽および音声信号のマルチピッチ分析; IEEE TRANSACTIONS ON AUDIO、SPEECH、AND LANGUAGE PROCESSING、VOL。 16、いいえ。 2008年2月2日255

この論文は、マルチピッチ分析の文献レビューのように機能し、聴覚モデルに基づく方法について説明しています。

enter image description here

(画像は紙からのものです。投稿する許可を得る必要があるかどうかはわかりません。)

2
MrUser