You are on page 1of 80

TRKE KOMUTLARI TANIYAN SES TANIMA S STEM GEL T R LMES

Pamukkale niversitesi Fen Bilimleri Enstits Yksek Lisans Tezi Bilgisayar Mhendislii Anabilim Dal

Murat Kemal BAYGN

Danman: Yard. Do. Dr. A. Kadir YALDIR

ubat 2006 DEN ZL

iii

TEEKKR

Bu

tez

almasnda

ncelikle

beni

yetitiren

ve

zerimde

haklarn

deyemeyeceim en byk emekleri bulunan annem Aynur BAYGNe ve rahmetli babam Mehmet zhan BAYGNe (Nur iinde yatsn); her zaman bana gvenmi ve destek olmu olan ablam Arzu BAYGNe; almalarm srasnda gsterdii sabr ve anlay, verdii moral ve manevi destek iin eim Sibel BAYGNe ve almalarma destekten ok engel olmasna ramen, bir kk glckle de olsa moralimi ykseltmi olmasndan dolay biricik kzm Ceren BAYGNe; yardmlarn benden esirgemeyen Tez Danmanm Yard. Do. Dr. A. Kadir YALDIRa; neri ve katklarndan dolay Yard. Do. Dr. Serdar PL K ye ve Yard. Do. Dr. Sezai TOKATa; yine manevi destekleri iin Egecomdaki tm alma arkadalarma ve burada adn saymadm ancak zerimde emei bulunan herkese gnlden teekkr ederim.

iv ZET TRKE KOMUTLARI TANIYAN SES TANIMA S STEM GEL T R LMES Baygn, Murat Kemal Yksek Lisans Tezi, Bilgisayar Mhendislii ABD Tez Yneticisi: Yard. Do. Dr. A. Kadir YALDIR ubat 2006, 69 Sayfa nsanlar aras iletiim, hzl ve etkin ekilde sesli olarak salanmaktadr. Ses tanma sistemleri de, buradan yola karak, insan bilgisayar aras iletiimi daha etkin salayabilmek iin konuma dilini kullanmay ama edinir. Son yllarda ses tanma teknolojileri byk nem kazanmtr. Ses tanma teknolojileri kullanlarak ounlukla kii tanmlama ve konuma dilini anlama olmak zere birok uygulama zerinde allmaktadr. Ancak Trke ses tanma zerine ok fazla alma bulunmamaktadr. Bu almada ses tanma sistemleri genel olarak incelenmi, kullanlan yntemler aratrlm ve ses tanma teknolojileri kullanlarak Trke komutlar tanyan bir Ses Tanma Sistemi gelitirilmeye allmtr. Ses tanma sreci, sesin kaydedilmesi ve ifadenin saptanmas; sesin ilenmesi; karlatrma ve eletirme yaplmas; son olarak saptanan ifadeye karlk gelen ilevin gerekletirilmesi aamalarndan oluur. Bu aamalardan her biri iin, gelitirilmi ve kullanlan birok teknik bulunmaktadr. Bu almada sesin kaydedilmesi aamasnda szck kesimlerinin saptanmas iin bir erevedeki sfr gei says ve RMS (Root Mean Square) deerinden faydalanlmtr. Sesin ilenmesi aamasnda kodlayc olarak LPC (Linear Predictive Coding) kullanlm olup karlatrma ve eletirme aamasnda ise LPC parametreleri zerinde DTW (Dynamic Time Warping) uygulanmtr. Gelitirilen bu ses tanma sistemi, kiiye baml, szck tabanl bir komut kontrol sistemi olarak oluturulmutur. Szlk kapasitesi, toplam 15 kelime ile snrlandrlm olup rakamlar ve be komuttan olumaktadr. ncelikle, bu kelimeler iin ses kayd yaplp, LPC ile kodlanmtr. Her bir kelime iin bu ekilde ablonlar oluturulmutur. alma annda, kayt esnasnda saptanan ses, LPC ile kodlanarak, tm kaytl ablonlarla DTW algoritmas kullanlarak karlatrma gerekletirilmitir. Karlatrma sonucunda elde edilen en yakn ablon ile kelime eletirilmesi gerekletirilerek alglanan komut, gelitirilen uygulama ara yzne yanstlmaktadr. Anahtar Kelimeler: Ses Tanma, Szck Tabanl Ses Tanma, Trke Ses Tanma, LPC, DTW Yard. Do. Dr. Serdar PL K Yard. Do. Dr. A. Kadir YALDIR Yard. Do. Dr. Sezai TOKAT

v ABSTRACT DEVELOPMENT OF A SPEECH RECOGNITION SYSTEM RECOGNISING TURKISH COMMANDS Baygn, Murat Kemal M. Sc. Thesis in Computer Engineering Supervisor: Assoc. Prof. Dr. A. Kadir YALDIR February 2006, 69 Pages Communication between human beings is done quickly and more efficiently by voice. Speech recognition systems therefore, aim to improve the human - computer interaction by using spoken language. In recent years speech recognition techniques gained more importance. By using speech recognition techniques, many applications are being studied on for speaker identification and speech recognition. However, there are not so many studies on Turkish speech recognition. With this study, speech recognition systems have been examined generally, the methods used have been investigated and a Speech Recognition System has been tried to being developed for recognizing Turkish commands by using speech recognition techniques. Speech recognition process consists of speech recording and determining utterance, signal processing, comparison and matching; and finally processing the function to response the recognized word. For all these phases, there are many techniques that have been investigated and are being used. In this study, zero pass count and RMS (Root Mean Square) are used to determine the utterances in speech recording phase. LPC (Linear Predictive Coding) is used in signal processing phase, and DTW (Dynamic Time Warping) is used in comparison and matching phase on LPC coefficients. The speech recognition system that has been developed is designed as a speaker dependent word based command control system. The dictionary is limited by 15 words and consists of numbers and five commands. First; speech recording is done and speech is coded with LPC for these words. For all these words, patterns are generated. During run-time, the determined utterance while recording is being coded with LPC and compared by using DTW algorithm with the all word patterns saved. After comparison, the nearest matching pattern is selected, and the recognized command is reflected on the developed application interface. Keywords: Speech Recognition, Word Based Speech Recognition, Turkish Speech Recognition, LPC, DTW Asst. Prof. Dr. Serdar PL K Asst. Prof. Dr. A. Kadir YALDIR Asst. Prof. Dr. Sezai TOKAT

vi NDEK LER Yksek Lisans Tezi Onay Formu.......................................................................................i Bilimsel Etik Sayfas......................................................................................................viii Teekkr ........................................................................................................................iii zet ........................................................................................................................iv Abstract .........................................................................................................................v indekiler ........................................................................................................................vi ekiller Dizini ................................................................................................................viii Tablolar Dizini .................................................................................................................ix Simge ve Ksaltmalar Dizini .............................................................................................x 1. G R .........................................................................................................................1 2. SES TANIMA S STEMLER .......................................................................................3 2.1. Ses Tanma Sistemlerinin Salad Faydalar......................................................3 2.2. Kullanm Alanlar ................................................................................................4 2.2.1. Dikte yazdrma .........................................................................................4 2.2.2. Komut kontrol ..........................................................................................5 2.2.3. Telefonla hizmet .........................................................................................5 2.2.4. Donanm giyim kstlamalar....................................................................6 2.2.5. Tbbi yetersizlikler ......................................................................................6 2.2.6. Gml uygulamalar...................................................................................6 2.3. Ses Tanma Sistemlerinin Snflandrlmas.........................................................6 2.3.1. Sesin srekliliine gre ...............................................................................6 2.3.2. Konumacya bamllna gre ................................................................7 2.3.3. Ses tanma sisteminde temel alnan birime gre .........................................8 2.4. Ses Tanma Sistemlerindeki Temel Sorunlar.......................................................8 3. SES TANIMA S STEMLER NE GENEL B R BAKI.............................................10 3.1. nsanlar Aras Sesli letiim ...............................................................................10 3.2. Ses Tanma Sreci..............................................................................................12 3.2.1. Sesin kaydedilmesi ve ifadenin saptanmas ..............................................13 3.2.2. Sesin ilenmesi ..........................................................................................13 3.2.3. Karlatrma ve eletirme .......................................................................14 3.2.4. levin gerekletirilmesi ..........................................................................15 4. SES TANIMA SREC NDE KULLANILAN TEKN KLER ...................................16 4.1. Sesin Kaydedilmesi ve fadenin Saptanmas .....................................................16 4.1.1. Sesin saysallatrlmas ............................................................................16 4.1.1.1. rnekleme ........................................................................................16 4.1.2. fadenin saptanmas...................................................................................17 4.2. Sesin lenmesi...................................................................................................19 4.2.1. Pencereleme ..............................................................................................19 4.2.2. Dorusal filtreler .......................................................................................20 4.2.2.1. FIR filtreler ......................................................................................20 4.2.2.2. IIR filtreler .......................................................................................21 4.2.3. Sesin kodlanmas.....................................................................................222 4.2.3.1. PCM .................................................................................................23 4.2.3.2. ADPCM .........................................................................................233

vii 4.2.3.3. Filtreler bankas................................................................................23 4.2.3.4. LPC ..................................................................................................25 4.2.3.5. PLP...................................................................................................27 4.2.4. Karlatrma ve eletirme .......................................................................27 4.2.4.1. Hidden Markov Model.....................................................................27 4.2.4.2. Yapay sinir alar .............................................................................29 4.2.4.3. Dynamic Time Warping...................................................................31 5. TRKE KOMUTLAR N SES TANIMA S STEM GEL T R LMES ..........35 5.1. Gelitirilen Ses Tanma Sistemi Modeli ............................................................35 5.1.1. Gelitirilen ses tanma sisteminde kullanlan temel snflar ve metotlar...38 5.1.1.1. Ses paras snf - TSpeechBuffer...................................................38 5.1.1.2. LPC parametre snf - TLPCBuffer.................................................40 5.1.1.3. LPC ablon snf - TLPCPattern .....................................................41 5.1.1.4. Temel metotlar UUtils.cpp............................................................43 5.1.1.5. Temel metotlar GRoutines.cpp. ....................................................44 5.2. Gelitirilen Ses Tanma Sistemi Paracklar .................................................45 5.2.1. Ana i parac.........................................................................................45 5.2.2. Kuyruk analizcisi ......................................................................................48 5.2.3. fade kuyruu analizcisi ............................................................................49 5.2.4. LPC kuyruu analizcisi .............................................................................50 5.3. Gelitirilen Ses Tanma Sistemindeki lemler ..................................................51 5.3.1. Sesin kaydedilmesi....................................................................................51 5.3.2. fadenin saptanmas...................................................................................52 5.3.3. Sesin ilenmesi ..........................................................................................52 5.3.4. ablonlarn kaydedilmesi ..........................................................................53 5.3.5. Karlatrma ve eletirmenin gerekletirilmesi.....................................55 5.3.6. levin gerekletirilmesi ..........................................................................55 6. SONU VE NER LER ............................................................................................57 6.1. Sonu..................................................................................................................57 6.2. neriler ..............................................................................................................58 Kaynaklar .......................................................................................................................59 Ekler .......................................................................................................................60 zgemi .......................................................................................................................69

viii EK LLER D Z N ekil 3.1 ekil 3.2 ekil 4.1 ekil 4.2 ekil 4.3 ekil 4.4 ekil 4.5 ekil 4.6 ekil 4.7 ekil 4.8 ekil 4.9 ekil 4.10 ekil 4.11 ekil 4.12 ekil 4.13 ekil 4.14 ekil 5.1 ekil 5.2 ekil 5.3 ekil 5.4 ekil 5.5 ekil 5.6 ekil 5.7 ekil 5.8 ekil 5.9 ekil 5.10 ekil 5.11 ekil 5.12 ekil 5.13 nsanlar aras sesli iletiim (Huang vd 2001)................................................10 rnek bir ses tanma sistemi modeli .............................................................12 Sesin saysallatrlmas (Robinson 1998) ....................................................16 Yksek frekansl bir sinyalin, dk oranla rneklenmesi (Smith 2003) .....17 Balang ve bitii ile belirlenmi sfr kelimesi ses sinyali .......................19 Hamming penceresinden geirilmi sfr kelimesi iin ses sinyali.............20 rnek bir FIR filtre modeli ...........................................................................21 rnek bir IIR filtre modeli ............................................................................21 Genelletirilmi dorusal filtre......................................................................22 8000 Hz ile rneklenmi sfr kelimesi ses sinyalinin spektrumu ..............24 Mel-scale filtre bankas .................................................................................25 rnek bir HMM gsterimi ............................................................................28 Tek girili nron modeli................................................................................29 rnek bir yapay sinir a modeli (3 girili, 1 kl ve 2 katmanl) .............30 ki ses sinyaline DTW algoritmasnn uygulanmas (Kale 2002) .................32 LPC parametreleri zerine DTW algoritmasnn uygulanmas.....................33 Gelitirilen ses tanma sistemi modeli ..........................................................35 Gelitirilen ses tanma sistemi grafik ara yz .............................................37 Ses paras snf (TSpeechBuffer) tanm, ye ve metotlar ........................38 LPC parametre snf (TLPCBuffer) tanm, ye ve metotlar ......................40 LPC ablon snf (TLPCPattern) tanm, ye ve metotlar...........................41 UUtils.hde tanml genel metotlar................................................................43 GRoutines.hde tanml genel metotlar .........................................................44 Ana i parac (TfrmSpeech) public deiken ve fonksiyonlar ................46 TMessage yaps............................................................................................46 Kuyruk analizcisi i parac (TQueueAnalyser) snf yaps .....................48 fade kuyruu analizcisi i parac (TWordAnalyser) snf yaps ............49 LPC kuyruu analizcisi i parac (TLPCAnalyser) snf yaps ...............50 Kaytl ablonlar rnek dizin.........................................................................54

ix TABLOLAR D Z N Tablo 5.1 Gelitirilen ses tanma sistemindeki i paracklar ve grevleri ..................36 Tablo 5.2 Gelitirilen ses tanma sistemindeki veri kaynaklar.....................................37 Tablo 5.3 Komutlara karlk gelen ablon etiketleri ....................................................53

S MGE VE KISALTMALAR D Z N ADPCM APCM DTW HMM LPC PCM PLP YSA Adaptive Differential Pulse Code Modulation Adaptive Pulse Code Modulation Dynamic Time Warping Hidden Markov Model Linear Predictive Coding Pulse Code Modulation Perceptual Linear Prediction Yapay Sinir A

1. G R

nsanlar, gnlk hayatta birok iletiim ekli kullanrlar. Gnmzde en yaygn iletiim ekilleri; elektronik posta ve ksa mesaj servisleri gibi yazl iletiimler ile cep telefonlar, telefonlar ve yz yze yaplan sesli iletiimlerdir. Bu iletiim yntemleri incelendiinde en hzl, kolay ve karlkl daha etkin iletiim salamas bakmndan en nemli yntem sesli iletiimdir. Bunun nedeni ise kiinin karsndaki kii ile her ikisinin de bildii doal konuma dilini kullanarak etkileim salyor olmasdr. Bir dier neden ise karlkl srekli bir etkileim halinde iletiimin salanmasdr. Ses tanma sistemlerinin, amalarndan nemli bir tanesi, insan - bilgisayar iletiimini, kullancnn en yaygn olarak kulland, sesli iletiimle salamak ve insanlarn, ilerini birok alanda kolaylatran bilgisayar sistemlerinin daha yaygn kullanmna imkan tanmaktr. Bilgisayar kullanm, renildiinde ne kadar kolay olsa da, bazlar iin hala korkutucudur, kullanm ok zordur ve renilmesi imkansz grnmektedir. Ses tanma sistemlerinin kullanlmas ile, insan - bilgisayar iletiimi iin, kullancnn zaten alkn olduu en yaygn iletiim aracn, yani doal konuma dilini kullandrmas bakmndan bilgisayar kullanm daha kolay olacaktr. Bunun dnda; hzl ve uzaktan veri girii, hareket serbestlii gibi faydalarnn yannda alma kyafetleri ve kullanlmas zorunlu ara - gere yznden veya tbbi yetersizliklerinden dolay klavye, fare, tablet gibi veri giri cihazlar kullanma imkan olmayan kiilere bilgisayar kullanabilme imkan tanmas ses tanma sistemlerinin nemini arttrmaktadr. nsanlar aras sesli iletiim beyinde, konuma seslerini reten sinirsel hareketleri aktive eden bir dnce ve niyetle balar. Dinleyici, konumay beynin anlayaca sinirsel sinyallere dntren iitme sistemi yardmyla alr (Huang vd 2001). Ses tanma sistemleri, insanlar aras sesli iletiim modelinde yer alan dinleyicinin yapt ilemleri yapay olarak gerekletirme prensibi ile almaktadrlar.

