18

2 つのオーディオ間の何らかの距離測定値を取得したいと考えています。たとえば、動物の鳴き声と、その動物をまねた人間の鳴き声を比較して、その音がどれだけ似ているかのスコアを返したいとします。

難しい問題のようです。それにアプローチする最良の方法は何ですか?オーディオ信号からいくつかの特徴を抽出し、それらの特徴に対してユークリッド距離またはコサイン類似度 (またはそのようなもの) を実行することを考えていました。抽出が容易で、音の知覚上の違いを判断するのに役立つのはどのような特徴でしょうか?

(どこかで Shazam がハッシュを使用しているのを見ましたが、それは別の問題です。なぜなら、比較されている 2 つのオーディオは基本的に同じですが、一方にはより多くのノイズがあるからです。ここでは、2 つのオーディオは同じではなく、単に知覚的に違います。似ている。)

4

3 に答える 3

11

一連のサウンドの類似性を比較するプロセスは、コンピューター サイエンスの研究では、コンテンツ ベースのオーディオインデックス作成検索フィンガープリンティングと呼ばれます。

これを行う 1 つの方法は次のとおりです。

  1. 各オーディオ ファイルに対して数ビットの信号処理を実行して、時間の経過に伴うピッチ、周波数スペクトル、自己相関、ダイナミック レンジ、トランジェントなどの特徴を抽出します。

  2. 各音声ファイルのすべての機能を多次元配列に入れ、各多次元配列をデータベースにダンプします

  3. 最適化手法 (勾配降下法など) を使用して、多次元データのデータベース内の特定のオーディオ ファイルに最適なものを見つけます。

これをうまく機能させるコツは、どの機能を選択するかです。これを自動的に実行して良い結果を得るには、注意が必要です。Pandoraの担当者はこれを非常にうまく行っており、私の意見では、彼らは最高の類似性マッチングを行っています。ただし、人々に音楽を聴いてもらい、さまざまな方法で評価してもらうことで、ベクトルを手作業でエンコードします。詳細については、Music Genome ProjectおよびList of Music Genome Project の属性を参照してください。

自動距離測定については、 marsysasMusicBrainzEchoNestなど、このようなことを行うプロジェクトがいくつかあります。

Echones には、私がこの分野で見た中で最も単純な APIの 1 つがあります。非常に簡単に始められます。

于 2010-07-06T12:27:22.133 に答える
3

スペクトル分析を検討することをお勧めします。これはあなたが望んでいるほど簡単ではありませんが、オーディオをその基礎となる周波数に分解することで、分析に非常に役立つデータが得られると思います。このリンクをチェックしてください

于 2010-07-04T18:48:34.983 に答える
2

最初のステップは、間違いなく音波のフーリエ変換(FT) を取得することです。Frequency over Time 1に関してデータに対して FT を実行すると、ノイズの過程で特定のキー周波数がヒットする頻度を比較できます。

おそらく、1 つの波を別の波から減算して、一種の段階的差分関数を取得することもできます。モック ノイズが元のノイズと同じ周波数とピッチ トレンド2に従っていると仮定すると、差関数のポイントに最適な線を計算できます。ベスト フィット ラインを元の音波から取得したベスト フィット ラインと比較すると、比較の基礎として使用するトレンド ラインを平均化できます。確かに、これは非常に緩い比較方法です。

- 1. hz/ms でしょうか。ここで使用されている単位の大きさには慣れていません。通常、フェムトからナノの範囲で作業しています。

- 2. ∀ΔT、Δピッチ/ΔT および Δ周波数/ΔT が許容範囲x内にある限り。

-書式設定のために編集しました。実際に完全な回答を書き終えるのを忘れていたためです。

于 2010-07-04T19:10:14.820 に答える