3

~20 GB の音楽ファイル (ほとんどが mp3、一部は ogg) を含む 2 つのディレクトリがあり、すべての重複した曲を検出したいと考えています。2 つの複雑な要因があります。

  1. 曲は、2 つのディレクトリで異なるファイル名を持つ場合があります。
  2. 同じ曲を含む 2 つのファイルの ID3 タグが異なる場合があるため、チェックサムも異なります。

これを解決するための良いアプローチは何ですか?

4

9 に答える 9

4

私がこれまで行ってきた方法は、Music IP から取得した genpuid を使用することです。クローズド ソース ソフトウェアは、形式、id3、チェックサムなどに関係なく、ファイルのオーディオ フィンガープリントを作成します。

詳細については、こちらをご覧ください

これにより、最も多くの正の重複一致が保証され、誤検知が最小限に抑えられます。また、正しくない id3 タグを正しくタグ付けすることもできます。

于 2008-10-21T20:06:02.473 に答える
2

これが私がやろうとしていることです(または以前にやったことがあります)...

  1. すべての曲を iTunes にロードします (我慢してください) (注、ここで iTunes を使用できる場合は、停止してください...重複リストが長くて管理できないと思います)
  2. すべての曲を削除してゴミ箱に移動します。この方法でディレクトリ構造を取り除くことができます
  3. 明らかに、「ゴミ箱を空にする」ことはしないでください。デスクトップ上のフォルダに曲をレスキューします
  4. mediamonkey、 dupe eliminator 、またはitunes自体などのソフトウェアを使用して、重複を識別します。Dupe eliminator は、さまざまな要素、アーティスト、長さ、ファイルサイズなどによってチェックし、何がだましで何がそうでないかを推測するという点で優れています)
  5. Itunes にリロードし、今度は「曲を自動アレンジ」にチェックを入れます。これにより、新しい重複のないリストが、アーティスト別、アルバム別の素敵なアレンジメントにドロップされます。

...出来上がり!(または、digg を読んだ場合: 「...利益!」)

/mp

于 2008-10-21T19:59:20.740 に答える
1

ID3/OGG​​ 相当のアーティストと曲のメタタグは正確ですか? もしそうなら、あなたはそれらを使うことができます。

編集:そうでない場合は、おそらくそうすることができます...アルバム全体のみを扱っている場合、トラックの数と長さに基づいてすべてのタグデータを取得するツールがいくつかあります.

アルバムと単一ファイルのミックスを扱っている場合は、さらに複雑になります。

于 2008-10-21T19:34:45.610 に答える
1

ファイルを解析できるライブラリがある場合は、オーディオ データに対してハッシュを実行できます。曲が別のリップであるか、再圧縮/トランスコード/その他されている場合、これは役に立ちません。

于 2008-10-21T19:38:12.780 に答える
1

もっと洗練された解決策があると確信していますが、音声データが同等であれば、ID3 タグを取り除いてハッシュすることでうまくいくはずです。ハッシュ後、必要に応じて ID3 タグを元に戻すことができます。

于 2008-10-21T20:33:25.663 に答える
0

おそらく、Last.fm APIが役立つでしょう。これには、トラックの長さ、アーティスト名、トラック番号などを含む XML を返す track.getInfo 呼び出しが含まれます。トラックを比較して、N 個以上のフィールドが等しいかどうかを確認し、等しい場合は同じトラックであると想定できます。

ただし、40 GB の音楽の API リクエストを送信しても問題ないかどうかはわかりません。

于 2008-10-21T19:39:12.887 に答える
0

このようなものはどうですか: mp3 の長さとオーディオ データへのポインターを取得するライブラリを見つけ (これを実行できるライブラリがいくつかあるようです)、曲の長さに基づいて最初のパス フィルターを実行します。長さが一致する曲については、オーディオ データのチェックサムをチェックします。重複ファイル/画像を見つけるためのこのスクリプトに似ています。

于 2008-10-21T19:54:23.700 に答える