2 Tm bunlara ileriki blmlerde deinilecek olup, bunun ncesinde almann anlalabilirliinin artmas bakmndan, aadaki terimlerin verilmesi ve aklanmas yerinde olacaktr. nsan Sesi Konuma: Basit olarak ses, akcierlerden havann dar atlmas sonucunda oluan hava akmnn, ses sisteminde bir yerlerde sktrlarak kartrlmasndan yaylan akustik dalgalardr (Rabiner ve Schafer 1978). Fonem: Anlam ieren ve deimesi ile dildeki bulunduu bir kelimenin anlamn deitiren, en kk ses birimidir. Ses Tanma: Mikrofon ya da telefon tarafndan alnm akustik bir sinyalin, kelime kmesine olan evrim ilemi olarak tanmlanabilir (Cole vd 1995). Ses Analizi: retim metodunun da dikkate alnmasyla, sesin zelliklerinin karlabilmesi iin yaplan ilemlerdir. Ses Kodlama: lem srasnda gzlenebilir bir sinyal kalitesi kayb olmadan, sinyalin saysal gsterimi olan bit orann azaltmay ama edinen kodlama algoritmalar. Ses Sentezi: Metinden yapay olarak ses retme ilemi olarak tanmlanabilir.

2. SES TANIMA S STEMLER

almann bu blmnde ses tanma sistemlerinin salad faydalardan bahsedilmitir. Ardndan alma ve uygulama alanlarna yer verilmi, sonrasnda ise ses tanma sistemlerindeki temel sorunlara deinilmitir.

2.1. Ses Tanma Sistemlerinin Salad Faydalar Ses tanma sistemleri, ilerinde retim sektr de bulunan birok alanda; bata kullanm kolayl olmak zere birok fayda salar. Bu faydalar aada zetlenmektedir: Kullanm kolayl: Ses tanma sistemleri, veri giri arac olarak mikrofon ve kimi zaman da telefon kullanrlar. Veri kayna, insann alkn olduu zel aba gerektirmeyen konuma olduundan veri girii ve kullanm olduka kolaydr. Klavye, fare ve tablet gibi veri girii iin kullanlan geleneksel yntemlerde olduu gibi zel aba gerektirmez. Veri toplama hz: Ses tanma sistemleri ile veri girii, konuma dilini kullandrmas bakmndan, klavyeyle veri giriine oranla daha hzl olacaktr. Doal olarak, hzl veri girii sonucunda veri girii ilemi daha ksa srelerde tamamlanacaktr. Bu da zellikle retim sektr gz nne alndnda; asl ii veri giri operatrl deil de retmek olan personelin retime daha ok vakit ayrmasna olanak salayacaktr. Hareket serbestlii: Zaman zaman, yapt i ve meslei bakmndan gerek giyimi, gerekse mesleini icra ederken kullanlmas zorunlu ara - gere nedeniyle, alma annda elleri serbest olmayan kiilerin veri giriine ihtiya duyulabilmektedir. Bu tr durumlarda, klavye ve fare ile veri girii gibi yaygn yntemlerin kullanm genelde mmkn olmamaktadr. Veri girii ok zorunlu olduunda ise bu yaygn yntemler kullanlarak ie ayrlmas gerekli olan nemli bir zaman veri girii iin kullanlmaktadr. Bu da doal olarak i kaybna yol amaktadr. Ses tanma sistemleri, konuma ile veri girii saladndan;

4 yaka mikrofonu veya kulaklkl mikrofonlar kullanlmas ile bu tr personele hareket serbestlii salayacaktr. Uzaktan veri giri imkan: Telefonun, uzak bir nokta ile sesli iletiim salamas avantaj kullanlarak, ses tanma sistemlerinde veri giri arac olarak kullanlabilmektedir. Bu sayede uygun sistemlerle veri girii uzaktan yaplabilmektedir. Bu tr veri girileri, telefonla destek ve servis hizmeti veren birok firma tarafndan gn getike yaygnlaarak kullanlmaktadr.

2.2. Kullanm Alanlar Ses tanma sistemlerinin balca uygulama alanlar Cook (2002) tarafndan; dikte, komut - kontrol, telefonla hizmet, giyim kstlamalar, tbbi yetersizlikler ve gml uygulamalar olarak verilmitir. Bu uygulama alanlar aada zetlenmi ve alma prensipleri aktarlmtr. 2.2.1. Dikte yazdrma Ses tanma sistemlerinin en yaygn uygulama alanlarndan biridir. Bilindii gibi bilgisayar ortamna veri girii iin yaygn olarak klavye, fare ve tablet gibi cihazlar kullanlmaktadr. zellikle uzun metin girilerinde, (szleme, anlama metni, toplant tutanaklar vs.) veri girii uzun zaman almaktadr. Kimi zaman bu tr girilerde dikte yntemi kullanlmakta ve bir personel bu i iin grevlendirilmektedir. ok hzl el yazs yazan veya klavye kullanan kii de olsa ou zaman toplant aknda tm konuulanlar dikte etme imkan bulamamaktadr. Bu tr yazdrma ilevlerinde ek ara ve yntemlere ihtiya duyulmaktadr. Konuma esnasnda bir kayt cihaz altrlmakta veya dikte eden kii stenografi gibi ksaltmaya dayal metotlarla bu ii gerekletirmektedir. Ancak stenografi iin zel eitim gerekmektedir. Her iki yntemde de, asl dkman sonradan olumaktadr. Kayt cihazndan tekrar tekrar dinlenerek, yazya dklmekte veya stenografi ile yazlm metin dkmana evrilmektedir. Ses tanma sistemlerinin alma ve kullanm alanlarndan ilki olarak bu konu benimsenmitir. Bu alanda zellikle ngilizce konuma dili iin baarl saylacak, ticari birka uygulama da mevcuttur (r. Microsoft Dictation, DragonDictate, IBM ViaVoice gibi).

5 Temel olarak bu tr ses tanma sistemlerinde ama; mikrofondan alnan sesli ifade verilerini, metin dzenleyicisine yazdrmaktr. 2.2.2. Komut kontrol Ses tanma sistemlerinin, bir dier nemli alma ve uygulama alan olarak komut kontrol sistemleri grlmektedir. Bu tr ses tanma sistemlerinde bir komut kmesi ve bu kmedeki her bir komuta karlk gelen ilevler kmesi mevcuttur. Ama mikrofonla alnan sesli ifade verilerini komutlar iinde tespit etmek ve tespit edilen bu komuta karlk gelen ilevi gerekletirmektir. 2.2.3. Telefonla hizmet Ses tanma sistemleri, telefon bankacl gibi telefonla hizmet ve servis veren irketlerce de kullanlmaktadr ve gn getike de bu alanda kullanm yaygnlamaktadr. Telefonla hizmet veren firmalarda, klasik yntemde; genelde mteriye uzun uzun menler dinletilmekte, her bir ilev iin tu karlklar verilmekte ve ok ilevli menlerde tu seimine karlk yeni menler ve tular eklinde birka sral ilem ard ardna uygulanmaktadr. Bu da mteriye hizmet sresini uzatmakta ve servis alacak kiinin bazen menler iinde kaybolmasna yol amaktadr. Bu tr ses tanma sistemlerinin amac; komut kontrol sistemlerindeki temele dayanr ve telefon aracl ile servis almak isteyen kiiyi, ald komutlar ile doru kanala ya da kiiye ynlendirmektir. Yine benzer ekilde, santrallerde kullanlan otomatik cevaplama yapan ses robotunun, ses tanma sistemi ile desteklenerek daha akll hale getirilmesi de mmkn klnabilir. Burada genel senaryo u ekildedir: Ses robotu telefonu yantlar, ksa al konumasndan sonra, ilk olarak arayan kiinin ismini, daha sonra grmek istedii kiinin ismini alr. Arayan kiinin doal konumas ile sesli olarak verdii isimleri ses tanma sisteminden geirerek, aranan kiiyi tespit eder, dahili telefonunu rehberden (veritabanndan) bulur. Aranan kiiye telefonu aktararak, arayan kiinin ismini iletir ve telefonu aktarr.

6 2.2.4. Donanm giyim kstlamalar Yaplan meslek, alma mekan gibi ellerin serbestliinin olmad durumlarda, veri girii zorunlu, fakat klasik yntemlerle veri giri imkan bulunmad zamanlar olabilmektedir. Klasik yntemlerle veri girii, i kaybna yol aabilmektedir. Bu durumlarda, hareket serbestlii avantaj ile ses tanma sistemleri veri giri amacyla kullanlabilmektedir. 2.2.5. Tbbi yetersizlikler Tbbi yetersizliklerden dolay ellerini ve dolaysyla klasik yntemlerle veri girii amacyla klavye, fare, tablet gibi cihazlar kullanma imkan bulunmayan kiilere, ses tanma sistemlerinden faydalanlmas suretiyle veri girii ve bilgisayar kullanma yetenei salanabilmektedir. Bu tr kiilere, baz ihtiyalarn bu trde zel sistemler tasarlamak suretiyle giderebilme imkan verilebilmektedir. zel donanmlar ve kurulabilecek sistemler sayesinde, bu durumda olan bir kii sesli komutlarla, klimann ssn ayarlayabilmektedir, televizyonu ap kapayabilmektedir, mzik setini kumanda edebilmektedir. 2.2.6. Gml uygulamalar Bu tr uygulamalarn en belirgin rnei, sesli arama imkan salayan cep telefonlar olarak verilebilir. Sesli arama sistemi, telefon rehberindeki bir kiinin telefon numaras ile kaydedilmi bir ses etiketinin ilikilendirilmesi prensibine gre almaktadr. alma annda ses etiketi seslendirildiinde, kaytl ses etiketleri taranarak en uygunu seilip ilikilendirilmi numara rehberden alnarak sesli arama ilevi gerekletirilmi olur.

2.3. Ses Tanma Sistemlerinin Snflandrlmas Ses tanma sistemlerinin snflandrlmas, sistemin yapsna gre farkl alardan yaplabilmektedir. 2.3.1. Sesin srekliliine gre lk snflandrma sesin, yani konumann srekli olup olmadna gre yaplmaktadr. Genelde ayrk ve srekli konuma olarak iki ksmda snflandrlmasna

7 ramen: bazen bu snflandrmaya, bal kelimeler ve doal konuma da dahil edilmektedir. Cook (2002) tarafndan snflandrma u ekilde yaplmtr: Ayrk kelimeler: Bu tr ses tanma sistemlerinde, sistem tarafndan kelimeler aras ksa boluklar beklenir. Srekli konuma: Ses tanma sistemlerinin bu trnde, konumacnn neredeyse en doal halleriyle konumalar beklenir. Genelde dikte yazdrma uygulamalar bu snflandrmaya girer. Bal kelimeler: Ayrk kelimelere benzer. Ayrk kelimelere gre kelimeler aras boluklar daha ksadr. Konumacnn daha ksa boluklarla kelimeleri seslendirmesini destekleyen sistemler bu snfa girer. Doal konuma: Srekli konuma snflandrmasna ok benzer. Fakat insan doasndan kaynaklanan, doal konuma zelliklerini de alglayabilecek dzeyde gelitirilmilerdir. Bu tr doal konuma zelliklerine, kelimeler arasnda, dnrken azdan kan mm, hmmm tarz beklemeler rnek olarak verilebilir. 2.3.2. Konumacya bamllna gre Bu trde snflandrma, kiiye baml ve kiiden bamsz olarak iki ekilde yaplmaktadr: Kiiye baml: Bu tr ses tanma sistemlerinde farkl bir konumacnn sesinin tannmas gerektiinde, sistemde kaytl bulunan ve tanma iin temel olarak alnan referans ablonlarnn gncellenmesi gerekmektedir. Kiiden bamsz: Bu tr ses tanma sistemlerinde ise herhangi bir ablon gncellenmesine gerek duymakszn herhangi bir kiinin sesinin tannmasna imkan verilmektedir. Kiiden bamsz ses tanma sistemleri, kullanllk olarak daha etkin grnmesine karn; bu tr sistemlerin gelitirilmesi, kiiye baml sistemlerin gelitirilmesine kyasla daha zordur. Ses, kiiden kiiye, hatta ayn kiinin farkl zamanlarda seslendirmesiyle bile deiiklik gsterebilmektedir. Bu nedenle farkl kiilerin seslerini

8 tanma amacyla genel ablonlarn hazrlanmas ve genelletirilmi bir sistemin tasarm uzun uralar gerektirmektedir. 2.3.3. Ses tanma sisteminde temel alnan birime gre Bu snflandrma trnde, ses tanma sistemleri, tanma iin temel alnan en kk birim byklne gre deerlendirilirler. Szck tabanl: Bu tr ses tanma sistemlerinde tanmann en kk birimi olarak szckler alnmtr. Oluturulan referans ablonlar szcklerdir. Doruluk derecesi daha yksek olmasna ramen ablonlar iin en kk birim szckler olarak alndndan sistem gereksinimleri daha yksektir. Szck kapasitesinin snrl olduu komut kontrol gibi sistemlerde daha ok tercih edilirler. Fonem tabanl: Bu tr ses tanma sistemlerinde tanmann en kk birimi olarak fonemler alnr. En kk birim fonem olarak alndndan ablon says, oluturulmas, saklanmas ve ilenmesi ok az bir sistem gereksinimiyle karlanabilir. Fonemler aras geilerin, fonemlerin balang ve bitiinin tespitinin zor olmas; bu tr sistemlerdeki en byk problemdir. Doruluk oran szck tabanl sistemlere gre daha dk olmasna ramen; sistem gereksinimi daha az olduundan, hata durumlarnda geri dnlerle hata dzeltmeleri yaplabilecek zaman vardr.

2.4. Ses Tanma Sistemlerindeki Temel Sorunlar Ses tanma sistemlerinin, yukarda bahsedilmi faydalar, alma ve uygulama alanlar, hali hazrda mevcut ve ngrlyor ise de temel baz sorunlar da mevcuttur. Bunlardan en belirgini, veri giri kayna olarak alnan sesin ortam grltsnden ok kolay etkilenip bozulabilmesidir. Bu bozulmann nedeni ortam grlts, telefon hatlar iin hattaki parazit ve eitli d kaynaklar olarak verilebilir. Bu problemlerin giderilmesi iin eitli teknikler gelitirilmi ve gelitirilmeye devam edilmektedir. Ses sinyali zerindeki grltnn temizlenmesi iin filtreler gelitirilmitir. Filtreler yardmyla sinyal dzeltmeleri gerekletirilebilmektedir.

9 Dier bir problem ise; sesin, yani konumann kiiden kiiye, hatta ayn kii iin de olsa farkl zamanlarda seslendiriliinde, duygu durumuna gre bile deikenlik gstermesidir. Ayn zamanda ive ve aksan farkllklar da bu deikenliin bir etkenidir. Szlk kullanmnda, szlk d kelimeler ve sistem kaynaklar nedeniyle szlk kapasitesinin snrlandrlma zorunluluu da bir dier temel sorun olarak grlr (Ibarra ve Curatelli 2000). Trke gibi tretilebilir dillerde ise tm szcklerden oluan bir szlk hazrlamak ve bu szlkle almak neredeyse imkanszdr. Bu tr problemlerin giderilmesi iin ise baz ses tanma sistemleri, kullanlan dil iin bir kural taban eklentisi ile zm gelitirmeye almaktadrlar. Alnan kelimeler, dilsel kurallara gre analiz edilmekte ve ses tanma sisteminin baarm arttrlmaya allmaktadr.

10

3. SES TANIMA S STEMLER NE GENEL B R BAKI

nceki blmde ses tanma sistemlerine bir giri yaplm, salad faydalar, kullanm alanlar ile snflandrlmasna yer verilmi ve temel sorunlarna deinilmitir. Bu blmde ise ilk olarak insanlar aras sesli iletiim modeli aktarlm ve buradan yola klarak ses tanma sisteminin bir modeli verilmitir. Sonrasnda ise ses tanma sreci ve aamalar aktarlmtr.

3.1. nsanlar Aras Sesli letiim Sesli iletiim insanlar aras en temel iletiim eklidir. ekil 3.1de insanlar aras sesli iletiimin bir modeli grlebilir.

ekil 3.1 nsanlar aras sesli iletiim (Huang vd 2001) nsanlar aras sesli iletiim beyinde, konuma seslerini reten sinirsel hareketleri aktive eden bir dnce ve niyetle balar. Dinleyici, konumay beynin anlayaca sinirsel sinyallere dntren iitme sistemi yardmyla alr (Huang vd 2001). nsanlar aras sesli iletiim, konumac ve dinleyicideki dnm ilemleri sre zinciri ile gerekleir.

