14

異なるビットレートでエンコードできる重複した MP3 ファイル (ただし、同じ曲です) と、正しくない可能性がある ID3 タグを (できれば Python で) 検出するにはどうすればよいですか?

ファイル コンテンツのMD5チェックサムを実行できることはわかっていますが、異なるビットレートでは機能しません。また、ID3 タグが MD5 チェックサムの生成に影響を与えるかどうかもわかりません。ビットレートが異なる MP3 ファイルを再エンコードしてから、チェックサムを実行する必要がありますか? おすすめは何ですか?

4

9 に答える 9

16

古いAudioScrobblerと現在MusicBrainzの人々がずっと前から取り組んできたのとまったく同じ質問です。当分の間、探求に役立つ Python プロジェクトはPicardです。これは、オーディオ ファイル (MPEG 1 Layer 3 ファイルだけでなく) に GUID (実際にはいくつかのファイル) をタグ付けし、それ以降は、タグはとてもシンプルです。

独自のプロジェクトとして実行したい場合は、libofaが役立つかもしれません。

于 2009-01-24T17:39:41.443 に答える
4

他の人が言ったように、単純なチェックサムでは、ビットレートや ID3 タグが異なる重複は検出されません。必要なのは、オーディオ指紋アルゴリズムです。Python Audioprocessing Suite にはそのようなアルゴリズムがありますが、その信頼性については何とも言えません。

http://rudd-o.com/new-projects/python-audioprocessing

于 2009-01-25T15:24:26.403 に答える
3

タグの問題に関しては、ピカードは確かに非常に良い賭けかもしれません. 重複する可能性のある 2 つのファイルを特定した後、それらからビットレート情報を抽出する必要がある場合は、mp3guessencを参照してください。

于 2009-02-25T11:43:03.290 に答える
2

Dejavu プロジェクトは Python で書かれており、探しているものを正確に実行します。

https://github.com/worldveil/dejavu

また、多くの一般的な形式 (.wav、.mp3 など) をサポートし、元のオーディオ トラック内のクリップのタイム オフセットを検出します。

于 2014-05-19T19:20:45.930 に答える
2

単純なチェックサムが機能するとは思わない:

  1. ID3 タグは md5 に影響します
  2. 異なるエンコーダーは同じ曲を異なる方法でエンコードするため、チェックサムは異なります
  3. 異なるビットレートは異なるチェックサムを生成します
  4. mp3 を別のビット レートに再エンコードすると、ひどい音になる可能性があり、1 つのステップで圧縮された元のオーディオとは確実に異なります。

ID3 タグ、曲の長さ、ファイル名を比較する必要があると思います。

于 2009-01-24T16:26:11.060 に答える
2

同じビットレートでの再エンコードは機能しません。実際、トランスコーディング (異なるビットレートでの再エンコードと呼ばれるもの) は圧縮の性質を変更するため、状況が悪化する可能性があります。圧縮されたファイルは、大幅に異なるファイルになります。

これは私の専門外ですが、MP3 の波形パターンを見て問題に取り組みます。MP3 を非圧縮の .wav に変換するか、MP3 ファイル自体で分析を実行するだけです。これにはライブラリが必要です。警告の言葉ですが、これはコストのかかる操作です。

別のアイデアとして、ReplayGain を使用してファイルをスキャンします。それらが同じ曲である場合は、同じゲインでタグ付けする必要があります。これは、まったく同じアルバムのまったく同じ曲に対してのみ機能します。私は、リイシューがより高いボリュームでリマスターされ、リプレイゲインが変わったといういくつかのケースを知っています.

編集: http://www.speech.kth.se/snack/
をチェックしてみてください。スペクトログラムの視覚化ができるようです。視覚的なスペクトログラムができるライブラリは、それらを比較するのに役立つと思います。

公式の python ページからのこのリンクも役立つ場合があります。

于 2009-01-24T16:47:41.797 に答える
1

私は似たようなものを探しています、そして私はこれを見つけました:
http ://www.lastfm.es/user/nova77LF/journal/2007/10/12/4kaf_fingerprint_(command_line)_client

それが役に立てば幸い。

于 2010-03-07T19:14:15.690 に答える
1

長さを主要なヒューリスティックとして使用します。これは、iTunes がGracenote データベースを使用して CD を識別しようとするときに行うことです。秒単位ではなくミリ秒単位で長さを測定します。これはヒューリスティックにすぎないことに注意してください。検出された重複を削除する前に必ずリッスンする必要があります。

于 2011-01-20T17:03:58.367 に答える