DIPLOMATERV. Siketek beszédértését segítő taktilis kijelző készítéséhez zajtűrő beszédfelismerő algoritmusok áttekintése, fejlesztése



Hasonló dokumentumok
Automatikus beszédfelismerés Mérési Segédlet

Beszédfelismerés és szintézis tételek:

FIR és IIR szűrők tervezése digitális jelfeldolgozás területén

A digitális földfelszíni mûsorszórás forráskódolási és csatornakódolási eljárásai

NYOMÁSOS ÖNTÉS KÖZBEN ÉBREDŐ NYOMÁSVISZONYOK MÉRÉTECHNOLÓGIAI TERVEZÉSE DEVELOPMENT OF CAVITY PRESSURE MEASUREMENT FOR HIGH PRESURE DIE CASTING

Következõ: Lineáris rendszerek jellemzõi és vizsgálatuk. Jelfeldolgozás. Lineáris rendszerek jellemzõi és vizsgálatuk

A Margit híd pillérszobrának 3D-s digitális alakzatrekonstrukciója Nagy Zoltán 1 Túri Zoltán 2

Iránymérés adaptív antennarendszerrel

Multimédia az audiovizuális beszédfeldolgozásban. dr. Czap László

Akusztikus távolság meghatározás a vezeték nélküli szenzor hálózatokban. Előadó: Kincses Zoltán

6. AZ EREDMÉNYEK ÉRTELMEZÉSE

mobil rádióhálózatokban

A STRATÉGIAALKOTÁS FOLYAMATA

A médiatechnológia alapjai

FIATAL MŰSZAKIAK TUDOMÁNYOS ÜLÉSSZAKA

11. Orthogonal Frequency Division Multiplexing ( OFDM)

HÍRADÁSTECHNIKA SZÖVETKEZET

A VERBIDENT-SD-2 izolált szavas gépi beszédfelismerő

Kiegészítés a Párbeszédes Informatikai Rendszerek tantárgyhoz

Ergonómia előadás. Színek

MŰSZAKI TUDOMÁNY AZ ÉSZAK-ALFÖLDI RÉGIÓBAN 2010

Külső fül: Középfül: Belső fül:

Budapesti Műszaki és Gazdaságtudományi Egyetem Építőmérnöki Kar

AMIRŐL A RADARTÉRKÉP MESÉL

RONCSOLÁSMENTES VIZSGÁLATTECHNIKA

Vibrációs ártalmak vizsgálata és megelőzése

CSERNELY KÖZSÉG DEMOGRÁFIAI HELYZETE

AZ AKUSZTIKUS ÉS VIZUÁLIS JEL ASZINKRONITÁSA A BESZÉDBEN

AutoN cr. Automatikus Kihajlási Hossz számítás AxisVM-ben. elméleti háttér és szemléltető példák február

NEURONHÁLÓS HANGTÖMÖRÍTÉS. Áfra Attila Tamás

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

Napfotók (webkamerás felvételek) képfeldolgozása

REZGÉSDIAGNOSZTIKA ALAPJAI

Beszédfelismerés, beszédmegértés

CSIMA BEÁTA. Reintegrációs tevékenység a büntetés-végrehajtásban. Reintegration activities in the Hungarian penitentiary service

3.1. Alapelvek. Miskolci Egyetem, Gyártástudományi Intézet, Prof. Dr. Dudás Illés

2. MÉRÉSELMÉLETI ISMERETEK

Szakmai ajánlás. az egységes villamos energia feszültség minőség monitoring rendszer kialakítására

XV. FIATAL MŰSZAKIAK TUDOMÁNYOS ÜLÉSSZAKA

HALLGATÓI KÉRDŐÍV ÉS TESZT ÉRTÉKELÉSE

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

A szupraszegmentális jellemzők szerepe és felhasználása a gépi beszédfelismerésben. Szaszák György

VÍZBIZONSÁGI TERV SZEREPE AZ IVÓVÍZELLÁTÁS BIZTONSÁGI RENDSZERÉBEN

1. Bevezetés. 2. Anyag és módszer

Rod Eye Digital User Manual

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

Terület- és térségmarketing. /Elméleti jegyzet/

Tárgyszavak: mobil marketing; marketing-mix; marketingkampány; vevőkapcsolatok ápolása.

A HONVÉDELMI TÁRCA KÖLTSÉGVETÉSE A SZÁMOK TÜKRÉBEN ( ) MINISTRY OF NATIONAL DEFENCE S BUDGET IN THE MIRROR OF THE NUMBERS ( )

Smart City Coaching Multi-stakeholder training concepts for the city of the future

A DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL. Kuki Attila Debreceni Egyetem, Informatikai Kar. Összefoglaló

Az ismételt igénybevétel hatása. A kifáradás jelensége

Mérési eljárások kidolgozása látók és látássérültek lokalizációs képességeinek összehasonlítására

Jelalakvizsgálat oszcilloszkóppal

Erőművi turbina-generátor gépcsoportok rezgésdiagnosztikája

SAR AUTOFÓKUSZ ALGORITMUSOK VIZSGÁLATA ÉS GYAKORLATI ALKALMAZÁSA 2

A kezelési egységek szerepe a precíziós növénytermesztésben The role of treatment zones in precision farming

Minõségbiztosítás és adatminõség 1

Nyugat-magyarországi Egyetem Geoinformatikai Kara. Prof. Dr. Závoti József. Matematika III. 6. MA3-6 modul. A statisztika alapfogalmai

Angol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel

A rosszindulatú daganatos halálozás változása 1975 és 2001 között Magyarországon

Searching in an Unsorted Database

A gimnázium és az általános iskola Környezeti Nevelési Programja

A projekt eredetileg kért időtartama: 2002 február december 31. Az időtartam meghosszabbításra került december 31-ig.

MPEG-4 modell alkalmazása szájmozgás megjelenítésére

A CAN mint ipari kommunikációs protokoll CAN as industrial communication protocol

Irányítástechnika. II. rész. Dr. Turóczi Antal

VI. Magyar Földrajzi Konferencia

Rod Eye Basic User Manual

vonalsugárzók a kiváló beszéd érthetőségért

KÉPI INFORMÁCIÓK KEZELHETŐSÉGE. Forczek Erzsébet SZTE ÁOK Orvosi Informatikai Intézet. Összefoglaló

4. Kuráth Gabriella Németh Péter: A DPR eredményeinek hasznosítása az alumni rendszerek építésekor a Pécsi Tudományegyetem példáján

KÜLSÕ CÉGEK TÁMOGATÁSÁVAL MEGVALÓSÍTOTT, 4GL ÉS CASE ESZKÖZÖKRE ALAPOZOTT KÉPZÉS A SZÉCHENYI ISTVÁN FÕISKOLÁN

INTELLIGENT ENERGY EUROPE PROGRAMME BUILD UP SKILLS TRAINBUD. Quality label system

DR. SZABÓ LÁSZLÓ 1 DOBOS GÁBOR 2

Újraszabni Európa egészségügyét II. rész

HUMÁN ÉRDEKLŐDÉSŰ TANULÓK AKTIVITÁSÁNAK FOKOZÁSA AZ ÓRÁKON

Dekonvolúció, Spike dekonvolúció. Konvolúciós föld model

Rendszerterv. 1. Funkcionális terv Feladat leírása:

S7021 ADATGYŰJTŐ. 2-csatornás adatgyűjtő számláló és bináris bemenettel. Kezelési leírás

EWM Taurus 301 típusú hegesztőgép alkalmazástechnikai vizsgálata

Új távgépíró üzemmód, a PSK31

Tanulási stílus kérdőív

ERKI KATALIN* A felsőoktatás, mint versenypiac elemzése a Porter-modell alapján

A MIKROFÚRÓ SZERSZÁMOK ÁLLAPOTFELÜGYELETE

KFI TÜKÖR 1. Az IKT szektor helyzete

Magyarkúti József. Anyagvizsgálatok. A követelménymodul megnevezése: Mérőtermi feladatok

Alapsáv és szélessáv. Számítógépes Hálózatok Amplitúdó-moduláció. Szélessáv

SZOLGÁLTATÁSMARKETING. 2. segédanyag

Szójegyzék/műszaki lexikon

1002D STRUKTÚRÁJÚ, KRITIKUS ÜZEMBIZTONSÁGÚ RENDSZER (SCS 1 ) ELEMZÉSE DISZKRÉT-DISZKRÉT MARKOV MODELLEL

GYÁRTÓ VÁLLALAT VEVŐI AUDITJA

Fiáth Attila Nagy Balázs Tóth Péter Dóczi Szilvia Dinya Mariann

Antreter Ferenc. Termelési-logisztikai rendszerek tervezése és teljesítményének mérése

A szórakoztató, az irodalmi és a mûvészeti alkotások elszámolása a nemzeti számlákban

5 Egyéb alkalmazások. 5.1 Akkumulátorok töltése és kivizsgálása Akkumulátor típusok

Az 5-2. ábra két folyamatos jel (A és B) azonos gyakoriságú mintavételezését mutatja ábra

Reiczigel Jenő,

A SZEMCSEALAK ALAPJÁN TÖRTÉNŐ SZÉTVÁLASZTÁS JELENTŐSÉGE FÉMTARTALMÚ HULLADÉKOK FELDOLGOZÁSA SORÁN

Átírás:

DIPLOMATERV Siketek beszédértését segítő taktilis kijelző készítéséhez zajtűrő beszédfelismerő algoritmusok áttekintése, fejlesztése Kovács Annamária Témavezető: Tihanyi Attila Pázmány Péter Katolikus Egyetem Információs Technológia Kar 2012.

NYILATKOZAT Alulírott Kovács Annamária, a Pázmány Péter Katolikus Egyetem Információs Technológiai Karának hallgatója kijelentem, hogy ezt a diplomatervet meg nem engedett segítség nélkül, saját magam készítettem, és a diplomamunkában csak a megadott forrásokat használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelműen a forrás megadásával megjelöltem. Ezt a Diplomamunkát más szakon még nem nyújtottam be. 3

4

Tartalomjegyzék 1. Összefoglalás. 8 2. Abstract.. 9 3. Bevezetés, célkitűzések.... 10 4. A tapintás szerepe a kommunikációban, a taktilis kijelző alapelve, működése 12 5. Digitális beszédfeldolgozás. 14 5.1. A beszéd-zaj elkülönítés és a beszédfelismerés technológiai alapjai... 14 5.2. Beszédfelismerési módszerek bemutatása...... 15 5.2.1. A beszéd energiaszinteken alapuló vizsgálata... 15 5.2.2. Pitch detekció. 17 5.2.3. Kepsztrum.. 17 5.2.4. Zero-crossing. 18 5.2.5. Mel-frequency cepstrum.... 18 5.2.6. PARCOR csőmodell.. 22 5.2.7. Az ETSI AMR (Adaptive Multi Rate) Speech Coder.... 22 5.2.8. A beszédfelismerés egy lehetséges folyamata, a rejtett Markov modell... 23 5.2.9. Beszédaktivitás felismerése zajos környezetben... 24 5

