1

.wav ファイルの類似性を比較しようとしています。そのためにGoogle musicgライブラリを使用しましたが、同様のサウンドに対して悪い解決策が得られました。同じ車の 2 つの車のモーター音を比較すると、録音は人間にとって非常に似ていますが、0.012468828 のような指紋類似度スコアが得られます。録音はマイクで行います。

私がその悪いスコアを得る問題は何ですか?

私が使う:

Wave wave = new Wave("wav1.wav");
Wave wave1 = new Wave("wav4.wav");
FingerprintSimilarity fingerprintSimilarity = wave.getFingerprintSimilarity(wave1);
float score = fingerprintSimilarity.getScore();
float similarity = fingerprintSimilarity.getSimilarity();
System.out.println("Similar sound :"+ "Score : " + score + "\n  Similarity : "+ similarity);

私の目標は、モーター音から車のモデルを見つけることができるプログラムを作成することです。

よりうまく機能している他のライブラリはありますか、それともオーディオフィンガープリントの問題ですか?

4

2 に答える 2

1

名前が示すように、使用しているライブラリは音楽の分析用に開発されています。類似性測定は、「指紋」、つまり独特の音を見つけようとしていますが、モーターの音は非常に単調です。アルゴリズムは本当に奇妙な部分を見つけて比較することになると思います-このシナリオでは、良い結果が得られる可能性は低いです.

さまざまなモーターの音の類似性を分析することが目的の場合は、単純なスペクトル分析を使用してみてください。一方、音楽の分析を計画している場合は、アルゴリズムを実際の音楽で試してみることをお勧めします。

于 2015-02-12T21:44:30.363 に答える
1

指紋に基づいている必要があります。

ただし、次のことを行う必要があります。

  1. データを取得する
  2. データの注釈を取得 (どの音がどのモーターに属しているか)
  3. データから音声特徴を抽出する
  4. 冗長性を排除するためのプロセスデータ
  5. 分類モデルの開発
  6. モデルを評価する
  7. 問題に最適な機能を判断する
  8. モデルをアプリケーションに実装する

ご覧のとおり、音楽の場合ほど単純ではありません。その理由は、音楽に関しては、すでに上記のことを (何回も) 行っており、類似性のモデルを開発している人々がいるからです。ドメインおよびアプリケーション固有のモデルについては、何も聞いたことがありません。したがって、サウンド イベントの類似論文を確認するか、誰かがサウンド イベント用のアプリを開発した可能性があるかどうかを確認する必要があります (あなたが持っているのはサウンド イベントだからです)。

PS 上記の手順では、MARSYS、JAudio、Sonic Visualizer、および MIRToolbox を WEKA と共に使用できます。

于 2015-02-14T10:32:06.873 に答える