Zigbee Modülü Kullan nılarak Ses Kontrollü Ev Otomasyonu Geliiştirilmesi Development of a Voicce-Controlled Home Automation Using Ziggbee Module Aykut Çubukçuu1, Melih Kuncan2, Kaplan Kaplan3, H. Metin Ertuunç4 1,2,3,4 Mekatronik Mühendisliği Bölümü Kocaeli Üniversitesi {cubukcuaykut}@gmaail.com.tr, {melih.kuncan, kaplan.kaplan, hmertunc}@kocaeeli.edu.tr Özetçe- Bu çalışmada, ev içindeki cihazların konuşma tanıma tabanlı uzaktan kontrolü amaççlanmıştır. Sistem konuşma tanıma ve komut gönderme olm mak üzere iki ana başlık altında oluşturulmuştur. İlk aşaamada MATLAB ortamında konuşma tanıma algoritması gerçekleştirilmiştir. g Öznitelik çıkartma yöntemi olarak mel frekans kepstrum me yöntemi olarak katsayıları kullanılmıştır. Öznitelik eşleştirm dinamik zamanlamalı çözgü kullanılmışştır. Girilen sesli komutların tanınmasından sonra USB üzerinden ü Arduino pininde değişiklik yapılmıştır. Değişim alggılandığında verici Zigbee kablosuz ağ üzerinden kontrol edilm mek istenen cihaza bağlı alıcı Zigbee modülüne veri göndermeektedir. Gönderilen veri alıcı Zigbee modül tarafından algılanndığında, modülün pininden cihaza bağlı 5V’luk röle tetiklennmektedir. Böylece bir cihazın kablosuz ağ kullanılarak ses komutlarıyla uzaktan kontrolü başarıyla yapılmıştır. Anahtar kelimeler— Ses tanıma, mel frekans kepstrum, A Zigbee, katsayıları, dinamik zamanlamalı çözgü, Arduino, kablosuz ağ Abstract- In this study, we aimed sppeech recognitionbased remote control of home devices. The system was designed at two stages: speech recogniition module and transmitter module that sends commands inncluding fewer than two main headings. In the first stage speech s recognition algorithm is implemented in MATLAB. Mel Frequency Cepstrum Coefficients (MFCCs) are ussed as a feature extraction method. Dynamic Timing Warpiing (DTW) is used as a feature matching method. After the reccognition of speech commands entered, Arduino pin situation is changed via USB. The voltage change in pin is detected by the same pin connected to the transmitter Zigbee modulee. When the change is detected, Zigbee transmitter sends data too connecting on the desired device to be controlled the receiver Zigbee module via wireless network. When sending data detected by the receiver Zigbee module, 5V relay is triggered conneccting on the device pins of the module. Thus, it was possibble to successfully remotely control any device with speechh commands using wireless network. Keywords— Speech Recognition, Mel-Frequency Cepstrum Coefficients (MFCCs), Dynamicc Timing Warping (DTW), Arduino, Zigbee 1. GİRİŞ Ev otomasyon sistemleri, ev aletleerinin artması ve bu cihazların özelliklerinin gelişmesi ile önem ö kazanmıştır. Bu cihazların uzaktan kontrol edilmesi üzeerindeki çalışmalar artmaktadır [1]. Kablosuz haberleşme dennildiği zaman akla ses, resim, video vb. gibi büyük boyutlu veerilerin yüksek veri hızında iletimini yapabilen Wi-Fi, WIMA AX, Bluetooth ve şimdilerde popüler olan 3G, 4G gibi teknollojiler gelmektedir. Fakat her zaman büyük boyutlarda veri iletimine ihtiyaç duyulmayabilir. Sensör ve kontrol cihazlarıı küçük boyutlarda veri iletir veya alırlar. Bu durumda bu tarzz verilerin iletimini sağlamak ve böyle cihazların kontrolünü yapmak y için sistem 978-1-4799-4874-1/14/$31.00 ©2015 IEEE kaynaklarını mümkün olduğunnca az kullanacak, akıllı ağ topolojilerini destekleyecek bir teknolojiye ihtiyaç duyulmuştur. Bunun üzerine IEEE, 802.15.4 standardını çıkarmış, bu standartları temel alan Zigbee protokolünün ve bu protokolü destekleyen cihazlarrın üretilmesini sağlamıştır. Böylelikle düşük güç tüketen,, düşük maliyetli, akıllı ağ topolojileri kurabilen Zigbee destekli cihazlar günlük yaşamda yerini almaya başlamıştır [2]. Teknolojinin gelişmesiylee günümüzde hayatımızı kolaylaştıran birçok cihaz üreetilmektedir. Bu noktada en önemli çalışma alanlarından birii akıllı ev otomasyonudur. Bu evlerde cihazlar genellikle uzakktan ve tek bir dokunmatik kumanda üzerinden kontrol eddilmektedir. Her geçen gün kullanıcı için daha esnek kontroll yöntemleri geliştirilmektedir. Konuşma tanıma temelli cihaz kontrollü k günümüzde oldukça kullanışlı bir kontrol yöntemiddir. Bu çalışmada, konuşma tanıma temelli kablosuz ağ kuullanılarak cihazların uzaktan kontrol edilmesi üzerinde çalışılmıştır. Konuşma tanıma v öznitelik eşleştirme olarak algoritması öznitelik çıkartma ve iki kısımdan oluşmaktadır. Öznittelik çıkartma yöntemi olarak mel frekans kepstrum katsayıları kullanıldıktan sonra, öznitelik eşleştirme yöntemi olaarak ise dinamik zamanlamalı çözgü kullanılmıştır. Algorritma Matlab ortamında gerçekleştirilmiştir. Konuşma taanıma algoritması sonucunda doğru eşleşme olunca Matlab ortamında o seri port üzerinden Arduino pini ‘HIGH’ konumunaa getirilmektedir. Konuşmanın tanınması sonucunda pinin ‘HIG GH’ konuma getirilmesi verici tarafında olan Zigbee’de algılanmaktadır. Değişiklik algılandığında verici Zigbee kaablosuz ağ kullanılarak alıcı Zigbee’ye sinyal göndermektedirr. Alıcı tarafında olan Zigbee değişikliği algıladığında 20. pinninden 5V çıkış vermektedir. 20. pine bağlı 5V röle tetiklenereek şebekeye bağlı ışık uzaktan kontrol edilmiştir. Tasarlannan sistem Şekil 1’de gösterilmektedir. Şekil-1: Tasarlaanan sistem 2. SES S İŞLEME Ses tanıma, belirli bir konuşmacı tarafından ne söylendiğinin saptanması için kullanılan bir yöntemlerden birisidir. Ses işleme teknollojisinin yaygın uygulama alanlarındandır [3]. Bu çalışma konuşma tanıma ve kontrol mekanizması uygulaması içermekktedir. Alıcı-verici yoluyla bir sistemi uzaktan kontrol eden sess tanıma sistemi kurulmuştur. Örnek olarak ses kullanarak arabanın uzaktaan kontrol edilmesi verilebilir [4]. Konuşma tanıma iki aşamadan oluşmaaktadır. Bunlar veri tabanı oluşturma ve saptama aşamasıdır. Veeri tabanı oluşturma aşamasında sistemde kullanılacak komutlar işlenir ve veri tabanında saklanır. Veri tabanı oluşturmanınn amacı her komut için bir referans model oluşturmaktır. Daha sonra bu modeller saptama aşamasında kullanılırlar. 2.1. VERİ TABANI OLUŞTURMA Konuşma tanıma sisteminin ilk aşamaası olan veri tabanı oluşturma aşamasında, sistemde kullanılaccak sesli komutlar ayrı ayrı MATLAB ortamında kaydedillmektedir. Girilen sesler MFCC’s algoritmasıyla, girilen sese özgü ö olan öznitelik vektörlerini çıkarmak maksadıyla işleme tabi tutulmuştur. İşlem sonunda her sesli komut için bir moodel oluşturulur ve sesli komut veri tabanına kaydedilmekteddir. Bu veri tabanı daha sonra saptama aşamasında kuullanılmak üzere saklanmaktadır. Şekil 2’de veri tabanı oluşturma aşamasının genel diyagramı verilmiştir. benzerlik oranı en küçük ise o komutun söylendiği çıkarımı yapılmaktadır. m Katsayıları (MFCCs) 2.1.1. Mel-Frekans Kepstrum Ses sinyalindeki akustikk özelliklerin çıkarılmasına öznitelik çıkarma denilmektedir [6]. MFCCs, konuşma tanıma alanında en çok kullanılan öznittelik çıkarma yöntemlerinden birisidir. Öznitelik çıkarma hem veri tabanı oluşturma hem de saptama aşamasında kullanılmaaktadır. Projenin en önemli kısmıdır. Algoritma aşağıdaki aşamalardann oluşmaktadır. ¾ ¾ ¾ ¾ ¾ ¾ Önvurgu Çerçeveleme Pencereleme (Hammingg Window) Hızlı fourier dönüşümü Mel-frekans saptırması Ayrık kosinüs dönüşümüü Şekil 3’te MFCCs algoritmaası aşamaları görsel olarak gösterilmektedir. Şekil-2: Veri tabanı oluşturma [5] Şekil-3: MFCCs algoritması a [5] Sistem ilk olarak eğitilmektedir. Kullanılacak K sesli komutlar sisteme girilip MFCCs algoritmaasıyla sesin akustik özellikleri çıkartılmaktadır. Çıkartılan sees özellikleri veri tabanı tabanında saklanmaktadır. Girilen komut sayısı ve kullanılan sesli komutlar Tablo 1’de gösterillmektedir. Tablo 1: Girilen komut sayısı ve komutlar k Komut Sayısı Girilen Sesli Komut K 1 ‘Işıkları Aç’ 2 ‘Işıkları Kapat’ 3 ‘Kettle Aç’ Girilen her sesli komuta MFCCs algoriitması uygulanarak sesin akustik özelliklerini ifade edenn vektörler elde edilmektedir. Bu vektörler algoritmaya ismiini veren kepstrum katsayıları olarak adlandırılmaktadır. Her sesli komut Tablo k Sıra 1’deki sırasına uygun olarak veri tabanına kaydedilmiştir. önemlidir, çünkü karşılaştırma işlemi haangi sırada hangi komut olduğu göz önünde bulunduruularak yapılmıştır. Örneğin; ‘Işıkları Aç’ komutu girildiğindee sistem ilk olarak girilen bu komutun ses özelliklerini çıkkarmaktadır. Yani kepstrum katsayıları çıkartılmaktadır. Elde edilen ses özellikleri veri tabanındaki tüm seslerle kaarşılaştırılmaktadır. Daha sonra girilen ses ile veri tabanındakki her ses arasında DTW algoritmasıyla en kısa yol beliirlenerek sırasıyla benzerlik skoru belirlenmektedir. Hangi sıradaki ses ile 1.Adım: Önvurgu Ses işlemedeki ilk adımdır. Yüksek genlikli noktalar daha çok kuvvetlendirilir [6]. Böyllece alınan bir çerçevedeki gürültü bastırılıp anlamlı verilerr daha çok kuvvetlendirilmiş olur. 0.95 1 1 2.Adım: Çerçeveleme Oluşabilecek spektral sızmaayı engellemek için hafızaya alınan verilerin belirli uzunnluktaki vektörler ayrılarak işlenmesidir [6]. Oluşan herr vektöre çerçeve denilir. Çerçeveler genelde 25-30 ms uzzunlukludur. Çerçeveler %20 örtüşme yapılarak oluşturulm muştur. Böylece alınan bir çerçevenin son kısmının %20’ si, bir sonraki çerçevenin ilk verileri olacaktır. Şekil 4’te çeerçevelemenin nasıl yapıldığı gösterilmektedir. Frekans düzleminde alınan her çerçeve, oluşturulmuş 13 üçgen filtre ile ağırlıklandırılmaaktadır. Böylece her çerçeve, 13 üçgen filtrenin ağırlıklandıırılması sonucunda 13x1’lik vektörlerle ifade edilmiş olur. 2595 10 log 1 700 5 ümü 6.Adım: Ayrık Kosinüs Dönüşü Ayrık kosinüs dönüşümü mel filtreleme sonucunda frekans düzleminde olan işaretlerri zaman düzlemine geçirmek için kullanılmıştır. Dönüşüm sonucunda Mel kepstrum katsayıları elde edilmektedir. Bu katsayılar sesin akustik özelliklerini ifade etmektedir. 2.2. SAPTAMA AŞAMASI Şekil-4: Çerçeveleme [7] 3.Adım: Pencereleme Alınan çerçeveler arasındaki sürekksizlikleri ortadan kaldırmak için her çerçeveye hamming penceresi uygulanır [6]. Hamming pencere uzunluğu alıınan çerçevelerin uzunluğuyla eşittir. Hamming pencere denklemi; 0.54 : 0,1,2 … . : 0.46 cos 2 2 1 ğ Saptama aşamasında, girdi olarak verilen bilinmeyen bir ses işlenerek öznitelik vektörleeri yani kepstrum katsayıları çıkartılmaktadır. Bu aşamada da ses özellikleri MFCCs algoritması kullanılarak elde edilmiştir. Daha sonra bu vektörler bir karşılaştırma algorritması yardımıyla konuşmacı veri tabanında kayıtlı bulunaan diğer ses özellikleriyle karşılaştırılmaktadır. Karşılaştırm ma işlemi Dinamik Zamanda Eşleştirme (Dynamic Timing Warping W - DTW) algoritması kullanılarak yapılmıştır. DTW algoritması veri tabanındaki seslerle, girilen ses arasında bennzerlik skoru belirlenmektedir. Belirlenen skora göre girilen sessin, veri tabanındaki hangi ses olduğu belirlenmektedir. Saptama aşamasındaki kulllanılan algoritma Şekil 6’da gösterilmektedir. 3 4.Adım: Hızlı Fourier Dönüşümü Ses işlemenin en önemli adımlarınddan birisidir. Ses sinyali frekans düzleminde incelenmektedirr. Ses sinyali farklı frekanslarda sinüzoidallerin birleşmesindeen oluşur [6]. Bu yöntemle, ilgili sinyalin hangi frekanslarddaki bileşenlerden oluştuğu belirlenmektedir. Alınan her çerçeeveye hızlı Fourier dönüşümü uygulanmaktadır. 4 5.Adım: Mel Filtre Bankası İşlemi Ses sinyali frekans düzleminde lineer ölçek takip etmez [6]. 13 üçgen pencereden oluşan mel filttre bankası olarak adlandırılan filtreler oluşturulur. Üçgen filttrelerin genişlikleri farklıdır. Genişlikler, ilk başlarda lineeer daha sonraları logaritmik artmaktadır. Şekil 5’te oluştturulan mel filtre bankası gösterilmektedir. Şekil-5:Mel filtre bankası [6]] Şekil-6: Saptaama aşaması [5] 2.2.1. Dinamik Zamanda Eşleeştirme Sistem eğitildikten sonra, girilen her sesli komutun akustik özelliği veri tabanıındaki komutların akustik özellikleriyle karşılaştırılmaktaddır. Karşılaştırmanın amacı girilen komutun veri tabanındaki ses özelliklerinden biri olup olmadığını belirlemektir. Karşılaaştırma işlemi sözcük tabanlı konuşma tanıma sistemlerinde etkin ve sıkça kullanılan bir yöntem olan Dinamik Zamannda Eşleştirme (DTW) ile yapılmaktadır. Bu yaklaşımla, çalışma anında tespit edilen k sözcük şablonları ile sözcük kestirilmesi, sistemde kayıtlı seslendirme zamanları örtüüştürülerek karşılaştırılması gerçekleştirilebilir [8].Bu algoritma söylenme zaman uzunlukları değişen sözcüklerr içindir. Bu teknik, aynı zamanda "bükülmüş" doğrusal olmayan esnemeden oluşan zaman serilerinde ya da zamann ekseni boyunca küçülen iki zaman serisi arasında en uygun u uyumu bulmak için kullanılmaktadır. Bu iki zaman serisi arasında benzerlik belirlemek için kullanılmaktadır [9].Geliştirilen uygulamada eşleştirilecek iki veri DTW yöntemi kullanılmak üzere, bağıntılar ile mesafe matrisi oluşturularak eşleştirilir. Şekil 7’deki Dinamik Zamanda Eşleştirme örneği gösterilmiştir. Grafikte yatay eksen veri tabanındaki M uzunluklu ses sinyalini, dikey eksen N uzunluklu girilen ses sinyalini göstermektedir [10]. Algoritmanın esnekliği nedeniyle N ve M uzunluları aynı olmak zorunda değildir. Veri tabanındaki ses özellikleriyle girilen ses özellikleri DTW algoritması kullanılarak karşılaştırılmaktadır. Karşılaştırma sonucunda iki ses vektörü arasında minimum yol vektörü belirlenmektedir. Konuşma tanıma algoritmasının başarıyla çalışması durumunda seri port üzerinden Arduino 20. pini ‘HIGH’ konumuna getirilerek algılanan komutun Zigbee’ler yardımıyla uzaktaki cihazlara gönderilmesi sağlanmıştır. ‘Lambaları aç’ komutu Matlab ortamında sisteme girilerek uzakta şebekeye bağlı bir lamba kontrol edilmiştir. Normal şartlarda sistemin başarı oranı %100’e kadar çıkmaktadır. Veri tabanında olan komutlara büyük ölçüde benzer harfler içeren komutlar kullanıldığında benzerlik oranı en fazla olan komut algılanmakta sistem ona göre yanıt vermektedir. Veri tabanındaki komutlarla benzerliği olmayan komutlar kullanıldığında sistem çalışmamaktadır. Gürültülü ortamlarda sistemin başarı oranı düşmektedir. Ses komutları bilgisayarın dâhili mikrofonu kullanılarak girilmektedir. Bu durum ses işaretlerine daha fazla gürültü binmesine sebebiyet vermektedir. Harici bir mikrofon kullanılarak sistemin gürültüden daha az etkilenmesi sağlanabilir. Aynı zamanda kullanılan Zigbee modüllerinin özelliklerine göre de sistemin başarısı değiştirilebilir. Çeşitli Zigbee topolojileri kullanılarak çok sayıda cihaz ses komutlarıyla kontrol edilebilir. TEŞEKKÜR Bu çalışma Kocaeli Üniversitesi Mekatronik Mühendisliği Sensör Laboratuvarında gerçekleştirilmiştir. KAYNAKÇA Şekil-7:Dynamic Timing Warping örneği [11] [1] 3. KULLANILAN HABERLEŞME VE KOMUT GÖNDERME METODU Bu çalışmada Matlab üzerinden Arduino’ ya erişmek için seri port bağlantısı ve cihazların uzaktan kontrolü için iki Zigbee arasında Wi-fi bağlantısı kurulmuştur. USB bağlantısı sayesinde Matlab ortamında ses tanıma sonucunda doğru komut algılanınca Arduino pinine logic‘1’ yazılabilmiştir. Pindeki değişim aynı pine bağlı Zigbee tarafından algılanmakta ve diğer Zigbee’ye kablosuz haberleşme ile göndermektedir. Bu çalışmada Xbee 1 serisi 2 adet Zigbee modülü kullanılmıştır. 2 modülün arasında kablosuz haberleşme kurulmasında X-CTU programı kullanılmıştır. Ağ için gerekli kanal ayarları yapılmıştır. Matlab ortamında Arduino pinlerine ulaşmak için uygun seri port ayarları yapılmıştır. Girilen ses veri tabanındaki seslerle eşleştiği zaman USB seri port üzerinden Arduino pinine logic ‘1’ yazılmaktadır. Yani pin ‘HIGH’ konumuna getirilmektedir. Verici olan Zigbee modül bu değişimi algılayarak kablosuz ağ üzerinden alıcı olan Zigbee modüle göndermektedir. Alıcı Zigbee gelen sinyali algıladığında 5V’luk röleyi tetiklemektedir. Böylece kontrol edilmek istenen cihaz ses komutlarıyla kontrol edilmiş olmaktadır. 4. SONUÇLAR Bu çalışmada, Matlab ortamında konuşma tanıma algoritması gerçekleştirilmiştir. Zigbee modüller kullanılarak kablosuz haberleşme ağı kurulmuştur. Cihazlar Zigbee modüller yardımıyla kablosuz ağ üzerinden uzaktan kontrol edilmiştir. Matlab ortamındaki verileri Zigbee modüllere göndermek için Arduino mikro denetleyici kullanılmıştır. Jieming Zhu, Xuecai Gao, Yucang Yang, Hang Li, Zhati Ai, Xiaoyan Cui, “Developing a Voice Control System For ZigBeeBased Home Automation Netwoeks”, Proceedings of IC-NIDC, 2010, p:737-741. [2] Ozan ARSLAN, “ZIGBEE ile Bina İçi Güvenlik Otomasyon Sistemi” , Bitirme Tezi, Mayıs 2009. [3] Muhammad Salman Haleem, “Voice controlled automation system”, Proceedings of the 12th IEEE International Multitopic Conference, December 23-24,2008. [4] Adrian Abordo and Jon Liao, "Voice Command Recognition," June 2003. [5] Ozan MUT, “Konuşma Tanıma”, Yüksek lisans tezi, 2004 [6] Lindasalwa Muda, Mumtaj Begamand I.Elamvazuthi,“Voice Recognition Algorithms using Mel Frequency Cepstral Coefficient (MFCC) and Dynamic Time Warping (DTW) Techniques”,Journal of computing, Volume 2, Issue 3, March 2010, p:138-143. [7] http://cnx.org/contents/[email protected]:46/DSPA, son erişim tarihi: Şubat 2015 [8] http://www.mcu-turkey.com/ses-tanima-3, son erişim tarihi: Şubat 2015. [9] Chunsheng Fang, “From Dynamic time warping (DTW) to Hidden Markov Model (HMM)”, University of Cincinnati,2009. [10] Toni M. Rathand R. Manmatha, “Word Image Matching Using Dynamic Time Warping”, University of Massachusetts, Amherst. [11]http://web.media.mit.edu/~tristan/phd/dissertation/chapter4.html, son erişim tarihi: Şubat 2015