dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c....

29
T.C. MARMARA ÜNİVERSİTESİ TEKNİK BİLİMLER MESLEK YÜKSEKOKULU BİLGİSAYAR TEKNOLOJİLERİ BÖLÜMÜ BİLGİSAYAR PROGRAMCILIĞI PROGRAMI SESLE KOMUT İŞLEME Furkan ŞENTÜRK Sedat KARAKOÇ BİTİRME PROJESİ RAPORU Danışman Öğr. Gör Ercan ERKALKAN I

Transcript of dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c....

Page 1: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

T.C.MARMARA ÜNİVERSİTESİ

TEKNİK BİLİMLER MESLEK YÜKSEKOKULUBİLGİSAYAR TEKNOLOJİLERİ BÖLÜMÜ

BİLGİSAYAR PROGRAMCILIĞI PROGRAMI

SESLE KOMUT İŞLEME

Furkan ŞENTÜRK Sedat KARAKOÇ

BİTİRME PROJESİ RAPORU

DanışmanÖğr. Gör Ercan ERKALKAN

İSTANBUL - 2013

I

Page 2: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

T.C.MARMARA ÜNİVERSİTESİ

TEKNİK BİLİMLER MESLEK YÜKSEKOKULUBİLGİSAYAR TEKNOLOJİLERİ BÖLÜMÜ

BİLGİSAYAR PROGRAMCILIĞI PROGRAMI

SESLE KOMUT İŞLEME

HAZIRLAYANLAR : 460111008 Furkan ŞENTURK 460111026 Sedat KARAKOÇ

Öğretim : 2012 – 2013Program : Bilgisayar Teknolojisi ve ProgramlamaTez Danışmanı : Öğretim Görevlisi Ercan ERKALKAN

Kurul Üyeleri : Doç. Dr. Vedat TOPUZ Öğr. Gör. Dr. Aysun ALTIKARDEŞ Öğr. Gör. Murat TOPAL

II

Page 3: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

İSTANBUL - 2013ÖNSÖZ

Ses tanıma sistemlerinin, amaçlarından önemli bir tanesi, insan - bilgisayar iletişimini, kullanıcının en yaygın olarak kullandığı, sesli iletişimle sağlamak ve insanların, işlerinibirçok alanda kolaylaştıran bilgisayar sistemlerinin daha yaygın kullanımına imkan tanımaktır.Şuan cep telefonlarında dahi olan bu teknoloji ileriki zamanlarda işimizi daha da kolaylaştıracaktır.

Proje çalışmalarının ilk aşamasında derin bir araştırma vardır. Hangi teknolojilerin kullanılacağına karar verilmiştir. Ciddi bir araştırmadan sonunda kodlamaya geçilmiş ve çeşitli örnekler incelenmiştir.Çeşitli denemelerle beraber araştırmaya da devam edilerek çalışma sürdürülmüştür. Çalışmaların ve araştırmaların sonunda istenilen kodlama yapılarak istenilen sonuca ulaşılmıştır.

Böyle değerli bir proje çalışmasında kendisi ile çalışmamıza fırsat verdiği için Öğr. Gör. Ercan ERKALKAN hocama, bölüm hocalarımız Doç. Dr. Vedat TOPUZ , Öğr. Gör. Dr. Aysun ALTIKARDES’e , tecrübesi ve bilgisi ile bizden yardımlarını esirgemeyen Yazılım Uzmanı Salih Zeki SELİMOĞLU’na , ve tüm Marmara Üniversitesi Tbmyo Bilgisayar Teknolojisi ve Programlama bölümü öğrencilerine desteklerinden dolayı tek tek teşekkür ederiz.

III

Page 4: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

İÇİNDEKİLER

SAYFA

ÖNSÖZ...................................................................................................... İÇİNDEKİLER......................................................................................... IV

BÖLÜM I................................................................................................... 1

1.1. GİRİŞ ......................................................................................... 1 1.2. Projenin Amacı........................................................................... 11.3. Kullanılan Teknoloji ve Programlar.......................................... 11.4. Ön Hazırlık.............................................................................. 2s1.5. Veri tabının Oluşturulması...................................................... 21.6. Tablonun Oluşturulması.......................................................... 31.7. Proje Şeması........................................................................... 14

BÖLÜM II PROJE İLE İLERİDE YAPILABİLECEKLER............. 16

BÖLÜM III SONUÇ VE DEĞERLENDİRME.................................... 16

KAYNAKLAR......................................................................................... 17

ÖZGEÇMİŞ............................................................................................. 18

IV

Page 5: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

BÖLÜM I

1.1. GİRİŞ VE AMAÇ