5.2.10. Robosztus VAD algoritmusok.. 25 5.2.11. Fonéma felismerés mesterséges neurális hálóval... 26 5.2.12. Előfeldolgozás.. 27 5.2.13. Az entrópia használata. 27 6. A megfelelő megoldás kiválasztása. 29 6.1. Dinamikus idővetemítés...... 29 6.2. Zárt szótáras rendszer beszélőazonosítással.... 33 6.3. Rejtett Markov modellel megvalósított megoldás...... 36 7. Első tesztkörnyezet és az azzal elért eredmények... 38 7.1. Eredmények a dinamikus idővetemítés algoritmusával...... 39 7.2. Zárt szótáras felismerés beszélőazonosítással elért eredmények... 41 7.3. Eredmények rejtett Markov modellel...... 42 8. Továbbtesztelt algoritmus, újabb feladatok. 43 8.1. Az új tesztkörnyezet..... 44 8.2. A tesztelt kifejezések.... 45 8.3. Rejtett Markov modellt alkalmazó algoritmussal elért eredmények...... 46 8.4. Az eredmények táblázatos formában és grafikusan ábrázolva.... 47 8.5. A Voice Activity Detection-nel elért eredmények... 51 6

9. Következtetések... 53 10. Továbbfejlesztési kérdések... 54 11. Összefoglalás..54 12. Köszönetnyilvánítás... 55 Irodalomjegyzék.. 56 Ábrajegyzék. 58 1. sz. Melléklet. 61 2.sz. Melléklet.. 63 7

1. Összefoglalás Jelen diplomaterv a siketek beszédértését segítő taktilis kijelző projekt részeként a beszéddetektálási eljárás során a beszéd és a zaj elkülönítésével, a beszéd felismerésével foglalkozik. A fejlesztés során több tudományág kapcsolódik össze, ilyen a neurobiológia, a beszédfelismerés, jelfeldolgozás és az informatika, ezek képezik alapját munkámnak. A feladat alapgondolata a következő: az emberi beszédet és a vele beérkező többi hangot alakítsuk át digitális jellé, majd szűrjük ki a beszédet tartalmazó szakaszokat a beszédet nem tartalmazó részektől és ezt a taktilis kijelzőn jelezzük a felhasználónak rezgés formájában. A feladat első részeként a szakirodalomban kutatómunkát végeztem, mely során mélyebben megismerkedtem a digitális beszédfeldolgozással és az emberi beszéd sajátosságaival. Alapelveket határoztam meg, amelyeket számításba vettem a legjobban illeszkedő algoritmus kiválasztásában. Ilyenek voltak a minél rosszabb minőségű beérkező hang jó és pontos feldolgozása, a közel valós idejű felismerés és a gyorsaság, hiszen egy taktilis kijelzőnél a beszéd tempója miatt nem marad sok idő a folyamatos feldolgozásra. Ezek áttanulmányozása után kiválasztottam a számításba jöhető algoritmusokat, azokat megvalósítottam, tesztkörnyezetet készítettem hozzá és méréseket végeztem. Az eredmények tudatában kiválasztottam a feladathoz legjobban illeszkedő eljárást és egy új, bővebb tesztkörnyezet létrehozása után újabb méréseket végeztem. A tesztkörnyezet megvalósításánál fontos volt a hasonló mondatok, szavak tesztelése, hiszen ez jó indikátora a megfelelő algoritmusnak. A beszéd - nem beszéd megkülönböztetéséhez előfeldolgozó módszereket vizsgáltam meg, ez összefoglaló nevén a hangaktivitás detektálása. A kiválasztott algoritmusok között van statisztikai alapon működő, ilyen a rejtett Markov modellt használó algoritmus, valamint távolságkeresésen alapuló is, ilyen az idővetemítés algoritmusa. Kipróbáltam a beszédhang alapján történő beszélőazonosítást is, ez más alkalmazásokban (pl. mobiltelefon) helytálló lehet. Kitérek az algoritmusok megvalósításának lépéseire, ilyen a hang digitalizálása, megfelelő paraméterekkel, ezek megválasztásának okai, a hangaktivitás detektálása és a felismerés folyamata. Az implementálás Matlab környezetben történt. Az eredmények megtekintése után következtetéseket vontam le a munkámmal kapcsolatban, valamint felvázoltam a továbbfejlesztési lehetőségeket is. 8

2. Abstract This thesis is about the tactile display project for deaf people to help them understand the human speech. In this project my part was to understand and develop an appropriate speech recognizer algorithm, which can separate the speech and the noise, and recognize the speech. During the development several disciplines are interconnected, such as neurobiology, speech recognition, signal processing and information technology, they form the basis of my work. The basic idea of the following tasks are: we must convert the human speech and other sounds to a digital signal, then get the segments which contain speech and indicate them in the tactile display in the form of vibration. The first task was to read the literature as a part of a research work, in which I more deeply acquintanted with the digital speech processing and the charactreistics of the human speech. After that I determined principles that I took into account by the selection of the bestfit algorithm. Such were the good, accurate processing of the incoming bad quality sound, the near real-time detection and the speed, because by a tactile display we have only few seconds remaining for continous processing. After studying the literature I have chosen the best algorithms, implemented them, created a test environment and did measurements. Realizing the best-fit algorithm after the results, I created a new test environment and made recent measurements. By creating the test environment it was important to recognize similar phrases, words, since this is a good indicator of the appropriate algorithm. The speech / non-speech separation pre-processing methods were analysed, known as Voice Activity Detection. Among the chosen algorithms there is a statistical-based one, which uses hidden Markov model, the other one is a distance finding method, known as dynamic time warping. I tried a speaker identifying algorithm as well, in my opinion it can be useful in other applications (such as mobile phone applications). I mentioned the steps of the implementation of the algorithms, such as the digitalization of sound, choosing the relevant parameters, the reason of this choices, the voice activity detection and the recognition process. During the implementation Matlab environment was used. After summarizing and overvieving the results I drew conclusions and outlined the possibilities for further development. 9

3. Bevezetés, célkitűzések Kommunikációs alappillérünk a beszéd, mely azonban nem minden embertársunk számára hallható, érthető. A siketek, halláskárosultak saját hibájukon kívül kimaradnak egy olyan kommunikációs csatornából, amely mindennapi életünk során talán a legfontosabb szerepet tölti be a látáson kívül. Számukra fontos lehet egy olyan eszköz kifejlesztése, mely segíti őket a kommunikációban, amikor a mindennapok során nem tiszta, nem érthető környezetben, a szájról olvasás és a jelnyelv használatának lehetőségét elvetve szeretnénk kommunikálni velük, tehát például olyan esetekben, amikor nem láthatják a hang forrását. Mivel rengeteg információ csak beszéd, hang útján jut el hozzánk, lehetőséget kell teremtenünk számukra is a megértésére. Ehhez ad jó lehetőséget a taktilis kijelző. Ennek elsősorban a veszélyfelismerésnél van főbb szerepe, olyan helyzetekben, mikor siket embertársunkat figyelmeztetni akarjuk valamilyen, az ő biztonságát, életét fenyegető veszélyre, vagy csak egyéb fontos dolog közlését szeretnénk megkönnyíteni a figyelem ilyen módú felhívásával. Az egyetemen futó taktilis kijelző projekt részeként a beszédértést segítő zajos környezetben érzékelhető beszéddetektálási eljárások feltérképezése, ezek közül optimális, feladathoz illeszkedő algoritmus felkutatása és fejlesztése volt a feladatom. Diplomatervemben a zaj és a beszéd elkülönítésének módszereivel, beszéddetektálási eljárásokkal foglalkozom részletesebben, mert a taktilis kijelző működésének életbe lépéséhez ez egy elengedhetetlen algoritmus. Mivel manapság rengeteg kommunikációs csatorna használ beszédet valamilyen formában az információ közlésére, a későbbiekben ez nem csak a beszéd és zaj megkülönböztetésben, veszélyjelzésben, hanem a beszédfeldolgozás során is segítségünkre lehet. Munkám során először megismerkedtem a beszédfelismeréssel, a zaj és beszéd elkülönítésével, valamint az ehhez kapcsolódó algoritmusokkal és módszerekkel. Ezek után kipróbáltam több algoritmust, keresvén azt, amely a legjobban illeszkedik a feladathoz, méréseket végeztem annak meghatározására, hogy melyekkel foglalkozom részletesebben. Tesztkörnyezetet készítettem, majd ismét méréseket végeztem, immár a kiválasztott és megvalósított algoritmusokkal. Végezetül az eredmények elemzése és összehasonlítása után következtetéseket vontam le a feladat szempontjából történő megfelelő helytállásról és kitekintést adtam a továbbfejlesztési lehetőségekre. 10

Az alapfeladat tehát olyan eszköz fejlesztésének a segítése, mely siketek, halláskárosultak részére nyújt segítséget a mindennapokban. Ez főként olyan helyzetekben lehet kiemelt prioritású, amikor nincs mód jelnyelv használatára, ilyen például a veszély észlelése. De nem csak ilyen szituációkra kell gondolnunk, hanem egészen egyszerű, számunkra mindennapi eseményekre, például járművön történő beszélgetésre. Ilyenkor lehet segítségünkre a taktilis kijelző, melynek lehetőség szerint minél pontosabban, gyorsabban kell felismernie a beszéd jelenlétét, a lehetőségekhez mérten akár a legzajosabb környezetben is. Emellett fontos, hogy minél rosszabb hangminőség esetén is működjön lehetőleg valós időben. 11