11 nsanlar aras sesli iletiimdeki sreler, konumacda ve dinleyicide u ekilde zetlenebilir: Konumac: Konumann oluturulmas sreci bir kiinin beyninde dinleyiciye konuma yoluyla iletilecek bir mesajn dncesi ile balar. Bu mesaj bir seri kelimeye dntrlr. Dilsel kodlama yardmyla, bu kelime serisi, kelimelerin telaffuzuna karlk gelen bir seri foneme dntrlr. Bu eletirme sonrasnda mesajn konuma eklinde dinleyiciye aktarlmas iin ses sistemine gnderilecek sinirsel dnmler gerekletirilir. Ses sistemi bu sinirsel dnmler sayesinde uyarlarak konuma gerekletirilir. Dinleyici: Konumann anlalmas sreci ise dinleyicideki, iitme sistemi ile balar. Huang vd (2001) tarafndan aktarldna gre; ses ilk olarak, bir filtreler bankas eklinde frekans analizi gerekletiren i kulaktaki salyangoza iletilir. Bunu izleyen sinirsel dnm sreci ile spektral sinyaller, iitsel sinirlere iletilen aktivite sinyallerine dntrlr. Sinirsel dnmlerin, dilsel sistemde nasl eletirildii ve beyinde anlamann nasl gerekletii henz tam olarak aklanamamtr. Ses tanma sistemlerinin almas, insanlar aras sesli iletiim srecinde dinleyicinin yapt ilevleri yapay olarak gerekletirme prensibine dayanmaktadr. Dinleyici ve ses tanma sistemlerinde basit bir eletirme yaplrsa; srasyla dinleyicideki iitme sisteminin yerini, sesin kaydedilmesi alr; sinirsel dnmlerin yerini, alnan sesin ilenmesi; dilsel kodlamann yerini, ilenmi sesin dilsel karlklarn belirlenmesi veya mevcut ablonlarla karlatrlmas; konumann anlalmasnn yerini ise eletirme alr. ekil 3.1deki rnek sesli iletiim modelinden yola klarak, ses tanma sistemi iin rnek bir model oluturulabilir. Sesli iletiim modelinden yola klarak ve yukarda verilen eletirmeden yararlanmak suretiyle oluturulan rnek bir ses tanma sistemi modeli, ekil 3.2de verilmektedir.

12

ekil 3.2 rnek bir ses tanma sistemi modeli 3.2. Ses Tanma Sreci Ses tanma, Cole vd (1995) tarafndan, mikrofon veya telefonla alnm ses sinyalinin kelimeler kmesine evrim sreci olarak tanmlanmtr. Tannm kelimelerin komut kontrol, veri giri ve dkman hazrlama gibi uygulamalar iin sonular olabileceini ifade etmilerdir. Mikrofon veya telefonla alnm ses sinyalinin kayt ilemi ile balayp, ses tanma sisteminin sonucu kelimeye karlk gelen ilevin gerekletirilmesi ile sonulanan ses tanma sreci aamalar; genel olarak u ekilde zetlenebilir: Sesin kaydedilmesi ve ifadenin saptanmas Sesin ilenmesi Karlatrma ve eletirme levin gerekletirilmesi

13 3.2.1. Sesin kaydedilmesi ve ifadenin saptanmas Bu aama, sesin ses kayt cihaz aracl ile kaydnn yaplmas ile balar. Kayt cihaz amalanan sisteme gre deiiklik gsterecektir. Genel olarak kullanlan kayt cihazlar, mikrofon ve telefondur. Telefon, daha ok, uzaktan eriimli sistemler iin tercih edilmektedir. Bu aamada ama, sesin kaydedilmesi; ses kaydnn yaplrken, konuma, yani sesin bulunduu ksmlarn saptanmasdr. Bu aamada ses tanma sistemi, kayt cihaz yardmyla ses kaydn gerekletirir, kaytta bulunan konumay balang ve bitii ile birlikte saptar, sonrasnda konumann bulunduu ksm ilenmesi iin bir sonraki aamaya verir. Konumann balang ve bitiinin saptanmas, ksaca ifadenin saptanmas olarak ifade edilebilir. fadenin saptanmas ile ses tanma sistemi tarafndan, tm kayt yerine sadece konuma geen blmlerin ilenmesi salanmaktadr. Bu sayede ses tanma sisteminin, konuma iermeyen ve sadece grlt ieren ses kaytlarn ilemekle boa vakit kaybetmesi nlenerek performans arttrlabilmektedir. fadenin saptanmasnda en sk kullanlan teknikler ise sfr gei saysnn hesaplanmas ve bir erevedeki enerjilerin RMS (Root Mean Square - Karelerin aritmetik ortalamasnn kk) hesab olarak verilebilir. 3.2.2. Sesin ilenmesi Kayt aamasnda saptanm bulunan ve ifade ieren ses sinyali bu aamaya giri olarak alnmaktadr. Bu giri sinyali, ses tanma sistemi tarafndan karlatrma ve eletirmeye hazr hale getirilmesi iin bir seri ilemden geirilir. Ses sinyaline uygulanan bu hazrlk ilemleri, ses tanma sisteminin tasarmna ve uygulamaya gre deikenlik gstermektedir. Bu aamada genel olarak yaplan ilemler ise; sesin pencereleme fonksiyonundan geirilmesi, normalizasyonlarn yaplmas, sesin filtrelenmesi, yani ses sinyalinden grltnn karlmas, sesin frekans analizlerinin gerekletirilmesi, sesin kodlanmas, ses sinyalinin zamana gre yaylmas olarak saylabilir.

14 Ses tanma srecinde sesin ilenmesi, en nemli aamalardan biri olarak karmza kar. Bu aamada ama kaydedilen sesin zelliklerini bozmadan, ses hakknda bilgi sahibi olmaktr. Bu aamada kullanlan tekniklerden bazlar u ekilde zetlenebilir: Pencereleme iin genel olarak kullanlan teknikler, dikdrtgensel pencereleme ve Hamming pencereleme fonksiyonlardr. Filtreleme iin en sk olarak dorusal filtreler kullanlmaktadr. Dorusal filtrelerden ise gelitirilmesinin basit olmas ve altrlmas srasnda ok az sistem kayna gerektirmesi nedeniyle FIR filtreler ve IIR filtreler sklkla kullanlmaktadr. Sesin frekans analizlerinin gerekletirilmesi ve kodlanmasnda ise kullanlan ok fazla teknik bulunmaktadr. Bunlardan bir ksm; PCM, APCM, DPCM, DM, ADPCM, spektrum analizleri, Filtreler bankas, LPC, PLP, CELP, VSELP, RASTA-PLP olarak saylabilir. Bu tekniklerden bazlar bir sonraki blmde daha detayl olarak aktarlacaktr. 3.2.3. Karlatrma ve eletirme Bu aamada yaplan ilem, ilenmi sesin, bilinen rneklerle karlatrlmas ve eleenlerin saptanmas ile kayd gerekleen sesin tannmasdr. Bu aama iin kullanlan ok fazla teknik bulunmaktadr. Bunlardan bazlar: Time Warping Dynamic Time Warping (DTW), Hidden Markov Model (HMM), Frekans Analizi, Lineer Cebir Teknikleridir. Tm bu teknikler, bir olaslk ya da kesinlik elemesi oluturmak iin kullanlmaktadr. Bu aamada kullanlmakta olan bir dier teknik ise Yapay Sinir Alardr. Bu modellere ileriki blmlerde deinilecektir. Ayrca, HMM ve Yapay Sinir Alarnn beraber kullanld baz sistemlerde bulunmaktadr ve bunlar Hibrit Modeller olarak anlmaktadrlar.

15 3.2.4. levin gerekletirilmesi Ses tanma srecinde, en son aama ilevin gerekletirilmesidir. Bu aamada, ses tanma sisteminde giri olarak alnan ses sinyalinden eletirilen kelimeye karlk gelen ilev gerekletirilmektedir. Gerekletirilen ilev, ses tanma sistemi tasarmna gre deikenlik gsterecektir. Dikte sistemleri iin tannan kelimenin, metin dzenleyicisine yazdrlmas, komut - kontrol sistemi iin ise tannan kelimeye karlk gelen komutun ilenmesi bu aamaya karlk gelmektedir.

16

4. SES TANIMA SREC NDE KULLANILAN TEKN KLER

Bir nceki blmde insanlar arasndaki sesli iletiim modelinden yola klarak ses tanma sistemi modeline, alma prensibine ve ses tanma sreci aamalarna yer verilmitir. Bu blmde ise; ses tanma srecinin her bir aamas iin kullanlan tekniklere yer verilerek bu teknikler aklanmtr.

4.1. Sesin Kaydedilmesi ve fadenin Saptanmas Bu aamada ilk olarak sesin kaydedilmesi gerekletirilmektedir. Ses kaydedildikten sonra eitli srelerden geecek ve ilenecektir. Bu ilemlerin yaplabilmesi iin ise sesin saysallatrlmas gerekletirilmektedir. 4.1.1. Sesin saysallatrlmas Analog sinyal, saysallatrlmas iin nce filtreden geirilmekte, ardndan rnekleme yaplmaktadr. ekil 4.1de rnek bir saysallatrma ilevi gsterilmektedir. Burada x(t) analog sinyali ifade ederken, x(nT) saysallatrlm sinyali ifade etmektedir. Sesin saysallatrlmas aamasnda, ekil 4.1de grlen filtre, analog filtreyi ifade etmektedir. Analog filtreleme ve rnekleme sesin kaydedilmesi aamasnda gerekletirilmektedir.

ekil 4.1 Sesin saysallatrlmas (Robinson 1998) 4.1.1.1. rnekleme Saysal sinyal ileme tekniklerinin kullanlabilmesi iin analog sinyalin, yani konumann, bir seri saylar eklinde gsterimi gerekmektedir (Rabiner ve Schafer 1978). Bu, analog sinyalin rneklenmesi ile yaplmaktadr.

17 Sesin zelliklerinin korunmas iin, rnekleme, dnm yaplacak ses sinyalinin ierdii en yksek sklktaki frekansn en az iki kat sklkta gerekletirilir. Bu, literatrde rnekleme teoremi olarak gemektedir. Rabiner ve Schafer tarafndan (1978) ise u ekilde aktarlmtr: eer bir sinyal xu(t); >= 2FN olmak zere Xu(j ) = 0 olacak ekilde bant snrl bir Fourier dnmne Xu(j ) sahipse; xu(t), 1/T > 2FN olacak ekilde ve - < n < olmak zere Xu(nT) eklinde eit olarak yerletirilmi rneklerle yeniden ina edilebilir. Burada FN, Nyquist Frekans olarak ifade edilir. Analog ses sinyalini tekrar oluturabilecek ekilde; en uygun rnekleme frekans FNden en az iki kat olacak ekilde seilmesi gerektii elde edilir (Coleman 2005). Yksek frekansl bir sinyal, ok dk oranla rnekleme yaplm olsun. Dk oranla alnan bu rneklerden dalga yaklam yaplrsa, elde edilen sinyal, ilk rnekleme yaplan sinyale gre daha dk frekansl bir sinyal gibi grnecektir. Yani bu ekilde rnekleme sonucu, sinyalin zellii korunamam olacaktr. Aada, yksek frekansl bir sinyalin, ok dk sklkta rneklenmesi sonucu, ekil 4.2de verilmitir (Smith 2003).

ekil 4.2 Yksek frekansl bir sinyalin, dk oranla rneklenmesi (Smith 2003) 4.1.2. fadenin saptanmas Sesi oluturan ses dalgas, iki nemli zellik iermektedir. Bu zellikler genlik ve frekanstr (Huang vd 2001). Frekans, sesin tizlik ve peslik zelliklerini belirlerken; genlik, sesin iddetini ve tad enerjiyi belirlemektedir. Ses tanma sistemleri, ses sinyallerinin analizi ve ayrtrlmasndan faydalanmaktadr. Sesteki frekans ve genlik deerleri, fonem baznda farkllk gstermektedir. kelimenin saptanmasna ve snflandrlmasna alr. te ses tanma sistemleri bu farkllklardan faydalanmak suretiyle, fonemlerin veya bir seri fonemden oluan

18 Sesin kaydedilmesi ve ifadenin saptanmas aamasnda kullanlan genel teknik, konumann getii ksmlarn sesin genlii ile saptanmasdr. Belli bir erevedeki toplam genlik hesabndan faydalanlarak konumann getii ksmlarn saptanmas gerekletirilebilmektedir. Toplam Genlik (TG) hesab iin eitlik 4.1 verilmitir.
n

TG = x(t)
t =1

(4.1)

Bu eitlikte x(t) ; t anndaki genlik; yani ses dalgasnn t anndaki tad enerjiyi ifade etmektedir. Bu yntem ile hesaplanan toplam genlik deeri, yani enerji toplam belirli bir deerin stndeyse bu erevede sesin, yani konumann balad anlam karlr. Konumann balang ve bitiinin saptanabilmesi iin kullanlan bir dier yntem yine genlikten faydalanlarak elde edilmektedir. Bu yntem genliklerin RMS (Root Mean Square) deerinden faydalanmaktadr. Bir erevedeki genliklerin karelerinin aritmetik ortalamasnn karekk; genliklerin RMS deeri olarak ifade edilmektedir. RMS hesab iin eitlik 4.2 verilmitir.
n t =1

x (t)
RMS = n ( 4 .2 )

Ayn zamanda bir erevedeki toplam sfr gei saysnn hesaplanmas da konuma balang ve bitiinin saptanmasna yardmc olan bir dier tekniktir. Bu tez almasnda sesin kaydedilmesi ve ifadenin saptanmas aamasnda RMS hesab ve toplam sfr gei says beraberce kullanlmtr. Sesin kayd aamasnda, kaydedilen ses ksmlar sistemden alndka, kayt sresince kuyrua atlmaktadr. Oluturulan ses tanma sistemindeki kuyruk analizcisi yardmyla kuyruktan bu ses paracklar alnmakta ve ereve baznda sfr gei miktarlar ve RMS deerleri analiz edilmektedir. Analiz sonucunda, iinde konuma ksm ierdii saptanan ereveler, birbiri ard sra eklenerek sesli ifadeler oluturulmakta ve ifade kuyruuna atlmaktadr. ekil 4.3te, gelitirilen uygulama kullanlarak 8000 Hzde rneklenerek kaydedilmi sfr kelimesi iin, RMS ve sfr gei says ile balang ve bitii saptanarak belirlenmi ses sinyali grlmektedir.

19

ekil 4.3 Balang ve bitii ile belirlenmi sfr kelimesi ses sinyali 4.2. Sesin lenmesi Sesin ilenmesi aamasnda genel olarak yaplan ilemler pencereleme, saysal filtreler ile filtreleme, normalizasyon ve sesin kodlanmas, yani zelliklerinin karlmasdr. Bu aamada zellikle sesin kodlanmas aamasnda kullanlan pek ok teknik bulunmaktadr. 4.2.1. Pencereleme Sesin ilenmesi aamasnda, ses sinyalinin pencereleme fonksiyonundan geirilmesi ska kullanlan bir yntemdir. Sklkla kullanlan iki pencereleme fonksiyonu, Hamming pencereleme fonksiyonlardr. Kullanlan dier pencereleme fonksiyonlar u ekilde verilebilir: Barlett Window Hanning Window Blackman Window Kaiser Window ve dikdrtgensel pencereleme (Rectangular Window)

Gelitirilen uygulamada Hamming penceresi kullanlmtr. ekil 4.4te, ekil 4.3te verilmi olan sfr ses sinyalinin Hamming pencereleme fonksiyonundan k grlmektedir.

20

ekil 4.4 Hamming penceresinden geirilmi sfr kelimesi iin ses sinyali Hamming penceresi iin fonksiyon Eitlik 4.3te verilmektedir. Hamming penceresi yardmyla ses sinyalinin merkezi belirginletirilmektedir.
w(n) = 0.54 0.46 cos ( 2n ) N 1 (4.3)

Hamming pencereleme fonksiyonu k y(n), eitlik 4.4 ile verilmitir.


y(n) = w(n) x(n) ( 4 .4 )

Hamming penceresi de bir nevi filtre etkisi yaratmaktadr. ekil 4.3 ve ekil 4.4 beraberce incelendiinde, Hamming pencereleme fonksiyonu knda sinyalin daha dzgn olduu, kelime balang ve bitiinin daha belirgin hale geldii aka grlmektedir. 4.2.2. Dorusal filtreler Sesin ilenmesi aamasnda filtrelerin iki kullanm amac vardr. Bunlar ses sinyalinin ayrlmas ve ses sinyalinin dzeltilmesidir. Smith (1999), sinyal ayrmann, sinyalin; bozulma, grlt veya dier sinyallerle kirlenmesinde gerekli olduunu; sinyal dzeltilmesinin ise sinyalin herhangi bir biimde bozulmasnda kullanldn sylemitir. Saysal filtrelerden FIR (Finite Impulse Response) Filtre ve IIR (Infinite Impulse Response) Filtre; gelitirilmesi basit olmas ve almas esnasnda ok dk sistem gereksinimi ile karlanabilmesi nedenleriyle sklkla kullanlmakta olan iki dorusal filtredir. 4.2.2.1. FIR filtreler Giri sinyali, x(n)e karlk, o anki ve nceki girilerin arlkl toplam olan y(n) kn oluturur.

21 ekil 4.5te rnek bir FIR Filtre modeli gsterilmitir. Bu filtrenin matematiksel gsterimi ise 4.5 nolu eitlikle verilmektedir.

ekil 4.5 rnek bir FIR filtre modeli


y n = b0 xn + b1 xn-1 + b2 xn- 2 + K + bq xn-q (4.5)

4.2.2.2. IIR filtreler Giri sinyali, x(n)e karlk, o anki ve nceki girilerin arlkl toplamlar ile birlikte, nceki klarn da arlkl toplamn ifade eden y(n) kn oluturur. ekil 4.6da rnek bir IIR modeli verilmitir.

