1

特定のサウンドクリップのスペクトログラムを作成するShazamと同様のプロセスを作成しました。比較を実行できるように、このデータをデータベースに保存する方法を見つけようとしています。(実際のコードは必要ありません。プロセスの概念的なヘルプだけが必要です)

スペクトログラムに慣れていない人のために、x軸に時間、y軸に周波数のグラフを作成します。比較を実行できる方法でこのデータを保存する方法が必要です。また、大きなデータセット(基本的にはN ^ 2の部分文字列の比較)で検索しようとすると時間計算量の問題になるため、左から右に長い頻度値を単純に作成することはできません。

基本的に、サウンドクリップにある種のハッシュを作成し、データをハッシュのトライまたはサフィックスツリーとして保存することを考えていましたが、その場合、どのように比較できるかわかりません。

任意のアイデアをいただければ幸いです。

4

3 に答える 3

2

これは2D配列です。ほとんどのデータが0.0の場合、おそらくスパースです。

ほとんどすべての科学図書館が適切なデータ構造をサポートしているはずですが、すべてのエッジケースなどを管理する必要がないように、 ROOTヒストグラム(たとえば)を使用します。TH2FROOTは、少なくとも2つのヒストグラム類似度(カイ2乗コルモゴロフ)をサポートしており、定量的な比較を行うことができます。

于 2010-06-27T22:20:13.217 に答える
1

生の2D配列として保存するか、より高いレベルの特徴抽出(トラックピッチの輪郭など)を実行して重要な特徴を抽出し、比較に使用する必要があります。

于 2010-06-27T20:49:48.123 に答える
1

ハッシュの問題は、完全一致ではなく、厳密な一致が必要なことです。スペクトログラムでローカルピークの(時間、周波数)タプルを抽出し、それらをhttp://enに配置するという方針に沿って何かを考えていました。 .wikipedia.org / wiki/Spatial_database

検索するには、n個の最も高いピーク(4〜8?)を抽出してから、空間データベースで最も近いピークを検索し、最適な一致を見つけます。

于 2010-06-27T20:55:05.490 に答える