4. A tapintás szerepe a kommunikációban, a taktilis kijelző alapelve, működése Az egészséges emberek számára az alapvető kommunikáció, azaz a beszéd befogadása a hallás segítségével történik, ez azonban a siketek számára nem áll rendelkezésre, így nekik a látás segít ebben. Bizonyos helyzetekben azonban még az sem biztos, hogy a megfelelő történésre fókuszál az alany, valamint az is előfordulhat, hogy a beszéd forrása nem látható, így ilyenkor lehet egy lehetséges megoldás a tapintás alkalmazása. McGurk [1] fogalmazta meg először, hogy a beszéd észlelése összetett folyamat, nem csak a hallás, hanem a többi érzékszerv is szerepet játszik benne, elég csak arra gondolni, hogy a baba-gaga szópárt a száj mozgásának látványa nélkül csak hang alapján nagyon nehéz megkülönböztetni. Ezt multimodális beszédészlelésnek nevezzük. Az érzékszervek tehát nem egymástól elkülönülten dolgoznak, hanem kiegészítik egymás információit, így jön létre a tényleges észlelés. A vakoknál a tapintás és a hallás működése sokkal kifinomultabb, nagyobb szerepet játszik náluk a külvilág megértésében. Ugyanígy van ez a siketeknél is, náluk a látás jut nagyobb szerephez. Azonban a taktilis (azaz tapintás-alapú) információátadás itt is felhasználható és így több információhoz juthatnak ők is. Esetünkben ez a beszéd léte/nemléte. Kihasználva a tapintás érzékenységét, a rezgések paraméterei változtathatók, így akár több jellemzőhöz is hozzárendelhetünk különböző rezgésformákat, ennek köszönhetően egy készülékkel több funkciót is megvalósíthatunk. A tárgyak érzékelésében a látáson kívül a tapintás is nagy szerepet játszik. Bőrünk ingerlése során a mechanoreceptorok azok, melyek a nyomást, alakváltozást érzékelik. Ezek az egész testfelületünkön jelen vannak, azonban észrevették, hogy egyes testrészeken sokkal nagyobb mennyiségben találhatók meg. Ilyen a kéz bőre, az ajkak, ellenben a has érzékelésével, hiszen ott sokkal tompábban érzékelünk, következtetésképpen a kéz alkalmas a legjobban a mechanikus ingerlés finom észlelésére. A taktilis kijelző projekt célja tehát a siket és hallássérült emberek mindennapjainak megkönnyítése egy olyan szerkezettel, amely a tapintással segít pótolni a kieső hallható információkat. 12

1. ábra: Példa taktilis kijelzőre A fenti ábrán egy vibrotaktilis kijelző látható, amely úgy működik, hogyha beszéd hallható, azt a zajtól megkülönbözteti, majd rezgő mozgássá alakítja, így nyerve el a felhasználó figyelmét. Azért fontos a tapintás használata, mert így nem vonja el a többi érzékszerv figyelmét, tehát a látás szabad marad, így jobban segíti a gyors reakciót, valamint a többi kommunikációs csatorna együttműködését. A jó megvalósításhoz szükséges egy megfelelő beszéd-zaj megkülönböztető algoritmus, amelynél több szempontot is fontos figyelembe venni, ilyen a gyorsaság, valós idejűség, megfelelő pontosság, erőforrástakarékosság. A továbbiakban erről esik szó. 13

5. Digitális beszédfeldolgozás 5.1. A beszéd-zaj elkülönítés és a beszédfelismerés technológiai alapjai A Voice Activity Detection (továbbiakban: VAD) [2][3], azaz a hangaktivitás felismerése számos területen használt alkalmazásokat tömörít magába. Napjainkban rengeteg ilyen eszközzel találkozhatunk, sokról nem is tudjuk, hogy éppen ezt a technológiát használja egyes lépéseiben a beszédfeldolgozáshoz. Mivel ez egy gyűjtőnév, így nagyon sokféle algoritmust, alkalmazást foglal magába. Ha a világhálón rákeresünk a fogalomra, már itt sokféle alkalmazást, eszközt találhatunk, melynek leírásában a VAD alapvető tulajdonságként szerepel. A hangaktivitás felismerése azért fontos, hogy meg tudjuk különböztetni a beszédet tartalmazó szakaszokat a csendes, vagy éppen zajjal terhelt daraboktól. A zajnak egyébként is nagy szerepe van az alkalmazások során, hiszen a tiszta, zajmentes környezet ritka, szinte sosem találunk ilyet a mindennapokban. Amikor hangot szeretnénk felismerni, feldolgozni, rögzíteni, először digitális formára kell azt hoznunk. Ennek módja egy analóg/digitális átalakító használata, amelyet számunkra a mikrofonba érkezett jel után a számítógép hangkártyája végez el. Ennek folyamata a jól ismert mintavételezés és kvantálás, mely után előáll a feldolgozható jel. Ezen értékek változtatásának majd később lesz szerepe a hallott hang feldolgozásánál, a megfelelő értékek kiválasztásában több szempontot veszek majd figyelembe. Sokszor szükség van a hangaktivitás pontos felismerésére, hiszen nem mindegy, hogy például telefonáláskor mennyi adatot viszünk át, jó, ha csak akkor használunk sávszélességet, amikor beszédet érzékelünk, a beszédben lévő szüneteket nem kell átvinni, felesleges ilyenkor erőforrásokat lefoglalni. Tipikus alkalmazások, amelyek a technológiát használják, például a konferenciahívások, mobiltelefonálás, különféle multimédiás alkalmazások, valamint a GSM 1 és a CDMA 2 alapú rendszerek. Ehhez nyújt segítséget a VAD, mely megpróbálja a beszédet érzékelni és azt a szünettől elkülöníteni. Ez stúdiókörnyezetben egyszerűbb, hiszen ekkor nincs semmiféle zaj, 1 GSM: Global System for Mobile Communications, a világon a legnépszerűbb szabvány a mobiltelefonos kommunikációhoz 2 CDMA: Code Division Multiple Access, kódosztásos többszörös hozzáférés, digitális cellás telefonrendszerekben és a GPS-ben használatos praktikus, hatékony technológia 14

amely megzavarhatja a tiszta beszédet, ám ez a gyakorlatban szinte sosem fordul elő, ezért fontos, hogy a zajból is ki tudjuk szűrni a beszédet. Ez már komplikáltabb probléma, hiszen a zaj lehet olyan erős, hogy elnyomja a beszédet (SNR 3 nagy), ekkor sokkal nehezebb dolgunk van, mint erősebb beszéd halkabb zaj esetében (SNR kicsi). A továbbiakban a szakirodalomban található alkalmazások közül szeretnék néhányat bemutatni, amelyek segítségemre lehetnek a fentebb vázolt probléma megoldásában. 5.2. Beszédfelismerési módszerek bemutatása A beszédfelismerésben alapvetően a statisztikai alapú és az energia alapú módszerek léteznek. Sok különböző águk van, ezekkel foglalkozom most részletesebben. A statisztikai alapú módszerek a vizsgált jel statisztikai jellemzői alapján különböztetik meg a zajt a beszédtől. Ilyen például az entrópia alapú felismerés, melyet rejtett Markov modellel kombinálva egész jó eredményeket kaphatunk. Erről a későbbiekben részletesen is beszámolok. A másik módszer a jel energiáját vizsgálja, majd ezek alapján tipikus értékek és határok beállításával igyekszik megkülönböztetni a beszédet a zajtól. Van még több lehetséges megoldás is, ezek közül a neurális hálóval történő beszédfelismerést mutatom be, valamint több előfeldolgozó algoritmust is, amelyek segítségével könnyebbé tehetjük a későbbi munkánkat a feldolgozás vagy akár a kiértékelés során. Az alábbiakban az áttanulmányozott módszerek következnek, és az, hogy ezeket mennyiben lehet hasznosítani az adott probléma megoldása érdekében. 5.2.1. A beszéd energiaszinteken alapuló vizsgálata A módszer az energiaszintek vizsgálatán alapul [4]. A beszédfeldolgozás folyamatában fontos szerepe lehet a beszéd energiaszintjének meghatározásának. Mivel az alkalmazás feladata az, hogy az emberi beszédet azonosítsa annak valamilyen jellemzője alapján, lehetőleg minél kevesebb tévedéssel, minél zajosabb környezetben is, lehetőség 3 SNR: Signal to Noise Ratio, jel-zaj arány, azt mutatja, hogy a jelet mennyire terheli zaj 15

szerint nagyon gyorsan, így az energia kiszámítása erre adhat alternatívát. Ennek folyamata, hogy megmérjük a folyamatos bejövő jel energiaszintjét és egy treshold, azaz küszöbérték felállításával meghatározzuk, hogy melyik lehetett a beszéd, melyik a zaj. Az aktuális, T mintányi hosszú, t 0 kezdetű keretben az energiát a következő módon számoljuk: 2. ábra: A jel energiájának kiszámítása Ez a módszer nem túl pontos, először is meg kell találnunk azt a megfelelő eredményeket adó válaszvonalat, ahonnan jó bizonyossággal el tudjuk különíteni a beszédet és a zajt, másrészt nagyon zajos környezetben az energia számítása nem jó, mert meg sem lehet különböztetni a jeleket, az erős zaj teljesen elnyomja a beszédet. Ezen kívül az algoritmus valós időben megfelelően gyors lenne, hiszen itt nem kell spektrumot számolni, de a zaj jelenlétének rossz tolerálása miatt inkább csak adott SNR alatt ajánlott a használata. A zaj jelenléte egyébként is sok problémát okozhat, hiszen tiszta, zajmentes környezetben elég csak a hangaktivitást figyelni, azt elkülöníteni a csendtől, de könnyen belátható, hogy ez a mindennapokban ritkán valósul meg, valamilyen háttérzaj mindig hallható a beszéd mellett. A tanulmányozott módszerek, algoritmusok egy részben kitüntetett szerepe van a zajok kiszűrésének, ezekkel is részletesebben foglalkozom a későbbiekben, mivel ez a legelengedhetetlenebb része a feladatnak. 3. ábra: Nézd, leszedték a zárakat spektrumképe 16

5.2.2. Pitch detekció Egy másik módszer lehet a beszédfelismerésre a pitch detekció, azonban ez inkább a zöngésség meghatározására szolgál. A pitch érzeti mennyiség, a hangmagassághoz köthető, azonban megállapították, hogy nem mindig van egyértelmű kapcsolatban az alapfrekvenciával, amely fizikai mennyiség, zöngés gerjesztés esetén a hangszalagok rezgésszámát jelöli. Ennek ellenére a pitch detekciós algoritmusok (PDA Pitch Detector Algorithm) az alapfrekvencia becslésére használható módszerek a beszédfeldolgozásban. Előállíthatjuk a beszéd picth kontúrját, amely a tényleges beszéddallamot jól közelíti, ekkor ablakonként az alapfrekvenciára becslést adunk, azonban ez is számításigényes folyamat, valamint nem is a feladathoz a legjobban illeszkedő. Használata inkább zöngés-zöngétlen megkülönböztetésnél lehet célravezető, itt csak felesleges erőforrásokat foglalna le. 5.2.3. Kepsztrum Fontos lehet a beszéd, mint jel periodicitásának megfigyelése, mivel ez nagyon jól jellemzi a beszédet. Ezt a kepsztrum [5] segítségével tudjuk megnézni, ugyanis kepsztrális tartományba transzformálva a jelet a zaj nem mutat periodicitást, csak a beszéd. A kepsztrum (cepstrum) a beszéd spektrum Fourier-transzformáltja, azaz a spektrum spektruma, ahol az x tengelyen az időegység, azaz a kefrencia helyezkedik el, a hozzá tartozó értékek a spektrum változását mutatják. A kepsztrális elemzést nagyon sok eljárás felhasználja, mivel valós időben nagyon jól alkalmazható, azonban kissé számításigényes, de a jó pontossága miatt ez elnézhető. 4. ábra: Nézd, leszedték a zárakat kepsztrumának megjelenítése 17