ekil 4.6 rnek bir IIR filtre modeli Bu modelde x(n) girii ile birlikte, nceki p adet kn arlkl toplam filtre k y(n)i vermektedir. nceki girilerin bu rnee zel olarak arlkl toplama dahil edilmedii grlmektedir.

22 ekil 4.7de genelletirilmi bir dorusal filtre modeli verilmitir. Bu modelde nceki klarn, arlkl toplama girmedii durumlarda FIR filtre, nceki klarn da arlkl toplama dahil edildii durumda ise IIR Filtre elde edilir.

ekil 4.7 Genelletirilmi dorusal filtre Genelletirilmi dorusal filtre modeli eitlik 4.6 ile ifade edilir.
p i =1 q

y n = (ai y ni ) + (b j xn j )
j =0

( 4.6 )

Bu eitlikte p = 0 olduu durumlarda FIR filtre, p 0 olduu durumlarda ise IIR filtre sistemi elde edilebilmektedir. 4.2.3. Sesin kodlanmas Sesin saysallatrlmasndan sonra sesin kodlanmas gerekletirilir. Sesin kodlanmas genel olarak iki snfta incelenmektedir. lki; sesin tekrar oluturulmas amacn tayan dalga biimi kodlamas (waveform coding), ikincisi ise kodlanm sinyaldeki konuma zelliklerini korumay amalayan ses kodlayclar (vocoder) olarak ifade edilirler.

23 PCM, APCM, DPCM, DM ve ADPCM, dalga biiminin bir yaklamn vermeye alan tekniklerdir. Yeterli oranlarda kimi zaman dalga biimini aynen elde etmeye alrlar (Huang vd 2001). 4.2.3.1. PCM PCM, dorusal kuantizasyon (niceleme - nicelik karma) tekniklerinin en basit olandr. B bit ile 2B kuantizasyon seviyesi elde edilmektedir. Bilgisayarlarda kaytl Windows WAV, Apple AIF, Sun AU ve SND formatndaki dijital sesler, temel olarak 16-bit dorusal PCM kullanmaktadr. Youn diskler de (CD) 16 bit dorusal PCM kullanmaktadrlar (Huang vd 2001). 64 kbpsde telefon konumalar iin gereken anlalrlkta kodlama salayabilmektedir. 4.2.3.2. ADPCM 32 kbpsde yksek kalitede konuma salamaktadr. PCM gibi dorudan ses sinyalini kuantize etmek yerine, ses sinyali ile ses sinyalinden yaplan nkestirimin farkn kuantize eder. ADPCM genellikle, zel alarda ve uluslararas evrimlerde ses kanallarnn iki kata geniletilmesi ile genel kullanma sahiptir. 16 kbps ve daha az sklklarda, yksek ses kalitesi, daha karmak uyarlamal nkestirim (adaptive prediction) ile elde edilebilir. 4.2.3.3. Filtreler bankas Sesin, analiz iin bir seri filtreden geirilmesidir. Bu teknikte her frekans bir filtre tarafndan ilendiinden bilgi kayb yoktur. Bu teknik ile, sesin eitli frekanslardaki zellik karmlar yaplp, deerlendirme yaplmasna imkan tannmaktadr. Filtreler bankas verilmeden nce spektrum ve Fast Fourier Transform FFT tanmlarn vermek yerinde olacaktr. Spektrum, ses sinyalindeki ereveler arasndaki ksa sreli deiimlere duyarl olmaktadr. Hesaplanmas, sesin belirli aralklarla frekans younluunun alnmas ile yaplmaktadr. ekil 4.8de 8000 Hz ile rneklenmi sfr kelimesi ses sinyalinin spektrumu gsterilmektedir.

24

ekil 4.8 8000 Hz ile rneklenmi sfr kelimesi ses sinyalinin spektrumu Ses tanma sistemlerinde sklkla kullanlan bir yntem, sesli ifadenin spektrum ieriinden faydalanmaktr. Spektrum hesaplamak iin kullanlmakta olan en etkin yntemlerden biri Fast Fourier Transform FFT olarak bilinmektedir. FFT, Discrete Fourier Transform DFT olarak adlandrlan dnm ileminin daha etkin yaplabilmesi iin gelitirilmi bir biimdir. DFT iin dnm ilemi, f frekans, fs rnek alnan frekans Ns ise pencere genilii olmak zere eitlik 4.7 ile verilmektedir.
N S 1

S(f) = s(n) e
n =0

j( 2

f s )n

(4.7)

Spektrum analizi iin fourier dnm dnda bir dizi filtre bankasnn kullanlmas da mmkndr. Filtreler bankas bir seri bant geili filtreden olumaktadr. Bu ekilde filtreleme yaplmas sonucu her erevenin o anki spektrumu alnm olur. Bu filtreler serisinde bant geniliklerinin eit alnma zorunluluu bulunmamaktadr. Filtreler bankas olarak sklkla kullanlanlardan ilki, Mel-scale filtre bankas olarak bilinmektedir. Bu filtre bankas gen eklinde bir seri filtreden olumaktadr. Filtrelerin zellikleri ise dk frekanslar iin dorusal iken, daha yksek frekanslar iin logaritmik artan eklindedir (Rabiner ve Juang 1993).

25 Mel-scale filtre bankas ekil 4.9da verilmektedir.

ekil 4.9 Mel-scale filtre bankas Mel-scale filtreler bankas iin kullanlan mel frekans eitlik 4.8 ile ifade edilmektedir.

f Mel = 2595 log10( 1 + f/ 700.0 )

(4.8)

Sk kullanlan bir dier filtreler bankas ise Bark scale filtreler bankasdr. Barkscale frekans eitlik 4.9 ile verilmektedir.

f Bark

0.76 f f2 = 13 arctan ( ) + 3.5 arctan ( ) 1000 ( 7500 )2

(4.9)

Mel-scale ve bark-scale filtre bankalarn oluturabilmek iin kritik bant geniliklerinin belirlenmesi gerekmektedir. Kritik bant geniliklerinin belirlenmesi ilemi eitlik 4.10 ile yaplmaktadr.
BGkritik = 25 + 75 1 + 1.4 (f/ 1000 )2

0 .69

(4.10)

4.2.3.4. LPC Bu yntem, insan grtla ve az yaps zelliklerinin yan sra, ses zelliklerini de dikkate alr. Dorusal nkestirim temel olarak, sesin, periyodik drt veya rasgele grlt ile uyarlan, dorusal ve zamana gre deien bir sistemin kts ile modellenebilecei prensibine dayanr. Bu model dorusal bir filtre olarak Eitlik

26 4.11deki transfer fonksiyonu ile ifade edilmektedir. Burada p, LPC kodlaycnn seviyesi olarak ifade edilir (Huang vd 2001).

H [z ] =

X [z ] = E [z ]

1
p

( 4.11)
i

1 ai z
i =1

4.11 nolu eitlikte, ters z-dnm uygulandnda, 4.12 nolu eitlik elde edilmektedir.

x[n] = ai x[n i ] + e[n]


i =1

( 4.12)

LPC, sradaki rnein, nceki bir seri rnekten yaklak olarak elde edilebilecei prensibiyle alr (Eitlik 4.13).

x[n] = ai x[n i ]
i =1

( 4.13)

Tahmin sonucu elde edilen rnein asl rnekle olan farknn; yani hatann kareleri toplamnn minimizasyonu iin bir seri parametre hesaplanmaktadr (Eitlik 4.14).

e[n] = x[n] x[n] = x[n] ai x[n i ]


i =1

( 4.14)

Eitlik 4.14n zm ile p sayda LPC parametresi hesaplanmaktadr. Burada p, LPC kodlayc seviyesi; a1, a2, ... , ap ise LPC Parametreleri olarak ifade edilir. Tahmin sonucu elde edilen rnein asl rnekle olan farknn; yani hatann en kk yaplabilmesi iin bir seri parametre gncellenmektedir. Bu, eitlik 4.14n minimize edilmesi yani, optimizasyonu problemidir. Bu eitliin optimizasyonu ile hesaplanan p sayda parametre, LPC kodlaycya olan bir ereve rnek giriine karlk k verip, kodlama sonucuna karlk gelmektedir.

27 4.2.3.5. PLP LPCnin bir varyasyonudur ve ilk olarak 1990da Hermansky tarafndan ortaya atlmtr. Bu teknikteki temel fikir, insan kulann iitilebilir aralkla ilgili, fiziki zelliklerinden tretilen baz karakteristikleri dikkate almasdr. PLPde de; LPCde olduu gibi bir seri parametre hesaplanmaktadr. PLP parametreleri, DFT ve LP (dorusal nkestirim) tekniklerinin birletirilmesi ile hesaplanmaktadr (Hermansky 1990). 4.2.4. Karlatrma ve eletirme Modern ses tanma sistemlerinde genel olarak kullanlan mimari, ses sinyalinden, olmas muhtemel kelimeler serisi oluturan yazlm mimarisi eklindedir. Bu mimarideki en popler algoritmalar istatistiksel metotlara dayanr. Karlatrma ve eletirme aamasnda en ok kullanlan teknikler; HMM (Hidden Markov Model), DTW (Dynamic Time Warping) ve Yapay Sinir Alardr. 4.2.4.1. Hidden Markov Model HMM, ayrk zamanl serilerin, gzlenmi veri rneklerinin snflandrlmas iin gl bir istatistiksel yntemdir. Ses tanma sistemlerinde ok sklkla kullanlr. Bu kadar popler olmasnn nedeni ise, zengin bir matematiksel yapya sahip olmas ve uygun olarak uygulandnda baarl sonular elde edilmesini salamasndandr. Ses tanma sistemlerinde, HMMdeki gzlem serileri, ses sinyalini simgeleyen zellik vektrleridir. Modelde grlen durumlardan kendisine geiler de, fonem tabanl bir ses tanma sistemi iin, bir fonemin uzun seslendirilmesinde ayn durumun tekrarlarn ifade etmek iindir. Ksa bir deyile, ses tanma sistemlerinde HMMdeki durumlar fonemlere karlk gelir. Ses tanma sistemlerinde kullanlan, HMMin amac da bilinmeyen (sakl) durum dizisini gzlemlere dayanarak bulmaktr. ekil 4.10da rnek bir HMM gsterimi verilmektedir.

28

ekil 4.10 rnek bir HMM gsterimi ekil 4.10da rnek bir gsterimi verilen HMMi tanmlayan parametreler, Jurafsky ve Martin (2000) tarafndan u ekilde aktarlmtr: Durumlar: durumlarn bir kmesidir. Q = q1q2...qN Gei olaslklar: Olaslklarn bir kmesidir. A = a01a02...aN1...aNN Burada her aij, durum iden durum jye gei olasln gsterir. Bunlarn tm, gei olaslklarnn matrisini oluturur. Gzlem olabilirlikleri: gzlem olabilirliklerinin bir kmesidir. B=bi(ot) ile gsterilir. Her biri, durum iden bu ot gzleminin oluturulabilme olasln ifade eder. lk dalma: i , HMMin i durumundan balama olasl olarak ifade edilir. Tabii ki, baz durumlar doal olarak 0 olabilecektir. Bu da bu durumun ilk dalma olamayaca anlamna gelir. Kabul durumlar: Kabul edilebilir durumlarn bir kmesidir.

Gzlem serisi, O = (o1o2o3...oT), olarak ifade edilir. HMM, gelitirilirken alt probleme ayrlabilir. Hesaplama problemi: Verilen bir model ve gzlemler serisi iin, modelin bu gzlemleri oluturma olaslnn hesabdr. zmleme problemi: Verilen bir model ve gzlemler serisi iin, gzlemleri oluturan, en olas durum serisinin hesaplanmasdr.

29 renme Problemi: Verilen bir model ve gzlemler serisi iin, bu gzlemleri oluturabilme olasln en yksek yapmak iin modelin parametrelerinin ayarlanmasdr. 4.2.4.2. Yapay sinir alar Yapay sinir alarnn kullanm alan olduka genitir. Kullanm prensibi ise bilinmeyen bir fonksiyonun modellemesini yapmaya dayanr. Bunu yapabilmek iin ilk olarak yapay sinir a modeli oluturulmaktadr. Bilinmeyen fonksiyona ait gzlenen giri ve klar, veri serisi olarak yapay sinir anda eitim amacyla kullanlr. Yapay sinir ann eitimi tamamlandktan sonra ama, bu bilinmeyen fonksiyonun klarn retebilme yeteneine kavuturulmasdr. Yapay sinir ana temel olarak insan beyninin yaps, nronlar ve aralarndaki balar alnmtr. Yapay sinir alarna, insan beyninin basit bir modelidir denebilir. ekil 4.11de tek girili bir nron modeli verilmitir (Hagan 1995).

ekil 4.11 Tek girili nron modeli Bu nron modelinde: p bu nrona olan giri, a ise bu nrondan olan k ifade etmektedir. Burada w arl (weight) ve b ise ngerilimi (bias) gstermektedir. Nron k a, p giriinin bu nrona olan arl ile arpmnn yine bu nrondaki ngerilim ile toplamndan kan sonucun (yani n), f fonksiyonuna girii karl elde edilen ktr. ekil 4.11de verilen tek girili nron modelinin k fonksiyonu 4.7 nolu eitlikle verilmektedir.

a = (f.w + b)

( 4.15)

Bu ekildeki birok nronun, birbirine bal olmas Yapay Sinir An oluturur. Her bir nron, baka nronlardan gelen k verilerinin ve bu nrondaki ngerilimin

30 arlkl toplamn bir fonksiyondan geirerek dier nronlara iletir. ekil 4.12de 3 girili, 1 kl ve 2 katmanl bir yapay sinir a modeli grlmektedir.

ekil 4.12 rnek bir yapay sinir a modeli (3 girili, 1 kl ve 2 katmanl) Yapay sinir a, ekil 4.12deki rnek modelde grld gibi, zerindeki katsaylar ve fonksiyonlar belirli olduunda bir fonksiyonu temsil etmektedir. Belli giriler iin, belli klar retir. Buradaki ama, bir fonksiyonu modellemek olduuna gre baz parametrelerin batan belli olmamas doaldr. Yapay Sinir Ann eitimi ile kastedilen de bu parametrelerin belirlenmesi aamasdr. Bunun iin girilere karlk gzlenen klarn bir serisine ihtiya vardr. Ama bilinmeyen fonksiyona, yapay sinir ann yaklatrlmas, hatta ayn girilere karlk, ayn klar retebilmesini salamaktr. Bilinmeyen fonksiyonumuza f(x), Yapay sinir ann kna da f denirse, eitlik (x) 4.16 ile verilen e, hata olarak ifade edilir.

e = f (x) f(x)

( 4.16)

Ama, hatalarn minimize edilmesidir. Bunun yntemi ise, tm eitim verileri iin oluan hatalarn karelerinin toplamn minimize etmektir. Bu bir optimizasyon problemidir. Bu konuda birok optimizasyon yntemi gelitirilmi ve uygulanmaktadr. Sonu olarak yapay sinir ann eitimindeki ama, arlklarn ve katsaylarn bu optimizasyon problemi zmyle belirlenmesidir.

31 Bunun yaplabilmesi iin, arlklar ve ngerilimler, ilk aamada belli aralktaki rasgele deerler olarak atanr. Adm adm, optimizasyon problemi zmyle, arlklar ve ngerilimler yeni deerlerle gncellenir. Sonu olarak bu arlklar ve ngerilimlerin deerleri belirlenir ve fonksiyon modellenmi olur. Yapay sinir alar, giri ve klar aras bir iliki oluturabilmek zere eitilebilmesinden faydalanlarak rnt tanma ya da snflandrma amacyla sklkla kullanlmaktadrlar. Ses tanma sistemlerindeki ama ta, ses sinyallerine karlk gelen fonem ve buradan kelimelerin belirlenmesi olduundan, ses sinyalinin ilenmesi sonucu, ses sinyaline karlk karlan zellik vektrlerinin yapay sinir alar yardmyla snflandrlmas salanabilir. Ses tanma sistemlerinde Yapay sinir alarnn kullanm da bu ekilde gerekletirilmektedir. 4.2.4.3. Dynamic Time Warping Belirli bir szcn seslendirilmesi, ayn kii seslendirse bile zaman iinde farkllk gsterebilmektedir. Ayn szcn seslendirilmesi, bir seslendirmede uzun, bir seslendirmede ise daha ksa zamanda gerekletirilebilir. Dynamic Time Warping algoritmas yardmyla, bu iki seslendirme, zaman iinde yaylarak ya da daraltlarak birbirine yaklatrlmaya allr. Yani bu iki seslendirmenin, zaman olarak rttrlmesi ilevi gerekletirilir. DTW algortimas, szck tabanl ses tanma sistemlerinde etkin ve ska kullanlan bir yntemdir. Bu yaklamla, alma annda saptanan szck kesimlemesi, sistemde kaytl szck ablonlar ile seslendirme zamanlar rttrlerek karlatrlmas gerekletirilebilir. Bu algoritmann uygulanmas dinamik programlama teknikleri kullanm ile gerekletirilmektedir. ki ses sinyalinin arasndaki fark ve benzeme karlrken, byk bir problem olan iki seri farknn hesaplanmas, daha kk bir problem olan seriden ikier ikier alnan rneklerin farklarnn hesaplanmas zerine kurularak bu farklardan yararlanmaktadr. ekil 4.13te iki ses sinyali arasnda DTW algoritmasnn zaman ekseninde uygulanmas gsterilmektedir.

