2011-02-08 23 views
6

Bir uygulama geliştiriyorum ve eşleşiyorlarsa 2 şarkıyı karşılaştırmak için bir yol bulmaya ihtiyacım var, biliyorum Ses Tanıma Aracı bunu yapmanın bir yolu ama önce (sanırım) sesi ilk önce dize çevirmesi gerektiğinden, konuşma tanıyıcı tarafından desteklenen lang dışında başka bir dil için uygun olmayacaktır .... herhangi bir fikir? Eski günlük telefon, sadece o kurulumAndroid veya ses etiketinde ses dalgası (sesli komutlar) bulun API

+0

Her iki kaydın da aynı konuşmacı olduğunu mu duymaya çalışıyorsunuz (sesli kimlik doğrulama veya konuşmacı kimliği) veya aynı sözcüklerin konuşulduğunu belirlemeye mi çalışıyorsunuz? Ne eşleştiriyorsun? konuşmacının kimliği veya konuştuğu kelimeler? –

+0

Merhaba. Bunu nasıl çözersin? –

cevap

5

bu FFT kullanmaktır yapmak A nispeten basit bir yolu boyunca daha önce kaydedilen sesli sesli giriş karşılaştırmak ses etiketini yapmak için kullanılan Tıpkı (Hızlı Fourier Dönüşümü) orijinal WAV dosyasının zaman-alan verilerini frekans-alan verisine dönüştürmek için (dönüştürülmüş dizideki her bir değer, belirli bir frekans bandının göreceli büyüklüğünü/yoğunluğunu temsil eder). Aynı kişi aynı sözcüğü iki kez konuşsa, sonuçta elde edilen zaman-alan verileri yine de iki WAV dosyasında sayısal olarak çok farklı olacaktır. Her iki WAV dosyasını frekans alanına dönüştürmek (her iki dosya için de aynı boyutta FFT penceresini kullanarak, iki dosya biraz farklı uzunluklarda olsa bile) orijinal WAV dosyalarından çok daha birbirine benzeyen frekans dizileri üretecektir.

Ne yazık ki Android için özel bir FFT kütüphanesi bulamadık.

Signal processing library in Java?

+0

Teşekkür ederim, ama gerçekten şaşırdım, neden eski moto telefonum bunu yapabilir ve bu yeni aptal android yapamaz, sadece sesimi kaydetmek istiyorum sonra tekrar söyle ve orijinaline yakın olup olmadığını bilecek! Bu karmaşık şeyi yapmak istemiyorum, yani eğer tam olarak aynı sorun olmazsa, ama orjinaline yakın olup olmadığına karar vermek için birçok algoritma var, tekerleği yeniden icat etmek istemiyorum! – rami

+0

Evet, Android'de pişmiş konuşma tanıma şeyler istediğiniz gibi çalışmıyor gibi görünüyor. Sanırım üreticiler aslında motorunuzun konuşma tanıma özelliğinden uzaklaşıyorlardı, çünkü bu eski yol sizin sesinizi tanımak için telefonunuzu "eğitmeye" bağlıydı. İstediğiniz şey budur elbette, ama ciddi bir zayıflık olarak kabul edildi ve muhtemelen hiç kimsenin böyle yapmadığı gibi. – MusiGenesis

+0

MusiGenesis haklı. Ses tanıma işlevini yerine getirmenin eski yolu, telefonun tüm kütüphanelere ve işlem yazılımına sahip olmasıydı. Android'ler Google'a bir akış açıyor ve aslında telefonunuzla değil Google sunucularında 'konuşuyorsunuz'. Sunucular daha sonra yorumu tekrar telefona gönderir. Daha doğru, daha fazla özelliği destekliyor ve bu şekilde telefona yer kazandırıyor. Ama, yapmaya çalıştığınız şey için zararlı, bu talihsiz bir durum. :( – Brandon

1

Bir fikir kendi spectograms içinde seslerinin benzerliği karşılaştırmaktadır: İşte bazı Java tabanlı kitaplıkları başvuran bir soru. Spektrogramdaki özellikler sağlamdır ve iki sesi analiz etmek için iyi bir referans olan gürültüye dayanır. Bu yaklaşımı alırsanız, önce seslerin özelliklerini öğrenmelisiniz ve iki spektrogramda özelliklerin nasıl karşılaştırılacağını bilmeniz gerektiğinden, desen tanımayı ifade eder.

Bu api http://code.google.com/p/musicg-sound-api/ java dilinde yazılmıştır ve android olarak kullanılabilir. Dalga spektrogramını yakalar.