5.2.4. Zero-corssing Jó módszer lehet még a nullátmenetek (zero-crossing) [6] megfigyelése, mivel ezek speciálisan szintén a zöngés hangokra jellemzőek, egyediek, viszont ehhez is szükség van a kepsztrumra, hiszen ott tudjuk jól megfigyelni a periódusokban az ablakozásnál, hogy hányszor vált a függvény pozitívból negatívba. Itt tehát a jel adott ablakon belüli nullátmeneteit kell megszámolnunk, ezek a beszédre jellemzőek, viszont ezt leginkább a zöngés-zöngétlen elkülönítésnél hasznosítják, azonban esetünkben a zaj és beszéd elkülönítése szempontjából fontos lehet, mivel a zajban nincsenek meg a beszéd jellemzői. Tehát ha nem tudunk dönteni, hogy zajról, esetleg zajos beszédről van-e szó, akkor a nullátmenetek segítségével megbizonyosodhatunk arról. 5.2.5. Mel frequency cepstrum Sokszor nem a kepsztrumot használják, hanem a log-spektrális tartományba transzformálnak, itt a Mel-frekvencia a hallást, mint érzetet modellezi le, így az eredmény a hallotthoz hasonló lesz. A komolyabb beszédfelismerési feladatoknál, ahol nem csak zajt és beszédet kell megkülönböztetni, hanem fel is kell ismerni a szavakat, mondatokat - lehetőleg minél nagyobb hatásfokkal -, előszeretettel használják az első, azaz lényegkiemelési eljáráshoz a Mel-frekvenciás kepsztrális együtthatók kiszámítását [7], mely segítségével egy burkoló spektrumot állíthatunk elő: 5. ábra: A Mel-frekvenciás kepsztrum előállításának folyamata A folyamat az alábbiak szerint zajlik: Hogy tömörebb beszédjellemzőket nyerhessünk ki, átlagolni kell az FFT (Fast Fourier Transformation) spektrum komponenseit. A módszer azért is modellezi a fül szempontjából a hallást, mert hallásunk egyik legfontosabb jellemzője, hogy frekvencia felbontása a frekvencia növekedésével exponenciálisan csökken. Éppen ezért a Mel-skálás átlagolásban az együtthatók összegzésére használt ablakok 18

szélességét 1 khz felett megnöveljük, méghozzá exponenciálisan, hogy a hallást lemodellezve a ritkább információsűrűséget ezzel kiegyenlítsük. Az összegzett komponensekből teljesítmény spektrumot számítunk, hogy a zajt jobban el tudjuk nyomni, majd a kapott értékeket logaritmizáljuk, így illesztjük az ingert az érzethez. Ezután DCT 4 (Discrete Cosine Transform) következik, mellyel a jellemzővektor dimenziószámát csökkentjük. Végső lépésként pedig megadjuk a vektorhoz a statikus elemek lineáris regresszióval becsült időbeli deriváltját. Az utolsó lépés azért nagyon hasznos, mert sokat javít a lényegkiemelés hatásfokán. Így most rendelkezésünkre áll egy diszkrét idejű, optimális jel, amelyet aztán illeszteni tudunk a meghatározott szótári elemre vagy azok sorozatára. Ez a módszer nagyon hasznos, sok alkalmazásban előfordul, bár sok számítást tartalmaz, azok gyorsan, könnyen számíthatók, konkrét beszédfelismerési feladatnál nagyon jó eredményeket lehet elérni vele. Az alábbiakban a Matlab Auditory Toolbox segítségével ábrázolt Mel-frekvenciás kepsztrumról készült ábrák következnek a Nézd, leszedték a zárakat mondatról. 6. ábra: A Mel-frekvenciás kepsztrum együtthatóinak ábrázolása Halványan, de látszik a koefficiensek ábrázolása 1000 Hz-en mintavételezve. 4 DCT: Diszkrét Koszinusz Transzformáció, egy Fourier-transzformáció, hasonló a diszkrét Fouriertranszformációhoz, de valós számokkal dolgozik, különböző adattömörítési eljárásoknál használják, pl. mp3, wma, jpeg, mpeg 19

Sok köztes eredmény képét is meg tudjuk jeleníteni, ilyen például az FFT spektogramm (magas frekvenciák vannak felül): 7. ábra: FFT spektogramm A következő képen a szűrők kimenete látható: 8. ábra: A Mel-frekvenciás szűrők kimenete Ha szeretnénk, visszamehetünk a kepsztrumból a Mel-frekvenciás szűrőkhöz, még a diszkrét koszinusz transzformáció előtt, így megnézhetjük, hogy mennyi információveszteség történt. 20

9. ábra: Információveszteség megtekintéséhez a diszkrét koszinusz transzformáció előtti állapot kirajzoltatása Látható, hogy ez sokkal simább képet ad. Megvizsgálhatjuk azt is, hogy a Mel-frekvenciás kepsztrális koefficiensek kiszámításakor mely pitch értékeket vesztettük el, ezeket a vonalak jelölik. 10. ábra: MFCC kiszámításakor információveszteség vizsgálata megjelenítve azt. Ennek segítségével behatóbban tanulmányozhatjuk az algoritmust, vizuálisan is jól 21

5.2.6. PARCOR csőmodell Le lehet modellezni a beszédet képzés szintjén is, ekkor a PARCOR csőmodell [8] lehet segítségünkre az előző hallás-modellezéssel szemben. A PARCOR eljárás olyan beszédfeldolgozási eszköz, mely stabil, 6-10 együtthatóval írja le a beszéd egy szakaszát, ezek rekurzívan meghatározhatók és segítségükkel előállítható a beszédjel, valamint fizikai tartalmat is rendel a modellhez, és ez igaz visszafelé is, tehát a beszédjelből meghatározhatók a csőmodell paraméterei. Számunkra ez most nem a legmegfelelőbb alkalmazás, azért mutattam be, hogy látható legyen, hogy a beszédet nem csak a hallás, hanem a beszédképzés szintjén is le tudjuk modellezni. Sok helyen találkozni jellemzővektorokkal, már feljebb a MFCC meghatározásánál is használtam, ezek általában az alábbi tulajdonságokat tartalmazzák (pl. ITU-G.729 DTX dual mode speech codec): LP (lineáris predikció) spektrum, teljes sávenergia, alacsony sáv, nullátmenet rátája. 5.2.7. Az ETSI AMR (Adaptive Multi Rate) Speech Coder Ez a kódoló található a GSM rendszerben [4]. Tanulmányozása azért fontos, hogy lássuk, hogyan használható a GSM rendszerben a fentebb említett VAD, hogyan takarítanak meg sávszélességet a jelátvitelnél a beszédszakaszok átvitelével és a csendes, zajos, beszédet nem tartalmazó részek felismerésével és ezek ignorálásával. A jel először szűrőkön halad át, mindegyik sávban kiszámolják az aktuális jelszintet. Ezek után az SNR kiszámolása következik, majd a pitch detekció, tone detekció, jelanalízis. A kódoló vázlatos rajza: 11. ábra: Az AMR Speech Coder vázlatos rajza 22

A beszédfelismerés pontosságát tudjuk növelni ebben az esetben, ez beláthatóan fontos kérdés, ennek egyik lehetséges eszközét ismertetem. Először a háttérzaj zavaró hatásait kell lecsökkenteni, ennek eszköze a spektrális kivonás. A zaj spektrumát a beszédfolyamat alatt az inaktív periódusok alapján számítjuk ki és kivonjuk az aktuális ablak spektrumából. Így a tiszta beszéd spektrumának közelítő értékét kapjuk. A beszéddetektálás javításának egy népszerű eszköze a Wiener szűrő 5 alkalmazása, melynek képlete: 12. ábra: A Wiener-szűrő képlete 5.2.8. A beszédfelismerés egy lehetséges folyamata, a rejtett Markov modell Mielőtt az egyik lehetséges folyamatot ismertetem, szeretnék a beszédfelismerés egy másik népszerű, sok helyen alkalmazott folyamatáról, a rejtett Markov modell [9] segítségével történő felismerésről írni. Ennek alapja, hogy minden felismerendő egységhez tartozik egy valószínűségi modell, amely egy adott megfigyelést valamilyen valószínűséggel generál, kimenete pedig a legnagyobb valószínűségű modell. A kilencvenes évek során ezek a modellek voltak a dominánsak, hatalmas adatbázisok készültek, melyek segítségére voltak a beszédfelismerőknek, így azok egyre több tanítandó paramétert tartalmazhattak. Napjainkra az ilyen alkalmazások futtatása nem csak kutatólaboratóriumok kiváltsága, ezt akár otthon is megtehetjük saját számítógépünkön. Mint látható, ez a módszer is inkább a konkrét fonémák felismerésére használható jobban, mivel a beszélt nyelv annyira változatos, hogy ezt a sokszínűséget a rejtett Markov modellen alapuló módszerek képesek a legjobban kezelni. Ha a modellek jól be vannak állítva, minden kiejtett szót a saját modellje állítja elő a legnagyobb valószínűséggel. A HMM (Hidden Markov Model) akár hosszabb szavak, mondatok nyelvi modellezésére is alkalmazható, így nagyon széleskörű az alkalmazhatósága. A fent említett egyik lehetséges alkalmazás során Rejtett Markov Modell segítségével tanítjuk a rendszert, tiszta és zajos beszéddel egyaránt. Ezek után következik a Non-Speech Frame Droppin (FD), amely arra hivatott, hogy csökkentse a zajból eredeztethető hibákat. Ezek után végül kiszámoljuk a Mel frekvencia kepsztrális együtthatókat. 5 Wiener-szűrő: zaj jelenlétében az optimális szűrő (adaptív) 23