32

ekil 4.13 ki ses sinyaline DTW algoritmasnn uygulanmas (Kale 2002) ekil 4.13te grld gibi, N sayda rnekten oluan ve y ekseninde yerletirilen bir ses sinyali ile n sayda rnekten oluan ve x ekseninde yerletirilmi bir dier sinyalin karlatrlmas ve en yakn benzeme maliyetinin belirlenmesi iin daha kk problemlerin zmnden faydalanlmaktadr (Coleman 2005). Ama; iki serinin birbirine dik olarak yerletirilmesi ile oluturulan dzlemde (1, 1) koordinatndan, (n, N) koordinatna en dk maliyetle ulaabilmektir. Bunun iin de, dinamik programlama teknikleri ile iki komu koordinat aras gei maliyetlerinden yararlanlarak toplama ulalmaktadr. Bu amala; ilk olarak x eksenindeki her bir rnek iin, y eksenindeki rneklerin her biriyle olan farklar hesaplanarak matriste (ya da dinamik olarak oluturulan iki boyutlu dizide) ilgili koordinata yazlmaktadr. Sonrasnda (1, 1) koordinatndan balamak kaydyla geli ynleri aadan, sol-aadan veya soldan olmak kaydyla dier hcrelere gei maliyetleri her bir hcre iin ayr bir matriste hesaplanmaktadr. Bu hesaplama iin bir hcreye gelinebilecek farkl nokta iin maliyetler hesaplanp en dk olan belirlenerek bu hcreye yazlmakta ve geli yn de ayr bir matriste tutulmaktadr. rnek olarak: ekil 4.13te (i, j) koordinatna gei iin geerli yn olan (i, j-1), (i-1, j-1) ve (i-1, j) koordinatlarndan en dk maliyetli olan (i-1, j-1) koordinat olarak hesaplanm ve bu iki sinyalin bu ksm iin benzeme bu ynde karlmtr.

33 Bu ekilde tm matris doldurulduunda; matriste (n, N) koordinatnda bulunan deer, iki sinyal aras gei maliyetini ve ekil 4.13teki koyu siyah izgi ile gsterilen geiler ise, iki sinyalin ne ekilde benzetiini, yayldn gstermektedir. Bu algoritmann bir dier kullanlma ekli ise; ablon olarak kaytl birden ok parametrenin ayr ayr DTW algoritmas yardmyla karlatrma ilemi iin hazrlanmas ve beraberce deerlendirilmesidir. ekil 4.14te, LPC parametreleri zerine DTW algoritmasnn uygulanmas gsterilmektedir.

ekil 4.14 LPC parametreleri zerine DTW algoritmasnn uygulanmas Bu alma ile kullanlan uygulama ekli ise yledir: ablon olarak kaydedilmi szcklerin LPC parametre deerleri ile alma annda ses kayd ile alnm szckten hesaplanan LPC parametre deerleri, LPC Analizcisi yardmyla zaman iinde rttrlr. Bu rttrme sayesinde kaytl tm ablonlar ile karlatrma salanarak her ablon iin benzeme maliyetleri hesaplanmaktadr. Hesaplanan yaknlk maliyetleri yardmyla en yakn ablona olan yaknlama oran yzde olarak hesaplanmakta ve eer bu yaknlama oran, tanmlanan eik deerin stnde ise eletirme gerekletirilmektedir. LPC kodlayc knda her bir ereve karlnda dn deeri olarak p adet LPC parametresi alnmaktadr. fade kuyruu analizcisi, ifadeleri ifade kuyruundan ekerek LPC kodlaycsna kodlama iin erevelere ayrarak gndermektedir. Kuyruktan

34 ekilen ifadenin m adet ereveden olutuu durumda: bunun sonucu olarak kodlanm ifade boyutlar p ve m olan iki boyutlu bir dizidir. Sistemde n adet ereveden alnm ifadenin LPC ile kodlanm karl ablon olarak kaytl bulunsun. Bu durumda kaytl ablon, boyutlar p ve n olan iki boyutlu bir dizi olacaktr. Bu iki dizi; boyutlu uzayda ekil 4.14te grld gibi birbirine dik olarak yerletirilerek, 1den pye kadar grlen her bir LPC parametre dzleminde farklar hesaplanmakta, sonrasnda her LPC parametre dzlemi hcre baznda ortalama farklar hesaplanarak tek bir dzleme indirgenmektedir. Sonrasnda DTW algoritmasnn uygulanmas, iki ses sinyaline dorudan DTW algoritmasnn uygulanmasnda olduu gibi yaplmakta ve bir durumdan dierine gei maliyetleri karlarak karlatrma gerekletirilmektedir.

35

5. TRKE KOMUTLAR N SES TANIMA S STEM GEL T R LMES

nceki blmde ses tanma srecinin her bir aamas iin kullanlan tekniklere yer verilerek bu teknikler aklanmtr. Bu blmde gelitirilen ses tanma sisteminin modeli verilmitir. Ardndan gelitirilen ses tanma sisteminde kullanlan temel snflar ve metotlara yer verilerek aklanm, sonrasnda alma prensibi aktarlmtr. Son olarak ise, gelitirilen ses tanma sisteminde sre baznda uygulanan teknikler ve sistem iindeki yerleri aktarlmtr.

5.1. Gelitirilen Ses Tanma Sistemi Modeli Gelitirilen ses tanma sistemi modeli, birinci seviye veri ak diyagram yardmyla ekil 5.1de verilmitir.

ekil 5.1 Gelitirilen ses tanma sistemi modeli

36 Gelitirilen ses tanma sisteminde ana ilevler; sesin kaydedilmesi, ifadenin saptanmas, sesin ilenmesi, ablonlarn kaydedilmesi, karlatrma ve eletirme yaplmas, son olarak ta ilevin gerekletirilmesi olarak belirlenmitir. Bu ilevlerden ablonlarn kaydedilmesi, sadece sistemin eitimi esnasnda almaktadr. Gelitirilen ses tanma sistemi, kiiye baml olarak tasarlanmtr. ablonlarn kiiye bal olarak gncellenmesi, ablonlarn kaydedilmesi ileviyle salanmaktadr. Gelitirilen ses tanma sistemi, iki farkl kipte almaktadr. Bunlar Eitim ve Uygulama kipi olarak deerlendirilebilir. Eitim kipi, konumacnn ses ablonlarnn, sisteme tantlmas iin gerekli olmaktadr. Bu nedenle, sistem ilk altrldnda ve konumac deitikten sonra ilk altrlnda, eitim kipinde olmas gerekmektedir. Gelitirilen ses tanma sisteminin, Eitim ve Uygulama kiplerinde almas ileriki ksmlarda verilecektir. Gelitirilen ses tanma sisteminde srekli bir ses kayt ilemi gerekletirilmektedir. Sesin kaydedilmesi srerken, bir yandan da, kaydedilen sesteki ifadelerin saptanmas gerekmektedir. Sonrasnda saptanan ifadelerin ilenmesi ve ablonlarla karlatrlmas, karlatrma sonucu eletirme yaplmas da paralel olarak yrtlmektedir. Belirlenen kelimeye karlk gelen ilevin gerekletirilmesi ve konumacya alglama sonucunun yanstlmas da sreklilik gerektirmektedir. Gelitirilen ses tanma sisteminde, btn ilevler sreklilik gerektirdiinden, sistem oklu kullanml (multi-threaded) olarak tasarlanmtr. Sistem iin gerekli ana ilevler belirlenmi ve bu iler ayrtrlarak i paracklarna (thread) blnmtr. Gelitirilen ses tanma sistemi, toplam drt ayr i paracna blnmtr. Gelitirilen ses tanma sistemindeki i paracklar ve grevleri Tablo 5.1de verilmitir. Tablo 5.1 Gelitirilen ses tanma sistemindeki i paracklar ve grevleri PARACII Ana Parac Kuyruk Analizcisi fade Kuyruu Analizcisi LPC Kuyruu Analizcisi GREV Kullanc grafik ara yz (sesin kaydedilmesi, ilevin gerekletirilmesi, ablonlarn kaydedilmesi) Ses kuyruunun izlenmesi (ifadelerin saptanmas) fade kuyruunun izlenmesi (sesin ilenmesi) LPC kuyruunun izlenmesi (karlatrma ve eletirme yaplmas)

37 Gelitirilen ses tanma sistemi temel olarak drt veri kayna kullanmaktadr. Bu veri kaynaklar ve her bir veri kaynanda tutulan veriler Tablo 5.2de verilmitir. Tablo 5.2 Gelitirilen ses tanma sistemindeki veri kaynaklar VER KAYNAI Ses Kuyruu fade Kuyruu LPC Kuyruu LPC ablonlar VER KAYNAINDA TUTULAN VER LER Sistemden gelen kaytl sesler Balangc ve bitii ile birlikte saptanm sesli ifade LPC ile kodlanm sesli ifadenin LPC parametreleri Eitim kipiyle kaydedilmi ve kelimelerle ilikilendirilmi LPC ablonlar

Uygulama gelitirilirken kodlama iin Borland C++ Builder 6.0 kullanlmtr. ekil 5.2de gelitirilen ses tanma sisteminin kullanc grafik ara yzne ait ekran grnts verilmektedir.

ekil 5.2 Gelitirilen ses tanma sistemi grafik ara yz

38 5.1.1. Gelitirilen ses tanma sisteminde kullanlan temel snflar ve metotlar Gelitirilen ses tanma sisteminde kullanlan i paracklarna geilmeden nce; bu i paracklar iinde gerek ye olarak tanml ve kullanlan, gerekse i paracnn metotlar iinde kullanlm temel snf ve metotlar aktarmak yerinde olacaktr. Bu snflarn tanmlar temel snflar olmas nedeniyle ayrlm ve UClasses.h dosyasnda tanmlanmtr. Bu temel snflara ait gerek kurucu, gerekse dier metotlarn uygulamas; UClasses.cpp dosyasnda yer almaktadr. 5.1.1.1 Ses paras snf - TSpeechBuffer Kullanlan temel snflardan ilki ses paras snf - TSpeechBuffer olup ses kuyruu ve ifade kuyruu veri kaynaklarnda kullanlmaktadr. Bu snfn tanm, yeleri ve metotlar ekil 5.3te verilmektedir. ekil 5.3n en altnda, TSpeechBuffer snfnn bir liste tanm tip tanmlamas (typedef) komutu ile TSpeechBufferList olarak yaplmaktadr.

ekil 5.3 Ses paras snf (TSpeechBuffer) tanm, ye ve metotlar Bu snfa ait yeler ve metotlar zet olarak u ekilde tanmlanabilir. SBufferLength: Bu ye tanm; iaretsiz tamsay, yani unsigned int olarak yaplmtr ve ses paracnn uzunluunu tutmaktadr.

39 SBuffer: Bu ye tanm ksa tamsay iaretisi, yani short * olarak yaplmtr ve ses paracn tutmaktadr. TSpeechBuffer(): Bu metot kurucu metottur, snfn parametre girilmeksizin ilk oluturulduu anda alr ve snfa ait temel ilemler bu metot iinde yer almaktadr. lk tanmlarn yaplmas, bellek alanlarnn ayrlmas gibi baz ilemler temel ilemler olarak nitelendirilmektedir. TSpeechBuffer(int SBLength): Bu metot ikinci bir kurucu metottur, snfn SBLength tamsay parametresi ile birlikte ilk olarak oluturulduunda alr ve snfa ait temel ilemler bu metot iinde yer almaktadr. SBLength ile snf oluturulurken uzunluu biliniyorsa bu kurucu metot kullanlr. ~TSpeechBuffer(): Snfn yok edilmesinden hemen nce altrlan metodudur ve snfn kulland bellek alanlarnn braklmas ilemleri bu metot iinde yer almaktadr. TSpeechBuffer& operator = (const ...): Bu metot ile TSpeechBuffer snf iin eittir operatrnn, yani = kullanm halinde snfn nasl davranaca tanmlanmaktadr. TSpeechBuffer * Add(TSpeechBuffer *NewBuffer): Bu metot parametre olarak kendi snfndan bir iareti, yani TSpeechBuffer * alr ve yine kendi snfndan bir iareti, yani TSpeechBuffer * dndrr. Yapt ilem ise, NewBuffer ses parac snf iaretisi iindeki ses paracnn, arld ses parac snfnn ses paracna eklenmesi olarak zetlenebilir. typedef std::list<TSpeechBuffer *> TSpeechBufferList: Bu satr bir tip tanmlamasn ifade etmektedir. C++ standart ktphanesindeki liste yaps yardm ile TSpeechBuffer * snfnn, TSpeechBufferList ismiyle bir liste tanmlamas oluturulmaktadr. Ses kuyruu ve ifade kuyruu veri kaynaklar bu tipten birer snf listesi ile tanmlanmaktadr.

40 5.1.1.2 LPC parametre snf - TLPCBuffer Kullanlan temel snflardan bir dieri, LPC kuyruu veri kaynann bir paras olup kelime analizcisi ve LPC kuyruu analizcisi i paracklarnda kullanlmaktadr. Bu snfn tanm, yeleri ve metotlar ekil 5.4te verilmektedir.

ekil 5.4 LPC parametre snf (TLPCBuffer) tanm, ye ve metotlar Bu snfa ait yeler ve metotlar zet olarak u ekilde tanmlanabilir. LPCCodeLength: Bu ye tanm iaretsiz tamsay, yani unsigned int olarak yaplmtr ve LPC parametre serisinin vektr uzunluunu tutmaktadr. LPCCode: Bu ye tanm iki boyutlu ksa tamsay iaretisi, yani short ** olarak yaplmtr ve LPC parametre vektr serisini tutmaktadr. ki boyutlu bu zelliin bir boyutunun uzunluu LPC parametre says olup, GConstants.h dosyasnda tanmldr ve kullanlan LPC kodlaycsnn ereve bana 12 LPC parametresi gndermesi nedeniyle sabit 12 olarak tanmlanmtr. TLPCBuffer(int LPCCLength): Bu metot kurucu metottur, snfn tamsay parametre ile birlikte ilk olarak oluturulduunda alr ve snfa ait temel ilemler bu metot iinde yer almaktadr. lk tanmlarn yaplmas, bellek alanlarnn ayrlmas gibi ilemler temel ilemler olarak nitelendirilmektedir.

41 ~TLPCBuffer(): TLPCBuffer snfnn yok edilmesinden hemen nce altrlan metodudur ve bu snf tarafndan kullanlan bellek alanlarnn serbest braklmas ilemleri bu metot iinde yer almaktadr. TLPCBuffer& operator = (const ...): Bu metot ile TLPCBuffer snf iin eittir operatrnn, yani = kullanm halinde TLPCBuffer snfnn nasl davranaca tanmlanmaktadr. typedef std::list<TLPCBuffer *> TLPCBufferList: Bu satr TSpeechBufferList tanmnda da olduu gibi bir tip tanmlamasn ifade etmektedir. C++ standart ktphanesindeki liste yaps yardm ile TLPCBuffer * snfnn, TLPCBufferList ismiyle bir liste tanmlamas oluturulmaktadr. LPC kuyruu veri kayna bu tipten bir snf listesi ile tanmlanmaktadr. 5.1.1.3 LPC ablon snf - TLPCPattern Kullanlan temel snflardan en sonuncusu, LPC ablonlar veri kaynanda kullanlmaktadr ve sistemde kaytl LPC parametre ablonlarnn program aldnda LPC ablonlar veri kaynana yklenmesine yardmc olmaktadr. Bu snfn tanm, yeleri ve metotlar ekil 5.5te verilmektedir.

ekil 5.5 LPC ablon snf (TLPCPattern) tanm, ye ve metotlar Bu snfa ait yeler ve metotlar zet olarak u ekilde tanmlanabilir.