Bilgisayar teknolojisi insan hayatında çok önemli bir konumdadır. İnsan hayatını kolaylaştırmak amacıyla yapılmış birçok yazılım vardır. Bu projede bunlara örnek olacak biçimde oluşturulmuştur. Dünyada ses teknolojisi son derece gelişmiştir. Bizim ülkemizde de birçok bu işle ilgilenen öncü şirketler vardır. Fakat hala bu konu özellikle ülkemizde gelişme düzeyindedir. Bu projede aslında yapılmak istenen bu ses teknolojisine bir daha önem verilmesini sağlamaktır.

1.2. Projenin Amacı

Projede amaç; insanların word, metin belgesi gibi programları kullanarak yazdıkları yazıları sesleriyle sadece söyleyerek yazma işlemini gerçekleQştirmek için yazılmış küçük bir yazılım yapılmak istenmiştir.

1.3. Kullanılan Teknoloji ve Programlar

Microsoft Visual Studio 2010C# .NETMicrosoft Access 2007Microsoft Speech SDK 5.1

1

Page 6: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

1.4. Ön Hazırlık

Projeye başlamadan önce benzer projeler (varsa) bulunup incelenerek,İçerikEksik yönleriGeliştirilebilirliği Daha önceki projeler ne kadar başarılı oldukları incelenerek yapılacak proje hakkında bir ön çalışma yapılmıştır.

1.5. Veritabanının Oluşturulması

Projede Microsoft Access 2007 kullanılmıştır veritabanı için. Veritabanında sadece tek tablo içerisinde iki alan kullanılmıştır.

Öncelikle boş bir veritabanı oluşturulmuştur.

Şekil 1.5.1 Veri tabanı Oluşturma

2

Page 7: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

Veritabanının ismi verildikten sonra oluştur butonuna basılarak boş veritabanı oluşturulmuştur.

Şekil 1.5.2 Veri tabanı Görseli

1.6. Tablo Oluşturulması

Daha sonra ise tablo oluşturulacaktır. Sadece kelimeler veritabanında tutulacağı için veritabanında bir tane tablo yeterli olacaktır. Tablo1’in üstüne sağ tıklayıp tasarım görünümüne tıkladıktan sonra tablomuzun ismini vermeliyiz.

.Şekil 1.6.1. Tablo Oluşturma

Tablomuzu ismini verdik, ismi ‘sozluk’ olacak daha sonra tamama tıkladıktan sonra tasarım bölümüne geçebiliriz.

Şekil 1.6.2 Alan Adı GirilmesiBu bölümde tablomuzun alan adlarını belirtiyoruz yani id ve kelimeler yeterli olacaktır. Ayrıca veri türlerini de belirtiyoruz. Daha sonra kaydederek kapatıp baştaki sayfaya dönüp verilerimizi girebiliriz.

3

Page 8: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

Şekil 1.6.3 Alan GirdileriBu arada id kesinlikle otomatik ve birer birer artan değerli olmalıdır çünkü daha kodlarda çağırırken sorunlar karşımıza çıkabilir.Veritabanı işlemlerimiz bu kadar yeterli olacaktır. Kelimeleri veritabanında tutarak daha sağlıklı bir program yazabileceğiz.

Şekil 1.6.4 Proje Oluşturma

Veritabanını oluşturduktan sonra Microsoft Visual Studio ‘ yu açabiliriz. Programı Açtıktan

4

Page 9: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

sonra New project’e tıklayarak karşımıza çıkan ekranda Windows Form Application seçeneğini seçiyoruz.Daha sonra veritabanını bağlamaya geçebiliriz.üsteki menüden sırasıyla Data Add New Data Source seçeneğini seçiyoruz. Ve karşımıza bunun gibi bir ekran çıkmaktadır.

Şekil 1.6.5 Veri tabanını Projeye Aktarma Sihirbazı

Buradan da database seçeneğini seçip next ‘e tıklıyoruz. Tıkladıktan sonra karşımıza şu şekilde ekran gelecektir.

5

Page 10: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

Şekil 1.6.6 Veri tabanını Projeye Aktarma Sihirbazı

Bu ekranda ise dataset ‘i seçip tekrar next ile geçiyoruz.Karşımıza gelen ekranda bizden kullanacağımız veritabanını seçmemizi istenmektedir.

6

Page 11: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

Şekil 1.6.7 Veri tabanını Projeye Aktarma Sihirbazı

New connection ‘a tıklanıldıktan sonra karşımıza gelen ekranda veri tabanı seçilecektir.

7

Page 12: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

Şekil 1.6.8 Veri tabanını Projeye Aktarma Sihirbazı

