Miskolci Egyetem Gépészmérnöki és Informatikai kar Automatizálási és Kommunikáció-Technológiai Tanszék TDK-dolgozat Kis szótáras beszédfelismerő hatékonyságának vizsgálata különböző jel-zaj viszonyokkal Assessment of small vocabulary speech recognizer with different sing-noise conditions Készítette: Pintér Judit Mária mérnök informatikus MSc 2. évf. Témavezető: Dr. Czap László egyetemi docens, tanszékvezető
Tartalom Bevezetés... 4 1. A beszédfelismerés... 6 1.1 A beszéd komplexitása, fiziológiai és fizikai alapjai... 7 1.2 Az emberi hallás jellemzői... 8 1.3 Beszédfelismerési feladatok [3]... 10 1.4 A számítógépes beszédfelismerők általános felépítése és működése... 14 1.5 Fejlődését befolyásoló tényezők[6]... 15 2. Rejtett Markov- modell... 16 2.1 A Markov lánc... 16 2.2 A Markov- modell... 16 2.3 A Rejtett Markov- modell (HMM)... 16 3. A HTK toolkit [9]... 18 4. A kis szótáras beszédfelismerő ismertetése... 20 4.1 A hangminták és a lényegkiemelés tulajdonságai... 20 4.2 A nyelvtan fájl... 21 4.3 A szótár fájl... 21 4.4 A rejtett Markov-modell [4]... 21 5. Különböző állapotszámú rejtett Markov-modellek tesztelése... 23 6. Különböző állapotszámú rejtett Markov-modellek alkalmazása az egyes parancsszavakhoz... 25 7. A hatékonyság vizsgálata különböző jel-zaj viszonyokkal... 28 7.1 A jel-zaj viszony... 29 7.2 Zajmentes tanító minták vizsgálata... 31 7.3-6dB zajjal terhelt tanító minták vizsgálata... 32 7.4 0dB zajjal terhelt tanító minták vizsgálata... 33 7.5 6dB zajjal terhelt tanító minták vizsgálata... 34 2
7.6 12dB zajjal terhelt tanító minták vizsgálata... 35 7.7 18dB zajjal terhelt tanító minták vizsgálata... 36 7.8 24dB zajjal terhelt tanító minták vizsgálata... 37 Összegzés... 38 Irodalomjegyzék... 40 Melléklet... 41 1. Melléklet - A tanító szavak és átírásuk... 41 2. Melléklet A tesztelő parancsok és átírásuk... 42 3. Melléklet - Az IPhA és SAMPA magyar szimbólumrendszere... 43 4. Melléklet A HCopy config fájl tartalma... 44 5. Melléklet- A nyelvtan fájl tartalma... 44 6. Melléklet A szótár fájl tartalma... 45 7. Melléklet csere.pl script fájl tartalma... 46 8. Melléklet csere2.pl script fájl tartalma... 47 9. Melléklet Szavak csoportosítása... 48 10. Melléklet jelzaj.m matlab fájl tartalma... 48 3
Bevezetés A mai kort, amelyben élünk leginkább az információs társadalom jelző tükrözi. Az információs és kommunikációs folyamatok hálója a mindennapi életünk szerves részeként jelenik meg. Számos definíció segít a jelenség megértésében és értelmezésében. Az egyik szerint: nagyfokú információsűrűség a legtöbb polgár mindennapi életében, a legtöbb szervezetben és munkahelyen; közös vagy kompatibilis technológia használata személyes, közösségi, oktatási és üzleti tevékenységek széles körében; olyan használati eszközök, amelyek segítik az információ gyors átvitelét, fogadását és cseréjét különböző helyszínek között, a távolságuktól függetlenül [1]. Az előbbi megfogalmazás is azt a tényt támasztja alá, hogy a technika egyre inkább törekszik az ember-gép közötti kapcsolat tökéletesítésére. Cél, hogy minél inkább hatékonyabbá, gyorsabbá és természetesebbé válhasson. Az ember-gép kapcsolat szűkebb és tágabb értelemben is szokás értelmezni. A kapcsolat szűkebb értelmezése az ember és gép közvetlen kapcsolódási felülete, tágabb kört vizsgálva pedig nem más, mint az embergép együttélés. Ebből adódóan a szűkebb értelmezés a közvetlen kommunikációs eszközökről, a fizikai kapcsolatról és annak feldolgozásáról, irányításról szól. Amíg a tágabb értelmezés a kommunikációs felületen túlmenően tartalmazza az emberek és gépek alkalmazkodását egymáshoz, valamint az egymásra hatásokat is. [2] Az ember-gép kommunikáció során az egyik legfontosabb kritérium a megbízhatóság. Ez az elvárás magába foglalja azt, hogy az észlelt információ megegyezzen a küldő által kibocsátott jel információtartalmával. Annak érdekében, hogy ennek a feltételnek eleget tegyünk, csak olyan eszközökkel tudjuk az ember-gép közötti kommunikációt megvalósítani, amelyek lekötik valamely testrészünket. Ezekre evidens példaként az egér, a billentyűzet, vagy az érintőképernyő szolgálhat, mely eszközök a látó szervünkkel és a tapintó képességünkkel együtt segíti a kommunikációt. Tudjuk, hogy ez emberek közötti kommunikáció egyik legalapvetőbb eszköze, és egyben legegyszerűbb és legtermészetesebb módja a beszéd. Ezen állítást szem előtt tartva az ember régi vágya, hogy az általa konstruált gépekkel, berendezésekkel emberi nyelven, a beszéd eszközével tudjon hatékonyan és megbízhatóan kommunikálni. A természetes nyelvű ember-gép dialógusnak a beszédmegértésre irányuló elemét nevezzük gépi 4
beszédészlelésnek. A beszédészlelés terminus gyakorlatilag mindent magába foglal abból, amit az ember a beszédpercepció során megállapíthat a másik ember beszédéből (tartalom, beszélő attitűdje, érzelmei, fizikai állapota stb.). [1] A gépi beszédészlelést megvalósító alkalmazások tipikusan a gépi beszédfelismerők, amelyek puszta beszéd-szöveg átalakítást végeznek anélkül, hogy a beszédben hordozott jelentést megérteni képesek lennének. A beszédfelismerés fejlődése során több módszert is kifejlesztettek ennek megvalósítására. A 80-as évektől egy új módszer, a statisztikai alapú felismerés hódított teret. A módszer lényege, hogy minden felismerendő egységhez tartozik egy valószínűségi modell. Lenny Baum volt az, aki feltalálta a rejtett Markov-modell alkalmazhatóságát a felismerők területén. A Hidden Markov-Model máig használatos módszer az akusztikus beszédfelismerésben, melynek bemenetét a jellegvektorok vagy lényegvektorok (Feature vector) képezik. Viszont ez a modell sem tökéletes, hiszen nehézségeket jelent, ha a bemenet bizonytalan, vagy zajjal terhelt, ha sok a hasonló szótárelem, továbbá a mindig problémát jelentő kiejtésbeli eltérések. Munkám során teszteléseket fogok végezni egy rejtett Markov-modelleken alapuló beszédfelismerőn, amit egy függősínpálya vezérléséhez készítettem el. Először a rejtett Markov modellek állapotszámának optimális megválasztására fogok törekedni, majd mivel használatából adódóan feltételezhetjük, hogy a beszédfelismerőnek akár ipari zajos környezetben is megfelelő megbízhatósággal kell működnie, ezért dolgozatomban különböző zajokkal terhelt tanító és tesztelő anyagok hatékonyságra gyakorolt hatásait fogom vizsgálni. 5
1. A beszédfelismerés A kitűzött vizsgálatok előtt érdemes tisztázni mi is pontosan a beszédfelismerés. A beszédfelismerés az a folyamat, melynek során a beszédfelismerő gép azonosítja a kiejtett beszédjeleket és átalakítja ezeket szöveggé, vagy más, számítógép által feldolgozható adattá. Beszédjelek alatt természetesen érthetünk akusztikus vagy akár vizuális jeleket is (gesztikulációk, arcmimika, szájmozgás). A vizuális jelek feltérképezésével, megértésével, és rekonstruálásával az audiovizuális beszédfelismerés foglalkozik. Az általam betanított beszédfelismerő viszont az akusztikus jeleket fogja figyelembe venni, azaz magát a beszédhangot, amit szöveggé fog átalakítani. A beszéd nem más, mint akusztikus hullámok keltése, azaz beszédhangok, fonémák (hangok olyan elemi, elvont egysége, amely szavakat különböztet meg egymástól, önálló jelentéssel nem rendelkezik) kibocsátása. A beszéd nem csupán fonémák sorozata, hanem fontos a hangsúlyozás a hanglejtés és számos más szupraszegmentális jellemző is. Ezek alapján egyértelmű, hogy a beszéd az emberek legfőbb kommunikációs eszköze, ezért az akusztikus beszédfelismerést igen sok területen és különböző céloknak megfelelően alkalmazzák. A beszédfelismerés meglehetősen tág témakör. Szűkebb értelemben a tartalom felismerését értjük alatta, tágabb értelemben azonban alkalmazások egész sora használ egészében vagy komponenseként beszédfelismerőt. A beszéd használata az ember-gép kapcsolatban, azaz amikor gépekkel beszélünk, része annak a törekvésnek, hogy a számítógépeket (és más információs rendszereket) többféle bemeneti és kimeneti eszközön tudjuk elérni, úgynevezett multimodális interakcióval [1]. Az következő fejezet a beszéd komplexitását és az emberi hallás jellemzőit taglalja, amik érthetőbbé teszik az akusztikus beszédfelismerést és nehézségeit is egyben. 6
1.1 A beszéd komplexitása, fiziológiai és fizikai alapjai A beszélni tudás kizárólag az ember képessége. Az előző fejezetben megadott definíció alapján a beszéd hanghullámok révén közvetíti az információt. A beszédhez egyidejűleg három dolognak a megléte szükséges: nyelvi rendszer, ami meghatározza az akusztikai elemeket, a beszélő ember ép biológiai szervei a beszédképzéshez és a beszédjel felfogásához, végül a közeg, amely a hanghullámot továbbítja. Ha a fentebb felsoroltak közül bármelyik is hiányzik vagy sérül a beszéd információközvetítési hatásfoka csökken. A beszéd mint akusztikai jel - komplex szerkezetét a fenti három elem határozza meg a beszélés minden pillanatában és ebből adódóan az emberi beszéd nem determinisztikus jellegű. [1] A nem determinisztikus jelleg a beszédünkben használt különböző kifejezések különféle kiejtései közötti variáltságot jelenti, azaz ha ugyanazon kifejezés különböző kiejtéseit rögzítjük, nem ugyanazt a hullámformát, digitalizálás után pedig nem ugyanazt a byte sorozatot fogjuk kapni. Ez a variáltság beszélők között és egy adott beszélő különböző kiejtései között is adott (a variáltságnak különböző okai lehetnek, amelyeket a 1.4 fejezetben fogok részletezni). A beszélők közötti variáltság a második pontból következik. Minden ember hangképző szervének a felépítése más, de vannak korcsoportokra, nemekre, dialektusokra jellemző vonások. A beszédet továbbító közeg elsődlegesen a levegő. (A beszéd továbbításához vagy tárolásához esetlegesen használt technológiák szerint lehet más közeg is.) A beszéd másik lényeges tulajdonsága a redundancia, ami azt jelenti, hogy a hullámformában azokból a komponensekből, amik a megértést segítik, sokkal több van jelen, mint ami a tényleges beszédészleléshez és megértéshez feltétlenül kellene. Ez is hozzájárul ahhoz, hogy a beszédet akkor is megértjük, ha más zavaró akusztikai tényezők (utcazaj, mások beszéde, mi esetünkben ipari berendezések zaja stb.) is eljutnak hallási rendszerünkhöz.[1] 7
1.2 Az emberi hallás jellemzői Ahhoz, hogy kiemelhetővé tegyük a hang fontosabb paramétereit az előfeldolgozás során (lényegkiemelés), meg kell határozni, hogy a fül milyen fizikai paraméterekre milyen arányok szerint érzékeny. Az első lényeges paraméter a hang intenzitása. A fül akusztikai hullám érzékelésének tartománya körülbelül 20 Hz-től 20 khz-ig terjed, ám az érzékenység egyáltalán nem azonos a különböző frekvenciákon. Több alanyon elvégzett kísérletek alapján írták fel a phon-skálát, ami a szubjektív hangosságérzet frekvenciafüggését adja meg. Definíció szerint az 1000 Hz-es szinuszos hang hangosságértéke megegyezik a decibelben mért hangintenzitás értékkel, ettől eltérő frekvenciákon pedig a görbékről olvasható le a szubjektív érzet. A görbék az azonos hangosságúnak érzékelt intenzitásokat kötik össze. Körülbelül a 3-4 khz frekvenciák környékén a legérzékenyebb a hallószervünk, és innen a kis és nagy frekvenciák felé haladva csökken az érzékenység. Ebből következik, hogy a hallásküszöb, azaz a legkisebb, ingert kiváltó intenzitás is 3-4 khz környékén a legkisebb (10-13 db). A frekvenciaérzékelés a csiga mentén (20 Hz-től 500 Hz-ig) lineáris, felette logaritmikus. Kis frekvenciákon sokkal jobb a hallás felbontása, mint nagy frekvenciákon. A fenti tulajdonságokat mérlegelve írható fel a Mel-frekvencia skála, melynek kiindulási alapja az 1 khz-es, 40 db intenzitású hang, melyhez az 1000 Mel értéket rendelték. Kis frekvenciákon kisebb a lépcső, amíg például 200 Hz-nek 283 Mel érték felel meg, és 400 Hz-nek 509 Mel (~1.8-as szorzó), addig 2000 Hz-nek 1520 Mel, 4000 Hz-nek pedig 2146 Mel (~1.41-es szorzó) [4]. Az akusztikai előfeldolgozás során fontos szerepük van a Fletcher által 1940-ben meghatározott kritikus sávoknak. Ha egy adott frekvenciájú szinuszos hangot hallunk, és vele egy időben szélessávú fehér zajt (itt a sáv nem annyira széles, hogy kiterjedjen az egész hallható tartományra, körülbelül 1-2 száz Hz-es sávokra kell gondolni), és a szinusz frekvenciája távol esik a zaj frekvenciatartományától, a két hangot függetlenül, tisztán elkülönülve érzékeljük. Azonban ha a frekvenciák fedik egymást - a hangintenzitások és a frekvenciaértékek függvényében - csökken a szinuszos hang hangosságérzete, és zaj akár teljes mértékben el is fedheti azt. A kritikus sávok érzetmódosító hatását tekinthetjük a hallásküszöb eltolódásának. Azaz zajos környezetben nagyobb intenzitás szükséges 8
hanginger kiváltásához, mint csendes környezetben (a phon-skála zajmentes környezetben mért értékeket mutat) [4]. Ha a fülünket egyszerre több egy kritikus sávba eső hang éri, akkor azok intenzitása összegződik, de a hallásunk nem tudja azokat megkülönböztetni. A kritikus sávok alapján íródott fel a bark-skála (Eberhard Zwicker, 1961). A skála a hallható tartományt (15500 Hz-ig) 24 sávra bontja, a sávok között átfedés van. A bark szám két hang közti frekvenciakülönbséget megadó pszichoakusztikai jellemző. Azt mutatja meg, hogy a két vizsgált hang között hány kritikus sáv van. A bark-skála sávjai, a hallás frekvenciatartománybeli felbontásának nemlinearitása miatt, alacsony frekvenciákon keskenyebbek, 0 és 1600 Hz közé ugyanannyi kritikus sáv esik, mint 1600 és 16000 Hz közé. Amíg az első négy sáv sávszélessége 100 Hz, és ez az érték a nyolcadik sávig alig növekszik, addig a huszadik sáv már több mint 1 khz sávszélességű (5300-6400 Hz), és a legutolsó (24.) kritikus sáv 12000 és 15500 Hz közé esik (3,5 khz-es sávszélesség). Érdekes pszichoakusztikai megfigyelés, hogy amíg például a hallásküszöb, és a hallható tartomány felső határa egyénről egyénre igen eltérő lehet, addig a kritikus sávok szinte mindenkinél ugyanolyan értékekkel adhatók meg. Fontos megjegyezni, hogy elfedési jelenségek az időtartományban is megfigyelhetők [4]: Utóelfedés jelensége: ha egy nagyobb intenzitású inger után kisebb intenzitású inger éri a hallószervet (1-2 száz ms-on belül), akkor a második hangot gyakran nem érzékeljük. Előelfedés jelensége: ha kis idővel egy gyengébb jel után hangos jel éri a fület, és az időben korábbi jelet nem érzékeljük. Ez azzal magyarázható, hogy a hangosabb ingerek gyorsabban terjednek a hallóidegeken. Az, hogy milyen időkülönbség szükséges az előelfedés tapasztalásához, intenzitásfüggő, nagyobb dinamikabeli különbségeknél nagyobb időbeli különbség is megengedhető. 9
1.3 Beszédfelismerési feladatok [3] Beszéd-szöveg átalakítás (speech recognition) Beszélőfelismerés o Beszélő személy azonosítása (speaker verification) o Felhasználó felismerése, kiválasztása egy előre definiált halmazból (speaker identification) Beszéddetekció Kulcsszókeresés Érzelmi töltet felismerése A különböző szempontokat figyelembe véve az alábbi osztályokba sorolhatók a beszédfelismerő szoftverek: A szótár nagysága szerint: Az egyszerű vezérléseket megvalósító felismerők kis szótárasak ide sorolható a vizsgálatokhoz felhasznál beszédfelismerő is. o kis (kötött, zárt) szótáras: néhány száz szó o középszótáras: néhány ezer szó o nagy szótáras (kötetlen, nyílt szótáras), több tízezer szó A megvalósítás módja szerint: milyen módon kezeli a bemeneti hangadatot, illetve, hogy milyen algoritmusokat használ o Mintafelismerő: napjainkban főleg ezt használják, ilyen pl. rejtett Markov-Modell o Akusztikus-fonetikus: pl. neurális hálós és az ismeretalapú (tudásalapú) módszer Beszédmód szerinti osztályozás: o Izolált szavak, kijelentések felismerése: egyszerre csak egy kijelentést vár, a beszélőnek a szavak között szünetet kell tartania. Egy szótárelemet határoz meg a szótárból. (1.ábra) 1. ábra Izolált szavak, kijelentések felismerése 10
o Kapcsolt szavak felismerése hasonlít az előzőhöz, de a rendszer már képes bizonyos szókapcsolatokat is felismerni, viszont nem ismeri a szavak határát, ezért minden kombinációt figyelembe kell vennie. 2. ábra Kapcsolt szavak felismerése o Folyamatos beszéd felismerés esetén sok nehézséggel jár a rendszer megalkotása, főként a határok megállapítása miatt, viszont jó megoldásnak ígérkezik a valószínűség számítási algoritmusok (pl. HMM) használata. A nagy szótáras diktáló rendszernek előkövetelménye a folyamatos beszédfelismerés. A 3.ábra is azt szemlélteti, hogy a végeredmény nem szavak felismerése, hanem összefüggő mondatoké. Ehhez szükséges szintén a lényegkiemelés, ami ebből is láthatóan minden felismerési típus esetén a kezdeti pont, majd a létrejövő modellek körbejárása, ebben az esetben adatokkal feltöltött rejtett Markov-modellekre kell gondolnunk, amihez szintén szükséges egy nyelvtani alap, a helyes szókapcsolatok kialakításához. Majd az osztályozást követően megkapjuk az eredményt. (3.ábra) 3. ábra - Folyamatos beszédfelismerés 11
Beszélőre adaptáltság szempontjából: o Beszélőfüggő és adaptív rendszerek (Speaker Dependence) esetén a rendszer lehet akár egy adott beszélőre is tervezve, de több felhasználó hangjának az elfogadására is. o Beszélőfüggetlen felismerésről akkor beszélünk, amikor a felismerőt használat előtt igen nagyszámú, általában több mint ezer bemondóval előre betanítanak az adott szókészlet, vagy folyamatos szöveg felismerésére. Olyan esetekben használatosak ezek a rendszerek, amikor minden felhasználót azonosan kell kezelni, vagy a betanítás túl hosszadalmas lenne. Akusztikai környezet szempontjából való osztályozás: o Csendes környezet: jó jel-zaj viszony (> 30 db) o Zajos környezet: speciális algoritmusok szükségesek a zajszűréshez o Telefonbeszéd: a sávkorlátozott jelleg és az egyre gyakrabban alkalmazott tömörítő kódolás miatt megkülönböztetett és fontos felhasználási terület. Üzemmód szempontjából való osztályozás: o parancsmód o diktáló üzemmód o másik csoportosítási mód is megadható üzemmód szempontjából, mégpedig az online, illetve az offline működés Bár a felsorolás nem teljes körű, jól szemlélteti, a fentebb említett feladatok hétköznapi előfordulásait. Diktálás (napjainkban egyik leggyakrabban használt terület) Hallássérültek oktatása, beszédsérültek kommunikációjának megkönnyítése Telekommunikáció, mobiltelefonok (automata telefonos rendszer, hangalapú tárcsázás) Tartalomkeresés audió és videó fájlokban (pl.: Track ID zenefelismerő program, híranyag adatbázisokban való kulcsszó alapú keresés) Riasztó berendezések vezérlése (pl.: beszédhang, mint egyedi azonosító) Épületautomatizálás (pl.: intelligens ház szoftverek) Multimédiás eszközök elindítása, vezérlése Mesterséges intelligencia 12
A vizsgálatokhoz felhasznált beszédfelismerő a fejezetben ismertetett különböző szempontú csoportosítások közül az alábbiakba sorolható: kötött szótáras (kulcsszó alapú felismerés); mintafelismerő (rejtett Markov-modellek alkalmazása); kapcsolt szavak felismerésére alkalmas; beszélőfüggetlen. 13
1.4 A számítógépes beszédfelismerők általános felépítése és működése Egyre inkább világossá vált napjainkban, hogy a puszta beszéd - karaktersorozat átalakítás nem oldható meg a szövegfeldolgozás szintaktikai - szemantikai összefüggéseinek vizsgálata nélkül. E két szint összekapcsolásával működnek a mai felismerők. A számítógépes beszédfelismerők nem túl részletes működési vázlatát láthatjuk a 4.ábrán, amely fonémák modelljére épülő statisztikai alapú beszédfelismerő rendszert mutat be. A bemenetre kapott beszédjelet előzetesen egy akusztikai feldolgozásnak vetjük alá, amelyet szokás lényegkiemelésnek is nevezni. A cél az, hogy olyan, az egyes beszédhangokat jól elkülönítő jellemzőket tartsunk meg, amelyek a beszédet a lehető legtömörebben reprezentálják lényegesebb információveszteség nélkül. A tömörítés szükségessége az eredendően hatalmas számítási igény kordában tartása végett is felmerül, a legtöbb alkalmazáshoz kívánatos ugyanis, hogy a beszédfelismerő valós időben is működőképes legyen (online üzemmód). Ezután következhet a dekódolás folyamata. A művelet során a felismerés alapegységeinek modelljeit, a szótárat és a nyelv szintaktikai viszonyait statisztikai alapokon leíró nyelvi modellt használhatjuk fel. A Markov-modellek, a szótár és a nyelvi modell együttesen egyfajta tudást visz a rendszerbe, melyet számítógépes betanítás (training) során alapozhatunk meg. Ehhez beszéd, illetve szöveges adatbázis egyaránt szükséges. A beszédadatbázisnak a nyelvben előforduló valamennyi építőelemet és kapcsolatot is többszörösen tartalmaznia kell, hogy statisztikailag megfelelő lefedettséget adjon. Hasonlóképpen, a nyelvi modellnek is meg kell felelnie a beszédfelismerő használati területére jellemző szóhasználati szokásoknak [5]. 4. ábra Statisztikai számítógépes beszédfelismerő működése 14
1.5 Fejlődését befolyásoló tényezők[6] A beszédfelismerést igen sok tényező befolyásolja. Beszédünk igen változatos, mivel nemcsak az általunk kiejteni próbált mondandót kódolja, hanem számtalan más információt is hordoz magában. Nagy kihívást jelent a fonetikai változatosság. A magyar nyelv rendszere 65 fonémát használ. Ezen fonémák hangzó formáit tekintjük beszédhangoknak. Beszédkeltés során nem elkülönült fonémák fűződnek egymás után, hanem folytonosan változik hangképző szerveink alakja, amiből következően a szomszédos hangoktól függően a beszédhang megváltozhat (igazodás (koartikuláció), részeleges hasonulás, teljes hasonulás stb.). A beszéd tehát nagyobb változatosságot mutat, mint a fonémák [4]. Az akusztikai körülményektől függően a beszédjelbe bekerülhet a környezetből beszűrődő zaj, vagy a jel torzulhat a mikrofon vagy az átviteli csatorna paramétereitől függően. A beszélők közti változatosság is elég nagy jelentőséggel bír. Különböző beszélők hangmagassága, szájüreg mérete, beszédsebessége, dialektusa stb. meglehetősen különbözhet. Egy adott beszélő esetén fennálló változatosságot is figyelembe kell venni. Ha változatlan a beszélő, akkor is meglehetős eltéréseket mutat a beszéd, hisz a beszélő fizikai- (fáradtság, megbetegedés) és lelkiállapota is belekódolódik a beszédsebességébe, a hang minőségébe, hanglejtésbe. Bármennyire akarjuk, nem vagyunk képesek kétszer ugyanúgy elmondani egy üzenetet. Kicsit más szemszögből tekintve a különböző nyelvek is, eltérő esélyeket kínálnak a felismerésükre. A magyar, mint toldalékoló nyelv igen sok problémát vet fel egy beszédfelismerő megalkotása esetén. Az agglutináló (ragozó) jelleg szavanként akár több száz féle toldalék (képző, jel rag) hozzáadását is lehetővé teszi, így megsokszorozza a szóalakokat, míg az angol főleg izoláló nyelv, vagyis a mondatokban a fő nyelvtani funkciókat a szavak sorrendje határozza meg. Alig használ ragozott szavakat, emiatt a szóalakok száma nagyságrenddel kisebb. Ebből adódóan egy angol nyelvre kifejlesztett szóalapú felismerő nem adaptálható a magyar nyelvre. (Fontos a megfelelő beszédfelismerési módszer megválasztása is.) 15
2. Rejtett Markov- modell 2.1 A Markov lánc A Markov-lánc megalkotása a 20. század elejére tehető, amely Andrej Markov orosz matematikus nevéhez fűződik. Az első eredményeket 1906-ban e folyamatok tekintetében kizárólag elméleti szinten fektette le. A Markov-lánc diszkrét sztochasztikus folyamatot ír le. Az a fogalom, hogy valami Markov-tulajdonságú azt jelenti röviden, hogy adott jelenbeli állapot mellett, a rendszer jövőbeni állapota nem függ a múltbeliektől. Másképpen megfogalmazva, ez azt is jelenti, hogy a jelen leírása teljesen magába foglalja az összes olyan információt, ami befolyásolhatja a jövőbeli helyzetét a folyamatnak [7]. 2.2 A Markov- modell A Markov-modellek is a fentebb említett tulajdonságokon alapszanak. E modelleket a tudomány számos más területén fizika, statisztikai folyamatok, internet, matematika, biológiai modellezés, gazdasági elemzések, szerencsejátékok - is alkalmazzák. A Markovmodellek bonyolultabbak a döntési fa modelleknél, de lényegesen kevesebb programozói ismeretet és kisebb adatmennyiséget igényelnek, mint a szimulációs modellek. A Markovmodell magában foglalja a döntési fa lényeges tulajdonságait, és ezen felül már az események bekövetkezésének idejét is figyelembe tudja venni. 2.3 A Rejtett Markov- modell (HMM) A "rejtett Markov-modell" [8] kifejezésben a "rejtett" jelző arra utal, hogy mi csak a modell működésének az eredményét, a kimenetet (azaz a generált szekvenciát) ismerhetjük, a modell maga és a paraméterei számunkra ismeretlenek. Így mi csak a kimenetből következtethetünk a modell felépítésére és a működését leíró paraméterekre (az átmeneti és a kibocsátási valószínűségekre). Elsősorban az izolált szavas, kötött szótáras beszédfelismerésben lehet alkalmazni, amit már a beszédfelismerők osztályozásánál is megállapítottunk. A szótár minden egyes 16
eleméhez tanulással - approximációs eljárással - el kell készíteni egy-egy Markov-modellt, majd a felismerés során a kiejtett elemhez ki kell számítani minden modell esetén azt a valószínűséget, amely valószínűséggel a modell ezt az elemet ilyen kiejtéssel generálhatta. Ha ezek között a valószínűségek között van pontosan egy kiemelkedő, akkor a felismerés sikeres, és a kiemelkedő valószínűséghez tartozó szótári elem lesz az eredmény. (A rejtett Markov-modell érzékeny a túltanulásra.) Tehát az ilyen modellekre épülő beszédfelismerés tisztán statisztikai alapú. A HMM előnye, hogy elég egyszerűen kiterjeszthető nagyszótáras, folyamatos beszéd felismerésére, viszont ebben az esetben nem használható maga a szó felismerési alapegységként, hanem célszerűbb kisebb egységekből építkezni, azaz fonémákból. Ezek összekapcsolásából kaphatjuk meg a szavak modelljeit, majd végül ezeket körbekapcsolva kaphatunk egyetlen nagy modellt. Egy beszédfelismerési feladat rejtett Markov- modellekkel matematikailag az alábbiak szerint fogalmazható meg: Szó felismert =argmax minden szóra {P(szó X)}, Vagyis azt a szót (vagy más beszédelemet) keressük, amelyre az X adott akusztikai megfigyelés-sorozat valószínűsége a legnagyobb. Számunkra azonban az X megfigyeléssorozat ismert, ezért Bayes tétele alapján átalakítva a fenti összefüggést az alábbiak szerint írhatjuk: Bayes- tétel: Szó felismert =argmax minden szóra {P (X szó) P (szó)} Ebben az alakban a P (X) tagot a nevezőből elhagytuk. A P (X szó) valószínűséget az akusztikai, a P (szó) valószínűséget pedig a nyelvi modell adja meg. Az akusztikai modellnek tehát arról kell informálnia, hogy adott akusztikai megfigyelés az egyes szavakra milyen valószínűségű, a nyelvi modellnek pedig arról, hogy az egyes szavak előfordulásának mekkora a becsült valószínűsége. 17
3. A HTK toolkit [9] A HTK egy eszközgyűjteménynek is tekinthető, amely rejtett Markov-modellek építésére szolgál. A HMM alkalmas bármilyen sorozat modellezésére, és maga a HTK is alapjában véve hasonlóan általános célú. Mindazonáltal a HTK elsősorban mégis rejtett Markov-modell alapú beszédfelismerők fejlesztésére szolgál, ami megfelelő nagyságú infrastruktúra hátteret biztosít ezen feladat számára. Az 5. ábrán is látszik, hogy két nagy feldolgozó szakaszból áll. Először a HTK a betanító eszközeit használja a paraméterek becslésére számos rejtett Markov-modell, betanító kifejezések és a hozzájuk társított leírások segítségével. Második szakaszban pedig az ismeretlen beszédjelet írja át a HTK a felismerő eszközök használatával. 5. ábra - Beszédfelismerés általános szemléltetése HMM-el A szoftver számos funkciója könyvtári modulként van beépítve a szoftver architektúrába. Ezek a modulok biztosítják, hogy minden egyes eszköz interfészei azonos módon csatlakozzanak a külvilághoz. Ezért az általánosan használt funkciók számára biztosít egy központi készletet is. 18
6. ábra - Szoftver architektúra A 6. ábra egy tipikus HTK eszköz felépítését, és annak input/output interfészeit szemlélteti. A felhasználói input/output és az operációs rendszer kölcsönhatását a HShell könyvtári modulok ellenőrzik, a memóriamenedzselés felügyelete pedig a Hmem feladata. A fejlesztéshez szükséges matematikai támogatását a HMath látja el, a beszéd analízishez szükséges jelfeldolgozó műveleteket pedig a HSigP könyvtári modul tartalmazza. Egyes fájl típusok esetén a HTK külön dedikált interfészeket ír elő. Például a Label fájlokhoz a HLabel modult rendeli, nyelvi modelleket tartalmazó fájlokhoz a HLM-t, HNet a hálózathoz és nyelvtani hálókhoz előírt, HDict a szótárakhoz, HModel pedig HMM definíciókhoz tartozó dedikált interfész. Minden kimeneti és bemeneti hullámforma a HWave interfészen keresztül, a paraméterezett változata pedig a HParm interfészen keresztül kapcsolódik. Amellett, hogy egyegységes felületet biztosít a fejlesztők számára, a HWave és a HLabel több fájlformátumot is képes támogatni, amely lehetővé teszi különböző adatok importálását más rendszerekből. A közvetlen audió inputot a HAudio, az egyszerű interaktív grafikát pedig a HGraf modul támogatja. A HUtil számos segéd rutint biztosít a HMM-k manipulálására, míg a HTrain és a HFB különféle támogatást nyújtanak a HTK betanító eszközökhöz. HAdapt a HTK adaptációs eszközökhöz nyújt különféle segítséget. Végül HRec tartalmazza a legfontosabb a felismerési folyamathoz szükséges funkciókat. 19
4. A kis szótáras beszédfelismerő ismertetése 4.1 A hangminták és a lényegkiemelés tulajdonságai A HTK toolkit szoftvercsomag alkalmazásával betanított felismerőhöz felhasznált tanító hangminták 40 személytől származnak. Minden egyes személytől a kulcsszavak összesen 26 darab szó (1. melléklet) egyszer került rögzítésre, azaz 1040 tanító hangmintát alkalmaztam a betanításhoz. A felvétel közege többségében csendes, ezért a minták zajmentesnek tekinthetők. A beszélők főleg 20-25 év közöttiek, nemekre vonatkozó eloszlása megfelelő (közel ugyanannyi nőtől és férfitól származnak a hanganyagok). A tesztelő hanganyagok összesen 10 beszélőtől származnak. Ezen személyek nem tartoznak a tanító anyagot létrehozók közé, mivel a cél egy beszélőfüggetlen felismerő megalkotása. Minden alanytól egyenként 21 darab példa parancs került rögzítésre (2. melléklet), ez 210 tesztelő hangmintát jelent. Mindkét esetben a hangminták 16 khz- en lettek rögzítve WAV formátumban (előjeles 16 bites PCM). Ennek megfelelően végezem el a lényegkiemelést a HCopy.exe programmal, vagyis a wav fájlokat konvertáltam át mfc fájlokká. A konvertálás során végezzük el a lényegkiemelést. A lényegkiemelés folyamata a jelből megkísérli meghatározni a beszéd tartalmát hordozó mennyiségeket, azaz a fontos információkat, és kiküszöbölni a felismerés szempontjából érdektelen információkat (zaj, fázis, torzítások). A digitalizált (beszéd) jelből egy diszkrét idejű, adott dimenziójú lényegvektor-sorozatot alkot. Fontos információ alatt itt a mel-frekvenciás kepsztrális komponenseket (Mel-Frequency Cepstral Coefficient / MFCC) értjük [10]. Az MFCC jellemzők a beszéd lényegi tartalmának kinyerésére szolgálnak (7. ábra) és napjainkban a beszédfelismerő rendszerek jelentős többsége e jellemzők (vagy ennek kicsit módosított változatai) segítségével próbálják reprezentálni a beszéd lényegi információ-tartalmát. 7. ábra lényegkiemelés 20
Ahhoz, hogy végre tudjuk hajtani a konvertálást, a paraméterek részletes beállítása szükséges, amiket ebben az esetben a config elnevezésű fájl (4. melléklet) tartalmaz (a legtöbb paraméterek alapbeállításnak minősülnek, amit a kézikönyvben is megtalálható). A ptrain.scp tartalmazza szintén a konvertáláshoz elengedhetetlen wav fájlok helyének és neveinek listáját párosítva a megfelelő kimeneti fájlok neveivel. 4.2 A nyelvtan fájl A felismerő elengedhetetlen része a nyelvtan fájl. A HTK egy nyelvtani definíciókat létrehozó nyelvet nyújt számunkra, aminek a segítségével egyszerű, vagy akár összetett nyelvtani szabályokat is alkothatunk a feladatunknak megfelelően. Ezen szabályok egyfajta reguláris kifejezéseket adnak meg, amelyek állhatnak fonémakapcsolatok sorozatából és metakarakterekből. A definíciók megadhatók egyszerű txt fájlokban is. A létrehozott nyelvtan fájl (5. melléklet) a vezérléshez szükséges parancsszavakat tartalmazza, és annak definícióját, hogy a parancsszavakból, hogyan épülhet fel egy összetett parancs. Egyes kifejezések sorrendje kötött, mint például ha a futómacskát egy adott helyre szeretnénk pozícionálni, és a parancsnak tartalmaznia kell egy kezdő kifejezést (máskép nem értelmezi a rendszer), akkor az így adható meg: start pozícionálás egy hét négy három 4.3 A szótár fájl A szótár (6. melléklet) a kulcsszavakat tartalmazza némileg módosult formában (a nyelvtan fájlban szintén alkalmaztam az átírást), melynek oka, hogy a HTK toolkit szoftver, nem értelmezi az ékezetes karaktereket, ezért némely esetben a SAMPA (a nemzetközi fonetikai ábécé ASCII átírása a SAMPA) szabványt követtem (3. melléklet). vészleállítás -> vesleal:i:tas 4.4 A rejtett Markov-modell [4] A szótárban szereplő minden egyes kulcsszóhoz létre kell hozni a hozzá tartozó rejtett Markov modellt. Beszédhangok esetén általában háromállapotú lineáris struktúrájú modellt (ún. balról jobbra) szokás választani (8.ábra). Magát a modellezést például 21
diádok (a diád olyan fonémakapcsolat, ami két hangból tevődik össze, és az első hang felétől a második hang feléig tart) esetén három vagy több állapot végzi, valójában azonban két további szélső állapotot is találunk, amelyek az egyes beszédelem-modellek összefűzését biztosítják. Felismeréskor a rendszer számára minden keret érkezésekor két lehetőség áll fent, vagy állapotot változtat, vagy helyben marad, bizonyos valószínűséggel. Ezeket nevezzük állapotátmeneti valószínűségeknek, melyek becslése a tanítás során történik. Ez a mechanizmus biztosítja az időbeli illesztést a modell és az aktuális keret között. A rendszer az adott (belső) állapotból két keret érkezése között egy megfigyelést bocsát ki, mely tulajdonképpen egy hasonlósági mérték az adott állapotra jellemző jellemzővektoreloszlás és az aktuálisan érkezett, a külső megfigyelést reprezentáló jellemzővektor között. Lényegében azt mondhatjuk, hogy e hasonlósági mérték a mérőszáma a megfigyelt jellemzővektor és a modellállapot spektrális illeszkedésének. Egy állapotra jellemző jellemzővektor-eloszlást általában sűrűségfüggvényével adunk meg, amelyről feltételezzük, hogy normális (Gauss) eloszlások lineáris kombinációjából áll elő. Ezt szokás kibocsátási valószínűségnek is nevezni [9]. 8. ábra - 3 állapotú lineáris modell A mi esetünkben a kulcsszavak hosszúsága nagyon eltérő, ezért nem egyszerű feladat a megfelelő HMM megválasztása. Kiindulásként egy 8 állapotú modellt választottam. Szakdolgozatomban, ahol diád alapú felismerőn végeztem vizsgálatokat a 8 állapotú modell bizonyult optimálisnak. A kulcsszavak közül a legrövidebb szavak 2 hangból tevődnek össze, ezért egyértelmű, hogy ennél kisebb állapotszámú rejtett Markov-modellel nem érdemes vizsgálni a felismerő hatékonyságát. 22
5. Különböző állapotszámú rejtett Markov-modellek tesztelése A felismerés hatékonysága nagy mértékben függ a választott HMM állapotainak számától. Mivel a kulcsszavak hossza változatos (pl: el, haladás, pozícionálás stb.) ezért érdemes a felismerőt nagyobb állapotszámú modellel is megvizsgálni, mert nagy valószínűséggel javulni fog a felismerés. Minden egyes szótári elemnek létre kell hozni a modelljét a globális átlagokat és szórást tartalmazó prototípus segítségével, ami a mi esetünkben 26 darab modellt jelent. Ez nem nevezhető túl soknak, de mivel számos vizsgálatot el akarunk végezni, ezért script [3] (7. melléklet) segítségével érdemes megvalósítani létrehozásukat, ami minden egyes szótári elem esetén kicseréli a fejrészt az adott elemre a rejtett Markov-modellben és elmenti azokat. Az MMF fájl (az összes szótári elem HMM modelljét és a kezdeti szórási értékeket tartalmazza) létrehozásához szintén scriptet [3] (8. melléklet).alkalmaztam. A 1. táblázatban az egyes állapotszámokra elvégzett tesztelések eredménye látható. A mondatok helyessége, ebben az esetben azt jelenti, hogy az összes tesztelő példaparancsok (210 darab) közül ennyi százaléknyit ismert fel úgy, hogy abban minden kulcsszót jól határozott meg a rendszer. 1. táblázat Értékek változása a HMM állapotszámok megválasztása függvényében HMM állapotszám Helyesség Pontosság Mondatok helyessége 8 87,69% -43,08% 9,52% 10 95,38% 30,77% 38,10% 12 95,38% 52,31% 47,62% 14 95,38% 66,15% 61,90% 16 96,92% 73,85% 61,90% 18 95,38% 83,08% 76,19% 20 95,38% 87,69% 76,19% 22 95,38% 89,23% 80,95% 24 96,92% 93,85% 90,48% 26 95,38% 93,85% 90,48% 28 95,38% 93,85% 90,48% 29 95,38% 93,85% 85,71% 30 95,38% 95,38% 85,71% 31 95,38% 95,38% 85,65% 32 93,84% 93,84% 80,86% 34 93,84% 93,84% 80,86% 23
Ahhoz, hogy érthetőek legyenek az eredmények fontos, hogy a HTK miként számolja ki a pontosság és a helyesség értékét. A két képlet mutatja meg ezt, ahol H a helyesen felismert szavak számát, N az összes szó számát, I pedig a tévesen beszúrt szavak számát jelenti. 9. ábra Az értékek változása a HMM állapotszámok megválasztása függvényében diagramon ábrázolva A diagramon láthatjuk, hogy a 8 és a 20 állapotszám között a pontosság intenzíven növekszik, majd 20 felett a helyességi és pontossági értékek csak néhány százalékos változást mutatnak. A 30 állapotszám után - ahol a helyességi és a pontossági érték megegyezik, azaz a beszúrások (I) száma nulla az értékek 1-2 százalékkal romlanak. Ezek alapján a 30 állapotszámú rejtett Markov-modellt tekintem optimálisnak, ahol a helyesség és a pontosság 95,38%. Ahogy már a fejezet elején is említettem, a kulcsszavak hossza nagyon eltérő, ezért nagy valószínűséggel, ha az egyes kulcsszavakhoz azok hosszától függően különböző állapotszámú modelleket rendelnénk, további javulást érhetünk el. A következő fejezetben erre vonatkozó vizsgálatim eredményeit fogom részletezni. 24
6. Különböző állapotszámú rejtett Markov-modellek alkalmazása az egyes parancsszavakhoz A kulcsszavakat attól függően, hogy hány különböző hangból tevődnek össze, csoportokba sorolhatjuk. A csoportosításnál a mássalhangzók duplázódását nem vettem figyelembe, így a 9. mellékletben szereplő módon soroltam be a kifejezéseket. A 2. táblázat az egyes vizsgálatok esetén megválasztott rejtett Markov-modellek állapotszámát tartalmazzák a különböző hosszúságú szavakra vonatkozóan. Az első vizsgálat állapotszámainál abból indultam ki, hogy kiszámoltam a szavak súlyozott átlagát, aminek az eredménye kerekítve 5. Így a 30 állapotszámot először az 5 hangból álló szavakhoz rendeltem és ehhez viszonyítva próbáltam megállapítani a többi hosszúságokhoz az állapotszámot. A szakdolgozatomban a diádokra vonatkozó optimális Markov-modell megválasztásánál mért eredményeket is figyelembe vettem (leghatékonyabbnak a 8 állapotszámú modell bizonyult), ezért a 2 hangból álló szavakhoz először 8 állapotú modellt rendeltem. 2. táblázat Az egyes vizsgálatoknál felhasznált rejtett Markov-modellek állapotszámai 2 3 4 5 6 7 8 11 12 mix1 12 16 20 30 34 34 34 42 42 mix2 12 16 24 34 34 38 38 42 42 mix3 11 15 26 34 34 40 40 42 42 mix4 11 15 26 38 38 42 42 42 42 mix5 11 15 26 40 40 42 42 42 42 mix6 11 15 26 30 40 40 40 46 46 mix7 11 15 26 29 40 40 40 46 46 mix8 11 15 26 32 40 40 40 46 46 mix9 11 15 26 30 34 42 42 50 50 mix10 11 15 28 30 36 42 46 50 50 mix11 11 15 26 30 36 42 42 54 54 mix12 11 15 26 30 36 42 46 54 54 mix13 12 16 26 30 34 42 42 50 50 25
Az elvégzett vizsgálatok eredményeit a 3. táblázat tartalmazza. 3. táblázat A helyességi és pontossági értékek az egyes vizsgálatok esetén HMM állapotok Helyesség Pontosság Mondatok helyessége mix1 96,92% 86,15% 76,19% mix2 93,85% 89,23% 80,95% mix3 95,38% 89,23% 76,19% mix4 95,38% 89,23% 76,19% mix5 95,38% 89,23% 76,19% mix6 96,92% 93,85% 85,71% mix7 96,92% 93,85% 85,71% mix8 95,38% 92,31% 80,95% mix9 98,46% 95,38% 85,71% mix10 98,46% 95,38% 85,71% mix11 98,46% 95,38% 85,71% mix12 98,46% 95,38% 85,71% mix13 95,38% 92,31% 85,71% 10. ábra A helyességi és pontossági értékek ábrázolása diagramon 26
A 10. ábra szemlélteti az eredményeket egy pont diagramon. A 13 vizsgálati esetből a 9. 10. 11. és 12. vizsgálatnál az eredmények nem változtak, a helyesség 98,46% a pontosság pedig 95,38%. Ennél a négy esetnél sikerült a helyességben ~3% javulást elérnem. (Akad olyan eset is, ahol a helyességi érték szintén javul, de a pontossági viszont nagyobb mértékben csökken, ezért összességében hatékonyság romlás figyelhető meg.) Ezek közül egyértelműen a kevesebb állapotszámú esetet tekintem legjobbnak, ezért a továbbiakban a 9. vizsgálatnál megválasztott állapotszámú modelleket fogom alkalmazni a jel-zaj viszonyokra vonatkozó vizsgálatoknál. Ez az eredmény nem azt jelenti, hogy ennél nagyobb javulás nem érhető el az állapotszámok variálásával, számos kísérlet elvégezhető, ám ez rengeteg időt venne igénybe és nem biztos, hogy megéri. 27
7. A hatékonyság vizsgálata különböző jel-zaj viszonyokkal Napjainkban a beszédjelek kiemelése a zajos környezetből, vagyis a zajjal terhelt beszédjelek javítása kiemelt kutatási téma. Ennek oka a számos felhasználási lehetőség, amellyel egy hatékony beszéd kiemelő rendszer rendelkezik. Ma már számos technológiai eljárás létezik ennek megvalósítására. Általánosságban elmondható, hogy a mai kifejlesztett beszédfelismerők megcélzott felhasználási környezete alacsony zajszintű. Éppen ezért egy ilyen felismerő alkalmazása zajos környezetben akkor lehetséges, ha a felismerő bemenetére már zajszűrt beszédjel kerül, vagy a felismerő akusztikai előfeldolgozó eljárását zajtűrő eljárásra cseréljük. A zajszűrés külön problémát jelent különösen olyan esetekben, amikor változó, hol állandó, hol impulzusszerű, valamint változó hangszintű és színezetű zaj váltakozva van jelen [11]. A már fentebb említett alacsony zajszintű beszédfelismerőknél a tanító anyagok jó minőségűek, azaz zajmentesek. Viszont ha a beszédfelismerőt zajos mintákkal tanítjuk be, akkor valószínűleg nagyobb hatékonysággal fogja felismerni a zajjal terhelt bemenetet anélkül, hogy zajszűrést végeznénk. A vizsgálataim során a tanító és a tesztelő mintákat hat különböző szintű zajjal terheltem, és minden tanító anyag esetén (beleértve a zajmentes mintákat is) elvégeztem a betanítást (amely során nem használtam semmilyen zajszűrő eljárást, a lényegkiemelés konfigurációja minden esetben megegyezett azzal, amit a zajmentes hangmintáknál is használtam, és a mellékletben is megtalálható) majd megvizsgáltam, hogy a hat zajos plusz a zajmentes teszt anyagokat mennyire hatékonyan ismeri fel. A hangminták zajjal terhelését a Matlab programmal végeztem el. A normál eloszlású zajt a randn() paranccsal állítottam elő. A jelzal.m fájl tartalma a 10. mellékletben látható. 28
7.1 A jel-zaj viszony A jel-zaj viszony egy műszaki kifejezés, ami két teljesítmény hányadosát jelenti. A jel (információ) és a háttér zaj teljesítményének hányadosa [12]: A jel/zaj meghatározásánál a logaritmikus decibelskálát használják. Decibelekben mérve, a jel-zaj viszony az amplitúdók hányadosának 10-es alapú logaritmusának 20-szorosa vagy a teljesítményarány logaritmusának 10-szerese [12]: ahol P az átlagos teljesítmény, A az amplitúdók négyzetes átlaga. A jeleket és a zajokat azonos sávszélességi rendszerben mérik. A decibel definíciójának megfelelően a jel-zaj viszony azonos eredményt ad függetlenül attól, hogy a jel milyen jellemzői alapján számítjuk ki (teljesítmény, áram, feszültség). A jel-zaj viszonyt gyakran használják egy átlagos jel-zaj viszony indikátorának, ezért lehetséges, hogy egy pillanatnyi jel-zaj viszonyt teljesen eltérően értékelnek. Általában a magasabb jelszint azonos zaj mellett kedvezőbb; ilyenkor a jel tisztább [12]. A vizsgálatokhoz a tanító és a tesztelő hanganyagokat 6 különböző zajszinttel terheltem: -6 db, 0 db, 6 db, 12 db, 18 db, és 24 db. A 11.- 17. ábrákon a vészleállítás kulcsszó látható a fentebb felsorolt zajszintekkel terhelve. 11. ábra A zajmentes minta 29
12. ábra -6 db zajjal terhelt minta 13. ábra 0 db zajjal terhelt minta 14. ábra 6 db zajjal terhelt minta 15. ábra 12 db zajjal terhelt minta 16. ábra 18 db zajjal terhelt minta 17. ábra 24 db zajjal terhelt minta 30
7.2 Zajmentes tanító minták vizsgálata 4. táblázat A zajmentes tanítóanyagokra elvégzett tesztek eredményei Teszt anyagok jel/zaj viszonya (db) Helyesség Pontosság zajmentes 98,46% 95,38% 24 98,46% 95,38% 18 93,85% 92,31% 12 89,23% 86,15% 6 69,23% 63,08% 0 21,54% 21,54% -6 15,38% 15,38% 18. ábra A tesztelési eredmények ábrázolása A 18. ábrát tekintve a zajmentes tanító- zajmentes teszt anyag párosításnál a legmagasabb a hatékonyság, majd ahogy folyamatosan csökken a jel-zaj viszony, úgy romlik meredeken a hatékonyság is. Ebből arra következtethetünk, hogy valóban, ha egy felismerő zajmentes hangmintákkal lett betanítva, akkor annak zajtűrése alacsony. 31
7.3-6dB zajjal terhelt tanító minták vizsgálata 5. táblázat A -6dB zajjal terhelt tanítóanyagokra elvégzett tesztek eredményei Teszt anyagok jel/zaj viszonya (db) Helyesség Pontosság zajmentes 3,08% 3,08% 24 3,08% 3,08% 18 4,62% 4,62% 12 30,77% 27,69% 6 80,00% 66,15% 0 90,77% 83,08% -6 86,15% 69,23% 19. ábra A tesztelési eredmények ábrázolása Ha a tanító hangmintákat -6dB zajjal terheljük (ami a hat eset közül a legrosszabb minőségű hangmintákat eredményezi) és ezeket alkalmazzuk a betanítás során, akkor a felismerő ellentétben az előző esettel pontosan a zajmentes és a legkevésbé zajjal terhelt teszt anyagoknál lesz a felismerő hatékonysága a legrosszabb, leghatékonyabb pedig 0dB és -6dB értékek környékén. 32
7.4 0dB zajjal terhelt tanító minták vizsgálata 6. táblázat A 0dB zajjal terhelt tanítóanyagokra elvégzett tesztek eredményei Teszt anyagok jel/zaj viszonya (db) Helyesség Pontosság zajmentes 20,00% 20,00% 24 32,31% 32,31% 18 76,92% 67,69% 12 93,85% 93,85% 6 93,85% 93,85% 0 95,38% 95,38% -6 78,46% 73,85% 20. ábra A tesztelési eredmények ábrázolása 0dB jel-zaj viszony esetén, ahol a normalizált zajszint 1-nek tekinthető, a hatékonyság a zajmentes teszt anyagok vizsgálatánál a legalacsonyabb és pontosan 0dB-nél éri el a legnagyobb hatékonyságot. Továbbá 6dB és 12dB esetén csak ~1,5%-al kisebbek a helyességi és pontossági értékek. 33
7.5 6dB zajjal terhelt tanító minták vizsgálata 7. táblázat A 6dB zajjal terhelt tanítóanyagokra elvégzett tesztek eredményei Teszt anyagok jel/zaj viszonya (db) Helyesség Pontosság zajmentes 96,92% 96,92% 24 98,46% 98,46% 18 96,92% 96,92% 12 98,46% 98,46% 6 93,85% 93,85% 0 80,00% 80,00% -6 38,46% 38,46% 21. ábra A tesztelési eredmények ábrázolása A harmadik vizsgálat során a 6dB zajjal terhelt tanító anyagot teszteltem. Az eredmények a -6dB zajjal terhelt tesztelő minták kivételével 80% felettiek. Megállapíthatjuk, hogy ebben az esetben a felismerő több különböző zajjal terhelt bemenetek esetén is magas hatékonysággal működik. 34
7.6 12dB zajjal terhelt tanító minták vizsgálata 8. táblázat A 12dB zajjal terhelt tanítóanyagokra elvégzett tesztek eredményei Teszt anyagok jel/zaj viszonya (db) Helyesség Pontosság zajmentes 98,46% 98,46% 24 98,46% 98,46% 18 98,46% 98,46% 12 90,77% 90,77% 6 73,85% 73,85% 0 49,23% 49,23% -6 33,85% 33,85% 22. ábra A tesztelési eredmények ábrázolása 12dB jel-zaj viszonnyal terhelt tanító anyag vizsgálata esetén minden egyes esetben a helyességi és pontossági értékek egybe esnek, ami azt jelenti, hogy nincs beszúrás (I). A hatékonysági értékek, 12dB től ahogy csökken a zaj - már 90% felettiek. Legrosszabb eredményt -6dB jel-zaj viszonnyal terhelt tesztelő anyag esetén mutat. 35
7.7 18dB zajjal terhelt tanító minták vizsgálata 9. táblázat A 18dB zajjal terhelt tanítóanyagokra elvégzett tesztek eredményei Teszt anyagok jel/zaj viszonya (db) Helyesség Pontosság zajmentes 83,08% 83,08% 24 80,00% 80,00% 18 76,92% 76,92% 12 67,69% 67,69% 6 32,31% 32,31% 0 15,38% 15,38% -6 12,31% 12,31% 23. ábra A tesztelési eredmények ábrázolása Ebben az esetben is a teszteléseknél a beszúrások száma nullával egyenlő, mivel a helyességi és pontossági értékek itt is megegyeznek. Ahogy növekszik a jel-zaj viszony, úgy javulnak a hatékonysági értékek is. A legjobb felismerés a zajmentes tesztanyagok vizsgálatánál született. A legnagyobb növekedés 6dB és 12dB között figyelhető meg, több mint a kétszeresére növekedett a hatékonyság. 36
7.8 24dB zajjal terhelt tanító minták vizsgálata 10. táblázat A 24dB zajjal terhelt tanítóanyagokra elvégzett tesztek eredményei Teszt anyagok jel/zaj viszonya (db) Helyesség Pontosság zajmentes 27,69% 27,69% 24 16,92% 16,92% 18 13,85% 13,85% 12 10,77% 10,77% 6 3,08% 3,08% 0 3,08% 3,08% -6 3,08% 3,08% 24. ábra A tesztelési eredmények ábrázolása Hasonlóan az előző három vizsgálati esetekhez a helyességi és pontossági értékek szintén egybe esnek. Ellenben az eddigi tesztelésekkel, szinte minden tesztanyag vizsgálatánál 30% alatti a hatékonyság, ami nagyon rossznak mondható. Ebben az esetben a legjobb hatékonysági értéket a zajmentes tesztelő anyag vizsgálatánál éri el, a második legjobb eredmény pedig (ami ~10% -al rosszabb) 24dB esetén született. 37
Összegzés Munkám során a HTK toolkit szoftvercsomag alkalmazásával betanítottam egy kis szótáras beszédfelismerőt, amin a rejttet Markov modellek állapotszámának változtatásával próbáltam elérni a legjobb hatékonyságot, majd az így létrehozott felismerőn vizsgálatokat végeztem különböző jel-zaj viszonyokkal. Az első esetben minden szó esetén ugyanolyan állapotszámú modellt alkalmaztam. Kiindulási modellek állapotszámnak a nyolcat választottam, ekkor a helyesség 87, 69%, a pontosság -43, 08% volt, ami azt jelentette, hogy a téves beszúrások száma (850) bőven meghaladta a tesztelő szavak számát (650). Folyamatosan növelve az állapotszámot végül a 30 állapotú rejtett Markov modell bizonyult optimálisnak, így a helyesség és a pontosság is 95,38%-os lett, és így a beszúrások számát nullára csökkentettem. Ebből az eredményből kiindulva a parancsszavak hosszától függően különböző állapotszámú modelleket rendeltem az egyes szavakhoz. 13 esetben vizsgáltam meg a hatékonyságot, amelyek közül a mix9-nek elnevezett csoportosításnál a helyességen sikerült ~1,5%-t javítani. Az így megválasztott állapotszámok a 4-8 hangból álló szavak esetén közelítőleg egy szabályosan növekvő sorozatnak felelnek meg a hangok számától függően. Ebben az esetben 10+n*4 képlettel adhatók meg a sorozat elemei, ahol n a hangok számát jelenti. A jövőben érdemes lenne hasonló képletek alapján megválasztani a rejtett Markov modellek állapotainak számát és így elvégezni a teszteléseket. A továbbiakban különböző jel-zaj viszonyokkal (-6dB, 0dB, 6dB, 12dB, 18dB, 24dB) vizsgáltam az így létrejött beszédfelismerő hatékonyságát. Az eredmények alapján általánosságban elmondható, hogy a helyességi és pontossági értékek abban az esetben a legjobbak vagy legalább azon érték körül maximalizálódnak-, amikor a tanító és a tesztelő anyagok jel-zaj viszonya megegyezik. Az első esetben, amikor a zajmentes tanítóanyagokat használtam fel, a hatékonyság rohamosan csökkent minél zajosabb tesztelő anyaggal végeztem el a tesztelést. A vizsgálati eredmények és a következtetések alapján összességében megállapíthatjuk, hogy ha egy felismerőt zajos környezetben akarunk alkalmazni, akkor érdemes a hangmintákat is ugyanazon zajjal terhelt környezetben rögzíteni és azokat felhasználva betanítani a beszédfelismerőt, mert így a felismerő közel olyan hatékonysággal fog működni, mint zajmentes tanító és tesztelő anyagok esetén. 38