Ennek vázlatos rajza: 13. ábra: A beszédfelismerés egy lehetséges modellje A fent leírtak közül alkalmas lényegkiemelésre a Mel-frekvenciás kepsztrális együtthatók kiszámolása, valamint a lineáris predikció is. A különbség a kettő között a jellemzővektor tartalmában mutatkozik meg. Míg az LPC a toldalékcső alakja szerint, a MFC a hallás szerint emeli ki a lényeget. 5.2.9. Beszédaktivitás felismerése zajos környezetben Témaválasztásom szempontjából ez a kérdéskör a legfontosabb, hiszen a taktilis kijelző projektben használatos beszéd-zaj elkülönítő algoritmusban ez játssza a mindennapi életben a legjelentősebb szerepet. Az alábbi példában a döntés alapja egy megfigyelt vektor, a jellemzővektor. A legtöbb algoritmus a felismerés során ott és akkor vét hibákat, amikor alacsony SNR szintnél akarunk megkülönböztetni. A jel-zaj arány azért lehet ennyire zavaró, mert egy ideig, bizonyos arány felett még jól kivehető, felismerhető a zajos háttérből a beszéd, de ahogy megnöveljük a zaj szintjét, a felismerhetőség egyre romlik, végül már felismerhetetlenségig zajjal terhelt rendszert találunk. Ilyen problémára megoldást jelenthet egy sima energiaszint detektor. Ennek váza: 14. ábra: Beszédfelismerés zajos környezetben 24

Részei: a) Jellemzők kiemelése. Itt történik az energiák kiszámítása, majd megmérik a spektrumbeli különbséget a zaj és a beszéd között, ezután a pitch becslése következik, majd a nullátmenetek vizsgálata, végül felsőbb rendű statisztika. b) Döntési modul. Itt áll össze a jellemzővektor, itt végzik el a statisztikai valószínűségi teszteket, itt található a Bayes-i döntő, elvégzik a diszkrét koszinusz transzformációt a zajos részre, valamint a tiszta részre is, ezek után végül kiszámolják az átlagos négyzetes hibát. c) Végső állomás a döntés simítása Egy ilyen feldolgozás láthatóan sok lépést igényel, azonban elég gyorsan végezhető. 5.2.10. Robusztus VAD algoritmusok A beszédaktivitást felismerő algoritmusoknál alapvető kívánalom, hogy robusztusságot mutassanak, mivel nem engedhetjük meg azt magunknak, hogy ha például zajosabb a környezet, az alkalmazás helytelen választ adjon, félrevezetve ezzel a felhasználót. Inkább úgy érdemes megtervezni, hogy vagy jól tűrje a hibás bemeneteket is, vagy ne engedjük bizonyos jel-zaj arány átlépése esetén használni. Ez félmegoldásnak tűnhet, azonban használat közben inkább tudja azt a felhasználó, hogy ilyen környezetben nem képes az eszköz jól működni és kapcsolja ki, mint hogy téves jelzésekkel adott élethelyzetét elviselhetetlenné tegye azzal, hogy esetleg hangos fúráskor, aszfaltozáskor állandóan jelez, de ide bármilyen helyzetet behelyettesíthetünk. A robusztus viselkedéshez definiáljuk a hosszú távú spektrális eltérést. Ez az időben változó jel spektrumának kiszámítása, viszont hosszú távú beszédablakot használ az azonnali spektrumértékek helyett, ebből számítja ki a spektrális burkolót. A döntési szabályt a beszéd és zaj közötti hosszú távú spektrális eltérés alapján alkották meg. 25

Másik eszköz ehhez a többszörös megfigyelésen alapuló valószínűségi arány teszt [2]. Ezt a megfigyelt vektorokon definiáljuk az alábbi képlettel: 15. ábra: Megfigyelt vektoron definiált valószínűségi arányok tesztje Ez egy statisztikai szűrő, mely optimális éldetekciós filtereket használ a teljes energiasávon. A folyamat során a bemenő jelet először egy Wiener-szűrőn futtatjuk át. Ezek után a logaritmikus energiákat számítjuk ki az l-edik keretben K alsávban. Ezek implementálása segíthet a zajos környezetben való jobb felismerésben. 5.2.11. Fonéma felismerés mesterséges neurális hálóval A beszédfelismerés során segítségünkre lehetnek a neurális hálózatok [10][11] is, amelyek mátrixok segítségével tárolják a felismerendő szótárbeli elemeket, és az ehhez való legpontosabb illeszkedést vizsgálják. Az alábbiakban két eljárást mutatok be, amelyek mesterséges neurális hálózatokat használnak beszédfelismeréshez. A mesterséges neurális hálóval történő eljárás során a neurális hálót úgy tanították, hogy az felismerje a fonémákat, ehhez az error back-propagation 6 algoritmust használták fel. A felismerés hatékonysága 80-93%-os volt, kézi szegmentációnál ez 64%-ot ért el, azonban a jó válasz majdnem minden esetben az első három megtippelt válasz között volt. A szótár, amelyet használtak 60 mondatból áll, ebből 50 a hálózat tanításához, 10 pedig a teszteléséhez volt szükséges. A hálózat két részből áll. Első része egy durva jellemzők szerint szétválasztó hálózat, amely hét tulajdonság szerint választ szét egy Bark-skála 7 szerinti szűrőadatbázis alapján. Másik része a fonémafelismerő hálózat. A megvalósított megoldás nagyon jól alkalmazkodik a beszélő személyének változásához és nem is nyelvspecifikus, ahogy az a különböző tesztekből kiderült. Számunkra, mivel egy neurális hálózatot létrehozni és megtanítani nem olyan gyors és megfelelő tanulóhalmaz hiányában nem is egyszerű feladat, ezért alapvetően nem így 6 A tanulás során a hibát csatolja vissza, ennek segítségével frissíti az egyes perceptronok súlytényezőit 7 Logaritmikus skála, a frekvenciatartományt a hallásunkhoz igazodó kritikus sávok alapján osztja fel 26

szeretném megvalósítani a zaj-beszéd megkülönböztetést, másrészt ez inkább fonémák detektálására alkalmas eljárás. Vannak azonban részei, amelyek átgondolandók alkalmazás szempontjából, ilyen a nyelvfüggetlenség, valamint a beszélőfüggetlenség. Másik hasonló neurális hálót használó alkalmazás [12] során folyamatos beszéd akusztikus-fonetikus felismerése a feladat. Szintén error back-propagation algoritmust használ, ugyanúgy két hálózattal, melyet a következőképpen osztanak fel: az első hálózat végzi az akusztikus-fonetikus feldolgozást, a második pedig a nyelvi feldolgozást. Az akusztikus feldolgozás során spektrális analízist alkalmaznak, 10-20 ms-os keretekkel, majd a kepsztrum kerül meghatározásra. Ez a módszer a kepsztrális feldolgozás miatt fontos számomra, valamint a keretek pontos meghatározása miatt. Léteznek hibrid HMM-ANN, azaz rejtett Markov modellen és mesterséges neurális hálózatokon alapuló konstrukciók is, ahol a neurális háló végzi a fonetikai osztályozást, a beszédfolyam és a tárolt modell időbeli illesztését pedig a Markov lánc. (Kepsztrális alapon közelíti meg a problémát a SPLICE [13] algoritmus is, de itt már valószínűségeket is használnak. A zajos beszéd kepsztrális vektora Gauss eloszlást mutat, így lehetőség van a valószínűségi feltételes sűrűségfüggvény kiszámítására. A SPLICE minden keretet egymástól függetlenül dolgoz fel.) 5.2.12. Előfeldolgozás A beszéd-zaj megkülönböztetésben fontos szerepet kap a felvett jel megfelelő előfeldolgozása. Ez akár meg is könnyítheti, de nem megfelelő megválasztása meg is nehezítheti munkánkat. Találtam olyan megoldást a csecsemősírás elemzésének tanulmányozása folyamán [14], ahol az előfeldolgozás és a jelfeldolgozás együtt történt meg. Először csúszóablakozás történt 0,1 s-os időközzel, utána autokorrelációs függvényt használtak, majd két FFT után megnézték az alapfrekvenciát (kepsztrum). Így akár egyszerűbb is lehet a folyamat, ez a valós idejű feldolgozást elősegíti. 5.2.13. Az entrópia használata Az entrópia kiszámítása [15][16][17] szintén segítségünkre lehet zajos közegben beszéd felismerésében. E jellemző kiszámításához a jel spektrumára van szükségünk, melyet úgy számolunk ki, hogy átlapolódó blokkokra bontjuk, így végzünk rajta FFT-t (Fast Fourier 27

Transformation). Így a gördülő spektrumot kapjuk: 16. ábra: A gördülő spektrum kiszámítása ahol t jelenti az időt, t o az aktuális keret kezdetét, h(t) a súlyozó ablak (általában Hanning), f a frekvencia, y(t) pedig a vizsgált jel. Azt már korábban említettem, hogy amíg nagy a jel-zaj viszony, addig az energiaszint alapon döntő módszerek jól használhatóak, ám ahogy több zaj kerül a beszéd mellé, az eredmények már nem értékelhetőek, bár a beszéd még látható a spektrumképen. Ez azon látszik, hogy a spektrum rendezettséget mutat. Éppen ezen alapul a Shannon-féle entrópia bevezetése, mely a spektrum rendezettségét méri: 17. ábra: A Shannon-féle entrópia ahol s az i-edik forrásból érkező szimbólum, P(s) pedig az i-edik szimbólum adási valószínűsége. Az entrópia egy véletlen változó bizonytalanságát írja le. Ez azért lehet számunkra hasznos, mivel a beszéd és a zaj másféle spektrális karakterisztikával rendelkezik, így az elkülönítéshez használható. Az értéke akkor maximális, ha fehér zajt vizsgálunk, minimális, ha tiszta szinuszjelünk van, értéke viszont a jelszinttől független. Így változó szintű, de állandó spektrumú zajok esetén a beszédszakaszok az entrópiából könnyen meghatározhatók. Ha a zaj spektruma elnyomja a beszéd spektrumát, már nem tudjuk megkülönböztetni őket, sőt ezzel a módszerrel akkor sem, ha nem egyenletes a zaj spektruma, azaz színes a zaj. Ekkor más módszereket kell alkalmaznunk a zaj kifehérítésére. A szakirodalom áttanulmányozása során ez a módszer volt az, mely jó és gyors eredményeket mutatott, ám még mindig tapasztalható egy kis késés a feldolgozás során, hiszen ha az entrópia alapú felismerést a rejtett Markov modellel kombináljuk, zajbecslést kell alkalmaznunk, mely 0,3 s késést mutat. Ez nem szembetűnő, ám ha adott helyzetekben 28