Bizde browse ‘ a tıklayıp kullanılacak veritabanı seçilmektedir. Daha sonra test connection ile veritabanı doğru çalışıyor mu diye kontrol edilebilir. Sonra ok ‘e tıklayıp devam ediyoruz. Ve bir önceki geri dönüyor ve orada bulunan provider cümlesi kopyalamamız gerekmektedir. Çünkü connection cümlesi yazdığmızda işimize yarayacaktır.

8

Page 13: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

Şekil 1.6.9 Veri tabanını Projeye Aktarma Sihirbazı

Buradaki ekranda ise veri tabanında bulunan tables(tablolar) seçilmektedir. İstenirse views larda seçilebilir. Ve ardından finish ‘e tıklayıp veritabanını seçmiş oluyoruz.

Şekil 1.6.10 Veri tabanının Proje de Gösterilmesi

Burada da görüldüğü gibi veritabanını eklemiş olduk. Şimdi projeyi oluşturmaya başlayabiliriz.

9

Page 14: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

Şekil 1.6.11 Proje Ana Ekranı

Formun genel görünümünde de olduğu gibi dört tane buton, bir richtextbox, birer tane de datagridview ve textbox bulunmaktadır.

Buradaki amacımız “ŞİMDİ KONUŞUN” butonuna tıklandığında veritabanında bulunan kelimeleri richtextbox’a sesimizle yazdırmayı başlatıyor. “EKLE” ve “SİL” butonlarıyla ise textboxa yazılan veriyi veritabanına ekliyor ya da silebiliyoruz. Datagridview nesnesi veritabanında bulunan kelimelerin neler olduğunu görmemizi sağlamaktadır. “TEMİZLE” butonu richtextbox’ı temizlemeyi sağlar.

Şekil 1.6.12 DataGridView Ekranı

Veritabanında olan bütün kelimeler direkt olarak datagridview nesnesine geçmektedir.

10

Page 15: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

Veya textbox’a yazılan veya silinen kelime aynı zamanda veritabanında da silinir veya eklenmiş olur.Bu programın kodları çalışması için öncelikle bilgisayarın dili İngilizce olmalıdır . Daha sonra Microsoft SDK 5.1 içinde bulunan bileşenler ve .NET içinde bulunan System.speech kullanılmalıdır.

Şekil 1.6.13 Kaynaklar

Buradaki bileşenler olmadan programın kodları çalışırken hata vermektedir.

Yapılan bir örnekte şu şekildedir;

Şekil 1.6.14 Örnek Proje Ekranı

11

Page 16: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

Öncelikle Label ve progressbar eklenmiştir. Sonra metodlarımızı belirtelim.

Şekil 1.6.15 Örnek Proje Kodları

Kodda görüldüğü gibi SpeechRecognitionEngine nesnesi bir ses farkettiğinde SpeechDetected, bu ses algılandığında SpeechRecognized, ses algılanamadığında SpeechRecognitionRejected, ses algılanması tamamlandığında RecognizeCompleted event'leri çalışacak. Son olarak SpeechRecognitionEngine'in SetInputToDefaultAudioDevice ve RecognizeAsync metodlarını bir thread içinde çalıştırıyoruz.Formun Load event'inde ayrıca KomutlarıOlustur adında bir metodu da çağırıyoruz:

Şekil 1.6.16 Örnek Proje Kodları

Burada apple ve pear kelimelerini tanımlıyoruz. Ve burada olduğu gibi (“en-US”)Dili kullanmamızda bize kolaylık sağlıyor ve teleffuz ederken daha kolay algılamasını sağlamaktadır. Daha sonra bölümde ise metodların neler yapılacağı tanımlanıyor.KomutlariOlustur metodunda SpeechRecognitionEngine nesnesinin algılayabileceği komutlar listesini oluşturuyoruz. SpeechRecognitionEngine için algılayabileceği kelime listesini oluşturmak, uygulamamızın algılanmasını istediğimiz kelimelerde daha başarılı sonuçlar

12

Page 17: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

vermesini sağlayacaktır. komutlar adında bir string array tanımlıyoruz ve tanımladığımız Choices nesnesinin instance'ını alırken komutlar array'ini parametre geçiriyoruz. Choices nesnesini de GrammarBuilder nesnesinin instance'ını alırken parametre geçiriyoruz. Ardından da Grammar nesnesinin instance'ını alıp, SpeechRecognitionEngine nesnesinin LoadGrammar metoduna parametre geçiriyoruz.

Şekil 1.6.17 Örnek Proje Kodları