42 ActionCode: Bu ye tanm ksa tamsay, yani short int olarak yaplmtr ve LPC ablonunun hangi kelimeye ait olduunu tutmaktadr. Gelitirilen ses tanma sistemi, komut kontrol sistemi olarak tasarlandndan; bu ye, ayn zamanda altrlacak komutun dizin numarasn ifade etmektedir. LPCPatternLength: Bu ye tanm iaretsiz tamsay, yani unsigned int olarak yaplmtr ve LPC parametrelerinin bir serisinden oluan ablon uzunluunu tutmaktadr. LPCPattern: Bu ye tanm ksa tamsay iaretisi, yani short * olarak yaplmtr ve LPC parametre serisini yani ablonu tutmaktadr. Bu ye tanm aslnda iki boyutlu bir veri iermesine karn, sisteme kayt ve sistemden geri ykleme ilemleri iin kolaylk salamas bakmndan tek boyutlu olarak tanmlanmtr. LPC parametre serisi sisteme ablon olarak kaydedilirken, iki boyutlu seriden tek boyutlu seriye evrim ilemi gerekletirilmekte ve kayt ilemi yaplmaktadr. TLPCPattern(int LPCPLength): Bu metot kurucu metottur, TLPCPattern snfnn LPCPLength tamsay parametresi ile birlikte ilk olarak oluturulduunda alr ve snfa ait temel ilemler bu metot iinde yer almaktadr. lk tanmlarn yaplmas, bellek alanlarnn ayrlmas vb. ilemler temel ilemler olarak nitelendirilmektedir. ~TLPCPattern(): TLPCPattern snfnn yok edilmesinden hemen nce altrlan metodudur ve bu snf tarafndan kullanlan bellek alanlarnn serbest braklmas ilemleri bu metot iinde yer almaktadr. TLPCPattern& operator = (const ...): Bu metot ile TLPCPattern snf iin eittir operatrnn, yani = kullanm halinde TLPCPattern snfnn nasl davranaca tanmlanmaktadr. typedef std::list<TLPCPattern *> TLPCPatternList: Bu satr TSpeechBufferList ve TLPCBufferList tanmlarnda da olduu gibi snf listesinin bir tip tanmlamasn ifade etmektedir. C++ standart ktphanesindeki liste yaps yardm ile TLPCPattern * snfnn, TLPCPatternList ismiyle bir snf listesi

43 tanmlamas oluturulmaktadr. LPC ablonlar veri kayna bu tipten bir snf listesi ile tanmlanmaktadr. 5.1.1.4 Temel metotlar UUtils.cpp Gelitirilen ses tanma sisteminde kullanlan ve temel metotlardan bir ksmn ieren bir dosya UUtils.cppye ait balk dosyas UUtils.h ekil 5.6da bir ksm gsterilen balk dosyas iinde tanml metotlar ile birlikte verilmektedir.

ekil 5.6 UUtils.hde tanml genel metotlar UUtils.h dosyasnda yer alan metotlar ve bu metotlarda yaplan ilemler u ekilde tanmlanabilir. RMSEnergy(short *Frame, int FrameLength): Bu metot, FrameLength parametresi ile verilen uzunluktaki, Frame iareti parametresi ile verilen ses rneklerini ieren ereveye Bu metot ait RMS deerinin i hesaplanmasn parac, yani gerekletirmektedir. kullanlmaktadr. ZeroPassCount(short *VoiceIn, int Length): Bu metot, Length parametresi ile verilen uzunluktaki, VoiceIn iareti parametresi ile verilen ses rneklerini ieren ereveye ait sfr gei saysnn hesaplanmasn gerekletirmektedir. Bu metot kuyruk analizcisi i parac, yani TQueueAnalyser tarafndan ifade balang ve bitiinin saptanmasnda RMSEnergy metodu ile birlikte kullanlmaktadr. Hamming(short *VoiceIn, int Length): Bu metot, Length parametresi ile verilen uzunluktaki, VoiceIn iareti parametresi ile verilen ses rnekleri serisini Hamming pencereleme fonksiyonundan geirerek short * cinsinden Hamming kuyruk analizcisi

TQueueAnalyser tarafndan ifade balang ve bitiinin saptanmasnda

44 Pencereleme fonksiyonu kn gerekletirmektedir. Bu metot ifade kuyruu analizcisi i parac, yani TWordAnalyser tarafndan LPC kodlamas ncesinde Hamming pencereleme fonksiyonunun gerekletirilmesi amacyla kullanlmaktadr. 5.1.1.5 Temel metotlar GRoutines.cpp Gelitirilen ses tanma sisteminde kullanlan ve temel metotlardan bir ksmn ieren bir dosya GRoutines.cppye ait balk dosyas GRoutines.hnin bir ksm ekil 5.7de balk dosyas iinde tanml metotlar ile birlikte verilmektedir.

ekil 5.7 GRoutines.hde tanml genel metotlar GRoutines.h dosyasnda yer alan metotlar ve bu metotlarda yaplan ilemler u ekilde tanmlanabilir. PopFromQueue(): Bu metot; gelitirilen ses tanma sistemindeki ses kuyruundan, yani sistemde tanml SpeechBufferList listesinden ilk sradaki TSpeechBuffer nesnesini Bu ekerek metot; aran kuyruk satra dndrme i ilevini yani gerekletirmektedir. analizcisi parac,

TQueueAnalyser tarafndan ses paracklarnn ses kuyruundan ekilmesi amacyla kullanlmaktadr. PopFromWordQueue(): Bu metot; gelitirilen ses tanma sistemindeki ifade kuyruundan, yani sistemde tanml WordBufferList listesinden ilk sradaki TSpeechBuffer nesnesini ekerek, aran satra dndrme ilevini gerekletirmektedir. Bu metot; ifade kuyruu analizcisi i parac, yani TWordAnalyser tarafndan ifadelerin ifade kuyruundan ekilmesi amacyla kullanlmaktadr.

45 PopFromLPCQueue(): Bu metot; gelitirilen ses tanma sistemindeki LPC kuyruundan, yani sistemde tanml LPCCodeList listesinden ilk sradaki TLPCBuffer nesnesini ekerek, aran satra dndrme ilevini gerekletirmektedir. Bu metot; LPC kuyruu analizcisi i parac, yani TLPCAnalyser tarafndan, LPC ile kodlanm ifadelerin LPC kuyruundan ekilmesi amacyla kullanlmaktadr. LPCToShort(TLPCBuffer *LPCBuffer): Bu metot, LPCBuffer snfnn nesne iaretisi parametresi ile verilen LPC ile kodlanm sesli ifade verisini short * cinsine evirmektedir. Bu metodun gelitirilen ses tanma sisteminde kullanlma amac ve yeri; ablon kaydedilmesi esnasnda LPC parametrelerinin, LPC kuyruundan ekildikten sonra kaydedilmesi ve yine karlatrma iin ablonlarn ablon dosyalarndan okunmas ilemlerini kolaylatrmaktr. Bu metot, ablonlarn kaydedilmesinde ana i parac tarafndan ve karlatrma ncesinde LPC kuyruk analizcisi TLPCAnalyser tarafndan kullanlmaktadr. CodeWithLPC(TSpeechBuffer *NewWordBuffer): Bu metot, TSpeechBuffer iareti parametresi ile verilen TSpeechBuffer snfndan NewWordBuffer nesnesinin LPC ile kodlanmasn gerekletirmektedir. Bu metot; ifade kuyruu analizcisi i parac, yani TWordAnalyser tarafndan LPC kodlamas amacyla kullanlmaktadr.

5.2. Gelitirilen Ses Tanma Sistemi Paracklar Bu ksmda gelitirilen ses tanma sistemindeki i paracklar ve bu i paracklarnn gerekletirdii ilemler aktarlmtr. 5.2.1. Ana i parac Gelitirilen ses tanma sistemindeki ana i parac, kullanc grafik ara yzdr. Kullanc grafik ara yz yardmyla ses tanma sisteminin, alma kipi belirlenmekte, kayt cihaz seilebilmekte ve ses tanma sisteminin ynetimi salanabilmektedir. Ana i parac, gelitirilen ses tanma sisteminin ilemlerinden, sesin kaydedilmesi, alglanan kelimeye karlk gelen ilevin gerekletirilmesi ve ablonlarn kaydedilmesi ilemlerini iinde barndrmaktadr.

46 Bu i parac yardmyla sistemde kaytl ablonlarn yklenmesi de

gerekletirilir. ekil 5.8de Ana i paracna ait public deiken ve fonksiyonlar verilmektedir.

ekil 5.8 Ana i parac (TfrmSpeech) public deiken ve fonksiyonlar Ana i paracnn snf ve deiken tanmlarna geilmeden nce bu i paracnda kullanlmakta olan TMessage yapsnn verilmesi yerinde olacaktr. TMessage, Borland C++ Builder ktphanesinde Messages.hpp dosyasnda bir yap olarak tanmldr. TMessage yaps tanm, ekil 5.9da gsterilmektedir.

ekil 5.9 TMessage yaps

47 ProcessAction(int ActionToExecute): ActionToExecute parametresi ile verilen ilevi gerekletirir. levler GConstants.h dosyasnda tanmlanmaktadr. CMWaveData(TMessage &Message): Kayt cihazndan veri geldiinde

yaplmas gerekli ilevleri gerekletirir. Sisteme kayt amacyla bo tampon bellek alannn gnderilmesi, gelen dolu tampon bellek alannn, yani ses paracnn ses kuyruuna atlmas bu fonksiyon iinde arlr. Ara yze CM_WAVE_DATA mesajnn gelmesi ile arlan fonksiyondur. arlmas waveInProc iinden yaplmaktadr. Kayt cihazndan sistem tarafndan o anda kayt iin kullanlan tampon bellek blgesi dolduunda WIM_DATA mesajnn waveInProc fonksiyonuna geilmesi sonucunda arlmaktadr. CMWaveOpen(TMessage &Message): Kayt cihaznn, kayt amacyla almas gerekletiinde, yaplmas gereken ilemler; bu metot iinde yer almaktadr. Bu ilemler; sisteme kayt amacyla ilk bo tampon bellek alanlarnn gnderilmesi, gnderim ncesi bu tampon alanlarn hazrlanmas olarak saylabilir. Ara yze CM_WAVE_OPEN mesajnn gelmesi ile arlan fonksiyondur. arlmas waveInProc iinden yaplmaktadr. Kayt cihazndan, kayt iin kayt cihaznn baaryla ald mesaj WIM_OPEN mesajnn waveInProc fonksiyonuna geilmesi sonucunda arlmaktadr. CMWaveClose(TMessage &Message): Kayt cihaznda, kayt ilemi bittiinde cihaza kapama mesaj gnderilmesi gerekmektedir. Bu mesaj gnderilip kayt cihaz kapama ilevi baaryla gerekletiinde, yaplmas gereken ilemler bu metot iinde yer almaktadr. Ara yze CM_WAVE_CLOSE mesajnn gelmesi ile arlan fonksiyondur. arlmas waveInProc iinden yaplmaktadr. Kayt cihazndan, kayt cihaznn baaryla kapatldn ifade eden WIM_CLOSE mesajnn waveInProc fonksiyonuna gelmesi sonucunda bu metot arlmaktadr. CMQANewWord(TMessage &Message): Gelitirilen ses tanma sisteminin seslendirilen komutu, yani kelimeye karlk ilevleri gerekletirebilmesi iin yazlm olan metottur. LPC kuyruu analizcisi tarafndan ara yze, yani ana i paracna, CM_QA_NEWWORD mesajnn gnderimi ile birlikte altrlmaktadr. Ana i paracna bu mesaj geilmeden nce, kuyruk

48 analizcisi tarafnda, bu yapya ait WParam zelliine ilenecek komutun dizin numaras atamas yaplr. CMNewLog(TMessage &Message): Kullanc grafik ara yznde Loglar yaz onay kutusu seildiinde, alma annda ara yzn sa altndaki ksmda loglar yazlmaktadr. Gelitirilen ses tanma sisteminin almasndaki sreklilii salamak amacyla, kullanc grafik ara yzne bu loglarn yazdrlmas, herhangi bir i parac tarafndan, log kuyruuna loglarn eklenmesi, ardndan eklenen log satr saysnn TMessage yapsnn WParam zelliine atanmas ve ana i paracna CM_NEWLOG mesaj gnderilmesi ile salanmaktadr. Bu mesajn ana i paracna ulamas sonucu bu metot arlmakta ve log kuyruundan says WParam parametresinde belirtilmi miktarda log satr ekilerek ara yze yazdrlmaktadr. 5.2.2. Kuyruk analizcisi Kuyruk analizcisi i parac yardmyla, ses kuyruu izlenmektedir. Kuyruk analizcisi i parac, gelitirilen ses tanma sistemi ilemlerinden ifadenin saptanmas ilemini gerekletirmektedir. ekil 5.10da Kuyruk analizcisi i paracna ait snf yaps verilmektedir.

ekil 5.10 Kuyruk analizcisi i parac (TQueueAnalyser) snf yaps WordBuffer: Bu ye, Execute metodu iinde kullanlmaktadr. Execute metodunun her bir dngsnde, ses kuyruundan sradaki ses paras ekilmektedir. Konuma balangc ieren ilk ereve ile WordBuffer snfnn bir nesnesi, ereve boyutu uzunluunda oluturulmakta ve konuma bitii tespit edilene kadar olan tm ereveler bu nesnenin Add metodu ile bu nesnenin SBuffer zelliinin sonuna eklenerek ifadeler oluturulmaktadr. Bu ekilde her

49 ifade tamamlandnda, fade kuyruunun sonuna eklenmekte ve sradaki

ereveden itibaren kuyruk analizi devam etmektedir. Execute(): Bu i paracnn almas, i paracnn sistemde yaratlmas ile birlikte Execute metodu ile balar ve sonlandrana kadar kuyruk izlenmesi ilevini yapar. Bu metot iinde ses paracklar ses kuyruundan alnr, ereveler halinde RMS deeri ve sfr gei saylar hesaplanarak konuma geen ereveler tespit edilir. Bu ekilde, ses paracklarndan konuma ieren ereveler birletirilerek, konumann balang ve bitii ile birlikte ifadeler oluturulur. Oluturulan ifadeler, ifade kuyruuna atlrlar. 5.2.3. fade kuyruu analizcisi fade kuyruu analizcisi, ifade kuyruunu izlemekte ve ifade kuyruundan alnan sesli ifadenin ilenmesini gerekletirmektedir. Gelitirilen ses tanma sistemindeki sesin ilenmesi aamas bu i parac yardmyla gerekletirilmektedir. ekil 5.11de fade kuyruu analizcisi i paracna ait snf yaps verilmektedir.

ekil 5.11 fade kuyruu analizcisi i parac (TWordAnalyser) snf yaps WordBuffer: Bu ye, Execute metodu iinde kullanlmaktadr. Execute metodunun her bir dngsnde, ifade kuyruundan sradaki ifade ekilmektedir. Konuma balangc ve bitii ile birlikte ifade kuyruundan ekilen her bir ifade, bu zellie atanr ve takip edilir. Yeni bir TSpeechBuffer nesnesi oluturulmadan, kuyruktan ekilen nesne bu zellie atanr. Bu nesne iindeki ses paras SBuffer, nce Hamming fonksiyonundan geirilir, ardndan bu nesne CodewithLPC fonksiyonu ile kodlanarak LPC parametre serisine evrilir.

50 LPCBuffer: Bu ye, Execute metodu iinde kullanlmaktadr. Execute metodunun her bir dngsnde, CodewithLPC fonksiyonuna kodlama amacyla gnderilen her bir TWordBuffer nesnesine karlk, TLPCBuffer snfna ait yeni bir nesne oluturulur ve bu zellie atanr. Bu ekilde oluturulmu her bir nesne bir ileme tabii olmadan LPC kuyruunun sonuna eklenmektedir. Execute(): Bu i paracnn almas, i paracnn sistemde yaratlmas ile birlikte Execute metodu ile balar ve i parac sonlandrlana kadar ifade kuyruunun izlenmesi ilevini yapar. Bu metot iinde Kuyruk Analizcisi yardmyla oluturulmu ve ifade kuyruuna eklenmi ifadeler alnr, Hamming pencereleme fonksiyonundan geirilirler, LPC ile kodlanarak, LPC kuyruuna eklenirler. 5.2.4. LPC kuyruu analizcisi LPC kuyruu analizcisi; LPC kuyruunu izlemekte, LPC kuyruundaki her bir LPC ile kodlanm ifadenin kaytl LPC ablonlar ile karlatrlmasn gerekletirmekte ve en yakn ablonu seerek eletirme yapmaktadr. Bu i parac ile, gelitirilen ses tanma sistemindeki karlatrma ve eletirme ilemi gerekletirilmektedir ekil 5.12de LPC kuyruu analizcisi i paracna ait snf yaps verilmektedir.

ekil 5.12 LPC kuyruu analizcisi i parac (TLPCAnalyser) snf yaps LPCBuffer: Bu ye, Execute metodu iinde kullanlmaktadr. Execute metodunun her bir dngsnde, LPC kuyruundan ekilen LPCBuffer nesnesi bu zellie atanr. Bu ekilde alnan her bir LPCBuffer nesnesinin, sistemde kaytl tm ablonlarla karlatrlmak zere takip edilmesi amacyla bu ye kullanlmaktadr.

51 Execute(): Bu i paracnn almas, i paracnn sistemde yaratlmas ile birlikte Execute metodu ile balar ve i paras sonlandrlana kadar LPC kuyruunun izlenmesi ilevini yapar. Bu metot iinde fade kuyruu analizcisi yardmyla oluturulmu ve LPC kuyruuna eklenmi LPC ile kodlanm ifadeler srayla alnr ve sistemde kaytl tm ablonlarla LPC parametreleri zerinde DTW algoritmasnn uygulanmas yardmyla karlatrlmaktadr. Hesaplanan yaknlk maliyetleri yardmyla en yakn ablona olan yaknlama oran yzde olarak hesaplanmakta ve eer bu yaknlama oran, tanmlanan eik deerin stnde ise eletirme gerekletirilmektedir. Varsa eleen kelime dizin numaras ya da eletirme gerekletirilemedii bilgisi; yani -1, Ana i paracna ilevin gerekletirilmesi iin iletilir. DTWonLPC(short* FirstLPC, int FirstLPCLength,short* SecondLPC, int SecondLPCLength): Bu metot yardmyla uzunluklar ile birlikte verilen iki LPC parametre serisi DTW algoritmas yardmyla dinamik veri yaplar kullanlarak zamana gre yaylarak karlatrlr ve bir yaknlk maliyeti hesaplanr. Dn deeri; double cinsindendir.

