![]() | ||||
System.Speech İle Ses Algılama | 29.06.2008 09:50:00 | |||
| Kategori : Visual C# .NET Özet : Bu makalemde sizlerle kullanım örneklerini günümüzde çok fazla göremesek de zaman içerisinde örnekleri artan bir ivmede görmeye başlayacağımız bir konudan, Speech Recognition(Ses algılama)'dan bahsedeceğim. .Net Framework'ün 3.0 versiyonu ile gelen System.Speech kütüphanesinde bulunan metodlar ve sınıflar ile bu işlemleri nasıl yapabileceğimizi inceleyeceğiz. | ||||
Merhabalar, Bu makalemde sizlerle kullanım örneklerini günümüzde çok fazla göremesek de zaman içerisinde örnekleri artan bir ivmede görmeye başlayacağımız bir konudan, Speech Recognition(Ses algılama)'dan bahsedeceğim. .Net Framework'ün 3.0 versiyonu ile gelen System.Speech kütüphanesinde bulunan metodlar ve sınıflar ile bu işlemleri nasıl yapabileceğimizi inceleyeceğiz. Text To Speech ile ilgili bir makaleyi geçen aylarda yazmıştım. Text To Speech bilgisayardaki bir metni bilgisayarın okuması işlemi iken, Speech Recognition, bilgisayar tarafından sesin algılanması işlemidir. Esasında bu teknolojiye yakın bir teknoloji sesle arama özelliği olan cep telefonlarında görülebilir. Cep telefonlarındaki teknoloji tam olarak ses eşleştirmedir. Speech Recognition kullanarak bilgisayarınıza ses ile komutlar verebilirsiniz, çok gelişmiş bir örnek olarak, evinizin çeşitli elektronik eşyalarını bağladığınız bir bilgisayar tarafından tüm evinizi koltuğunuzdan idare edebilir, ışıkları, klimayı, televizyonu açıp kapayabilirsiniz. Kullanılabilir örneklerden biri de sesli yanıt sistemlerini tuşlara tıklamak yerine konuşarak kullanmaktır. Daha basit bir örnek olarak bilgisayarınızdaki programları sesli komutlar ile çalıştırma veya konuşarak bilgisayara metin yazdırma gibi örnekleri inceleyebilirsiniz.
Şimdi
bu işlemi .Net Framework kullanarak nasıl yapabileceğimizi inceleyelim.
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:
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 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. Sırada SpeechRecognitionEngine nesnesinin event'lerini handle etmek kaldı:
SpeechRecognized event'inde eğer algılanan ses
biraz önce LoadGrammar metodu ile tanımladığımız kelime öbeklerinden biri ise,
ilgili işlem yapılıyor. Eğer değilse SpeechRecognitionRejected event'i devreye
giriyor ve durum label'ına komutun algılanamadığı yazılıyor. RecognizeCompleted
event'inde ise SpeechRecognitionEngine nesnesinin RecognizeAsync metodu
çağırılıyor. | ||||
Yazgelistir.com | ||||