Burada olduğu gibi apple söylendiğinde notepad, pear söylendiğinde ise paint programı açılmaktadır. Diğer metodların da neler yapacağı tanımlanmıştır.Buradaki örnekte kelimeler choices nesnesine tanımlanıyor. Ve kelimeler söylendikten sonra başka olay gerçekleştiriliyor. Yapılan projede ise kelimeler olduğu gibi alınıp direkt richrextbox’a yazdırılmaktadır. Ve bu kelimeler choices nesnesinde değil veritabanından çekilerek choices nesnesine atılmıştır. Bu sayede programda şişme olması engellenmiştir.

13

Page 18: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

1.7. Program Şeması

14

SES TANIMA İŞLEMİNE BAŞLA

SES ALGILANIYOR

SES GRAMERDE VAR MI?

GRAMER VARSA TANINAN KELİMELER

KELİMENİN RİCHTEXTBOX’A YAZILMASI

E

GRAMER DE YOKSA TETİKLENEN OLAYLAR

H

Page 19: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

Şekil 1.6.18 Proje Ana Ekranı

15

Page 20: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

BÖLÜM II

Projede İle İlgili İleride Yapılabilecekler

Proje İngilizce kelimeler içindir.Türkçe ve diğer diller için de geliştirebilinir. Proje örnek alınarak Notepad gibi programlar için kullanılabilir. Sadece kelime yazdırma değil bilgisayar kontrolü hatta çeşitli cihazlar kontrolü için

geliştirebilir.

BÖLÜM III

Sonuç ve Değerlendirme

Ses tanıma sistemlerinin, amaçlarından önemli bir tanesi,insan - bilgisayar iletişimini, kullanıcının en yaygın olarak kullandığı, sesli iletişimle sağlamak ve insanların, islerinibirçok alanda kolaylaştıran bilgisayar sistemlerinin daha yaygın kullanımına imkan tanımaktır.

Proje çalışmalarının ilk aşamasında derin bir araştırma vardır. Hangi teknolojilerin kullanılacağına karar verilmiştir. Ciddi bir araştırmadan sonunda kodlamaya geçilmiş ve çeşitli örnekler incelenmiştir.Çeşitli denemelerle beraber araştırmaya da devam edilerek çalışma sürdürülmüştür. Çalışmaların ve araştırmaların sonunda istenilen kodlama yapılarak istenilen sonuca ulaşılmıştır.

16

Page 21: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

Kaynaklar

[1] www.csharp nedir .com

[2] www.webmastersitesi.com

[3] http://msdn.microsoft.com

[4] http://www.se7ensins.com

[5] http://www.redmondpie.com

[6] http://stackoverflow.com/

[7] http://www.c-sharpcorner.com

17

Page 22: dosya.marmara.edu.trdosya.marmara.edu.tr/tbmyo/bly/Duyuru/Sesle_Komut_le…  · Web viewt.c. marmara Ünİversİtesİ. teknİk bİlİmler meslek yÜksekokulu. bİlgİsayar teknolojİlerİ

ÖZGEÇMİŞ

Sedat KARAKOÇ

25.02.1993 tarihinde Ümraniye/İSTANBUL’da doğdu.İlköğretim eğitimini Osmangazi İlkÖğretim Okulu’nda başladı.Buradaki 8 senelik eğitiminin ardından Devlet Malzeme Ofisi Anadolu Teknik Ve Meslek Lisesi’nde eğitim hayatına devam etti.12 senelik eğitim ve öğretim hayatını başarılı bir şekilde tamamladıktan sonra 2011 yılında Marmara Üniversitesi Teknik Bilimler Yüksekokulu’ nda Bilgisayar Teknolojisi ve Programlama bölümüne girdi.Meslek hayatında Network ve Ağ bileşenlerine daha meraklı olduğu için 2 yıldır Schneider Electric firmasının Bilişim Teknolojileri alanında “IT Support Help Desk” görevini yapmaktadır. İlgilendiği programlama dilleri ; C# , java , php , MySql

Furkan ŞENTURK

04.11.1992 tarihinde Uskudar/İSTANBUL’da doğdu.İlköğretim eğitimini Kanuni Sultan Süleyman İlköğretim Okulu’nda başladı.Buradaki 8 senelik eğitiminin ardından Handan Hayrettin Yelkinat Anadolu Teknik Ve Meslek Lisesi’nde eğitim hayatına devam etti.12 senelik eğitim ve öğretim hayatını başarılı bir şekilde tamamladıktan sonra 2011 yılında Marmara Üniversitesi Teknik Bilimler Yüksekokulu’ nda Bilgisayar Teknolojisi ve Programlama bölümüne girdi.Meslek hayatına Latum Bilişim Teknolojileri firmasının Bilişim Teknolojileri alanında “Bilgi İşlem Elemanı” görevini yapmaktadır.İlgilendiği programlama dilleri ; C# , Python , java , php , MsSql

18