bilgiz.org

T. C. Harran üNİversitesi MÜhendiSLİk faküLtesi Bilgisayar Mühendisliği Bölümü




Tarih01.10.2017
Büyüklüğü143.62 Kb.

Indir 143.62 Kb.


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

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

           

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ı



Ö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.

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#”.



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.



İÇİ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



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




Ş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

SİMGELER LİSTESİ

 

 



                    Referans cümledeki toplam sembol (label) sayısını

                   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ı

--

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.



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ı (mGram-Schmidt dikleştirme yöntemi veya alt uzay teknikleri kullanılarak 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.




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

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 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:
…(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:
…(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.





Ş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.

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 Recognitionisimli 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

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.




Şekil 1.5.2a: İnce Memed roman metni sınama sonuçları


Şekil 1.5.2b: Spor haberleri metni sınama sonuçları

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.


Ş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.

 

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


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.



Şekil 2.4a: GVZ Komut Anlar programı arayüzü



Şekil 2.4b: Yeni komut ekleme kısmı
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.
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.
BÖLÜM 4
4.1-) OYUNCAK ARABA DEVRESİNİN BİLGİSAYAR İLE BAĞLANTISI
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.


Şekil 4.1. Kumanda Devresi



Ş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.



Ş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.




Ş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()

{

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();



}

}

}






Ş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");

}

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*/

{

Form2 form2=new Form2();



form2.Close();

}

}



}

}

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.

Ö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: sezerginyurek@hotmail.com

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: abdurrahman_balk@hotmail.com










    Ana sayfa


T. C. Harran üNİversitesi MÜhendiSLİk faküLtesi Bilgisayar Mühendisliği Bölümü

Indir 143.62 Kb.