12

この質問を更新して、以前は「信号(音)パターン検出のための単純なアルゴリズムの名前を教えてください

  1. 私の目的は、ノイズの多い信号で特定のパターンの存在を検出することです。マイクで音を録音している昆虫の種の存在を検出したい。以前、昆虫の音をデジタル形式で録音したことがあります。
  2. 私は音声認識をしようとしていません。
  3. 入力信号とパターンの間の畳み込みを使用して、それらの類似性レベルを判断しています。しかし、この手法は離散時間 (つまり、信号が一定の間隔で発生するデジタル通信) と、入力信号を 2 つの与えられたパターン (私は 1 つのパターンしか持っていません) の間で区別するのにより適していると思います。
  4. ニューラル ネットワークを使用したことがなく、そのコードを埋め込むことができるかどうかわからないので、使用するのが怖いです。

他のアプローチをいくつか教えてください。または、私の現在のアプローチが依然として良いアイデアであるか、ニューラル ネットワークが実行可能な方法である可能性があることを納得させてください。

更新私はすでに2つの良い答えを持っていますが、別の答えは歓迎され、報われることさえあります.

4

10 に答える 10

11

畳み込みからのステップ アップは動的タイム ワーピングです。これは、1 つの信号を伸縮させて別の信号と最適に一致させる畳み込み演算子と考えることができます。

おそらく、より簡単なアプローチは、サンプルの FFT を実行し、昆虫がフィルター処理できる特定の周波数であるかどうかを判断することです。

より複雑な面ではありますが、完全なニューラル ネットワークではありませんが、libsvmsvmlightなどのデータを投げることができる SVM ツールキットがあります。

あなたが試みる道に関係なく、FFT のようなツールを使用して、あなたの昆虫が発する音の性質を調査することに時間を費やします. 結局のところ、音の分類を自分で行うことができれば、コンピューターに音の分類を教える方が簡単です。

于 2009-01-14T00:52:09.527 に答える
3

もう少し情報が必要です。

ノイズの多い信号と言うとき、バックグラウンド ノイズは何ですか? それは、最初の概算では、静止している(統計的な意味で、つまり一定)か、それとも非静止(つまり、他の動物の鳴き声などの他の音を含む可能性が高い)ですか?

バックグラウンド ノイズが非定常である場合、最善の策は、特定のサウンド ミックスをコンポーネント ソースに分離しようとする独立成分分析と呼ばれるものを使用することです。昆虫自体の元の録音は必要ありません。多くの ICA ソフトウェアがウィキペディアのページからリンクされています。

(編集: ICA はBlind Source Separation (BSS) のケースです。BSS を実行するには他にも多くの方法があり、それらを検索することも役立つ場合があります。)

ただし、バックグラウンド ノイズが固定されている場合、問題ははるかに簡単になります (それでも非常に困難ですが)。

この場合、私が使用するアプローチは次のとおりです。少しのノイズの振幅スペクトルと昆虫の鳴き声の振幅スペクトルを分析します。運が良ければ、昆虫の鳴き声は、一般に、ノイズとは異なる周波数帯域にある可能性があります。その場合は、適切なハイパス、ローパス、またはバンドパス フィルタで着信信号をフィルタリングします。

次に、平均よりも「多くのエネルギー」を含むフィルター処理された信号のセクションを (フィルター処理された) 昆虫の鳴き声と比較してみてください。おそらく、A. Rex によって提案された画像類似性アルゴリズムを使用することによって。

編集:あなたのバックグラウンドノイズは非定常であるため、非ガウスソースのブラインドソース分離を検索すると、さらにいくつかのアルゴリズムにつながる可能性があることを示唆することしかできません。残念ながら、答えは、あなたが望むことを行う単純なアルゴリズムがないということです。

于 2009-01-27T13:02:30.027 に答える
3

典型的な1 クラス分類の問題のように聞こえます。つまり、気にしない他のものの大きなプールで 1 つのものを検索したいということです。

やりたいことは、生の録音の短い部分ごとに計算できる一連の特徴または記述子を見つけて、クリーンな録音が生成する特徴と照合できるようにすることです。畳み込みが必ずしも悪いとは思いませんが、ノイズにかなり敏感なので、あなたのケースには最適ではないかもしれません。あなたのケースで実際に機能するのは、ビン化されたフーリエ変換でのパターン マッチングです。信号のフーリエ変換を行い、(電力と時間のグラフではなく) 電力と周波数のグラフを作成し、次に周波数を帯域で分割し、各帯域の平均電力を特徴として取得します。データにほとんどホワイト ノイズが含まれている場合、同様の長さの生の昆虫の音から得られるパターンは、参照音のパターンと非常によく一致します。この最後のトリックは、視覚障害者がサイトにアクセスできるようにするために google などで使用されているオーディオ キャプチャをクラックするために (いくつかのウィンドウを使用して) 成功裏に使用されています。

