2

私はメディア ファイルのコレクションを持っていますが、ほとんどが音楽で、そのほとんどは何年も前に CD からインポートされたものです。このコレクションは、さまざまなメディア プレーヤー、さまざまなファイル システム、さまざまなコンピューターなどの間で何度も転送されてきました。その過程で、いくつかのトラックが誤って複製されました。また、これらのメタデータをキュレートし、すべてを適切にタグ付けするよう常に努めています。その多くが最初にインポートされたとき、私は派手なメディア再生ソフトウェアを持っておらず、ID3 タグがすべてが「クラシック アルバム「Album」のトラック %d」。

これにより、一部のファイルには最新のメタデータが含まれているものの、削除したい同じメディア ファイルの "重複" があり、そのメタデータが適切に更新されていないという状況が発生します。メタデータはファイル内に存在するため、これらのファイルの内容は異なり、liten2などのツールは機能しません。

私の質問は次のとおりです。メタデータを無視して、ファイルのメディア コンテンツのみの一意に識別されるフィンガープリント (おそらく何らかの暗号化ハッシュですが、それは難しい要件ではありません) を便利に抽出するライブラリはありますか? もしそうなら、私はそれをどのように使用しますか?

4

3 に答える 3

4

Echoprintは、コンテンツによってオーディオのフィンガープリントを作成する無料の方法の 1 つです。つまり、メタデータにもバイト単位の正確なデータの一致にも依存しません。彼らの FAQ には、「大きなコレクションを重複排除したい」というエントリがあります。

その核心はそれ自体がpythonではなくWeb APIだと思いますが、pyechonestライブラリを提供しています。

于 2012-12-09T22:07:50.750 に答える
3

おそらく、オーディオ ファイルのファイル形式の仕様 (mp3、avi、mpg、ogg など) について少し調べる必要があります。mp3 の場合、これはすべての ID3v2 メタデータ チャンクを破棄することになります。ファイル内で実際にオーディオ情報をエンコードするチャンクを特定し、比較のためにそれらのチャンクをハッシュします。同じトラックの異なる形式のファイルが 2 つある場合、それらは同じファイルとして認識されないことに注意してください。また、同じフォーマットで同じトラックが 2 回あるが、ビットレートが異なるなどの場合、どちらも同一ではありません。

于 2012-12-09T19:35:00.050 に答える
-1

ファイルを(一時的に)WAV 形式に変換し、それらのハッシュを比較してみてはどうでしょうか。その後、ID3 タグを剥がす必要があります。これを行うためのツールはたくさんあり、この手順をスクリプトに埋め込むことはそれほど難しくありません。

于 2015-04-22T20:51:47.193 に答える