2009-01-22 12 views
18

Aynı veya benzer olup olmadığını belirlemek için iki ses dosyasını programla karşılaştırmanın herhangi bir yolu var mı? Bunlar mp3 dosyası değildir ve herhangi bir ID3 veya diğer meta verilere sahip değildir, ancak düz wav dosyaları. Kontrol toplamı değerlerinin karşılaştırılması, tamamen aynı olmadıkları için çalışmayabilir.Tamamen aynı değilse ses dosyalarını karşılaştırma

cevap

12

wikipedia article on acoustic fingerprinting da dahil olmak üzere bir dizi üründen bahseder. açık kaynak libfooid. Temelde frekans alanına girmeye bakıyorsunuz, göreceli olarak az sayıda bant üzerinde kaba seviyeler alıyorsunuz (örneğin 32), size 25ms'lik ses gibi bir şeyi temsil eden bir dizi vermek için tüm dosya için bunu yapıyoruz. Farklı dizeler için bu dizelerin karşılaştırma karşılaştırması. Oldukça karmaşık, ama yapması gereken - gerçek örnekleri karşılaştırarak, herhangi bir yere kadar bir hacme sahip olmak gibi basit bir hacim değişikliği, tüm eşleşmeyi atmak gibi basit bir şey almaz.

+0

İyi bağlantı. OQ, dosyaların örnek olarak karşılaştırılmasının işe yarayabildiğini gösteren, özdeş veya neredeyse aynı olabileceğini öne sürüyordu. – MusiGenesis

1

İki WAV dosyaları örnek bazında numunenin karşılaştırmak ve ortalama başına numunenin farkını hesaplamak olabilir. Her şeyi hızlandırmak için aynı yöntemi kullanabilir ancak her 10 ncu örneği ya da her 100 ncü örneği karşılaştırıp aynı değeri elde edersiniz (aynı ya da yakın olmayan iki dosya örnek başına büyük bir ortalama farka sahip olacaktır).).

+0

Bu, bir dosya 1 saniyelik sessizliğin önüne eklendiğinde işe yaramaz, ancak aksi durumda aynıdır. – rmeador

+0

Daha sonra desen tanıma eklemeniz gerekir ve örnekleri –

+2

kontrol etmeden önce bunları geçici olarak hizalamaya çalışın, her iki noktaya da katılıyorum, ancak bu sorunu basit bir alemden aldatıcı karmaşıklığın alemine götürürüm. – MusiGenesis

2

Dosyanın oldukça düzgün bir parmak izi vermesini deneyebileceğiniz bir şey, Fourier transform alıyor ve dosyada bulunan farklı frekansların dağılımını inceliyor. Aynı Fourier dönüşümüne sahip iki çok farklı ses dosyası yapmak hala çok olasıdır, ancak dosyalarınız bir kaynaksız kaynağından geliyorsa bu bir ihtimal değildir ...

+0

Yani dosyaları karşılaştırmak için 2 fft arasında korelasyon buluyorum?(Bunun bana çok doğru sonuçlar vermeyeceğini varsayarsak) – Talha

6

benzerlikler için sesleri bir dizi karşılaştırmak için işlem bilgisayar bilim araştırmalarında İçerik Tabanlı Ses Indexing, Retrieval denir ve Fingerprinting edilir.

Bunu yapmanın bir yöntemi olup:

1) vb, zaman içinde zift, frekans spektrumu, otokorelasyon, dinamik aralık geçici gibi özellikleri elde etmek için, her ses dosyasında sinyal işleme birçok bit başlat en iyi eşleşmeyi bulmak için (örneğin) gradient descent olarak

2) bir veritabanı

3) optimizasyon tekniklerini kullanın içine çok boyutlu bir diziye her ses dosyası için tüm özellikleri koyun ve her çok boyutlu dizi dökümü Çok boyutlu veri veritabanında belirli bir ses dosyası.

de bu işi yapmaya hüner MusicBrainz ve EchoNest dahil olmak üzere bu gibi şeyler birkaç proje var

hangi özellikleri olduğunu.

Echonest bu alanda gördüğüm simplest APIs birine sahiptir. Başlamak çok kolay.

P.S. Hayır, Echonest için çalışmıyorum, orada çalışan herhangi birini tanımadım.