0

重複の可能性:
オーディオファイルの2つの波形の比較

私はwavファイルから波形を生成するphp関数を見つけました、それを修正しました、そして今それは私のニーズにマッチします、それはうまく働きます。

波形はすべてのwavファイルで非常にユニークであるように思われるので、波形を使用して2つのオーディオファイルを比較し、b.wavがa.wavにどれだけ近いかを確認することは可能でしょうか。いい考えですか?

2つの波形(JPG)をピクセルごとに比較するためにいくつかのphp関数を作成しました。いくつかのテストの後、次の結果が得られます。2つの異なるオーディオファイルの場合、平均差は予想どおり約97%の結果ですが、実際のコードでどのように機能するかわかりません。

誰かがこのアイデアとおそらくいくつかの有用なヒントについて意見を述べることができますか:)

2つのオーディオファイルを比較して、b.wavがa.wavにどれだけ近いかを確認しようとしています。

PS:私のwavファイルはほとんど同じです。唯一の違いはボーカルです。

4

3 に答える 3

14

私は大学で同様のタスクを作成します。そして、私はC++を使用しています。

比較のために、次の手順を実行しました。

  1. オーディオ ファイルを約 1 秒のチャンクに分割します。各。
  2. 各チャンクの高速フーリエ変換 (FFT) を計算します。
  3. 最初のファイルの FFT と 2 番目のファイルの FFT の間の相関を計算します。チャンクごとに。
  4. すべてのチャンクの相関関係が 80% を超えていることを確認します。この値は、私のプロジェクトには十分でした。
于 2013-01-03T13:39:07.557 に答える
2

オーディオを波形で比較することは、1 つの方法です。しかし、あるオーディオ ファイルを別のオーディオ ファイルと実際に一致させることはできません。一致するのは、ある時間にわたる振幅の違いだけです。したがって、それを比較することが目的である場合は、波形の比較が正しいです。

シャザムなどのオーディオを実際に比較したい場合は、how-does-shazam-recognize-songまたはAn Industrial-Strength Audio Search Algorithmを読んでください。

于 2013-01-03T13:40:43.503 に答える
0

信号を比較する場合、グラフィカルな波形を比較することはあまり役に立たないと思います。代わりに、シグナル自体を比較する必要があります ( arrays のfloats またはints)。

ある種の類似性尺度を提供できる信号処理方法はたくさんあります。最初の簡単な試みとして、相互相関関数が思い浮かびます。

于 2013-01-03T13:42:32.807 に答える