eng.harran.edu.treng.harran.edu.tr/moodle/moodledata/13/moddata/assignment/10/… · Web viewSes...
Transcript of eng.harran.edu.treng.harran.edu.tr/moodle/moodledata/13/moddata/assignment/10/… · Web viewSes...
T.C.
HARRAN ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
Bilgisayar Mühendisliği Bölümü
3.SINIF
PROJE DERSİ
SES TANIMA İLE UZAKTAN
KUMANDALI OYUNCAK ARABA
YÖNETİMİ
Öğrenci : Abdurrahman Balk
: Sezer Erginyürek
Danışman : Yrd. Doç. Dr. Nurettin BEŞLİ
Şanlıurfa-2010
ii
SES TANIMA İLE UZAKTAN KUMANDALI OYUNCAK ARABA
YÖNETİMİ
ABDURRAHMAN BALK
SEZER ERGİNYÜREK
Proje Danışmanı:
Yrd. Doç. Dr. Nurettin BEŞLİ
HARRAN ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
3. SINIF PROJESİ OLARAK HAZIRLANMIŞTIR
Şanlıurfa
Haziran 2010
iii
Harran Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bitirme
Ödevi Yönergesi Uyarınca Hazırlanmış ve Anılan Bölüme Sunulmuştur.
Şanlıurfa – 2010 Abdurrahman BALK
Sezer ERGİNYÜREK
ONAY
Yrd. Doç. Dr. Nurettin BEŞLİ Yrd. Doç. Dr. Nurettin BEŞLİ
Danışman Bölüm Başkanı
iv
ÖZET
Bu çalışmada, “ULN2003A” transistor kullanılarak oyuncak arabanın
kumandası hazırlanan elektronik devreye monte edilmiş ve paralel port yardımıyla
bilgisayara bağlanmıştır. Kullanılan “GVZ Komutanlar” adlı ses tanıma programı
ile oyuncak arabanın ses ile kontrolü sağlanmıştır. Ayrıca “SDK 5.1 Speech
Recognation” programı ile Windows işletim sistemi ses tanımaya uyumlu hale
getirilmiştir. “Visual C#” ile yazılan ara yüz programı ile de manüel olarak araba
kontrolü yapılabilmektedir.
v
ABSTRACT
MOBIL VEHICLE CONTROL WITH VOICE COMMAND RECOGNITION
ABDURRAHMAN BALK
SEZER ERGİNYÜREK
Harran University
Faculty of Engineering
Department of Computer Engineering
Project Advisor:
Assoc. Prof. Dr. Nurettin BEŞLİ
June 2010
In this study, With using “ULN2003A” transistor, remote-control of the car is
assemble on the electronic circuit board and contacting the computer helping the
paralel port connection. Used speech recognation program name is called “GVZ
Komutanlar” which controling modul car. Also Windows operating system is
adapted with” SDK 5.1 Speech Recognation ” program for recognize voice. Modul
car can control by manual which used program that “Visual C#”.
vi
TEŞEKKÜR
Bu proje çalışmasının planlanmasında, araştırılmasında, yürütülmesinde ve
oluşumunda ilgi ve desteğini esirgemeyen, engin bilgi ve tecrübelerinden
yararlandığımız, yönlendirme ve bilgilendirmeleriyle çalışmamızı bilimsel temeller
ışığında şekillendiren sayın hocamız Yrd. Doç. Dr. Nurettin BEŞLİ’ye sonsuz
teşekkürlerimizi sunarız.
Elektronik devrenin tasarımı, çalışması ve araştırmalarda yardımlarını
esirgemeyen çok kıymetli hocamız Sayın Arş. Gör. Abdülkadir Gümüşçü’ye (HR.Ü )
ve daha önce yaptığı çalışmalardan edindiği bilgileri bizimle paylaşan Sayın
Bilg.Müh. Kemal Adem’e (HR.Ü) teşekkürü bir borç biliriz.
Değerli arkadaşlarımıza da yardımlarını esirgemeden yanımızda oldukları için
tüm kalbimizle teşekkür ederiz.
vii
İÇİNDEKİLER
Sayfa
ONAY..........................................................................................................................iv
ÖZET…........................................................................................................................v
ABSTRACT.................................................................................................................vi
TEŞEKKÜR...............................................................................................................vii
İÇİNDEKİLER..........................................................................................................viii
ŞEKİLLER VE TABLO LİSTESİ..............................................................................10
SİMGELER LİSTESİ.................................................................................................11
BÖLÜM 1...................................................................................................................13
1.1-) GİRİŞ.................................................................................................................13
1.2-) ALGORİTMALAR............................................................................................14
1.2.1-) Ortak Vektör Yaklaşımı.........................................................................14
1.2.2.-) Saklı Markov Modeli.............................................................................15
1.3-) KONUŞMA TANIMA SİSİTEMİNİN ANATOMİSİ......................................16
1.3.1-) Ses Komut Tanıma Sistemi....................................................................16
1.3.2-) Konuşma Tanıma Problemi....................................................................17
1.3.3-) Öznitelik Çıkarıcı...................................................................................17
1.3.4-) Akuistik Model.......................................................................................18
1.3.5-) Dil Modeli ve Gramer............................................................................18
1.3.6-) Değerlendirme Ölçütleri.........................................................................19
viii
Sayfa
1.4-) VERİTABANI..................................................................................................20
1.4.1-) SUVoice Veritabanı...............................................................................20
1.4.2-) METU 1.0 Veritabanı.............................................................................21
1.5-) KONUŞMA TANIYICI YAPISI.......................................................................22
1.5.1-) Sınama verisi..........................................................................................22
1.5.2-) Deney sonuçları......................................................................................23
BÖLÜM 2...................................................................................................................25
2-) KULLANILAN YAZILIM VE DEVRE ELEMANLARI...................................25
2.3.1-) ULN2003A Transistör............................................................................25
2.3.2-) Paralel Port.............................................................................................26
2.3.3-) GVZ Komut Anlar..................................................................................27
BÖLÜM 3...................................................................................................................29
3.1-) SES TANIMA SİSTEMLERİNDE KARŞILAŞILAN SORUNLAR...............29
3.2-) TARTIŞMA.......................................................................................................30
3.3-) SONUÇLAR......................................................................................................30
BÖLÜM 4 ..................................................................................................................31
4.1-) OYUNCAK ARABA DEVRESİNİN BİLGİSAYAR İLE BAĞLANTISI......31
4.2-) OYUNAK ARABA KONTROL PROGRAMI.................................................33
4.2.1-)Programın Çalışması ve Arayüzü..............................................................33
KAYNAKÇA..............................................................................................................39
ÖZGEÇMİŞ................................................................................................................40
ix
x
ŞEKİLLER LİSTESİ
Sayfa
Şekil l.3.l. Ses komut tanıma sistemi 15
Şekil l.4.1. Yaş dağılım histogramı. 20
Şekil l.5.2a. İnce Memed roman metni sınama sonuçları 23
Şekil 1.5.2b. Spor Haberleri metni sınama sonuçları 23
Şekil 2.1. ULN2003 Transistör bacak bağlantıları ve iç yapısı 24
Şekil 2.2. Paralel Portun Pin Yapısı 26
Şekil 2.4a. GVZ Komut Anlar programı arayüzü 28
Şekil 2.4b. Yeni komut ekleme kısmı 28
Şekil 4.2. Kumanda devresi 31
Şekil4.3. Kumanda Devre Şeması 32
Şekil 4.4. ULN2003 Devre Bağlantısı 33
Şekil 4.5. Program Başlangıç Sayfası 34
Şekil 4.6. Oyuncak Araba Kontrol Formu 36
Tablo 1.5.2. Sınırlı dağarcıklı deney sonuçları 22
Tablo 2.2. Paralel Portun Pin Tablosu 26
11
SİMGELER LİSTESİ
N Referans cümledeki toplam sembol (label) sayısını
D Referans cümleye göre hipotezdeki silinen sembol sayısını
S Değişen sembol sayısını
I Fazladan eklenmiş sembol sayısını
WER (Word error rate – WER) Kelime hata oranı
SER (Stem error rate – SER) Kök hata oranı
LER (Letter error rate – LER) Harf hata oranı
--
12
BÖLÜM 1
1.1-) GİRİŞ
Ses tanıma sistemi genel olarak konuşma verisini yazıya çeviren bir yazılım olarak
görülebilir. Bu tür bir sistemin gelişmesi insan makine etkileşimini daha kolay ve verimli
kılacaktır. Yalnız, bir ses tanıma sisteminin geliştirilmesi zorlu bir süreç içerir. Her dil için
farklı ses tanıma yazılımları oluşturulmak zorundadır, dolayısıyla her farklı dilde ses tanıma
yazılımı o dile has özelliklerden kaynaklanan sorunları çözmek zorundadır. Bütün bu
zorluklara rağmen, etkili bir ses tanıma sistemi birçok alanda büyük faydalar sağlayabilir.
Örneğin, birçok şirket çağrı merkezlerinde görevliler bulundurmaktadırlar ve bu da para ve
insan gücü kaybına sebep olmaktadır. Bu kaybın önüne çağrı merkezindeki görevlilerin işini
yapacak bir ses tanıma sistemi ile geçilebilir. Ayrıca ses tanıma sistemleri metin dikte
ettirmek için de kullanılabilir. Herhangi bir editör programına sesle yazı dikte ettirmek, bu iş
için harcanan süre ve emeği azaltacaktır. Ek olarak, doğrudan ses dosyalarından yazıya geçiş
yaptırılabilir ve duyma güçlüğü çeken kişilerin yayınları takip etmesine olanak sağlar.
Gelişmiş bir ses tanıma sistemi, makinelere ses ile komut vermeye olanak sağlar. Teknolojik
gelişmelerle televizyonlar, arabalar ve diğer elektronik aletler hiçbir aracı alet olmadan sesle
yönetilebilir.
Ses tanıma sistemleri, gelişmiş çeviri yazılımlarıyla birlikte kullanılarak da faydalı
olabilir. Birleştirilmiş bir sistemle farklı ana dile sahip iki kişi ortak bir dil bilmek zorunluluğu
olmadan iletişim kurabilirler ve bu türden bir aygıt uluslar arası konferanslarda anında çeviri
yaparak faydalı olabilir.
13
1.2-) ALGORİTMALAR
Ses tanıma sistemleri günlük hayatımızda birçok alanda kullanılmaya başlanmıştır. Ev,
otomobil, ofis, hastane ve fabrika gibi çalışma ortamlarında ses tanıma ve sesle kontrol
uygulamaları görmekteyiz. Ses komut sistemleri kullanıcıların insanlarla etkileşiminde, araç
kontrolünde ve kişisel ve kamuya açık veri erişiminde kullanılmaktadır. Ses tanıma; yalıtık,
birleşik ve sürekli olmak üzere üç şekilde yapılmaktadır. Ses tanıma sistemleri, kişiye
bağımlı veya kişiye bağımsız ses tanıma yapacak şekilde tasarlanabilir[1]. Ses komut tanıma
sistemlerinde sesin bütünü için bir model oluşturulabilir. Bu modelle mesleki özellikle sınırlı
sayıda ses tanıma sistemleri için uygundur. Tanınacak ses sayısı fazla olduğu durumlar için
ses modellemesi için ses birimlerinden yararlanılır.
Ses birimleri ile ses/komut tanımada sürekli ses tanıma yöntemi uygulanır. Ses komut
tanıma sistemlerinde yalıtık veya sürekli konuşma tanıma yapılabilir. Bu sistemlerde
komutların değişken olması ve bu komutların sisteme kolay bütünleşmesi isteniyorsa sürekli
konuşma tanıma yöntemleri tercih edilmelidir. Günümüzde ses tanıma sistemlerinde “state
of-art” yöntemi olan saklı Markov modeller (Hidden Markov Models) HMM
kullanılmaktadır. HMM yanında değişik ses tanıma yöntemleri de kullanılabilir. Bu
çalışmalarda ses komut tanıma için bir alt uzay sınıflama yöntemi olan OVY(Ortak Vektör
Yaklaşımı) yöntemi de kullanılır. OVY, başarım olarak HMM’e yakın sonuçlar vermektedir.
Ayrıca OVY’nin HMM’e göre eğitim ve tanımada işlem açısından üstünlükleri vardır[2]. Biz
araç kontrolü için “ileri git”, “geri git”, “ileri sağ”, “ileri sol”, ”geri sol”, ”geri sağ” ve
“bekle” komutlarını kullandık.
1.2.1-) Ortak Vektör Yaklaşımı
OVY, ses ve görüntü tanıma uygulamalarında kullanılan bir alt uzay sınıflama
yöntemidir. Bu yöntem ile her sınıfa ait değişmez özellikleri taşıyan ortak vektör elde edilir.
OVY hem yeterli veri durumu (m>=n), hem de yetersiz veri durumları (m<n) için
uygulanabilir. Burada m ses komut sınıfına ait vektör sayısını, n ise her vektördeki eleman
sayısını göstermektedir. Bu çalışmada OVY yetersiz veri durumu için ses komut tanıma
yapılmaktadır. OVY’ de eğitim ile bir sınıfına ait ortak vektör ve o sınıfın farksızlık alt
uzayını geren öz vektörler elde edilir. Yetersiz veri durumunda (m<n) ortak vektör ve
farksızlık alt uzayı Gram-Schmidt dikleştirme yöntemi veya alt uzay teknikleri kullanılarak
14
elde edilebilir. Alt uzay tekniğinde ortak vektör ile ortak degişinti matrisinin öz vektörleri
arasındaki ilişkiden yararlanılır[3].
1.2.2-) Saklı Markov Modeli
Ses tanıma sistemlerinde, ses dalgaları öncelikle ses vektörleri veya gözlemleri
dizilerine dönüştürülürler. Bu diziler, Markov özelliğinde bir sonlu-durum makinesi olarak ele
alınırlar. Öyle ki, gözlem dizilerinde bir sonraki gözlem, geçmişteki herhangi bir gözleme
değil, şu ankine bağlıdır. Fakat gerçekte bu sistemin bazı sınırlamaları vardır: modeldeki
durum dizisi saklıdır ve gözlemler sadece bu durumlara bakılarak hesaplanır. Buna Saklı
Markov Modeli denir.
Ses sinyalleri simgeselleştirilerek sonlu-durum makineleri olarak işlenirler. Tabi
biçimsel diller düzeyine çıkarılmadan önce, pek çok ses dalgası hesaplamaları yapılır. Bu tür
hesaplamalar ise sinyal işleme konusuna girdiğinden onlardan söz edilmeyecek.
Saklı Markov Modelindeki durum dizisini bulabilmek için üç önemli algoritma
kullanılıyor.
İleri Algoritması: Modeldeki durumların sırasını bulmada kullanılıyor. Ortaya çıkabilecek
tüm durum sıralarının olasılıkları toplanıyor.
Viterbi Algoritması: İleri Algoritması'ndaki gibi tüm olasılıkları toplamak yerine, Viterbi
algoritmasında her durum sıralarından ses vektörleriyle en iyi örtüşeni seçiliyor. Böylece daha
sağlıklı bir sonuç elde ediliyor.
Baum-Welch Algoritması: Gözlem dizisini baştan sona ve tekrar sondan başa geçerek
gözlem olasılıklarını hesaplar. Böylece daha kesin sonuçlar bulur.
Ses sinyallerini işleyip, en küçük parçalarına ayırdıktan sonra, bu parçaların denk
geldikleri ses ve hecelerle örtüştürülmesi gerekiyor. Bunun için tanımak istediğiniz ifadeleri
türeten gramerden, telaffuz sözlüğü, sözcük ağları, gibi pek çok öğeyi harmanlamak
gerekiyor.
15
1.3-) KONUŞMA TANIMA SİSTEMİNİN ANATOMİSİ
1.3.1-) Ses Komut Tanıma Sistemi
Genel bir ses komut tanıma sisteminin blok seması şekil 1’de verilmektedir. Bu
sistemde, bilinmeyen komuta yapılmadan önce ses komutlarının uç noktalarının belirlenmesi
gerekir. Bu çalışmada uç nokta belirme için enerji ve sıfır geçiş ölçüleri kullanılmıştır[4].
Enerji ve sıfır geçiş sayısı için elde edilen eşik değerleri kullanılarak sesin uç noktaları
belirlenmektedir. Ait sesin uç noktaları belirlendikten sonra öznitelik vektörü elde edilir.
OVY ile öznitelik vektörünün hangi komuta ait olduğu belirlenir. Daha sonra bu komut
sayısal I/O kartı ve RF verici üzerinden gezgin araca gönderilir.
Şekil 1.3.1: Ses komut tanıma sistemi
16
1.3.2-) Konuşma Tanıma Problemi
Temel olarak konuşma tanıma sisteminin yaptığı görev bir konuşma verisini almak ve
ne söylenildiğini tahmin etmektir. Yani sistemin girdisi konuşma verisidir ve çıktısı da tahmin
edilen cümledir (hipotez cümlesi). Sistemin tahmin yapabilmesi için iki ana bölüme ihtiyacı
vardır: öznitelik çıkartıcı ve dil çözümleyici. Öznitelik çıkartıcı, gelen ses dalga yapısındaki
veriyi akustik öznitelik dizilerine dönüştürür ve dil çözümleyicinin kullanabileceği bir yapı
oluşturur (bu araç hakkında daha detaylı bilgi bir sonraki bölümde mevcuttur). Daha sonra, dil
çözümleyici bu öznitelikleri çıkartılmış diziyi alır ve cümleyi tahmin etmeye çalışır. Tahmin
ederken iki temel model kullanılır: Dil modeli ve akustik model. Bu modeller hakkında da
detaylı bilgi bu bölüm içinde verilecektir. Temel olarak tahmin işlemi aşağıdaki Bayes
denklemi sayesinde gerçekleştirilir:
W =argmax P( W| A)=argmax P (A| W) P( W)……(1)
Burada W hipotez cümlesidir. Bu cümle eşitliğin ikinci tarafında da görülebileceği gibi olası
cümleler içinden akustik diziyle uyuşma ihtimali en yüksek olan cümledir. P(W|A) verilen
akustik veriye göre (A) mevcut cümlenin (W) akustik diziyle eşleşme olasılığını simgeler.
Eşitliğin ikinci kısmı doğrudan Bayes kuralının uygulanması ile elde edilir. Burada P(W), W
cümlesinin oluşma olasılığıdır ve dil modeline göre hesaplanır. P(A|W) verilen cümleye göre
bizdeki akustik dizinin oluşması olasılığıdır ki bu da akustik modelle hesaplanır. Bayes
kuralından gelen P(A) W’dan bağımsız olduğu için sadeleştirilmiştir.
1.3.3-) Öznitelik Çıkartıcı
Daha önce de bahsedildiği gibi ses tanıma işleminden önce ses verisi bir dizi
parametre vektörüne dönüştürülmelidir. Bu sebeple öznitelik çıkartıcı ses verisini zaman
açısından birbirleriyle kesişmeleri boş olmayan kesitlere ayırır ve her bir kesitin
özniteliklerini çıkartır. Öznitelik çıkarımı için birçok farklı yöntem bulunsa da insan kulağının
algılamasına benzer frekans çözümlemesi sunduğu için filter-bank analizi daha yaygındır. Bu
avantajından dolayı bizim de ses tanıma için kullandığımız HTK programı fitler-bank
yaklaşımını adapte eder [5]. Eşit frekans aralıklı üçgen filtreler oluşturulur ve ses dalgasının
17
Fourier dönüşümü bu filtrelerle çarpılarak toplanır. Böylelikle filtrelerdeki değerlere göre
ağırlıklı bir toplam elde edilir. Yeni oluşturulan bu veriler ve MFCC (Mel-frequency cepstral
coefficients) kullanılarak vektör öznitelikleri çıkartılır.
1.3.4-) Akustik Model
Ses tanıma sistemlerinin akustik model temelini Saklı Markov Modelleri (Hidden
Markov Models- HMM) oluşturur. En küçük akustik birim fonemdir ve fonem bazlı
modellerde genellikle 3 adet HMM durumundan oluşur. HMM’in model parametreleri durum
değiştirme olasılıkları (state transition probabilities - aij) durum gözlenme yoğunlukları (state
observation density - bj(o)) ve başlangıçtaki durum dağılımlarıdır (initial state distributions -
ΠI). bj(o) ‘nin hesaplanması Gauss karışım dağılım olasılık fonksiyonlarının kullanılmasıyla
hesaplanır. Kullanılabilecek Gauss karışımı sayısı artırılabilir. Monofon kullanımı etrafındaki
diğer seslerden bağımsız bir ses tanıma sistemi sağladığı için ve bir fonem birden çok sese
karşılık gelebileceği için monofon tanıma sistemi etkili bir çözüm sunmaz. Trifonlar ise her
fonemin sağında ve solunda bulunan fonemler ile birlikte modellenmesidir, bu sebeple
trifonlar kullanmak akustik değişkenliği düşürür ve daha etkili bir tanıma sağlar.
1.3.5-) Dil Modeli ve Gramer
Dil modelleri veya gramerler, konuşma tanıma yapılırken, söylenen kelimelerin
akustik tanımanın yanında, içinde bulundukları bağlamlara göre de tanınmalarına olanak
verirler. Gramerler elle belirlenmiş cümle kuralları tanımlarlar, akustik model bir kelimenin
olasılığını en yüksek olarak belirlese de, bu kelime gramer kurallarının dışında ise tanınma
olasılığı olmaz, sadece bu kurallarla belirlenmiş kelimeler tanınabilir. Bu nedenle gramerler
sadece sınırlı dağarcıklı konuşma tanıma sistemlerinde kullanışlıdırlar. Bu tür elle belirlenen
gramerlerin yazımında da BNF gösteriminden yararlanılır [6]. Öte yanda dil modelleri, eğitim
metinlerinden eğitilir ve cümlelerin o dildeki olasılıklarını oluşturur. Eğer cümlelerin
kelimelerden oluştuğunu varsayarsak, wi kelimelerinden oluşan W cümlesinin tanınma
olasılığı aşağıdaki gibidir:
18
…(2)
Dil modelleri uygulamalarında genellikle N-gram modeller kullanılır, bu modeller de
denklemin sağ tarafında sadece wi’den önceki N-1 kelimeyi kullanarak denkleme yaklaşır.
Böylece yukarıdaki denklem aşağıdaki denkleme dönüşmüş olur:
…(3)
Bu N-gram olasılıkları ise aşağıdaki formülle hesaplanır:
…(4)
Buradaki C(wi-N+1,..., wi-1, wi) belirtilen N kelimenin eğitim metinlerindeki geçme
sayısını gösterirken, C(wi-N+1,..., wi-1) ise belirtilen N-1 kelimenin metinlerde geçme
sayısını gösterir. N=2 durumunda ise bigram dil modeli elde edilir. Eğitim verisinde
görülmeyen kelimelerin tanınmaları için de dil modeli içerisinde düzleme (smoothing)
yöntemi uygulanarak onlara da birer olasılık değeri atanır. Bu dil modellerinde oluşturulan
istatistiksel dağılımlara göre kelimelerin tanınma olasılıkları, aynı akustik modelde olduğu
gibi, değişim gösterir.
1.3.6-) Değerlendirme Ölçütleri
Konuşma tanıma sisteminin performansını ölçmek için birkaç bilinen ölçüm yöntemi
mevcuttur. En doğru kıstas hipotez cümlesi ile referans cümle arasındaki farkların
değerlendirilmesidir. Bu sebeple kelime hata oranı (Word Error Rate –WER) aşağıdaki gibi
hesaplanabilir:
19
…(5)
Burada N referans cümledeki toplam sembol (label) sayısını, D referans cümleye göre
hipotezdeki silinen sembol sayısını, S değişen sembol sayısını, I da fazladan eklenmiş sembol
sayısını temsil etmektedir. WER’yi bilmek bize doğru bilinen kelime oranını (percent
accuracy) da sağlar. Bunun dışında Kök hata oranı (Stem error rate – SER) ve Harf
hata oranı (Letter error rate – LER) da değerlendirme ölçütü olarak tanımlanabilir. SER,
referans ve hipotez cümlelerin kelimelerinin eklerinin atıldıktan sonra, köklerde WER’nin
hesaplanmasıyla bulunabilir. LER ise harfleri tek tek ayırdıktan sonra harfler arasında
WER’nin bulunmasıyla hesaplanır.
1.4-) VERİTABANI
Akustik modellerin eğitiminde temel olarak SUVoice ve Metu 1.0 veritabanları
kullanıldı.
1.4.1-) SUVoice Veritabanı
Sabancı Üniversitesi öğrencileri tarafından bir proje dersi kapsamında her dönem
düzenli olarak toplanan, 6 yıllık bir konuşma veritabanıdır. Toplam 3444 okuyucunun ses
kayıtlarından oluşturulmuştur. Yaklaşık 70 saati sessizlik olan 185 saatlik konuşma verisi
içerir. 46 farklı metin dosyasından 4087 özgün cümlenin okunmasıyla oluşturulmuştur.
Veritabanı genelde üniversite içinden toplandığı için çoğunlukla 18-25 yaş grubundaki
konuşmacıların verisini içerir. Konuşmacıların yaş dağılımı Şekil 1’de gösterilmiştir.
20
Şekil 1.4.1: Yaş dağılım histogramı.
Konuşmacıların 2055’i erkek, 1389’u ise bayandır. Ayrıca 2447 adet sigara içmeyen,
997 adet aktif olarak sigara içen denek kullanılmıştır.
1.4.2-) METU 1.0 Veritabanı
Orta Doğu Teknik Üniversitesi ve University of Colorado at Boulder’ın ortak
çalışması olan SONIC konuşma tanıma sisteminin Türkçe’ye uyarlanması projesi için
ODTÜ’de toplanmış verilerden oluşmaktadır. Yaklaşık 500 dakikalık ses verisi mevcuttur.
Her konuşmacı yaklaşık 40 cümle okumuştur ve 2462 özgün cümleden oluşmaktadır. Veriler
68’i erkek 52’si kadın 120 kişinin ses kayıtlarını içerir.
21
1.5-) KONUŞMA TANIYICI YAPISI DENEYLERİ
Konuşma tanıyıcı olarak kullanılan HTK eğitimi için temel olarak HMM
kullanmaktadır. Eeğitim için 3 durumlu HMM’ler kullanıldı. Öznitelik çıkarımları da MFCC
yöntemine göre yapıldı. Bu yöntemle çıkarılan vektörlerin sonuna Enerji seviyesi (energy),
fark (delta) ve ivmelenme (acceleration) vektörleri eklendi ve öznitelik ortalama çıkartımı
(cepstral mean normalization) yapıldı. Akustik modelin eğitimi için Türkçe’deki 29 harfe
karşılık gelen 29 fonem kullanıldı. Bunlara ilaveten kelimeler arasındaki kısa boşlukları
yakalamak için kısa durak ve cümle aralarındaki boşlukları yakalamak için sessizlik modelleri
eğitildi. Bunların yanında yabancı bazı harflerin fonemleri de önlem olarak oluşturuldu.
Toplamda 34 fonem elde edildi. Elde edilen fonem seti MetuBET alfabesinin bir alt kümesini
teşkil etmektedir. Her bir model için 3 durum (state) oluşturuldu ve her bir durum için 12
Gauss karışımı kullanıldı. Öncelikle bu 34 fonem üzerinden monofon bir eğitim
gerçekleştirildi. Daha sonra mevcut fonemler kullanılarak trifonlar oluşturuldu. Bütün 3’lü
fonem kombinasyonlarını eğitmeye yetecek kadar veri olmadığı düşünüldüğünden
bağlıdurum (tied-state) trifonlar kullanıldı. Bağlı durumların oluşturulması için Türkçe için
uygun bir karar ağacı (decisiontree) kullanıldı. Toplamda 4167 trifon modeli ve 50004
Gaussian mixture elde edildi.
Dil modeli olarak ise Osman Büyük’ün “Sub-Word Language Modeling for Turkish
Speech Recognition” isimli yüksek lisans tezinde kullandığı kelime tabanlı bi-gram dil modeli
kullanıldı. Sınama deneyleri Viterbi algoritması kullanılarak yapıldı, bu konuda değinilmesi
gereken bir nokta da, kullanılan sınama parametreleridir. Özellikle sınama sonuçlarını
etkileyen parametrelerden biri dil modeli logaritmik ağırlığıdır. Bu dil modeli ağırlığı
değerleri (-s) için birden fazla deney yapılmış, 5, 7, 10 ve 15 ile elde edilen değerler 4.4’te
karşılaştırılmıştır. Sınamayı etkileyen diğer öneli parametrelerden kelime ekleme logaritmik
olasılığı olarak 0, budama (pruning) parametresi olarak da 120 kullanıldı.
1.5.1-) Sınama Verisi
Sınama deneyleri, sınırlı dağarcıklı ve geniş dağarcıklı olmak üzere iki ayrı kategoride
yapıldı. İki kategorinin deneylerinde de SUVoice veritabanının eğitime dahil edilmeyen alt
22
kümeleri kullanıldı. Sınırlı dağarcıklı tanıma deneylerinde de iki ayrı deney metni türü
kullanıldı; bunlardan ilki, ard arda rastgele dört rakam okunan deneylerdi, diğeri ise toplam
160 yer ismi (Türkiye illeri, ilçeleri vb.) arasından birinin okunduğu deneylerdi. Rakam
sınama deneyleri için 54 kişiden toplam 5397 ses dosyası kullanılırken, yer ismi deneyleri için
ise 14 kişiden 2238 ses dosyası kullanıldı. Geniş dağarcıklı tanıma deneylerinde de iki farklı
metin türü kullanıldı; bunların da ilki Yaşar Kemal’in romanı İnce Memed’den alınan
cümleleri içerir, ikincisi ise spor haberleri arasından toplanmış cümlelerden oluşur. İnce
Memed verisi 88 özgün cümle içermekte olup, sınama için 18 kişiden toplanan 1905 ses
dosyası kullanılmıştır. Spor haberleri verisi de aynı şekilde 88 özgün cümle içerir, ve 16
kişiden toplanan 1408 ses dosyası ile sınama yapılmıştır. Bu sınama verileri [4]’te kullanılan
sınama verilerinin aynısıdır. Geniş dağarcıklı tanıma deneyleri için 30132 kelimeden oluşan
bir sözlük kullanılmıştır.
1.5.2-) Deney sonuçları
Sınırlı dağarcıklı deneylerde yapılan yer tanıma ve rakam tanıma deney sonuçları
Tablo 3’te gösterilmiştir. Rakamlarda cümle tanıma oranını farklı olmasının sebebi rakam
sınamasında bir cümlede 4 rakam okunmasıdır. Yer isimlerinde iki hata oranının da aynı
olmasının sebebi ise her cümlenin sadece bir yer ismini içermesidir.
Tablo 1.5.2: Sınırlı dağarcıklı deney sonuçları
Geniş dağarcıklı deneyde ise İnce Memed ve spor haberleri metinleri sınandı. Deney
sonuçları Şekil 2 ve Şekil 3’te görülebilir. Şekillerde yeşil sütunlar harf hata oranını (LER),
kırmızı sütunlar kök hata oranını (SER) ve mavi sütunlar ise kelime hata oranını (WER)
göstermek tedirler.
23
Şekil 1.5.2a: İnce Memed roman metni sınama sonuçları
Şekil 1.5.2b: Spor haberleri metni sınama sonuçları
24
BÖLÜM 2
2-) KULLANILAN YAZILIM VE DEVRE ELEMANLARI
2.1-) ULN2003A Transistör
Sürücü devresi olarak kullanılan ULN2003 İçerisinde 7 adet NPN transistör ve dahili
diyot barındırmaktadır. Haliyle transistör bacaklarıyla uğraşılmaz. Kullanımı ise oldukça
kolaydır. Devre şemasından da anlaşılabileceği gibi 9 numaralı bacağına +12 Volt ve 8
numaralı bacağına da Toprak (ground) uygulanır. Daha sonra 3 ve 6 numaralı bacaklara da
paralel portun DATA pinlerinden gelen +5 Voltluk değerler uygulanır. Bu sayede örneğin 3
numaralı bacağa +5 Volt (lojik voltaj) uygulandığında 14 numaralı bacak toprak olacaktır.
Aynı şekilde sırayla 4 için 13, 5 için 12, 6 için ise 11 numaralı bacaklar toprak olacaktır.
25
Şekil 2.1: ULN2003 Transistör bacak bağlantıları ve iç yapısı
2.2-) Paralel Port
Paralel Port nedir Ne işe yarar Paralel Port bilgisayarımızın kasasının arkasında
bulunan 25 pinlik D şeklindeki konnektördür. Genellikle printer bağlanmak için kullanılır. En
çok kullanacağımız bu 25 pin içinden 8 adet çıkış (output) pini, 5 adet giriş (input) pini ve
şasedir (ground, toprak). Aşağıdaki tabloda pinlerin açıklamaları görülmektedir.
26
Bu output pinlerini birçok maksatla kullanabiliriz. Paralel port aslında dış devrelere
güç sağlamak için iyi bir seçim değildir. Ancak elektronik bir devreyi paralel port yardımıyla
besleyebiliriz. Paralel port başlangıçta yazıcıların PC’ye bağlanması ve iletişimi için
tasarlanmış bir porttur. Ancak zamanla donanım kilitleri, taşınabilir diskler, modemler,
network adaptörleri. v.b. gibi birçok cihazın haberleşmesi için kullanılmaya başlanmıştır. Bu
cihazların bir çoğunun güç kaynağı haricidir.
Şekil 2.2 Paralel Portun Pin Yapısı
Paralel port’da direk güç çıkışına sahip değildir (Seri Port gibi). Paralel port üzerinden
beslenen en bilindik elektronik devre PC donanım kilididir. Bu kilit paralel port’a bağlanır.
Yazıcı kablosu ise bu cihazın üzerine bağlanır. Paralel port da güç çıkışı bulunmadığından
cihaz gücü port’un diğer pinlerinden çalar. Ancak bu durum genellikle yazıcıyla bilgisayarın
haberleşmesinde yada donanım kilidinin haberleşmesinde problem yaratır. Ayrıca paralel
portun mantsal 1 değeri 2.4V seviyesidir
27
Tablo2.3 Paralel Portun Pin Yapısı
2.3-) GVZ Komut Anlar
Bu program sesinizle bilgisayarınıza herhangi bir komut yollamanızı ve bu komutun
anlaşılarak yapılmasını sağlar. Program Türkçe ve Türk yapımıdır. Böylece telaffuz ve
okunuşta sorun yaşamazsınız. Kolay kullanışlıdır.
Programın Kullanımı:
Programı açtıktan sonra pencereyi kapatsak dahi, Sağ alt köşede(saatin yanı) aktif
olarak duruyor ve mikrofona gelen sesleri dinlemeye alıyor. Eğer programa belirtilen sesler
algılanırsa komutu gerçekleştiriyor okunuşlar dilinizden çıkan sese göre yazılmalıdır.
Bir program için birden fazla okunuş istiyorsak aralarına “; “ koymamız yeterli oluyor.
Ayarlar kısmından programın bizi bir tuşa bastığımız an dinlemesini de sağlayabiliyoruz.
28
Şekil 2.4a: GVZ Komut Anlar programı arayüzü
Şekil 2.4b: Yeni komut ekleme kısmı
29
BÖLÜM 3
3.1-) SES TANIMA SİSTEMLERİNDE KARŞILAŞILAN SORUNLAR
Ses tanıma sistemlerinde tanıtılması gereken sözcük sayısı ve sözdizimi karmaşıklığı
arttıkça, tanıma yüzdesi de düşüyor. Bunun sebepleri ise söyle sıralanabilir:
İngilizcedeki gibi yazılışları ve anlamları farklı olup okunuşları aynı olan sözcüklerin
aynı cümlede kullanılması, makinenin konuşmayı çözümlerken doğru sonuç bulmasını
engelleyebilir:“Mr. Wright should write to Ms. Wright right away about his Ford or four door
Honda.” cümlesindeki altı çizili sözcükler bu duruma örnek olarak verilebilir.
Ses tanımanın birden fazla türü vardır. Yalıtılmış sözcük tanıma, sürekli sözcük
tanımadan daha kolaydır. Çünkü ilkinde sözcükler nispeten daha açık ve tane tane söylenir.
Aynı şekilde karşılıklı bir konuşmayla, okumadaki konuşma arasında da büyük fark vardır.
Konuşma birinde sürekli ve değişken tonlamalarla, doğaçlama olarak gerçekleşirken,
diğerinde tonlamalara dikkat edilerek, daha yavaş tempodadır.
Konuşmacıya bağımlı ve konuşmacıdan bağımsız ses tanıma sistemlerinde de farklı
performanslar sergilenir. Birden fazla konuşmacının sesini tanıyabilmek makinenin
hesaplamalarını etkileyebilir.
Konuşma sırasında fondaki gürültü düzeyi de önemli bir zorluk çıkarıcı etmendir.
Teknolojideki büyümenin önüne set çekmek mümkün değilken, ses tanımanın da
gelişme hızı aynı şekilde artmakta. Ses tanımadaki zorlukların en büyük nedeni, bilgisayarın
iç yapısındaki gibi ya 1 ya da 0 şeklinde yürümemesi. Temelinde kullanılan pek çok
istatistiksel ve matematiksel formüllerin de gösterdiği gibi, olasılıklar ve yaklaşıklıklar
üzerine kurulu bir sistem. Bu yüzden daha fazla Ar-Ge yapılarak, üzerinde sabırla ve titizlikle
durulması gereken, fakat bir o kadar da ilginç bir konu ses tanıma.
30
3.2-) TARTIŞMA
Deney sonuçlarına bakıldığında, beklenildiği gibi sınırlı dağarcıklı deneydeki hata
yüzdesi, geniş dağarcıktakilere göre çok daha düşüktür. Çünkü sınırlı dağarcıktaki olası
sözcük sayısı ve sözcüklerin birbirlerine benzerlikleri daha azdır. Böylece tanıma sistemi daha
az seçenek arasından daha isabetli seçimler yapabilmektedir. Geniş dağarcıklı deneyde, dil
modelinin tanımaya yaptığı katkılara rağmen olası sözcük sayısının fazlalığı nedeniyle, deney
sonuçları sınırlı dağarcıktaki isabet oranına yaklaşamamaktadır. Bir diğer gözlem de iki geniş
dağarcıklı sınama sonuçları arasındaki hata oranları farkıdır. Bütün ölçütlerde (SER, WER,
LER) Spor haberlerinin hata oranı İnce Memed’e göre daha düşüktür. Bunun nedenlerinden
biri İnce Memed’te geçen kelimelerin spor haberlerindekilere göre, akustik modelin ve dil
modelinin eğitim verisinde daha az bulunmasıdır. Bu nedenlerin en önemlisi de, romandaki -
sistem tarafından tanınması imkânsız olan - sözlük dışı kelimelerin sayısının (out of
vocabulary) fazla olması ve dolayısıyla doğru tanıma yüzdesinin düşmesidir. Geniş dağarcıklı
deneylerdeki doğruluk oranını değiştiren bir diğer gözlemlenebilir ölçüt de, S (dil modeli
ağırlığı) parametresidir. Şekil 2 ve Şekil 3’te S değerinin değişiminin etkileri görülebilir.
Burada gözlemlenebilecek ilk şey S değerinin değişmesinin bütün ölçütlerde (SER, WER,
LER) aynı yönde (artma veya azalma) etki yapmasıdır. Ayrıca bütün ölçütler için her iki
deneyin de tanınma oranını en fazla yapan değer 7’dir. S değerinin 7’ye göre artması veya
azalması doğruluk oranının düşmesine yol açmaktadır.
3.3-) SONUÇLAR
Bu raporda Türkçe konuşma tanıma sisteminin yapısından ve işleyişinden bahsedildi.
Bu sistem üzerinde yapılan deneylerin sonuçları açıklandı ve çıkan sonuçlar karşılaştırıldı.
Sistem sınırlı dağarcıklı konuşma tanımada iyi sonuçlar vermesine rağmen geniş dağarcıklı
tanımada düşük başarım gösterdi. Bu sebeple, gelecek çalışmalarda geniş dağarcıklı tanıma
oranının artması için dil modelinin geliştirilmesi düşünülebilir. Daha iyi bir dil modeli için
istatistikî olmayan bir gramer kullanılabilir. Ayrıca dil modelinin eğitimini kelimelerden
yapmak yerine, kelime altı parçacıklardan yapılabilir. Genel tanıma başarımının artması için
de, tanıma programına vermeden önce, ses dosyası üzerinde etkili yazılımlar kullanılarak,
gürültü azaltılması gibi işlemler yapılabilir.
31
BÖLÜM 4
4.1-) OYUNCAK ARABA DEVRESİNİN BİLGİSAYAR İLE BAĞLANTISI
32
Oyuncak araba kumandasını bilgisayar bağlantısı için tek yapmamız gereken paralel
portun toprak uçları ile kumandanın toprak uclarının birleştirilmesidir.
33
Şekil 4.1. Kumanda Devresi
34
Şekil 4.2.Kumanda Devresinin Şeması
İlk olarak kumandayı söküyoruz. Her tuşun altına denk gelen birer buton göreceksiniz.
Bizi ilgilendiren ve kullanacağımız ileri, geri, sağ ve sol butonlarıdır. Zaten standart bir
uzaktan kumandalı arabada sadece bu özellikler mevcuttur. Buradaki mantık kumandadaki
butonlardan birisine basıldığında devre topraklanıyor. Eğer biz butonların topraklanması
gereken uçları dışardan topraklarsak devre yine çalışacaktır. Biz burada ULN 2003
kullanırsak işimizi görecektir. ULN 2003 entegresi içinde 7 adet NPN transistör ve dahili
diyot barındırmaktadır. Kullanımı ise oldukça kolaydır.Devre şemasından da anlaşılabileceği
gibi 3, 4, 5 ve 6 numaralı pinlere paralel portun DATA pinlerinden gelen +5V ‘ luk değerleri
uygulayacağız. Burada en önemli nokta, paralel portun toprağı ile kumandanın toprağının
birleştirilmesidir. Aksi taktirde devre çalışmayacaktır.
35
Şekil 4.3 ULN2003 Devre Bağlantısı
4.2-) OYUNCAK ARABA KNTROL PROGRAMI
4.2.1-)Programın Çalışması ve Arayüzü
Oyuncak arabayı bilgisayardan kontrol etmek için gerekli olan program Visual C#.Net
kullanılarak hazırlanmıştır. C#’ta parelel portu kulanılarak hazırlanan programın başlangıç
arayüzü aşağıdaki gibi hazırlanmaştır.
36
Şekil 4.5 Programın Başlanıç Sayfası
Program estetik olsun diye ilk açılışta bilgisayar ekranını komple kapatacak şekilde
hazırlamış; “ileri “ buttonuna basıldığında oyuncak arabayı kontrol edecek forma geçilecek
“çıkış “ buttonuna basıldığında ve ESCAPE tuşuna basıldığında ise programdan çıkılacak ve
“yardım” buttonuna basıldığında ise programın kullanımı ile ilgili bazı bilgiler ekran
gelecektir . Oyuncak Araba Kontrol formında ise hem buttona tıklanarak, hem bilgisayarın
belirli tuşları kullanılarak ve hem de ses ile oyuncak arabayı yönlendirlebilecektir.
Form1 için yazılan program kodlar ise aşağıdadır.
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;
namespace OyuncakAraba{ public partial class Form1 : Form { public Form1()
37
{ InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { Form2 KontrolFormu = new Form2(); KontrolFormu.ShowDialog(); }
private void button2_Click(object sender, EventArgs e) { Form3 Yardim = new Form3(); Yardim.ShowDialog(); }
private void button3_Click(object sender, EventArgs e) { Application.Exit(); }
private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) { Application.Exit(); } }
private void Ileri_Click(object sender, EventArgs e) { Form2 KontrolFormu = new Form2(); KontrolFormu.ShowDialog(); }
private void Cıkıs_Click(object sender, EventArgs e) { Application.Exit(); } }}
38
Şekil4. 4 Oyuncak Araba Kontrol Formu
Kontrol Formunu hazırlamak için yazılan kodlar da aşağıdadır.
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Diagnostics;
namespace OyuncakAraba{ public partial class Form2 : Form { public class PortErisim { [DllImport("Inpout32.dll")] public static extern short Inp32(int address); [DllImport("Inpout32.dll",EntryPoint="Out32")] public static extern short Output(int address, int value); } public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { /*GVZ komut anlar programının çalıştırılması*/
Process.Start(@"C:\Program Files\GVZ\GVZ Komut Anlar\SRCommand.exe"); }
39
private void button1_Click(object sender, EventArgs e) { PortErisim.Output(888, 1); //ileri }
private void button3_Click(object sender, EventArgs e) { PortErisim.Output(888, 8);//Sağ }
private void button4_Click(object sender, EventArgs e) { PortErisim.Output(888, 2);//Geri
}
private void button2_Click(object sender, EventArgs e) { PortErisim.Output(888, 4);//soll }
private void button5_Click(object sender, EventArgs e) { PortErisim.Output(888, 0);//Dur }
private void Form2_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.W) /*ileri. Paralel portun D1. bitini aktif yap */ {
PortErisim.Output(888, 1); }
if (e.KeyCode == Keys.A) /*Sol. Paralel portun D3. bitini aktif yap*/ { PortErisim.Output(888, 4); }
if (e.KeyCode == Keys.S) /*geri. Paralel portun D2. bitini aktif yap*/ { PortErisim.Output(888, 2); }
if (e.KeyCode == Keys.D) /* Sağ Paralel portun D4. bitini aktif yap*/ { PortErisim.Output(888, 8); } if (e.KeyCode == Keys.Space) /*Dur. Paralel portun bütün bitlerini pasif yap*/ { PortErisim.Output(888, 0); } if(e.KeyCode==Keys.Escape) /*eğer escape basılırsa kontrol formunu kapat*/ {
40
Form2 form2=new Form2(); form2.Close(); } } }}
41
KAYNAKÇA
[1].Deler J.R., Proakis J.G. and Hansen J.H., Discrete-Time Processing of Speech Signals,
Macmillian, 1993.
[2].Edizkan R., “Gizli Markov Model ile Bilgisayarda Konusma Tanıma: Özellik Uzayında ve
Altuzayda Sınıflandırıcı Tasarımı”, Doktora Tezi, Eskisehir Osmangazi Üniversitesi Elektrik-
Elektronik Mühendisligi Bölümü, 1999.
[3].Gülmezoglu, M.B., Dzhafarov, V., and Barkana, A.,”The Common Vector Approach and
its Relation to Principle Component Analysis”, IEEE Trans. Speech and Audio Proc.,
9(6):655-662, 2001.
[4].Rabiner, L.R., Sambur, M.R.,. “An algorithm for determining the endpoints for isolated
utterances”. The Bell System Technical Journal, 1975, vol:54, 297-315.
[5]. Young, S., et al., “The HTK Book (for HTK Version 3.4),” Cambridge University
Engineering Department, 2006.
[6]. Linz, P., "An introduction to formal languages and automata," Jones and Bartlett
Publishers, 1997.
42
ÖZGEÇMİŞ
Sezer ERGİNYÜREK 1986 yılının Aralık ayında Van’da doğdu. İlköğretimi Van’da
Cumhuriyet İlköğretim Okulunda liseyi yine Van’da, M. Akif Ersoy Lisesinde tamamladı.
2006 yılında Harran Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümünde
öğrenime başladı ve aynı yıl Süleyman Demirel Üniversitesinde 1 yıllık İngilizce hazırlık
eğitimi aldı. Halen Harran Üniversitesinde de öğrenimine devam etmektedir.
ADRES BİLGİLERİ
Adres:
Harran Üniversitesi Osmanbey kampusü Kredi ve Yurtlar Müdürlüğü /ŞANLIURFA
Tel: 0(545) 231 8783
E-posta: [email protected]
Abdurrahman BALK 1986 yıllını kasım ayında Şanlıurfa Viranşehir ilçesinde doğdu.
doğdu. İlköğretimi Viranşehir Bahçelievler İlköğretim Okulunda liseyi yine Viranşehir’de,
Viranşehir Anadolu Lisesinde tamamladı. 2006 yılında Harran Üniversitesi Mühendislik
Fakültesi Bilgisayar Mühendisliği Bölümünde öğrenime başladı ve aynı yıl Süleyman
Demirel Üniversitesinde 1 yıllık İngilizce hazırlık eğitimi aldı. Halen Harran Üniversitesinde
de öğrenimine devam etmektedir.
ADRES BİLGİLERİ
Adres:
Yeşildirek Mah. 446. Sok İlyas Apt no:1 Şanlırfa/Merkez
Tel: 0(542) 530 29 39
E-posta: [email protected]
43