Sesin sprektrumunu Pice nasıl tanıtabiliriz?

Başlatan Okan12345, 03 Mart 2014, 00:15:02

Okan12345

Iyi Günler Sayın Arkadaşlar. Konu başlığında yazdığım gibi Sesin sprektrumunu Pice nasıl tanıtabiliriz?
Bildiğiniz gibi Her bir cümlenin farklı sprektumu var.  Mesela "Anahtar açık" dediğimde çıkış 1 olsun. Anahtar kapalı dediğimde çıkış 0 olsun. Bu seslerin sprektrumunu Pice nasıl tanıtabiliriz? Tek başına Picle mümkünmüdür bu acaba? Yoksa başka bir entegreye mi ihtiyaç var?

ahmets

#1
Merhaba,

Bu alandaki gelişmeleri bilmiyorum, hatırladığım yöntemler için normal Pic'lerin kapasitesi yetmez belki PIC18 ile olabilir.
Linkteki dosyaya bak, bunun gibi bir şey öğrenmek için dsPIC'ler ile yapılabilir.

Microprocessor Implementation of an LPC-Based Isolated Word Recognizer
http://www.ece.ucsb.edu/Faculty/Rabiner/ece259/Reprints/176_ICASSP_81.pdf

Tavsiyem önce bilgisayarda yap, çalıştırdıktan sonra mikroişlemciye geç.

Mr_YAMYAM

Ses digitalize edildiği zaman veri akışı (bitstream) olarak tanımlanır.
Özellikle variable bitstream değerleri, karşılaştırma için elde bir bilgi olacaktır. Bu bilgilerin karşılaştırılması ise önceden kaydedilmiş bir data ile karşılaştırmak suretiyle yapılabilir.
Örnekteki ''anahtar açık' sözcüğü belli formatlarda örneklenip digitalize edildiğinde belli bir byte değeri olacaktır. Anahtar kapalı sözcüğü ile karışmaması için ses bilgileri, frekans responsu geniş tutulup, muhtelif frekans bandlarında işlenerek ayrı ayrı dataları işlenirse sonuç çok daha etkin olmaktadır.

Okan12345

Alıntı yapılan: Mr_YAMYAM - 03 Mart 2014, 03:33:12
Ses digitalize edildiği zaman veri akışı (bitstream) olarak tanımlanır.
Özellikle variable bitstream değerleri, karşılaştırma için elde bir bilgi olacaktır. Bu bilgilerin karşılaştırılması ise önceden kaydedilmiş bir data ile karşılaştırmak suretiyle yapılabilir.
Örnekteki ''anahtar açık' sözcüğü belli formatlarda örneklenip digitalize edildiğinde belli bir byte değeri olacaktır. Anahtar kapalı sözcüğü ile karışmaması için ses bilgileri, frekans responsu geniş tutulup, muhtelif frekans bandlarında işlenerek ayrı ayrı dataları işlenirse sonuç çok daha etkin olmaktadır.
Çok teşekkür ederim bilgi için anlaşıldı. Acaba diyorum bu sesler sprektrumunu Pice Digital olarak aktarsak ve ardındanda bu veriyi şarta Bağlasak yani Örneğin: 1sn ses frekansının farklı zamanında farklı büyüklükdeki Digital dalğa boyları var .  Bunu Bu Digital bilgiyi Pice aktararak ardından İf şartı ile 1sn sürenin 100ms 500ms 800ms zamanında şart olan Digital bilgiler sağlanıyorsa çıkış portu 1 olsun.  Bu şekilde bir şeyler yapılabilir diye düşünüyorum. Siz ne diyorsunuz?

Mr_YAMYAM

