Zigbee Modülü Kullan Development of a Voic nılarak Ses Kontrollü

advertisement
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/1973e510-1a6c-49e7-b60d766995ca3a34@5.18: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
Download