5.3. Gelitirilen Ses Tanma Sistemindeki lemler Bu ksmda gelitirilen ses tanma sistemindeki ilemler ses tanma sistemi srecine bal olarak sre srasyla aama aama verilmi ve alma prensibi aktarlmtr. 5.3.1. Sesin kaydedilmesi Sesin kaydedilmesi; ses kayt cihaz seimi sonrasnda, alma kipi seildikten sonra, Balat dmesine baslarak kullanc tarafndan balatlmaktadr. Sesin kaydedilmesi, kullanc tarafndan Durdur dmesine baslana dek srekli olarak devam etmektedir. Sesin kaydedilmesinde, Microsoftun dalga biimi ses servisleri iin olan Uygulama Programlama Ara yz (Microsoft Waveform Audio Services API) kullanlmtr. Bu uygulama programlama ara yznde yer alan, ses kayd esnasnda kullanlan yap ve fonksiyonlarla ilgili bilgi Ek-1de verilmektedir.

52 Sesin kaydedilmesi esnasnda, ses kayt cihazndan gelen ses verisi, gelir gelmez Ses kuyruuna atlmakta ve bo bir bellek blgesi, sisteme kayt iin gnderilmektedir. Bu sayede kayt sreklilii salanmakta ve konuma kayplar nlenmektedir. Ses kayt biimi, yani ses kaydnn ka kanal olaca, rnek bana bit says, saniyedeki rnek says vb. parametreler, kullanc ara yz ilk aldnda uygulama tarafndan varsaylan olarak atanmakta ve deitirilememektedir. 5.3.2. fadenin saptanmas Bu ilemin amac, ifadenin saptanmasn gerekletirmektir. Bu ilemin alma prensibi u ekilde aklanabilir; Ses kuyruu srekli olarak izlenmekte ve sesin kaydedilmesi ilemi tarafndan ses kuyruuna atlan ses paracklar srasyla alnarak, her bir para erevelere blnmektedir. ereve boyutu sistemde sabit olarak belirlenmitir. Alnan her erevede RMS deeri ve sfr gei says hesaplanmaktadr. Hesaplanan bu deerler, sistemde sabit olarak tanml eik deerlerle karlatrlmak suretiyle, bu erevede konuma olup olmad belirlenmektedir. Bu erevenin konuma ierdii saptandnda, daha nceden konuma balam ise bu ifade verisinin sonuna eklenmektedir. Konuma bu ereve ile balyorsa, bo bir ifade verisi oluturulmakta ve bu ereve ifade verisine eklenmektedir. Bu ilem esnasnda, konuma kayplarn en aza indirgemek iin konuma yeni balam ise; varsa bir nceki ereve ifade verisinin ilk erevesi olarak, konuma bitii tespit edildiinde ise son ereve ifade verisinin son erevesi olarak eklenmektedir. Bu ekilde konuma balangc ve bitii ile belirlenen sesli ifade, ifade kuyruuna eklenmektedir. 5.3.3. Sesin ilenmesi Bu ilemde, ifade kuyruu izlenmektedir. fadenin saptanmas ileminde, belirlenen ifadelerin atld ifade kuyruundan srasyla alnan ifade verileri nce bir pencereleme fonksiyonundan geirilmektedir. Bu sayede ifade verisinin orta ksmlarnn belirginlemesi salanmaktadr. Pencereleme fonksiyonundan geirilmi ifade verisi; LPC erevesi boyutuyla belirlenen ereve boyutlarnda alnarak, LPC kodlayc fonksiyona gnderilirler. Her

53 bir ereveye karlk gelen LPC parametreleri LPC kodlaycsnda hesaplanr. LPc kodlaycsndan alnan bu parametreler birletirilerek kodlanm ifade verisi oluturulur. Sonu olarak ifade kuyruundan alnan her bir ifade verisi, LPC parametrelerinden oluan bir seri LPC parametresi verisine dntrlmektedir. Bu ekilde ifade verisinin tamam, LPC ile kodlandktan sonra oluan LPC verisi, LPC kuyruuna atlmaktadr. 5.3.4. ablonlarn kaydedilmesi Bu ilem, sadece sistem eitim kipinde balatldnda altrlabilmektedir. Sistem ilk altrldnda sistemde kaytl ablon bulunmadndan, ilk olarak LPC ablonlarnn oluturulmas gerekmektedir. Bu ilemin salanmas iin kullanc grafik ara yznde Kayt onay kutusu seili olmas gerekmektedir. Ses kayt ilemi bu ekilde balatldnda, sistem tarafndan LPC kuyruk analizcisi altrlmamakta, bu sayede sesin ilenmesi aamas ile oluturulmu LPC parametre verilerinin LPC kuyruunda birikmesi salanmaktadr. Sistemde kelimeler ile ablonlarn ilikilendirilmesi, ablon kayt ilemi esnasnda ablona verilen isim ile yaplmaktadr. belirlenmitir. ABLON_ SM = ABLON_D Z N_ET KET + _ + ABLON_NUMARASI Burada ABLON_D Z N_ET KET , sistemde tannmas beklenen saylardan her biri iin rakam karl olarak verilmesi gerekmektedir. Yani Sfr iin 0, Bir iin 1, benzer ekilde Dokuz iin 9 olarak verilir. A, Kapat, Sil, ptal ve Ara komutlar iin ise 10 - 14 aras ablon etiketi olarak belirlenmitir. Tablo 5.3te her bir komuta karlk gelen ablon etiketi, etiket dizin srasyla verilmitir. ablonlara ABLON_NUMARASI ve dosya uzants kayt esnasnda otomatik olarak verilmektedir. Tablo 5.3 Komutlara karlk gelen ablon etiketleri
ablon Etiketi 0 1 2 3 4 Komut Sfr Bir ki Drt ablon Etiketi 5 6 7 8 9 Komut Be Alt Yedi Sekiz Dokuz ablon Etiketi 10 11 12 13 14 Komut A Kapat Sil ptal Ara

sim yaps sistemde aadaki ekilde

54 ekil 5.13te kaytl ablonlar iin rnek bir dizin verilmitir. Bu rnekte ablonlarn isim yaps da grlmektedir.

ekil 5.13 Kaytl ablonlar rnek dizin Sistemde kaytl ablonlarn uygulama dizini iindeki \Pattern dizininde bulunmas gerekmektedir ve uygulamann alnda ablon isimleri yukardaki yapda beklenmektedir. Bu nedenle ablon kayt ilemi srasnda her kelime ayr ayr seslendirilmeli ve kaydedilmelidir. Bir kelimenin seslendirme ilemi gerekletirildikten sonra kayt durdurularak, Kayt onay kutusu yannda bulunan metin kutusuna ABLON_D Z N_ET KET + _ eklinde ablon n eki yazlmas gerekmektedir. Sonrasnda LPC Kayt dmesine baslarak, LPC kuyruundaki veriler ablon olarak kaydedilebilmektedir. rnein Sfr ablonlar kaydedilirken metin kutusuna 0_, Bir ablonlar kaydedilirken ise 1_ yazlmas yeterlidir. ablonlar sistem tarafndan otomatik olarak uygulama dizinine kaydedilmektedir. ablonlarn buradan olmas gereken \Pattern dizinine, kullanc tarafndan tanmas gerekmektedir. Dorudan ablon dizinine kayt ileminin yaplmamasnn nedeni, baarl ablonlarn zerine yanllkla kaydetme ilemi yaplmasn nlemektir. Baarl ablonlarn silinmesi, sistem baarmn drecektir.

55 5.3.5. Karlatrma ve eletirmenin gerekletirilmesi Bu ilemde; LPC kuyruundan LPC ile kodlanm ifadeler srasyla alnarak, uygulama alrken yklenen tm ablonlarla karlatrlmaktadr. Karlatrma ilemi hesaplanan LPC parametreleri zerinde DTW algoritmasnn uygulanmas ile gerekletirilmektedir. Bu ilem esnasnda, LPCi; LPC ile kodlanm ifade ve LPCj; sradaki LPC ablonu, karlatrma yapan fonksiyona gnderilmektedir. Bu fonksiyonda LPCi ve LPCj bir biri zerinde zamana gre yaylarak LPCinin, LPCjye ne ekilde benzedii ve bu benzemenin maliyeti hesaplanmaktadr. Bu maliyet deeri, fonksiyonun geri dn deeridir. Tm ablonlarla bu ekilde benzeme maliyeti adm adm hesaplanarak, en dk ve en yksek benzerlik maliyetleri her bir admda saklanmaktadr. Tm ablonlarla karlatrma tamamlandktan sonra, en dk ve en yksek benzerlik maliyetleri yardmyla en yakn ablona olan yaknlama oran yzde olarak hesaplanmaktadr. En yakn ablon iin hesplanan bu yaknlama oran, tanmlanan eik deerin stnde ise eletirme gerekletirilmektedir. Eleme var ise, eleen kelime iin ABLON_D Z N_ET KET , eleme yok ise eletirme gerekletirilemedii bilgisi; yani -1, Ana i paracna ilevin gerekletirilmesi iin iletilmektedir. 5.3.6. levin gerekletirilmesi levin gerekletirilmesi, gelitirilen ses tanma sistemindeki son ilem olarak yer almaktadr. Bu ilemde alglanan kelime, karlatrma ve eletirme aamasnda iletilen ABLON_D Z N_ET KET yardmyla alnarak ileve dntrlmektedir. Alglanan son kelime sol stte, Kayt lemleri balkl grup kutusu altnda bulunan kk pano zerine yazlmaktadr. Ayn zamanda, bu kk pano yannda bulunan, byk panonun sonuna eklenerek, alglanan rakamlarn bir serisi grntlenmektedir. Komutlara zel olarak ise; Sil komutu geldiinde, byk panoya yazlan en son rakam buradan silinmekte; ptal komutu geldiinde ise, byk panoya yazlm rakam serisi var ise, bu rakam serisi tamamyle silinmektedir. A, Kapat ve Ara komutlar iin

56 ise sadece sol stteki kk panoya komut yazdrlmakta, ayrca bir ilem yrtlmemektedir. Ana i paracna sradaki ilev olarak -1 geldiinde, en son seslendirilen komutun, sistemde kaytl ablonlara benzemedii; yani komutun anlalmadn ifade etmek zere sol stteki kk panoya ve hemen yanndaki byk panonun sonuna ? yazdrlmaktadr.

57

6. SONU VE NER LER

Bir nceki blmde gelitirilen ses tanma sisteminin modeli verildi, sonrasnda alma prensibi aktarld, gelitirilen ses tanma sisteminde sre baznda uygulanan teknikler ve sistem iindeki yerleri aktarld. Bu blmde ise, gelitirilen ses tanma sistemi deerlendirilmitir. Gelitirilen ses tanma sisteminin sonularna ve bu sonulara bal olarak ileriki almalar iin nerilere yer verilmitir.

6.1 Sonu Bu alma ile, kiiye baml szck tabanl bir komut kontrol sistemi gelitirilmitir. Gelitirilen uygulamann program kodlar ve altrlabilir versiyonu, CD ortamnda Ek-2 olarak verilmitir. Gelitirme esnasnda, ifade tesbiti iin sfr gei says ve RMS deeri hesab, pencereleme iin Hamming pencereleme fonksiyonu, kodlayc olarak LPC kullanlm, karlatrma iin ise LPC parametreleri zerinde DTW algoritmas uygulanmtr. Yaplan aratrmalar ve almalar dorultusunda baarmn zamana bal olarak deikenlik gsterdii saptanmtr. Bunun en byk nedeninin ise sesin, bir seslendirilii ile bir dier seslendirilii arasnda, ayn kii seslendirse dahi oka farkllk gstermesi olarak grlmtr. Dier bir nedenin ise, ortam grlts olduu almalar srasnda tespit edilmitir. alma sonrasnda varlan bir dier sonu ise, alma kapsamnda ngrlen LPC parametreleri zerinde DTW uygulanmas ile kelimelerin en yakn olannn tespit edilmesi tekniinin, kelime tanma konusunda tek bana ok baarl olmamasdr. Varlan bu sonular nda, nerilen yaklamlar, sonraki ksmda neriler bal altnda verilmitir. Bu alma sonucunda, mevcut tekniklerden yararlanmak suretiyle ses tanma sistemi oluturulmu ve elde edilen bu sistem, bu konuda alma yapacak kiilere bu

58 tekniklerin uygulama iinde kullanm ve ilikilendirilmesi hakknda rnek

oluturacaktr. Gelitirilen bu sistemin baarmnn arttrlmas ile Trke uyumlu telefon otomasyon uygulamalarnda, fiziksel engelli kiilerin bilgisayar kullanmlarnn salanmasnda, ara srclerinin belli ilevleri sesli komutlarla gerekletirmelerinde ve retim sahasndan veri toplama amacyla kullanm salanabilir.

6.2 neriler Sesin, zaman iinde seslendirilmesinde grlen deikenlik nedeniyle, en yakn ablonun bulunmas ve doru kelimenin her zaman tespit edilmesi pek mmkn olmamaktadr. Bu nedenle nerilebilecek yaklam, farkl zamanlarda kaytlar sonras ortaya kan ablonlardan, ortalama bir ablon hesaplanmas ve tanma iin bu ablonun kullanlmas baarm arttrabilir. Sadece LPC parametreleri zerinde DTW uygulanmas yerine, kaydedilmi sesin farkl tekniklerle baka zellikleri de karlarak LPCye ek parametreler olarak saklanabilir ve bu zelliklerin tmnn zerinde DTW algoritmasnn uygulanmas ile baarm arttrlabilir. Gerek kodlayc, gerekse karlatrma ve eletirme iin farkl tekniklerin kullanm ile daha baarl sonular alnabilir. Bu tekniklerin karlatrlmas yaplarak Trke Konuma Dili iin kullanabilecek uygun tekniklerin karm yaplabilir.

59 KAYNAKLAR Cole, R. A., Mariani, J., Uszkoreit, H., Zaenen, A., and Zue, V. (1995) Survey of the State of the Art in Human Language Technology, Varile, G., and Zampolli, A., http://cslu.cse.ogi.edu/HLTsurvey/HLTsurvey.html (21.11.1995). Coleman, J. (2005) Introducing Speech and Language Producing, Cambridge University Press, Cambridge, 301s. Cook, S. (2002) Speech Recognition HOWTO, http://www.gear21.com/speech/index. html (19.04.2002). Hagan, M. T., Demuth, H. B., and Beale, M. H. (1995) Neural Network Design, Brooks Cole, PWS Publishing, Boston, 736s. Hermansky, H. (1990) Perceptual Linear Predictive (PLP) Analysis of Speech. Journal Of Acoustic Society of America, 87: (4) 1738-1752. Huang, X., Acero, A., and Hon, H. W. (2001) Spoken Language Processing: A Guide to Theory, Algorithm and System Development (1st Ed.), Prentice Hall PTR, New Jersey, 980s. Ibarra, O. M., and Curatelli, F. (2000) A Brief Introduction to Speech Analysis and Recognition, An Internet Tutorial., http://www.mor.itesm.mx/~omayora/Tutorial/ tutorial.html (05.05.2000) Jurafsky, D., and Martin, J. H. (2000) Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics and Speech Recognition (1st Ed.), Prentice Hall, New Jersey, 934s. Kale, K. R. (2002) Dynamic Time Warping, http://www.cnel.ufl.edu/~kkale/dtw.html (04.04.2002) Rabiner, L., and Juang, B. (1993) Fundamentals of Speech Recognition, Prentice Hall, New Jersey, 496s. Rabiner, L., and Schafer, R. W. (1978) Digital Processing of Speech Signals, Prentice Hall PTR, 512s. Robinson, T. (1998) Speech Analysis Tutorial, http://svr-www.eng.cam.ac.uk/~ajr/ SpeechAnalysis/ (23.01.1998) Smith, J. O. (2003) Mathematics of The Discrete Fourier Transform with Audio Applications, http://ccrma.stanford.edu/~jos/mdft/Alias_Operator.html (03.01.2006) Smith, S. W. (1999) The Scientists and Engineers Guide to Digital Signal Processing (2nd Ed.), California Technical Publishing, San Diego, 650s.

60 EKLER

61 Ek-1 Mcrosoft Dalga biimi Ses Servisleri Uygulama Programlama Ara yz (Mcrosoft Waveform Audio Services API) inde Tanml Ses Kayd in Kullanlan Yaplar Ve Fonksiyonlar Aada Microsoft dalga biimi ses servisleri uygulama programlama ara yznde tanml ses kayt ilemi iin kullanlan yaplar verilmektedir. WAVEFORMATEX: Bu yap dalga biimi ses verisinin biimini