Alıntı yapılan: Okan12345 - 03 Mart 2014, 09:56:36
Çok teşekkür ederim bilgi için anlaşıldı. Acaba diyorum bu sesler sprektrumunu Pice Digital olarak aktarsak ve ardındanda bu veriyi şarta Bağlasak yani Örneğin: 1sn ses frekansının farklı zamanında farklı büyüklükdeki Digital dalğa boyları var .  Bunu Bu Digital bilgiyi Pice aktararak ardından İf şartı ile 1sn sürenin 100ms 500ms 800ms zamanında şart olan Digital bilgiler sağlanıyorsa çıkış portu 1 olsun.  Bu şekilde bir şeyler yapılabilir diye düşünüyorum. Siz ne diyorsunuz?
Digital veri akışlarını direk PIC üzerinde işleyebilirmisin bilmiyorum. Çok ciddi comparator ve DSP özellikleri olması gereklidir.
Bunu şöyle açıklayayım.
Digital veri akışlarını bir dere'ye benzetelim. Dere aktığı sürece bir su akışı olacaktır. Su akışı hiçbir zaman eşit olmayacaktır. Kimi zaman az su miktarı ile akarken kimi zaman da fazla su miktarı içerecektir.
İşte bizim amacımız burda şudur.
Derenin bir anda donduğunu düşünelim ve sadece ihtiyacımız olan 20m lik mesafenin işimiz için gerekli olduğunu düşünelim. Bu 20m lik mesafe temel olarak ''anahtar açık'' sesinin verileri olsun. Bu donmuş suyu kesitlere bölerek her bir kesitin hacmini bulmak ve belli şekillerde şarta bağlamak PIC için oldukça kolaydır.
Eğer sen bu verileri yine bitstream (veri akışı) (yani su akışı) olarak PIC'e girersen hiçbir anlam çıkmayacaktır. Çünkü akış değerlerini belirten belli formatlar vardır ve bu formatların yapısal özelliklerinden dolayı bu akış çözülebilmektedir.
Örneğin bir WAV (PCM) formatının belli bir yapısı ve belli akış şekli vardır. Bir MP3 formatına göre PCM formatında su akışı çok daha hızlıdır. Saniyede 1411Kb. Halbuki bir MP3 formatında bu akış oldukça yavaştır. 128 Kb/sn ya da 320Kb/sn gibi.
Senin bu akışları önce PIC üzerinde tanılaman (DSP özelliği) sonra dondurarak belli çözünürlükte bölümlere ayırman, ve sonra da bu bölümleri karşılaştırma yöntemi ile belli bir komutu vermen gerekecektir. Yine de kaydedilmesi gereken çok az miktardaki veri için REGISTER gibi donanımlara ihtiyacın olacaktır.


Okan12345

Değerli bilgiler için teşekkür ederim. Görüyorumki bu projeyi yapmak pek kolay olamayacaktır şu an için önce Pice bir az daha hakim olmak lazım.   Fakat bunun hazır devreleri varmı acaba? Ingilizcede olsa

ahmets

Selam,

http://www.talkingelectronics.com/John/SpeechRecognition.html
Burada 100$ bir kit var. Ne kadar eski, ne kadar işe yarar hiç bilmiyorum. Ararsan mutlaka daha iyi ve ucuz alternatifleri vardır.

Isolated Words Recognition using a Low Cost Microcontroller
http://sbesc.lisha.ufsc.br/sbesc2013/proceedings/120443.pdf
Bu makale çok güzel.
Ucuz mikroişlemcilerle bu işin yapılabilirliğini araştırmış, 16F877A, 18F4550, DSPIC30F4013 kullanmış.
Sonuç bölümünde yazanlar;
dsPIC30F4013 ile dört farklı algoritmayı çalıştırmış.
8bit işlemciler bu iş için uygun değil
30 MIPS altındaki örneğin PIC18F4550 gibi işlemciler çok miktarda veri işlemek için çok yavaş kalabilir.
dsPIC30F4013 ile 7 komutu tanıması için 5 saniyelik bir tepki süresi varmış. RAMı daha yüksek benzer bir dsPIC ile veya harici memory kullanarak daha kısa sürede tanıma yapılabilirmiş.
Bir sonraki çalışmalarını dsPIC33'ler ile yapacaklarmış.

Bu konuda çalışacaklara kolay gelsin.