szeretnénk használni ezt a beszéd-zaj megkülönböztetőt, esetünkben a taktilis kijelzőnél, véleményem szerint felesleges ennyi bonyolult algoritmust megvalósítani, főleg úgy, hogy egyelőre csak veszélyhelyzetek jelzésére és figyelemfelhívásra szeretnénk használni. 6. A megfelelő megoldás kiválasztása A szakirodalom áttanulmányozása után három algoritmus megvalósítása történt meg. Alapvető feltevés, hogy különítsük el a számunkra hasznos részeket a haszontalantól, azaz azokat a részeket, amikor nincs beszéd, és ügyeljünk arra is, hogy ez hangosabb zaj esetén is működjön. Pontosan ez az az elv, amelyet a GSM rendszernél és egyéb hangátvitelt biztosító rendszereknél használnak, hiszen fontos szempont a takarékoskodás az erőforrással, amelyet ez segít megvalósítani. Esetünkben azonban nem ennyire általános a feladat, hiszen elsősorban siket emberek segítése a cél, főleg veszély esetén, így elsődlegessé válik a figyelemfelkeltés. Három ilyen algoritmust valósítottam meg, ezeket fogom a továbbiakban bemutatni, majd részletesebben azt az egyet, amelyik a legjobban illeszkedik a feladatra. A figyelemfelkeltés során ösztönösen csak egy bizonyos szókészletből használunk fel szavakat. Figyelembe véve, hogy az eszközt általában utcán, járművön, otthoni környezettől távol szeretnénk használni, bízhatunk az emberek reakciójában egy vészhelyzet, figyelmeztetés esetén. Mivel a külső zajt a figyelmeztetni készülő emberek is jól hallják, várhatóan hangerősségüket is ennek megfelelően fogják megválasztani, különösen hajlamosak vagyunk a még erőteljesebb beszédre, ha valakihez magyarázóan, figyelmeztetően szólunk. Ezek a faktorok viszont pont előnyt jelentenek egy zárt szótáras beszédfelismerő létrehozásához. Így először ezt valósítottam meg. 6.1. Dinamikus idővetemítés Mivel ez egy zárt szótáras felismerő [9], az adott minták alapján dolgozik. Először a mintakönyvtárba felvehetjük a saját hanganyagunkat. Itt beállítható a mintavételi frekvencia és a hanganyag előre látható hossza is. Ez célszerűen 4 másodpercre lett beállítva alapértékként, valamint előtte tartalmaz 0,15 másodperc csendet. Ezen kívül beállíthatjuk, hogy mekkora a szótárunk, hányféle kifejezést tartalmaz, és hány beszélő vesz részt benne. Ez azért fontos, mert az algoritmus beszélőérzékeny. 29

Először a saját mintánk létrehozását kell megtennünk. A template-eket különböző mintavételezési frekvencián rögzítjük, majd ezeken futtatjuk az eltárolásukat segítő Matlab fájlt. Ennek az a feladata, hogy végigmenjen a megadott könyvtárban található hangfájlokon, melyeket wav formátumban mentettünk el, majd ezekből minden beszélőre létrehozza a jellemzővektorokat hangonként, ezeket mátrixban egy.m fájlba menti referenciának. A feldolgozás során itt a Mel-frekvenciás kepsztrális együtthatókat (MFCC) számoljuk ki, amely során meg kell adnunk, hogy hány koefficienst szeretnénk kiszámolni. Ebben segít a Matlabhoz ingyenesen elérhető Voicebox Toolbox. Ha a saját mintatárunk elkészítésével elkészültünk, tesztelhetjük rendszert. Ezt a mikrofonba mondott szavak segítségével tehetjük meg. Ennek minőségét szintén tetszés szerint állíthatjuk. Végül megkapjuk az eredményt, azaz hogy sikerült-e felismerni az elhangzottakat, valamint hogy mi volt az. A program a szakirodalomban felsorolt források közül a Mel-frekvenciás kepsztrumot használja, ennek segítségével dolgozza fel a beérkező szöveget. Azonban a többi megemlített technikát is összefoglalja, hiszen a feldolgozás menete a következő: Miután bemondjuk a mikrofonba a felismerni kívánt szöveget, először a zajmentesítés következik, ezt a spektrális kivonás algoritmusa végzi el, amely úgy zajlik, hogy megkapja a zajos jelet és a mintavételezési frekvenciát, és ezek alapján hozza létre a zajmentes jelet. 18. ábra: A kepsztrális kivonás algoritmusa 30

A zajszűrés során VAD algoritmus is megvalósításra került, így csak azzal a jellel dolgozik a program a továbbiakban, ahol valóban beszédet érzékelt. Ezek után a mintákhoz hasonló formában kiszámolja a bevitt hang jellemzőit, ezeket egy vektorban tárolja. Utána következik a felismerés, amikor is a dinamikus idővetemítés (DTW - Dynamic Time Warping) [18] algoritmust használva a mintavektor / vektorokat összehasonlítja a bemenő beszédből képzett vektorral és döntést hoz, hogy volt-e egyáltalán felvétel, vagy sikerült és megvan az elhangzott szöveg, esetleg sikertelen volt a felismerés. A dinamikus idővetemítés algoritmus célja tipikusan nagyobb egységek összehasonlítása, így jól illeszkedik a feladathoz. Az összehasonlítás az előfeldolgozás után keletkezett és a referenciavektorok összevetése, adott értékek közti távolságkeresés, azaz a lehető legjobb illeszkedést keresi meg. Minden lehetséges módon össze kell párosítanunk az egységeket, majd a legkisebb távolságot kell megnéznünk. Az idővetemítés feladata a legkisebb távolság megtalálása, amely mentén az össztávolság minimális, ez lesz a két szó távolsága. 19. ábra: Az algoritmus vázlata 20. ábra: Referenciaminták Matlabban mátrixban tárolva 31

Létrehoztam a referenciamintákat, ezek benne vannak a vektorban. 21. ábra: Szótárban nem szereplő kifejezés felismerése Itt olyan szöveget mondtam, amely nem szerepel a szótárban szereplő kifejezések között, ezért a várt eredményt adta. Ha a felismerés sikeres volt, az alábbi képernyő fogad minket: 22. ábra: Szótárban szereplő kifejezés felismerése 32

6.2. Zárt szótáras rendszer beszélőazonosítással Ebben a változatban ugyanazt a zárt szótárat alkalmaztam, de itt a neveknek lett nagyobb jelentősége, mivel az azonosítást még személyfelismerés is követi. A cél az, hogy olyan jellemzőket nyerjünk ki a beérkező hangból, amely alapján nagy bizonyossággal el tudjuk dönteni, hogy az kitől származik, feltéve, hogy az illetőt már felvettük rendszerünkbe. Ilyen fajta megoldás akkor válhat szükségessé, ha szeretnénk tudni, hogy kitől származik a hang, viszont sok esetben nehéz megmondani, hogy az adott kifejezést ugyanaz az ember mondta-e másik alkalommal is. Különböző helyzetekben más lehet a hangsúlyunk, a beszédritmusunk, hangmagasságunk, ez okozhatja a legtöbb problémát az azonosítás során. Éppen ezért az alapötlet, hogy a hangot ne csak egyszer vigyük fel az adatbázisba, hanem többször, hogy ezek alapján tudjunk számolni egy átlagot, amely az adott beszélőre jellemző, és ezzel hasonlítjuk össze a beérkező jelet. Mivel a fentebb felsorolt problémák a felismerés során nehezítik a dolgunkat, így az időtartomány, mint valamiféle műveletek végzésének tartománya kiesik a lehetőségek közül, azonban megfelelő lehet a frekvenciatartományba transzformálás, amelyet diszkrét koszinusz transzformáció segítségével végzünk el. Ezek után a jól ismert euklideszi norma kiszámítása következik. Ha ez elkészült, akkor ki kell számítanunk az összes minta normáját, majd össze kell hasonlítani azokat, és a bejövő jelet hozzá tudjuk mérni, ugyanis ha nagyon kicsi a távolság, akkor az nagy valószínűséggel ugyanattól a személytől származó beszéd. Segítségünkre van még a Csebisev egyenlőtlenség, amikor a szórás segítségével felső korlátot adhatunk a várható értéktől való eltérés valószínűségére. Ennek segítségével 75%-os pontossággal megmondhatjuk, hogy a beszéd az adott személytől származik-e. A program működése során először rögzítenünk kell a hangunkat, ezt megtehetjük a program, vagy egyéb segédprogram segítségével is. Ezután indulhat a tényleges algoritmus. Először beírjuk a nevet, melyet fel szeretnénk ismerni, ez az a név lesz, amit felvettünk, remélhetőleg a saját nevünk. Utána lehetőségünk van bemondani ezt a nevet, ezt 3 másodpercig tehetjük meg. Ha nem jól sikerült a felvétel (visszahallgathatjuk), akkor készíthetünk újat, siker esetén a program továbbmegy. Ekkor láthatjuk a felvett jel spektrumképét és az összehasonlító jelek spektrumképét. Ekkor történik az összehasonlítás, aminek végeztével a program kiírja, hogy helyes volt-e a felismerés, azaz mi vagyunk azok vagy sem. 33

A program forráskódjából az 2. sz. Mellékletben találhatunk bővebb ismertetést. Ha a felismerés sikeres, a program kiírja a nevünket: 23. ábra: Saját referencia mintatár készítése 24. ábra: Helytelen felismerés 25. ábra: Sikeres felismerés 34

26. ábra: Megjelenített spektrumképek Ennél a megvalósításnál saját magunk készítjük az adatbázist a program indításánál, amikor a nevünket tízszer felvesszük. Ezek után, ha újra felveszünk neveket, azok törlik a régi felvételt, célszerű ezért azokat kimenteni, így bármikor újra kipróbálhatjuk. Ennél az algoritmusnál nincs értelme valós idejűségről beszélni, mivel a célja nem is ez, de ha mégis lemérjük, azt kapjuk, hogy minden esetben nagyon gyorsan, szinte valós időben, pár tizedmásodperces késéssel megtörténik a név felismerése, elemzése. Bár ez az algoritmus nem tartozik szorosan a kiírt feladathoz, mégis hasznos lehet végül, főleg, ha okostelefonra is kifejlesztésre kerül egy alkalmazás, melyben így a személyfelismerés is lehetővé válik. 35

6.3. Rejtett Markov modellel megvalósított megoldás A rejtett Markov modell [9] statisztikai jellemzőket használ a beszédfelismeréshez. Előnye, hogy könnyen készíthető vele nagy szótáras beszédfelismerő, amelyet könnyen bővíthetünk, valamint folyamatos beszédre is alkalmazhatunk. Azonban ha ilyen nagy szótárat szeretnénk, nem használhatjuk a szavakat alapegységekként, hanem a fonémákat kell felismerési egységnek vennünk. Ekkor minden fonémához egy háromállapotú modellt kell rendelni, amelyben a középső állapot a fonéma stabil magja, a jobb és bal állapot pedig a szomszédos hangokhoz igazodó kezdő és záró szakasz. Ezt hívjuk monofón modellnek [19], ennek előnye az egyszerűsége, betaníthatósága. A környezetfüggetlen monofónokat kiterjeszthetjük környezetfüggő trifónokra is, ám ekkor a betanítás szinte lehetetlen, mivel egy adott fonémához minden lehetséges környezetet végig kell nézni és ahhoz egy modellt rendelni. A rendszer két részből áll, az egyik rész a szótár rögzítéséért felelős, tehát a felvételeket olyan formában tárolja el, hogy azt később a tesztek során össze tudjuk hasonlítani. Ez vázlatosan az alábbi módon néz ki: 27. ábra: A szótár rögzítésének folyamata A felismeréskor a következő folyamat megy végbe: 28. ábra: A felismerés vázlatos folyamata Itt a rendszer csak akkor készít felvételt, ha arra ténylegesen szükség van, így próbál meg valós idejűvé válni. Ezt úgy éri el, hogy van egy küszöbérték, amely felett automatikusan 36