tanmlamaktadr. Dalga biimi ses veri biiminde genel olan bilgi bu yapya dahil edilmitir. Bu yap, yeleri ile birlikte aadaki ekilde tanmlanmaktadr. typedef struct { WORD wFormatTag; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesPerSec; WORD nBlockAlign; WORD wBitsPerSample; WORD cbSize; } WAVEFORMATEX; Bu yapya ait yeler, srasyla u ekilde verilmektedir. wFormatTag: Bu ye, ses biiminin tipini belirtmektedir. cChannels: Bu ye, ses verisindeki kanal saysn belirtmektedir. nSamplesPerSec: Saniyedeki rnek says (Hertz) cinsinden rnekleme

orann belirtmektedir. Ayn yap iin wFormatTag yesi WAVEFORMAT_PCM olarak belirlenmi ise bu ye iin genel deerler 8.0 kHz, 11.025 kHz, 22.05 kHz ve 44.1 kHz olabilmektedir. Dier PCM d biimler iin, bu yenin deeri, bu biim taksnn reticisinin belirledii zelliklere gre hesaplanmas gerekmektedir. nAvgBytesPerSec: Verilen biim iin, saniyedeki byte cinsinden gerekli

ortalama veri transfer orann belirtmektedir. Ayn yap iin wFormatTag yesi WAVEFORMAT_PCM olarak belirlenmi ise bu ye iin deer nSamplesPerSec

62 ve nBlockAlign arpm olmas gerekmektedir. Dier PCM d biimler iin, bu yenin deeri, bu biim taksnn reticisinin belirledii zelliklere gre hesaplanmas gerekmektedir. Yrtme ve kaydetme yazlmlar, bu ye yardm ile tampon boyutlarn deerlendirmektedirler. nBlockAlign: Bu ye, byte cinsinden blok yerleimini belirtmektedir. Blok

yerleimi, wFormatTag biim tipi iin, verinin en kk birim deerini ifade etmektedir. Ayn yap iin wFormatTag yesi WAVEFORMAT_PCM olarak belirlenmi ise bu ye iin deer nChannels ve wBitsPerSample arpmnn, bytetaki bit saysna yani 8e blm olmas gerekmektedir. Dier PCM d biimler iin, bu yenin deeri, bu biim taksnn reticisinin belirledii zelliklere gre hesaplanmas gerekmektedir. wBitsPerSample: Ayn yap iin verilen wFormatTag biim tipinin

saniyedeki rnek saysn belirtmektedir. Ayn yap iin wFormatTag yesi WAVEFORMAT_PCM olarak belirlenmi ise bu ye iin deer 8 ya da 16 olarak verilebilmektedir. Dier PCM d biimler iin, bu yenin deeri, bu biim taksnn reticisinin belirledii zelliklere gre hesaplanmas gerekmektedir. Baz sktrma emalar wBitsPerSample yesi iin bir deer tanmlayamamaktadrlar. Bu gibi durumlarda wBitsPerSample deerinin 0 olarak verilmesi gerekmektedir. cbSize: Bu ye, PCM d dier biimler iin WAVEFORMATEX yapsnn

sonuna eklenmi ilave biim bilgisi iin byte olarak boyutunu belirtmektedir. Ayn yap iindeki wFormatTag iin ek zelliklere ihtiya yoksa ye deerinin 0 olarak verilmesi gerekmektedir. WAVEHDR: Bu yap dalga biimi ses tampon belleinin baln tanmlamaktadr. tanmlanmaktadr. typedef struct { LPSTR lpData; DWORD dwBufferLength; DWORD dwBytesRecorded; DWORD dwUser; Bu yap, yeleri ile birlikte aadaki ekilde

63 DWORD dwFlags; DWORD dwLoops; struct wavehdr_tag * lpNext; DWORD reserved; } WAVEHDR; Bu yapya ait yeler, srasyla u ekilde verilmektedir. lpData: Dalga biimi tampon belleinin adres bilgisini belirtmektedir. dwBufferLength: Tampon bellek iin, byte olarak bellek uzunluunu

belirtmektedir. dwBytesRecorded: Tampon bellek, yani WAVEHEADER kayt iin

kullanld durumda, bu ye tampon bellek iinde byte cinsinden ne kadarlk ksmn dolu olduunu belirtmektedir. dwUser: Kullanc iin veri alann belirtmektedir. dwFlags: Tampon bellek hakknda bilgi salayan bayrak alan

belirtmektedir. Bu ye iin tanml deerle: WHDR_BEGINLOOP (yrtme tampon belleklerinde kullanlmaktadr ve bir evrime ait ilk tampon bellek olduunu bildirmektedir.), WHDR_DONE (cihaz srcs tarafndan, tampon bellek ile iinin bittiini ve uygulamaya geri dndrdn belirtmek zere ayarlanmaktadr.), WVHDR_ENDLOOP (yrtme tampon belleklerinde kullanlmaktadr ve bir evrime ait son tampon bellek olduunu bildirmektedir.), WVHDR_INQUEUE (sistem tarafndan, tampon bellein yrtme amacyla kuyrua eklendiini belirtmek amacyla ayarlanmaktadr.), WVHD_PREPARED (sistem tarafndan tampon bellein hazrlanma ileminin yapldn belirtmek amacyla ayarlanmaktadr.) olarak tanmlanmaktadr. dwLoops: Bu ye yrtme bellekleri tarafndan kullanlmaktadr ve evrimin

ka kere yrtleceini belirtmektedir. wavehdr_tag: Sistem tarafndan ayrlmtr. Reserved: Sistem tarafndan ayrlmtr.

64 WAVEINCAPS: Bu yap dalga biimi ses kayt cihaznn yeteneklerini tanmlamaktadr. tanmlanmaktadr. typedef struct { WORD wMid; WORD wPid; MMVERSION vDriverVersion; CHAR szPname[MAXPNAMELEN]; DWORD dwFormats; WORD wChannels; WORD wReserved1; } WAVEINCAPS; Bu yapya ait yeler, srasyla u ekilde verilmektedir. wMid: Bu ye, ses kayt cihaznn, cihaz srcs iin retici kimliini Bu yap, yeleri ile birlikte aadaki ekilde

belirtmektedir. retici kimlikleri, mmreg.h dosyasnda tanmlanmaktadr. wPid: Bu ye, ses kayt cihaznn, cihaz srcs iin rn kimliini

belirtmektedir. rn kimlikleri, mmreg.h dosyasnda tanmlanmaktadr. vDriverVersion: Bu ye, ses kayt cihaznn cihaz srcsnn versiyon

numarasn belirtmektedir. Yksek deerlikli byte, ana versiyon numarasn, dk deerlikli byte yan versiyon numarasn vermektedir. szPname: Bu ye rn ismini belirtmektedir. dwFormats: 8-bit), Desteklenen standart biimlerinin (11.025 bir kHz, kombinasyonunu mono, 16-bit),

belirtmektedir. Desteklenen biimler ise WAVE_FORMAT_1M08 (11.025 kHz, mono, WAVE_FORMAT_1M16 WAVE_FORMAT_1S08 (11.025 kHz, stereo, 8-bit), WAVE_FORMAT_1S16 (11.025 kHz, stereo, 16-bit), AVE_FORMAT_2M08 (22.05 kHz, mono, 8-bit), WAVE_FORMAT_2M16 (22.05 kHz, mono, 16-bit), WAVE_FORMAT_2S08 (22.05 kHz, stereo, 8-bit), WAVE_FORMAT_2S16 (22.05 kHz, stereo, 16-bit), WAVE_FORMAT_4M08 (44.1 kHz, mono, 8-bit), WAVE_FORMAT_4M16

65 (44.1 kHz, mono, 16-bit), WAVE_FORMAT_4S08 (44.1 kHz, stereo, 8-bit), WAVE_FORMAT_4S16 (44.1 kHz, stereo, 16-bit) olarak verilmektedir. wChannels: Ses kayt cihaznn, mono (1), yoksa stereo (2) kayd m

desteklediini gsteren sayy belirtmektedir. wReserved1: Doldurmay belirtmektedir.

Aada Microsoft dalga biimi ses servisleri uygulama programlama ara yznde tanml ses kayt ilemi iin kullanlan fonksiyonlar verilmektedir. waveInGetNumDevs(): Bu fonksiyon sistemde bulunan dalga biimi ses kayt cihazlarnn saysn geri dndrmektedir. Sistemde kaytl hibir ses kayt cihaz yok ise fonksiyon dn deeri 0 olmaktadr. waveInOpen(): Belirtilen ses kayt cihaznn kayt ilemlerini yapabilmek amacyla bir tipini oluturmaktadr. Bir baka deyile seilen kayt cihazn, kayt ilemlerini yapabilmek amacyla aar. waveInPrepareHeader(): Kayt iin sisteme gnderilen tampon bellek blgesinin hazrlanmas ilemini gerekletirmektedir. Toplam parametre almaktadr. lk parametre ses kayt cihaznn tantcs olup, ikinci parametre hazrl yaplacak tampon bellek blgesinin tanmn veren WAVEHDR yapsnn adresi olmaktadr. En son parametre ise, ikinci parametre olarak adresi verilen WAVEHDR nesnesinin byte cinsinden toplam uzunluudur. Bu fonksiyon drt farkl sonu deeri dndrmektedir bunlar ise yaplan ilem baarl, yani bir hata yoksa MMSYSERR_NOERROR, verilen cihaz tantcs geerli bir cihaz tantcs deil ise MMSYSERR_INVALHANDLE, cihaz srcs mevcut deil ise MMSYSERR_NODRIVER ve son olarak ta eer bellek ayrm yaplamyor ise MMSYSERR_NOMEM sonucunu dndrmektedir. waveInUnprepareHeader(): Bu fonksiyon, daha nce waveInPrepareHeader fonksiyonunun arlmas ile ayrm yaplan bellek blgesini temizler. Bu fonksiyonda adet parametre almaktadr. Bu parametrelerden ilki, ses kayt cihaznn tantcs; ikincisi, bellek blgesi temizlenecek WAVEHDR yapsnn adresi ve son parametre ise ikinci parametre olarak adresi verilen WAVEHDR

66 yapsnn byte cinsinden boyutudur. Dn deerleri ise, eer yaplan ilem baarl, yani bir hata yoksa MMSYSERR_NOERROR, verilen cihaz tantcs geerli bir cihaz tantcs deil ise MMSYSERR_INVALHANDLE, cihaz srcs mevcut deil ise MMSYSERR_NODRIVER, eer bellek ayrm yaplamyor ise MMSYSERR_NOMEM ve son olarak ta eer WAVEHDR yapsnn adresini tutan ve ikinci parametre olarak verilen adresteki bellek blgesi halen kayt kuyruunda ise WAVERR_STILLPLAYING sonucunu dndrmektedir. waveInClose(): Verilen ses kayt cihazn, kapatr. Ses kayt cihaznn tantcsn gsteren tek bir parametre almaktadr. Sonu olarak ise be farkl sonu deeri dndrebilmektedir. Bunlar: eer yaplan ilem baarl, yani bir hata yoksa MMSYSERR_NOERROR, verilen cihaz tantcs geerli bir cihaz tantcs deil ise MMSYSERR_INVALHANDLE, eer cihaz bellek srcs ayrm mevcut deil ise ise yaplamyor

MMSYSERR_NODRIVER,

MMSYSERR_NOMEM ve son olarak ta eer kayt kuyruunda halen tampon var ise WAVERR_STILLPLAYING sonucunu dndrmektedir. waveInReset(): Bu fonksiyon, verilen ses kayt cihazndaki kayt ilemini durdurulmasn ve u anki pozisyonunun sfra ekilmesini salamaktadr. Bu fonksiyonun arlmas sonucu, kayt iin bekleyen tm tampon bellek blgeleri tamamland olarak iaretlenmekte ve uygulamaya geri dndrlmektedir. Ses kayt cihaznn tantcsn tek parametre olarak alrken, drt farkl dn deerinden birini sonu olarak dndrmektedir. Dnebilecek sonu deerleri: yaplan ilem baarl, yani bir hata yoksa MMSYSERR_NOERROR; verilen cihaz tantcs geerli bir cihaz cihaz srcs tantcs mevcut deil deil ise ise

MMSYSERR_INVALHANDLE;

MMSYSERR_NODRIVER ve son olarak ta eer bellek ayrm yaplamyor ise MMSYSERR_NOMEM sonularndan biri olabilmektedir. waveInStart(): Verilen ses kayt cihaznda ses kayt ilemini balatma, bu fonksiyon arlarak yaplmaktadr. Bu fonksiyon ses kayt ilemi yaplacak ses kayt cihaznn tantcsn tek parametre olarak alr ve sonu olarak drt farkl dn deerinden birini dndrmektedir. Bu sonu deerleri, eer yaplan ilem baarl ise MMSYSERR_NOERROR; verilen cihaz tantcs geerli bir cihaz

67 tantcs deil ise MMSYSERR_INVALHANDLE; cihaz srcs mevcut deil ise MMSYSERR_NODRIVER ve son olarak ta eer bellek ayrm yaplamyor ise MMSYSERR_NOMEM sonularndan biri olabilmektedir. waveInStop(): Bu fonksiyon, ses kayt ilemini durdurmaktadr. Yine tek parametre olarak ses kayt cihaznn tantcsn alr, sonu olarak drt farkl dn deerinden birinin dndrmektedir. Bu sonu deerleri, ilem baarl olarak gereklemi ise MMSYSERR_NOERROR; verilen cihaz tantcs geerli bir cihaz tantcs deil ise MMSYSERR_INVALHANDLE; cihaz srcs mevcut deil ise MMSYSERR_NODRIVER ve son olarak ta eer bellek ayrm yaplamyor ise MMSYSERR_NOMEM sonularndan biri olabilmektedir. waveInAddBuffer(): Verilen ses kayt cihazna, ses kayt ilemi yaplmas amacyla bir bellek tampon blgesinin gnderilmesi ilemi bu fonksiyonun arlmas ile gerekletirmektedir. Bu fonksiyon toplam ilki ses kayt cihaznn tantcs, ikincisi gnderilecek tampon bellek blgesini tanmn yapan WAVEHDR yapsnn adresi ve sonuncusu da adresi ikinci parametre olarak gnderilen WAVEHDR yapsnn byte cinsinden toplam boyutu olmak zere toplam adet parametre almaktadr. Dn deeri olarak, ilem baarl olarak gereklemi ise MMSYSERR_NOERROR; verilen cihaz tantcs geerli bir cihaz tantcs deil ise MMSYSERR_INVALHANDLE; cihaz srcs mevcut deil ise MMSYSERR_NODRIVER, eer bellek ayrm yaplamyor ise MMSYSERR_NOMEM ve son olarak ta ikinci parametre olarak adresi verilen WAVEHDR yapsnn ise tanmlad tampon bellek blgesinin sonularndan ayrm biri gerekletirilemiyor olabilmektedir. waveInGetDevCaps(): Bu fonksiyon ile belirtilen ses kayt cihaznn ses kayt yetenekleri alnabilmektedir. Toplam adet parametre almaktadr. Bu parametrelerden ilki, ses kayt cihaznn tanmlaycs olup, bir cihaz tantcs olabilecei gibi, ak bir ses kayt cihaznn tantcs da olabilmektedir. kinci parametre kayt cihaznn kayt yetenekleri bilgisiyle doldurulacak WAVEINCAPS yapsnn adresi olup, son parametre ise, ikinci parametre olarak adresi verilen WAVEINCAPS yapsnn byte cinsinden toplam boyutudur. Bu fonksiyon drt farkl dn deerinden birini sonu olarak dndrmektedir. Bu

WAVERR_UNPREPARED

68 sonu deerleri, ilem baarl olarak gereklemi ise MMSYSERR_NOERROR; verilen cihaz tantcs geerli snrlarda deil ise MMSYSERR_BADDEVICEID; cihaz srcs mevcut deil ise MMSYSERR_NODRIVER ve son olarak ta eer bellek ayrm yaplamyor ise MMSYSERR_NOMEM sonularndan biri olabilmektedir.

69 ZGEM Murat Kemal BAYGN, 25 Temmuz 1975 tarihinde Balkesirde domutur. Evli ve bir kz ocuu babasdr. Eyll 1986 Haziran 1993 tarihleri arasnda Balkesir Srr Yrcal Anadolu Lisesinde hazrlk, ortaokul ve lise eitimine devam etmitir. Ekim 1993te, stanbul niversitesi Mhendislik Fakltesi Bilgisayar Bilimleri Mhendisliinde Lisans eitimine balam ve Temmuz 1997de Lisans eitimini tamamlamtr. Ekim 2000den bu yana Egekom Ltd ve Egecom Ltd. bnyesinde Yazlm Gelitirme zerine eitli grevleri stlenmitir. u anda halen Egecom Ltd. ti.nde Kdemli Yazlm Gelitirme ve Ar-Ge Uzman olarak grevini srdrmektedir.

You might also like