形状にクラスター化されたデータの認識


9

鳥のさえずりを検出して分類するためにPythonでプロジェクトに取り組んでおり、waveファイルを周波数対時間データに変換する必要がある状況にいます。これはそれほど問題ではありませんでしたが、さまざまな音節をグループに分類できるようにするには、データが特定の形にクラスター化されるときに検出する何かを書く必要があります。データがどのように見えるかを理解するために、プロットしたときにデータがどのように見えるかのイメージを次に示します。

ここに画像の説明を入力してください

SciPyを使用してそれらの間のピアソン相関を実行できるように、個々の音節(両側に分離がある各形状)を取得して変数または独自のファイルに保存する方法が必要です。

また、私はPythonを好みますが、別の方法でコーディングできる場合は、他の言語でコーディングすることもできます。

ありがとう!


私がこれから提案しようとしていることに完全に精通しているわけではありませんが、音節のプロパティを含むウェーブレットを使用したContinuous Wavelet Transformは、一見の価値があります。
heltonbiker

あなたは形を見つける必要がありますか、それとも鳥を分類しようとしていますか?もしそうなら、隠れマルコフモデルのサウンドを使用しますか?
ミハイル、

回答:


2

2つの質問:

1/8秒近くで、100ミリ秒ほど安定したピッチを観察できます。その後、8.5秒まで急激に増加します。このシーケンス全体(8秒から8.5秒)は単一のエンティティを形成しますか、または2つの段階(安定してから減少する)を2つのエンティティと見なしますか?

2 /監督の有無にかかわらず仕事をしたいですか。探す「パターン」をあらかじめ知っていますか?

  • 監督なしで作業したい場合(たとえば、録音を収集し、そこから「構造化表現」を抽出することを目的としている場合)、問題は、最初のステップでの音声アクティビティ検出に似ています。信号強度を使用して、「ピッチネス」メトリック(ここでは、1kHz-5kHzのブライド範囲の自己相関の最大値の比率など)と組み合わせて、アクティブな強いピッチトーンがあるセグメントを検出します。結果のシーケンスをメディアンフィルターして平滑化し、しきい値を設定してさまざまなセグメントを取得します。信号をセグメントに分解したら、それらを使って興味深いことを行うことができます。たとえば、ピッチ軌道(各FFTフレームの周波数ピークが最も強いシーケンス、または真のピッチ推定器でよりロバストなもの)をそれぞれ抽出できます。DTWを使用して各ブロック間のペアワイズ距離の行列を計算し、クラスタリングアルゴリズム(k-means、凝集クラスタリング)を使用して、類似したピッチパターンのグループ(8:8.5および10:10.5セグメント)を識別します。監視されていないアプローチはセグメント化しすぎる可能性があります。たとえば、7.6:8.5と9.6:10.5は2つの同じブロックの繰り返しとして認識されますが、基本的には1つの単一のパターンである可能性がありますが、次のようなものを使用できます。Sequiturは1レベル高い構造を持っています。

  • 信号にラベルを付ける「パターン」の定義済み辞書がある場合は、音声認識に使用される種類のアプローチに従うことをお勧めします。考慮すべき唯一の情報はケースピッチです!音声認識システムは、1つのFSTデコード操作でセグメンテーションタスクと認識タスクの両方に取り組みます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.