felvétel készül a szóról, itt ez 1 s. Ezek után következik a VAD, ennek köszönhetően a továbbiakban csak a beszédet tartalmazó részeket fogjuk felhasználni. Utána Mel-frekvenciás koefficiensek számítása következik, végül pedig a rejtett Markov modell feladata lesz kiszámolni a valószínűségeket és a maximum likelihood 8 módszerével döntést hozni. Ha egy ilyen felismeréssel végeztünk, újra kezdődik a bejövő jel figyelése, ezért ez tekinthető közel valós idejűnek. A jel feldolgozása a Matlab Data Aquisition Toolbox segítségével történik, így a Matlabból irányíthatjuk a hangkártyát, itt állíthatjuk be a treshold értéket is. Ha ezt nem tennénk meg, a program folyamatosan mentené az adatokat a gépünkre. A VAD nagyon fontos része a programnak, enélkül nem tudnánk megkülönböztetni a beszédet tartalmazó és nem tartalmazó részeket. A beszéd jelenlétét az energia segítségével tudjuk megállapítani, ezeket kis időközönként, ablakonként vizsgáljuk, így különböztetve meg a csendes részektől. Azonban a nullátmenetek vizsgálata is szükségessé válik, mivel ez más szempontból végzi az elkülönítést, a kettő együttes alkalmazása pedig jó eséllyel vezet helyes eredményhez. Két treshold értéket vezetünk be, egy nagyobbat és egy kisebbet. Ha az energia értéke a nagyobb felett van, akkor biztosan beszéd történt, ekkor aktivizálódik a rendszer, elindul a felismerés. Ha az alacsony érték alatt van az energia, akkor biztosan nem történik semmi, mivel ezt biztosan beszédmentes, csendes szakaszként jelölhetjük. Viszont ha a kettő közé esik, akkor nézzük meg a nullátmeneteket, és így döntjük el, hogy beszédet tartalmazó zajos részről, vagy csak szimplán zajról van-e szó, esetleg zöngétlen beszédhangról. Ez alacsony jel-zaj arány esetében nehezebb feladat, mivel ekkor lehet, hogy beszédként reagál a rendszer a zajra. Ezért inkább magasabb jel-zaj arányú környezetben kifizetődő a használata. A felismerés annál jobb, minél több mintát rögzítünk. Először tíz-tíz mintával teszteltem az algoritmust, de aztán százszáz mintát rögzítettem a jobb felismerés érdekében. A program sok részt merít a Voiceboxból, HMM Toolboxból, és az Auditory Toolboxból. 8 Maximum likelihood módszer: egy feltételes valószínűséget kell maximalizálnunk, a bayes-i döntésből vezethető le 37

7. Első tesztkörnyezet és az azzal elért eredmények Két fontos tényezőt vettem figyelembe a hangrögzítés folyamán, az egyik a mintavételezési arány, azaz hogy milyen gyakorisággal szeretnénk az analóg jelből mintákat eltárolni, a másik pedig az, hogy mindezt hány biten szeretnénk ábrázolni, azaz mennyire pontosan vesszük fel az értékeket. Ezen értékek megválasztása sokszor függ a hangkártyánktól, csak a szabott határokon belül tudjuk változtatni az értékeket, azonban programok segítségével lehetőség nyílik utólagos alul-mintavételezésre. Ekkor az Audacity-t használtam, a kódokat Matlabban futtattam. A mintavételezési frekvenciák a következők voltak: Mivel a beszéd frekvenciája 100 Hz és 8 khz között változhat, a 8000 Hz-es frekvencia már jó kell, hogy legyen, de kipróbáltam 11000 Hz-en és 22000 Hz-en is, mindezt 32 biten. A tesztelés során otthon készített (házon belül házon kívül) felvételekkel dolgoztam, úgy gondoltam, hogy ezek a felvételek elég jól reprezentálják a zajos környezetet, a stúdiófelvételeket pedig feleslegesnek ítéltem meg. A felhasznált mondatok, kifejezések: Ne menj a házához! Ne menj a vázához! Jó ez az illat. Jó ez az élet. Tegnap óta itt áll? Tegnap óta ittál? Nézd, leszedték az árakat! Nézd, leszedték a zárakat! Két ember hazudik. Képembe hazudik. Kérlek, negyedeld! Kérlek, ne egyed! 38

Ezek után tipikus figyelmeztető szavakat használtam: Vigyázz Autó Metró Bicikli Villamos Busz Elől Mögötted Jön Állj Stop Igen Nem Ez összesen 25 elem, melyet a fent megadott paraméterekkel rögzítettem. A zárt szótáras konstrukciók lényege, hogy csak adott helyzetekben használhatóak, viszont bármekkorára kibővíthetőek, így nem csak siketek veszélyre való figyelmeztetésére, hanem egyéb más segítésnyújtásra is használhatóak, például egy munkahelyen az integrációt elősegítendő gyakran használt szavakat, neveket taníthatunk meg a szerkezetnek, majd egyre szélesebb körben használhatjuk. Mivel az algoritmus azt ismeri fel, amit megtanítunk neki, így nem jelent gondot idegen nyelvű szavak felismerése sem, egyedül a beszélőtől való függés és a jobb zajtűrés fejlesztése lehet még fontos. Az adatbázisba kerültek még elemek, ezek a számok 0-9-ig, valamint különböző keresztnevek, hónapok, napok. 7.1. Eredmények a dinamikus idővetemítés algoritmusával 8000 Hz-en a felismerés nem volt túl sikeres, sok mintát nem ismert fel a program. 29. ábra: 8000 Hz-es mintákhoz tartozó eredmények időbeli eloszlása kifejezésenként, különböző zajterheléssel 39

A rossz eredményeket nullának vettem, így jól látható a grafikonon, hogy hol nem sikerült eredményt elérni. Akkor is nullának vettem az értéket, ha a felismerés megtörtént, de rossz eredményt adott. Ilyen a Nézd, leszedték az árakat, illetve a Nézd, leszedték a zárakat mondatoknál volt. Ugyanez 11025 Hz-en: 30. ábra: 11025 Hz-es mintákhoz tartozó eredmények időbeli eloszlása kifejezésenként, különböző zajterheléssel Itt már jobban látszik az egész eloszlása, látható, hogy a zajos környezet növelésével egyre csökken a helyes felismerések száma, és a hangminőség javulása miatt már több a helyes felismerés. Voltak kifejezések, ahol itt sem értem el értékelhető eredményt, de a rövid szavak esetében ez az előzőnél jobb volt. A harmadik grafikonon a 22050 Hz-en tárolt minták esetében elért eredmények láthatóak: 31. ábra: 22050 Hz-es mintákhoz tartozó eredmények időbeli eloszlása kifejezésenként, különböző zajterheléssel 40

Ebben az esetben is látható, hogy a felismerés pontosabb lett, több helyes eredmény született, de a két mondatpár esetében ismét nem sikerült a megkülönböztetés. Persze ezeket azért is tettem bele, hogy nehézséget okozzanak, így jó indikátorai lettek a pontos felismerésnek. Itt is a rövidebb kifejezések értek el nagyobb sikereket. Összefoglalva elmondható, hogy az algoritmus segítségével sikerült helyesen felismerni a rövidebb kifejezéseket, ezeket zajos környezetben is jó minőség mellett. A nehezebb kifejezések gyakran adtak hibát, illetve nem lehetett őket megkülönböztetni. Az időbeli eloszlás 2-6 s között van. 7.2. Zárt szótáras felismerés beszélőazonosítással elért eredmények Ez az algoritmus szinte valós időben, 1-2 tizedmásodperces késéssel érte el az alábbi, közel 75%-os eredményeket: 32. ábra: A helyes felismerések százalékos aránya 10-10 teszt elvégzése után A felismerés zajmentes, otthoni körülmények között sikeres, még utcazajban is, mivel a spektrumot vizsgálja, a sikeresség a jel-zaj viszony függvénye. Variálhatunk még beszédünk ritmusával, hangsúlyával, eltorzíthatjuk azt, akkor sem túl sokszor sikerült a felismerés. Azonban ha csak a saját beszédünkben általában is előforduló különbségeket vesszük alapul, jó eredményre juthatunk. Átlagosan elmondható, hogy az algoritmus többször ismer fel helyesen, mint sem. 41

7.3. Eredmények rejtett Markov modellel Ez az algoritmus elég jó aránnyal ismerte fel a számokat, de néhány esetben adódtak gondok. A hónapoknál a június és a július volt nehezen megkülönböztethető, ezt mintha véletlenszerűen találta volna el. Itt nem teszteltem mondatokkal, csak rövidebb kifejezésekkel, nevekkel. Itt is jelentkeztek azok a problémák, mint a többi megvalósításnál, hogy nem mindegy, hogy milyen tempóban, milyen hangsúllyal beszélünk, hol visszük le a hangsúlyt, hol visszük fel, milyen a hangmagasságunk. A zajtűrése nem volt tökéletes a rendszernek. Számok esetében: 33. ábra: Eredmény számok esetében (O-otthon, U-utcán, 10-10 mintával, százalékban kifejezve) Hónapok esetében: 34. ábra: Eredmény hónapok esetében (O-otthon, U-utcán, 10-10 mintával, százalékban kifejezve) Napok esetében: 35. ábra: Eredmény napok esetében (O-otthon, U-utcán, 10-10 mintával, százalékosan) 42