ところで、あなたの生のオーディオ信号はデジタルなので (そうでなければコンピュータでの処理はうまくいきません ;-)) 畳み込みが適切です。参照信号と、各サンプルから始まる生の入力からの等しい長さのサンプルとの間で畳み込みを実行する必要があります。したがって、参照信号の長さが N で、生のサンプルの長さが M (M>=N) の場合、参照信号と生の入力からの P 個のサンプルの間で M-N+1=P 回の畳み込みを 1 から開始して実行する必要があります。 P. 生のサンプル内の基準音の位置の可能性が最も高いのは、畳み込みスコアが最も高いサンプルです。これはめちゃくちゃ時間がかかることに注意してください。

上で説明したフーリエ変換ベースのマッチングは、参照サンプルの長さの 2 倍の生データから 50% オーバーラップするサンプルを使用して、少なくとも高速になります (必ずしもより良いわけではありません)。

于 2009-01-27T15:33:04.387 に答える
2

ハミング ウィンドウのようなウィンドウ関数について少し読み始めるとしたら、これは音声認識の良い出発点です。(もちろん、これにはフーリエ変換が組み合わされています)

于 2009-01-14T00:51:56.547 に答える
2

Matched Filter を試すことができます。私は実際に使ったことはありませんが、良いことを聞いています。

また、単純ではありませんが、隠れマルコフ モデル (うーん、音声認識がないと言ったのは知っていますが、聞いてください!) が最良の結果を提供すると思います。繰り返しますが、私は実際に使用したことはありませんが、至る所で利用可能なオープン ソースの実装があります。既存の「クリーンな」昆虫の記録を使用してトレーニングするだけで済みます。オープン ソースの実装の 1 つは、General Hidden Markov Model Libraryです。

于 2009-01-27T13:51:13.500 に答える
2

確かに、これは私の専門分野ではありませんが、最初に考えたのは再帰的最小二乗フィルターです。これは自己相関を実行します。これは、現在使用している畳み込みフィルターに似ていますが、もう少し高度です。カルマン フィルター処理はこれを拡張したものです。複数のノイズの多い測定値から信号を再生成するために使用されるため、この場合はおそらく役に立ちません。手に負えないニューラル ネットワークを拒否するつもりはありません。これらは、この種の作業に非常に役立ちます (適切にトレーニングすれば)。

これについてもっと深く考えると、おそらくFFTを使用することをお勧めします。探している信号が非常に帯域制限されている可能性があり、データにバンドパス フィルターを使用してから FFT を使用し、最終的に時間領域データの代わりにそのデータに単純な畳み込みフィルターを使用することで、おそらくより多くの運が得られるでしょう。ポイント。または、両方を実行して、2 倍のデータを取得します。私は数学にあまり詳しくないので、この方法を使用して有意な (線形依存ではない) 結果が得られるかどうかはわかりませんが、失うのは時間だけです。

于 2009-01-27T15:57:02.450 に答える
1

Google: FastICA アルゴリズム。ICA と Blind-Source Signal Separation を同じ意味で使用する人もいます。アルゴリズムの著者は ICA に関する素晴らしい本を書きました。Amazon で約 40 ~ 60 ドルです。

于 2014-02-28T12:49:49.567 に答える
1

Naive Bayes Classifierは、サウンド サンプルを対象の種を含むものと含まないものに分類する価値がある場合があります。これは、複雑な現象に対して非常にうまく機能します。あるミリ波 RADAR データ セットにブラシやタンク トラップなどの障害物が含まれているかどうかを判断するために、これを使用したことがあります。連続データ セットを分割し、昆虫サンプルと同じ長さのチャンクに分割します。たとえば、比較対象のサンプルの長さが 2 秒の場合、ディスクリミネーターに 0 ~ 2 秒、0.5 ~ 2.5 秒、1 ~ 3 秒などを入力できます。ディスクリミネーターをトレーニングする必要がありますが、これは一般的な方法です。機械学習ベースのソリューションの要件。

これらの種類のアプローチは、探している昆虫種が単一の比較的明確な音を持っていない場合に進む唯一の方法です。相互相関/畳み込みは、ボリュームが大きいまたは小さい単一のサウンドよりも複雑なものを探している場合、有用性が限られています。

nbcなど、いくつかの言語用の単純ベイズ分類器の実装があります。

于 2009-01-27T15:45:05.470 に答える
1

類似度測定の Matlab 実装であるMA Toolboxに興味があるかもしれません。

個人的には、MPEG-7 における一般的な音の分類と類似性という論文が興味深いと思いました。ただし、ペイウォールの背後にある可能性があり (わかりません)、実際にはそれほど役に立たない可能性があります。

GPL 版のフレームワークMarsyasには、kea と呼ばれる機械学習分類用のツールがあります。私の推測では、これはおそらくあなたが望むことをしないか、接続するのに手間がかかりすぎるということです.

それ以外の私の唯一のアイデアは、フーリエ変換を使用して、サウンドを効果的にグレースケール画像に変換することです。次に、多くの画像類似性アルゴリズムの 1 つを使用します。

于 2009-01-27T12:38:43.287 に答える
1

ウィーナー フィルターアプローチが必要な場合があります。

于 2009-01-29T20:55:49.347 に答える