Előfordult, hogy rosszul ismerte fel a számjegyeket, leginkább az egy-négy számoknál. A hónapoknál több gond akadt, itt sokszor jelzett tévesen vagy fel sem ismerte, viszont a júnuis-július nagyon problémásnak bizonyult. A legjobb eredményt a napoknál értem el, itt nagyon jól sikerült a felismerés, sokszor adott jó eredményt. Átlagban a felismerések: 36. ábra: Az eredmények összefoglalása 8. Továbbtesztelt algoritmus, újabb feladatok Az előzőekben bemutatott dinamikus idővetemítés algoritmusa nem illeszkedik teljesen a feladathoz, és bár nem hoz rossz eredményeket jó hangminőség esetén, zajosabb környezetben nem megfelelő eredményt ad, valamint a gyorsasága sem megfelelő, hiszen egy valós idejű alkalmazásban nem engedhető meg ekkora késés. Ezen felül zárt szótáras és beszélőfüggő is, ez nagyban nehezíti a jelen feladatkörben való alkalmazását. A következő megoldást azért vetettem el, mert jelenleg beszélőazonosításra nincs szükség, hiszen ez a beszélőt próbálta meg megkülönböztetni a Csebisev egyenlőtlenség és egyéb statisztikai módszerek segítségével. Bár itt elég jó eredményt lehet elérni, és a sebessége is viszonylag gyors volt, pontossága függ az adatbázisba felvett minták számától. Itt a legnagyobb probléma, hogy nem tesz lehetővé állandó beszédfelismerést, inkább csak szeparált szavak, kifejezések felismerésére alkalmas. Az előzőekben a rejtett Markov modellre épülő megoldás vezetett a legjobb eredményhez, így úgy döntöttem, hogy ezzel foglalkozom mélyebben a továbbiakban. Mivel a feladatom, a beszéddetektáló algoritmus fejlesztése és tesztelése nem feltétlenül követeli meg a mondandó pontos felismerését, így több figyelmet szenteltem a beszéddetekcióra. 43

8.1. Az új tesztkörnyezet A jobb tesztelhetőség érdekében új tesztkörnyezetet készítettem. Bár nem tartalmaz annyi nevet, mint az előző, ugyanazokkal a mondatokkal, kifejezésekkel foglalkoztam most is, hogy legyen összehasonlítási alapom. Most 8000 Hz-en és 8 biten rögzítettem a mintákat, majd 16000 Hz-en és 16 biten, valamint csináltam néhány CD minőségű (44100 Hz, 32 bit) felvételt is. Az első két változatból kifejezésenként 100-100 mintát rögzítettem, a CD minőséggel ezt tízszer tettem meg, hiszen ezt csak ellenőrzésképpen használtam fel, a taktilis kijelző használatánál ugyanis nincs mód ilyen jó minőségű felvételek feldolgozására. Igyekeznünk kell a lehetőségeinkhez képest legrosszabb minőséggel is jó eredményeket elérni, hiszen ez vezethet csak az erőforrás-takarékossághoz. A felvételeket megvágtam, mindegyik elején egy másodperc beszédmentes zajos szakasz található. Így lehetőség van egyesével is betölteni őket, de van olyan hanganyag is, ahol minden kifejezésből száz minta található egy hangfájlban, így ez folyamatos tesztelést tesz lehetővé. A valós idejűség még annyiban nem valósult meg, hogyha egy mintát tesztelek, akkor utána azonnal megmutatja az eredményt, de ez több minta esetén (pl. száz minta együttes betöltésénél, amely körülbelül 3,5-4 percbe telik) csak a teljes hanganyag végigtesztelése után látható. A felvételek stúdiókörülmények között, otthoni környezetben és az utcán (forgalomban) készültek. Ez a három környezet egész jól modellezi a teljes életteret. A stúdióban és otthon készített felvételek között a vártnál kevesebb különbséget tapasztaltam, de azért a felismerés során már jobban elkülönültek, különösen a megkülönböztethetetlennek hitt hónapok és mondatok esetében. Végül tehát két algoritmust teszteltem újra. Az egyik a rejtett Markov modellt alkalmazó kettős tresholdot tartalmazó algoritmus, amelynél az új felvételek sokkal szélesebb körű tesztelést tettek lehetővé. A másik módszer szintén ennek az algoritmusnak az alapja, a kezdeti feldolgozás során használjuk, ez pedig a hangaktivitás detektálása. Ennek során fel kell ismerni, hogy az adott szakaszban történt-e beszéd, ha igen, akkor ezt jelezni kell. Ez a jelzés éppen elegendő ahhoz, hogy a taktilis kijelző működésbe lépjen és jelezze a beszéd jelenlétét. Tehát megpróbáltam kiragadni az algoritmusból ezt a részt, és megjeleníteni a beszédet tartalmazó részeket. 44

8.2. A tesztelt kifejezések Mint fentebb említettem, minden kifejezésből 100-100 minta került rögzítésre, mind 8000 Hz-en és 8 biten, mind 16000 Hz-en és 16 biten, valamint 10 minta CD-minőségben is. Mindezek stúdió, otthoni és forgalmas környezetben, így az összmintaszám és a tesztelés ideje megugrott az előző tesztkörnyezethez képest, árnyaltabb eredményt adva a felismerés sikerességéről. A felhasznált szavak, mondatok: Számok: 1 2 3 4 5 6 7 8 9 10 Hónapok: január február március április május június július augusztus szeptember október november december Napok: hétfő kedd szerda csütörtök péntek szombat vasárnap Női nevek: Anett Katalin Sára Vilma Zita Férfi nevek: Attila Balázs Géza József Péter 45

Mondatok: Állj, jön a villamos Jön a busz Mögötted egy biciklis Vigyázz, ott a metró Jó ez az élet Jó ez az illat Képembe hazudik Két ember hazudik Kérlek, ne egyed Kérlek, negyedeld Ne menj a házához Ne menj a vázához Nézd, leszedték az Nézd, leszedték a Tegnap óta itt áll? Tegnap óta ittál? árakat zárakat 8.3. Rejtett Markov modellt alkalmazó algoritmussal elért eredmények A számok esetében ismét a négy és az egy, a hat és a hét volt problémásabb, de a régebbi eredményekhez képest most jobban egymáshoz közelítenek azok, nincs olyan túlzottan kiugró érték. A hónapoknál ismét a június-július volt a problémás, bár az előzőekhez képest már nem csak a véletlen döntés látszik, hanem jobb a megkülönböztetés. A mondatoknál is hasonló eredményre jutottam, mint tavaly. Az igazi kihívást az jelentette, hogy a megadott mondatokat mindig megkülönböztetetten mondjam fel, hiszen a beszédben sem tudjuk megkülönböztetni a Tegnap óta itt áll? vagy a Tegnap óta ittál? mondatokat. Ugyanígy volt sikertelen a Nézd, leszedték a zárakat és a Nézd, leszedték az árakat mondatok megkülönböztetése. Ha túlzottan hangsúlyoztam, az segített, de így senki sem beszél, tehát a megkülönböztetés így nem lehet reprezentatív. A többi hangmintánál arányaiban hasonló eredmények születtek, mint az előző tesztkörnyezettel, így elmondható, hogy a többszöri tesztelés csak finomította az eredményeket, bár a treshold állításával a zajtűrést valamelyest sikerült javítani. Általánosságban elmondható, hogy a várt eredményt kaptuk, azaz ahogy javult a felvételek minősége, úgy lettek az eredmények is egyre jobbak. Stúdióban szinte mindent sikerült felismerni, itt majdhogynem hibátlan eredményt kaptam. Otthoni környezetben kicsivel rosszabb eredmények születtek, a különbség leginkább a technikai berendezések különbözőségéből adódhat. A forgalmas utcán készült felvételek felismerésénél sokkal 46

rosszabb eredményre számítottam, de visszahallgatva már hallatszott, hogy itt sem ad majd annyi hibás eredményt a tesztelés. Itt már akadtak hibák, főleg akkor, amikor egy-egy zöld lámpa hatására megnőtt a hirtelen elinduló forgalom, ilyenkor volt, hogy sajnos ösztönösen hangosabban kezdtem el beszélni a zaj túlharsogása érdekében, de ha sikerült megtartanom a hangerőmet, akkor előfordult, hogy a zaj elnyomta a beszédemet. Ilyenkor, mint az a hangaktivitás detekciónál is látszik majd, nem sikerült a felismerés, azaz hibásan ismert fel. Ez a minőség csökkenésével csak nőtt, bár még így is elfogadható eredményt adott, hiszen 60% körül, de inkább felette adódtak az eredmények. A rosszabb értékek betudhatók a nagyobb zajos periódusoknak, ezt viszont ellensúlyozhatja a hangsúlyosabb beszéd. 8.4. Az eredmények táblázatos formában és grafikonon ábrázolva Számok esetében a sikeres felismerések száma: 37. ábra: Számok esetében a sikeres felismerések száma Ez grafikonon ábrázolva: 38. ábra: Számok esetében a sikeres felismerések száma grafikonon ábrázolva 47

Napok esetében a sikeres felismerések száma: 39. ábra: Napok esetében a sikeres felismerések száma Ez grafikonon ábrázolva: 40. ábra: Napok esetében a sikeres felismerések száma grafikonon ábrázolva Hónapok esetében a sikeres felismerések száma: 41. ábra: Hónapok esetében a sikeres felismerések száma 48

Ez grafikonon ábrázolva: 42. ábra: Hónapok esetében a sikereses felismerések száma grafikonon ábrázolva Hasonló mondatok esetében a sikeres felismerések száma: 43. ábra: Hasonló mondatok esetében a sikeres felismerések száma Ez grafikonon ábrázolva: 44. ábra: Hasonló mondatok esetében a sikeres felismerések száma grafikonon ábrázolva 49

Mondatok esetében a sikeres felismerések száma: 45. ábra: Mondatok esetében a sikeres felismerések száma Ez grafikonon ábrázolva 46. ábra: Mondatok esetében a sikeres felismerések száma grafikonon ábrázolva Nevek esetében a sikeres felismerések száma: 47. ábra: Nevek esetében a sikeres felismerések száma 50

Ez grafikonon ábrázolva: 48. ábra: Nevek esetében a sikeres felismerések száma grafikonon ábrázolva Látható, hogy az eredményeknél adódnak indokolatlan rossz felismerések, ezek általában az én hibámból adódnak, mivel nem mindig sikerült jól hangsúlyoznom és volt, hogy zajos környezetben hangosabban, tagoltabban beszéltem, így könnyebb volt a felismerés. Ezeket elég nehéz kiszűrni, mert ösztönösen történnek, de ez a valóság modellezése szempontjából nem is baj, így jobban közelíti a valós élethelyzeteket. 8.5. A Voice Activity Detection-nel elért eredmények A hangaktivitás detektálása jelen esetben egész pontos eredményeket adott. Három hangminta esetében láthatjuk a detektálás eredményét. Látható, hogy a hangminőség nem annyira befolyásolja a detektálást, mint a zajszint. Minél zajosabb környezetben vagyunk, annál több hibát vét a rendszer. A forgalomban akkor is történt hangaktivitás jelzése, amikor csak zajosabb, két beszéd közötti szakasz volt. Mivel itt nem számít, hogy mit ismerünk fel, csak hogy felismertünk-e valamit, az eredmények máshogy alakultak, így egy kifejezésekre lebontott és egy össz-százalékos arányt tudunk kiszámolni. Ezek az értékek a következők: 49. ábra: A sikeres detektálások száma 51