Gépi beszédfelismerés oktatási segédanyag BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM
Fegyó Tibor Mihajlik Péter
Gépi beszédfelismerés oktatási segédanyag
31-1 oldal
Tartalomjegyzék 1
BESZÉDFELISMERŐ RENDSZEREK FELÉPÍTÉSE.............................................................2 1.1 BESZÉDFELISMERÉS .................................................................................................................. 2 1.1.1 Jelfeldolgozási módszerek a beszédfelismerésben ............................................................2 1.1.2 Mintaillesztés ....................................................................................................................7 1.1.3 Utófeldolgozás ................................................................................................................ 19 1.1.4 Modellek paraméterbecslése ..........................................................................................22 1.2 KUTATÁS.................................................................................................................................24 1.2.1 Kutatás és a fejlesztés kapcsolata...................................................................................24 1.2.2 Használhatóság, robusztus felismerés ............................................................................24 1.2.3 Akusztikus technológiák..................................................................................................26 1.2.4 Nyelv modellezés.............................................................................................................27
2
FÜGGELÉK .................................................................................................................................29 2.1 RÖVIDÍTÉSEK .......................................................................................................................... 29 2.2 ÖSSZEFOGLALÓ TÁBLÁZATOK .................................................................................................29 2.2.1 Megvalósított információs rendszerek ............................................................................29 2.2.2 Megvalósított internetes beszédfelismerő rendszerek .....................................................30 2.2.3 Megvalósított folyamatos beszédfelismerő rendszerek ...................................................30 2.2.4 Megvalósított beszédfelismerő hardver rendszerek ........................................................31
1 Beszédfelismerő rendszerek felépítése 1.1
Beszédfelismerés
A beszédfelismerő rendszerek számos tudományterület eredményeit egyesítik magukban, ilyenek a statisztikus mintaillesztés, a kommunikációelmélet, a jelfeldolgozás, a kombinatorikus matematika, a nyelvészet és egyebek. Ennek megfelelően az egyes komponensek megismeréséhez széles körű mérnöki és informatikai ismeretek szükségesek. A technológiai rendszerek legalább három komponensből épülnek fel: jelfeldolgozó bemeneti egység, mintaillesztő egység és a végső döntést meghozó nyelvi modell alapú utófeldolgozó egység. Az utóbbi évtizedek kutatásai és tapasztalatai alapján sokat tanultunk arról, hogy hogyan kell használható, praktikus felismerő rendszereket írni, mégis messze vagyunk a végső céltól, illetve folyamatosan tágul az elérendő célok köre. Mindenesetre annak ellenére, hogy már kaphatóak az üzletekben beszédfelismerésen alapuló rendszerek, diktáló programok, még alapvető kérdésekben is sok feladat vár a kutatókra. Azt tudjuk, hogy a beszédjel az egyik legkomplexebb jel, továbbá azonos beszédelemeknek különböző akusztikus realizációit is kezelni kell és így a jellemzés igen bonyolult feladat. Sok megközelítés született a feladat különböző részeinek megoldására, melyek párhuzamosan fejlődnek, hisz egyelőre nincs egyértelműen optimális megoldás. A következőkben a jelenleg használt eljárásokat mutatjuk be a beszédjel feldolgozásától kezdődően, a teljesség igénye nélkül.
1.1.1 Jelfeldolgozási módszerek a beszédfelismerésben A beszédfelismerő rendszerek legalsó szintje a jelfeldolgozó egység. Különböző rendszerek különböző megközelítéseket használnak, de közös bennük, hogy a beszédjelből a felismerés számára fontos, számítógéppel feldolgozható adatokat állítanak elő. A beszédkutatók jelentős eredményeket értek el a beszédkeltő és beszédfelfogó szervek működésének feltárásában, és elkészítették ezek matematikai modelljét. Ezeken a modelleken alapulnak a jelfeldolgozás alapvető lépései. A leírás nem tökéletes, és általában a gyakorlat dönti el, hogy melyik út vezet a legjobb eredményekhez az adott feladat szempontjából.
31-2 oldal
A jelfeldolgozó egység tehát a beszédjelből transzformációk sorával a számítógép által értelmezhető adatsorozatot állít elő, amit jellemzőknek, vagy tulajdonságvektoroknak hívunk, mivel valamilyen tulajdonságát jellemzik a beszédjelnek. A kiindulás a digitalizált beszédjel, és ebből állíthatók elő különböző jellemzők mind az idő, mind a frekvencia tartományban. Ilyen jellemzők időtartományban pl. a rövid idejű energia illetve amplitúdó burkoló, a nullátmenetek száma, a szintátmenetek száma, stb. Spektrális tartományban általánosan elterjedten használják a rövid idejű spektrumot, valamint az erre épülő további feldolgozási algoritmusokat, melyekről a következőkben bővebben esik szó. A beszédjel mellett a környező zaj jellemzőinek mérése is ide tartozó feladat. Erre a zaj adaptációhoz, illetve kompenzációhoz van szükség - egy mikrofonos esetben az előbbi, több mikrofon illetve mikrofon sorok esetén az utóbbi alkalmazható. Minden valós feladatnál komoly feladatot jelent a környezeti zajok kezelése, kezdve a számítógépek ventillátorának a zúgásától, egészen az elhaladó mentőautó szirénájáig.
1.1.1.1 Spektrális analízis A tudomány mai állása szerint a fül harmónikus rezgéselemzést végez, amit kísérletek is bizonyítanak. Ezen álláspont szerint kézenfekvő jelfeldolgozási módszer az összetett rezgések elemzésére kidolgozott Fourier féle elemzés, mely szerint bármely periodikus rezgés felbontható olyan szinuszos rezgésekre, melynek frekvenciái az alaphang többszörösei. Ennek az elemzési módszernek a folyamatát mutatja a 3.1-es ábra. A feldolgozás elemeit a következőkben részletesen ismertetjük. anti-aliasing
mintavételezés
szűrő
kvantálás
ablakozás
FFT
további lépések
3.1 ábra. A spektrális jelfeldolgozás folyamata
A beszédjel mind időben, mind amplitúdóban folytonos jel, így - mivel a számítógép digitális jelekkel dolgozik - az első lépés a mintavételezés és az amplitúdó kvantálás. Beszédfelismerőkben tipikus a 11kHz-22kHz-es mintavételezés, valamint a 16 bites kvantálás. Telefonos rendszerek esetén ezek az értékek alacsonyabbak lehetnek a telefonvonal karakterisztikája miatt (8kHz, 12 bit). A mintavételezést megelőzően azonban a mintavételezési tétel alapján egy sávkorlátozó szűrőt kell a jelútba iktatni, tipikusan egy aluláteresztő szűrőt, melynek határfrekvenciája a mintavételi frekvencia fele. A feldolgozás során nem a teljes jelet egyszerre (folyamatos beszédnél lehetetlen is lenne), hanem annak egy rövid darabját elemezzük, amit ablaknak, vagy keretnek nevezzük. Az ablak hossza illeszkedik az emberi beszédhangok időtartamához, tipikusan 10-30 ms hosszú és a keretek 50%-os átlapolással követik egymást. A feldolgozás pontosságának növelése érdekében az adott jelszakaszt (ablakot) egy un. ablakfüggvénnyel módosítjuk. Ilyen ablakfüggvényből az irodalomban többféle is szerepel, a beszédfeldolgozásban tipikusan a Hamming, Blackmann illetve a Hann ablakokat használják. A spektrális analízis alapja a diszkrét Fourier transzformáció (DFT), melynek hatékony végrehajtására dolgozták ki az FFT (Fast Fourier Transformation) algoritmust. Ez egy-egy ablakhoz meghatározza a rövid idejű spektrális paramétereket. A DFT kiszámítását a 3.2-es képlet írja le. N −1
A(k ) = ∑ a (n)e
jnk
2π N
; k = 0,1,2...N − 1
n =0
3.2 képlet. DFT számítása
A beszédfelismerő rendszerek általában további transzformációkat (akár párhuzamosan többet is) hajtanak végre az FFT paramétereken. Ezek között a feladat jellege alapján, illetve kísérletekkel lehet választani, vagy egyszerűen megbízunk az irodalomban aktuálisan 31-3 oldal
elfogadott technikákban. A következőkben néhány további feldolgozási technikát mutatunk be a teljesség igénye nélkül. 1.1.1.1.1 Szűrősoros elemzés Az egyszerű diszkrét Fourier analízis önmagában is egyfajta szűrősoros elemzésnek tekinthető lineáris frekvencia felosztással, hisz az egyes paraméterek egy adott (szűk) frekvencia sávba eső energiát adnak meg. A hallásmodell szerint a fülben lévő érzékelő szerveken a frekvencia felosztás nem lineáris, hanem alacsony frekvencián közel lineáris, magasabb frekvenciákon pedig exponenciálisan nő a sávok szélessége. A hallásmodellhez igazodó felosztásból is több féle használatos, pl. a Bark, illetve a Mel skála. A szűrősoros elemzés végezhető valódi, hangolt hardver szűrőkkel, azonban a gyakorlatban szinte kivétel nélkül szoftveres megvalósítás terjedt el. Az egy kerethez tartozó beszédjelnek az egyes szűrők által meghatározott frekvenciatartományba eső energiája adja meg a tulajdonságvektort, melynek elemszáma megegyezik a szűrők számával. A szűrők egyenkénti megvalósítása helyett egyszerűbb a DFT paraméterekkel közelíteni az eredményt. A kísérletekkel megállapított szűrőkarakterisztikáknak megfelelően, a DFT paraméterek lineáris kombinációjaként állnak elő a sávszűrők kimeneteit közelítő eredmények. A szűrők karakterisztikáját szokás kernelfüggvénynek is nevezni. A függvény a sáv közepén csúcsosodó és a szélek felé ereszkedő jelleget mutat. 1.1.1.1.2 Kepsztrum elemzés A kepsztrum elemzés a 3.1 ábrán látható Fourier elemzés folytatásaként a 3.3 ábra szerinti folyamattal írható le. A kepsztrum komponenseket úgy kapjuk, hogy a Fourier komponensekből kiszámítjuk a teljesítményspektrumot, majd ennek a logaritmusán végrehajtjuk az inverz Fourier transzformációt. A kepsztrum komponenseken alkalmazott szűrést lifteringnek nevezik. Ez gyakran a magasabb komponensek figyelmen kívül hagyását jelenti, ami gyakorlatilag spektrum szűrésnek felel meg. Az alaphang, illetve a formánsfrekvenciák meghatározásához jól használhatóak ezek a jellemzők. Az FFT frekvencia skálájának transzformációjával állítható elő a Mel-kepsztrum (MFCC Mel Frequency Cepstral Coefficients), ami gyakran használt paraméter a beszédfelismerésben. Ebben az esetben a szűrősoroknál említett módszert alkalmazzák, azaz az FFT paraméterek segítségével közelítik a Mel skálájú szűrősort, ami durván egyenletes felosztású 1 kHz alatt és exponenciális felette. A további lépések (logaritmus, IFFT, liftering) megegyeznek a kepsztrum számítás lépéseivel. FFT (F(ϖ))
2 W(ϖ)=|F(ϖ)|
lg(W(ϖ))
IFFT
Liftering
3.3 ábra. Kepsztrum analízis
Mind a szűrősorokkal, mind a kepsztrum paraméterekkel jobb felismerési eredmények érhetőek el, mint önmagában az FFT együtthatókkal, továbbá az egy kerethez tartozó jellemzők számát, azaz a tulajdonságvektor dimenzióját is csökkentik ezek az eljárások, így a további feldolgozás sebességét növelik.
1.1.1.2 Normálás A beszédfelismerés során nem a beszédhang abszolút tulajdonságai, mint magassága, ereje számítanak, hanem a hangok egymáshoz képesti relatív tulajdonságai. Megértjük ha valaki lassabban vagy gyorsabban, hangosabban vagy halkabban beszél, sőt még azt is ha énekel. Ezen hatások némelyike jelfeldolgozási módszerekkel, a jelek normálásával, kompenzálható. A beszédjel átlagos tulajdonságait megmérjük egy hosszabb időablakban, és az így kapott
31-4 oldal
számértéket a tulajdonságtól függően levonva, vagy a számértékkel osztva előállítjuk a normált jelet. Néhány általánosan használt normálási eljárás: •
Egyenszint kompenzáció: A beszédjel egyenszintjét (a jel átlagát) ki kell vonni a jelértékekből, mivel ez nem hordoz lényeges információt.
•
Jelszint normálás: úgy növeljük a jel amplitúdóját, hogy a legnagyobb érték a teljes kivezérlést adja. Csökkentésről itt nem lehet szó, mivel akkor túlvezérelt jelet kellene lehalkítani. Ezzel nagyjából egyformán hangosra állítjuk a feldolgozandó jeleket. Rövid idejű de nagy amplitúdójú zajok esetén előfordul, hogy azokhoz igazítja a maximumot, így a beszédjel továbbra is halk marad.
•
Kepsztrum átlag kivonás: A logaritmikus spektrum tartományban a lineáris torzítás eltolásként jelentkezik a hosszúidejű átlagban. Ennek kompenzálására a hosszúidejű átlagot kivonjuk az egyes log-spektrum elemekből. Lineáris torzítás kompenzálására ez jól használható, amit pl. a különböző mikrofonok okoznak. Numerikus pontatlanságok miatt szélsőséges esetekben ronthatja a felismerés pontosságát, azonban általában hatékonyan használható.
1.1.1.3 Lényeges információ kiszűrése A beszéd során egy véges értékkészletű jelsorozatot (pl. a betűk sorozatát) folyamatos időtartományi jellé alakítjuk, azonban ebben a jelben sok egyéb információ is kódolva van. Ilyenek a beszélő személye, annak hangulata, sőt a környező zajok is. A beszédfelismerés az inverz feladat, tehát ebből a jelből kinyerni a jelen feladat számára lényeges információt, azaz az elhangzott szöveget. Ennek alapjául szolgál a korábban ismertetett spektrumelemzés. További elemzések is végezhetőek a jelen, hogy értékes jellemzőket határozzunk meg, pl. alapfrekvenciát vagy a formáns frekvenciákat. Jelenleg nem ismerünk olyan jellemzőhalmazt ami egyértelműen jellemzi a beszédhangokat. Sőt, az egyes beszédhangok különböző reprezentációihoz tartozó tulajdonságvektorok által alkotott térrészek nem diszjunktak az eddig ismertetett paraméterek esetén. Az emberi fül sem tökéletes: rövid - néhány hangból álló - egységeket nehezen, néha hibásan értünk, mégsem jelent problémát a folyamatos szöveg megértése, mivel az agyban működő komplex nyelvi feldolgozás korrigálja a hibákat. A cél tehát olyan jellemzők keresése, melyek minél hatékonyabb mintaillesztést tesznek lehetővé. A korábban bemutatott spektrális jellemzők mellé a teljesség igénye nélkül felsorolunk még néhány jellemzőt. •
Alapfrekvencia (pitch)
•
Formáns frekvenciák: a spektrumképen egyértelműen kiemelkedő frekvenciákat nevezzük formáns frekvenciáknak. A formánsstruktúra jellemző az egyes hangokra, azonban az értéke változik a beszélő személye, a beszédtempó, és a környező hangok függvényében.
•
Beszédjel - beszédszünet: szavankénti felismerésnél a szóhatárok, folyamatos felismerésnél pedig a frázishatárok megállapítására szolgál. Legegyszerűbbel a jel energiájából határozható meg egy küszöbszint megadásával. A pontosságnak gátat szabnak a környezeti zajok, valamint a szavak elején és végén található szájzörejek.
•
Zöngés - zöngétlen részek elkülönítése is fontos jellemző lehet. Meghatározható a rövid idejű energia függvényeként, ami kiemeli a nagy energiájú, többnyire zöngés részeket. Más módszer erre a nullátmenetek számolása, illetve az autókorrelációs függvény alkalmazása.
1.1.1.4 Tulajdonság vektor előállítása Összefoglalva tehát a beszédjelet felbontjuk periodikusan egyenlő méretű (tipikusan 10-30 ms), átlapolódó darabokra, és minden ablakra kiszámítjuk a tulajdonság vektort, ami az előző fejezetben leírt tulajdonságok alapján jellemzi a beszédjel egy részét. A vektorban az egyes tulajdonságok adott időablakra jellemző számértékei foglalnak helyet egymás alatt. Ez a vektorsorozat képezi a mintaillesztő egység bemenetét. A paraméterek kiválasztása függ a feldolgozó rendszer képességeitől (sávszélesség, memória, sebesség), valamint a feladattól is. Minél komplexebb a feladat, annál pontosabb és komplexebb paraméterek számítására van
31-5 oldal
szükség. Pl. beszéddetektor esetén akár egyetlen elem, az energia is elegendő, de felismerőkben tipikus a 20 elemű kepsztrum, vagy Mel-kepsztrum vektor. Általában a paramétervektorok mellett megadjuk azok változását is ezek a delta esetleg delta-delta paraméterek. Ezek az aktuális ablak előtti ill. utáni néhány (2-3) vektor lineáris kombinációjaként számíthatóak. A paraméter vektorok előállítása során az egymást követő ablakokat (kereteket) függetleneknek tekintettük, ami nyilván helytelen feltételezés, hiszen a beszédjel erősen redundáns, de jelenleg nem ismert ezt hatékonyan kezelő módszer. A delta paraméterek számítása során figyelembe vesszük ezt az összefüggést, hiszen több egymást követő keretből (szegmens) jön létre az eredmény. Ennél hosszabb idejű összefüggések kezelésére az utófeldolgozó modul nyújt lehetőséget. A mai hagyományos és célprocesszorokon sem jelent problémát a fent említett vektorok előállítása, a valós idő töredéke, néhány százaléka szükséges csupán. A feldolgozási idő nagyobb részét a következő szint, a mintaillesztés veszi el. Ezért is szükséges minél kompaktabb paraméterhalmaz előállítása. Amennyiben 20 ms-os ablakkal és 22kHz-es mintavételi frekvenciával dolgozunk, akkor egyetlen keretben 440 beszédminta van, míg a tulajdonságvektor a fentiek szerint kb. 60 elemet tartalmaz, ami jelentős adatmennyiség csökkenést jelent.
31-6 oldal
1.1.2 Mintaillesztés A mintaillesztő feladata a bemenetként kapott tulajdonságvektor-sorozat leképezése felismert szimbólumok – nyelvi elemek – sorozatává, melyek további processzálásra az utófeldolgozóba kerül(het)nek. Fontos látni, hogy a bemeneti jel még akusztikus információkat tartalmazó állandó ütemezésű jelfolyam, míg a kimenet a már sokkal absztraktabb nyelvi egységek sorozata. Vagyis a kritikus lépés, az akusztikus/nyelvi konverzió – azaz felismerés – itt történik meg. A mintaillesztő tehát a beszédfelismerők kulcsfontosságú része, ezért ez a témakör alaposabb tanulmányozást igényel. Két alapvető megközelítésről írnunk: •
Templétbázisú mintaillesztés (pl. DTW – Dynamic Time Warping, azaz dinamikus idővetemítés alapú eljárások)
•
Statisztikus (adatbázis alapú) eljárások (pl. HMM – Hidden Markov Model, ill. ANN – Artificial Neural Networks, azaz rejtett Markov-modell és mesterséges neuronhálós alkalmazások.)
Az első módszer történetileg előbb alakult ki, vele folytatjuk a tanulmányt. A korszerű felismerők túlnyomó többsége azonban a második típusú mintaillesztést alkalmazza, a gyakorlatban a leghasználhatóbbnak a tisztán rejtett markov-modelles felismerők bizonyultak, így főleg velük foglalkozunk.
1.1.2.1 Templétbázisú mintaillesztés A templét (vagy referencia) alapú mintaillesztés feladata, hogy előre tárolt mintákhoz hasonlítsa (illessze) a tulajdonságvektor-sorozat egyes elemeit. A beszédfelismerőnek meg kell adni az összes felismerendő szimbólumot, valamint az ezekhez tartozó jellemzővektorokat. A feladattól függően egy vagy több embertől gyűjtött minták átlagolásával áll elő a referencia minta egy betanítási folyamat eredményeként. A szimbólumoktól és a felismerő algoritmustól is függ, hogy egy referencia szimbólumhoz milyen hosszú vektorsorozat tartozik. Nyilván egy szóhoz tartozó referencia több vektort tartalmaz, mint egy hanghoz tartozó. Egy-egy szimbólumhoz akár több különböző referencia is megadható az esetleges nagy különbségek esetén, amennyiben a felismerő algoritmus nem képes ezt kezelni. Pl. ugyanazt a hangot néha hosszabban máskor rövidebben ejtjük, ezt akár különböző referenciával is ábrázolhatjuk, ugyanígy kezelhető a tájszólás is. A mintaillesztő tehát a beérkező vektorsorozat minden elemét sorban összehasonlítja az összes tárolt referenciával és meghatározza, hogy melyiktől milyen "távol" van. A vektoronkénti távolságszámításnak különböző módjai vannak. Alapvető és egyben a legelterjedtebb módszer a térben a legközelebbi elemre döntés az Euklideszi távolság alapján.
h = arg min d (rk , t )) rk 3.4 képlet. t tesztvektor esetén a legkisebb d távolságot eredményező rk referenciára dönt a mintaillesztő
A távolságszámítást koordinátánkénti paramétersúlyozással lehet kombinálni, így optimális esetben jobb döntést kapunk, azonban nagyon nagy mennyiségű mintára van szükség ennek a betanításához, így viszonylag ritkán alkalmazzuk. Statisztikus módszerek esetén a jellemzővektoroknak statisztikus jellemzőit (pl. átlagát, szórását) számítjuk ki, és ilyenkor valószínűségekkel dolgozunk, minden referencia - teszt vektor összehasonlítás eredménye egy valószínűség, mely megadja, hogy az adott teszt vektor milyen valószínűséggel tartozik az adott referenciához. Mindkét esetben lehetőség van kiválasztani a legközelebbi, vagy legvalószínűbb értéket, azonban tipikusan az első néhány legjobb jelöltet (hipotézist) is megadja a mintaillesztő, hogy 31-7 oldal
a következő szinten a nyelvi modul ezek közül válassza ki a megfelelőt. A következőkben néhány mintaillesztési eljárást mutatunk be. 1.1.2.1.1 Dinamikus idővetemítés A mintaillesztés egy klasszikus módszere a dinamikus idővetemítés. Ez a módszer kis szótáras, izolált szavas, beszélőfüggő feladatoknál nyújt kézenfekvő megoldást. Az első alapvető feladat két mintasorozat egymáshoz viszonyított "távolságának" meghatározása. Adott egy felismerendő teszt mintasorozat és sok tárolt referencia sorozat. Meg kell mondani, hogy melyikhez illeszthető legjobban a teszt. Nagy valószínűséggel a referenciák hossza különböző, és a teszt is különbözhet ezektől, mivel ugyanazt a szót különböző sebességgel mondhatjuk ki. A teszt és a referencia mintákat azonban valahogy párba kell állítani a távolság méréséhez. Erre a legegyszerűbb, bár önmagában nem használható módszer a lineáris idővetemítés. Egyszerűen valamelyik időtengelyt a másikhoz nyújtjuk lineárisan. Az így párba állított minták távolságát összegezzük, és a legkisebb távolságra, azaz a "leghasonlóbb" referenciára döntünk. Ezen algoritmus alkalmazhatóságának az szab határt, hogy a szavakat nem arányosan mondjuk gyorsabban, vagy lassabban, hanem a szavakon belül is lehetnek sebességkülönbségek. Erre használható a dinamikus idővetemítés (DTW). Ez egy nemlineáris transzformációt hajt végre az időtengelyeken, és ezek mentén hasonlítja össze a mintasorozatokat. A referencia mintasorozat: r = r[0]..r[R], a teszt mintasorozat: t = t[0]..t[T], és a vetemítőfüggvények az Ft(i), és Fr(i) függvények; ezek közül keressük az optimálist. Így a távolság:
D ( r , t ) = min ∑ d ( r F ( i ) , t F ( i ) ) r t F i 3.5 képlet. A t tesztvektor-sorozat távolsága r referenciavektor-sorozattól
A vetemítő út az (r[0],t[0]) pontból indul, és (r[R],t[T]) pontba érkezik; monoton nő, hisz nem beszélünk visszafelé; nem lehet akármekkorát ugrani, hisz nem beszélhetünk tetszőlegesen lassan, vagy gyorsan. A konkrét implementációban lokális feltételeket lehet megadni a továbblépésre, így az F függvény által megadott út nem lehet tetszőleges. r (R,T)
(0,0)
t
3.5 ábra. Példa a DTW útválasztására
Nagy előnye ennek a rendszernek, hogy igen gyorsan - akár egyetlen mintával is hatékonyan tanítható. Robosztusabbá tehető a felismerő több tanító minta alkalmazásával, ezek a vetemítő út mentén átlagolhatóak. Amennyiben elegendő mennyiségű tanító minta áll rendelkezésre, akkor már általában statisztikus módszereket alkalmaznak, pl. a rejtett Markov-modelleken alapuló felismerőt, mely gyakorlatilag magában foglalja a DTW algoritmust is.
31-8 oldal
1.1.2.2 Statisztikus mintaillesztési módszerek A statisztikus eljárások közös tulajdonsága, hogy valamilyen akusztikus modellt használnak, melyekben akusztikus információ tárolása és felhasználása hatékonyabban valósul meg, mint a templét alapú módszernél. Az ár a modellparaméterek becsléséhez szükséges nagyobb adatbázis és számítási idő. Fontos megjegyezni, hogy a statisztikus jelző nem magára a mintaillesztési folyamatra vonatkozik, hanem a modell-paraméterek kiszámítására, becslési módjára. A következőkben megpróbálunk a templétbázisú (DTW) módszerből kiindulva eljutni a rejtett Markov-modell (HMM) alapú mintaillesztésig. 1.1.2.2.1 A templéttől a rejtett Markov-modellig Induljunk ki a legegyszerűbb izoláltszavas felismerésből. Ilyenkor minden szót, azaz felismerési szimbólumot egy referencia tulajdonságvektor-sorozat reprezentál – ezt hívjuk templétnek –, ehhez hasonlítjuk az aktuális bemondás tulajdonságvektorait. Felfoghatjuk úgy is, hogy a szótárban szereplő minden szónak van egy modellje, ami adott esetben úgy keletkezett, hogy a szó egyetlen realizációjának tulajdonságvektor-sorozatát egyszerűen eltároltuk. Ennek a modellezési eljárásnak azonban több gyengéje is van. Először is, egyetlen beszélő egyetlen bemondása nyilvánvalóan nem tudja visszaadni azt a nagymérvű akusztikai változatosságot, ami a beszéd minden szavára jellemző. Másodszor, a templétmodell erősen redundáns. A vektorok általában 10 ms-onként érkeznek, a beszédben pedig egyes hangzók 100-200 ms ideig is tarthatnak, következésképpen nagyon sok egymáshoz nagymértékben hasonló tulajdonságvektort kell eltárolnunk. Egy lehetőség a redundancia csökkentésére, hogy az egy hangrészlethez tartozó, hasonló vektorokat egybevonjuk, és egyetlen állapottal modellezzük a szórészletet. A szó egésze pedig nyilvánvalóan állapotsorozatként áll elő. k
í
n
a
Templét-modell
k
í
n
a
Állapot-modell
3.6 ábra Templétből állapot-modell kialakításának szemléltetése
Kérdés, hogy az egyetlen állapot hogyan adja vissza az elnyelt nagyobb számú tulajdonságvektort. A válaszhoz tisztáznunk kell, mit várunk a modelltől: képes legyen egy teszt tulajdonságvektorra minden állapotban egy hasonlósági mérőszámot adni, teljesen hasonlóan a DTW-hez, ahol azt minden keretben az euklideszi távolság adta meg. Járható út lenne, hogy az állapotot a középső vektorral, vagy egy átlagvektorral képviseljük és továbbra is euklideszi távolságot számolunk. Több előnnyel jár viszont az a megközelítés, hogy minden állapothoz egy eloszlásfüggvényt rendelünk, melynek bemenő mennyisége a tulajdonságvektor, a kimenete pedig a hasonlósági mérőszám mely megmutatja, mennyire illeszkedik az adott vektor a modellezett hangrészlethez. Így az elsőként említett, a beszédhangok akusztikai változatosságából eredő probléma kezeléséhez is közelebb kerültünk. Az adott állapotra jellemző eloszlásfüggvényt természetesen az állapotba „elnyelt” tulajdonságvektorok statisztikai feldolgozásával alakítjuk ki. Minél több vektor áll rendelkezésre egy állapothoz, minél több beszélő minél többször mondta ki ugyanazt a szót vagy szórészletet, annál jobb lehet az eloszlásfüggvényünk és így a modellünk is. A 31-9 oldal
gyakorlatban megkötéseket tesznek az eloszlásfüggvényre pl. legyen Gauss függvények lineáris kombinációja – így csak az átlagértékeket és szórásokat (kovarianciát) kell eltárolni. Egyetlen probléma van csak a modellünkkel: nincs semmilyen információnk arról, hogy az egyes állapotok milyen sokáig (hány keretnyi ideig) tartanak. Bár az egy állapothoz tartozó vektorok megszámlálása és az átlag eltárolása kézenfekvőnek tűnik, előnyösebb, ha az állapothossz-információt állapotátmeneti valószínűségek bevezetésével reprezentáljuk. Alapesetben csak a következő állapotba jutás illetve helyben maradás valószínűségét érdemes 0-nál nagyobbra választani (minden ütemben lépni kell egyet, legfeljebb az addigi állapotba lépünk). Ekkor világos, hogy a hosszabb állapotoknál a saját állapotba való jutás (azaz helyben maradás) valószínűsége nagy lesz, a következőbe jutásé kisebb. Rövidebb állapotoknál a különbség kisebb lesz ezen valószínűségek között, tehát a két átmeneti valószínűség aránya jelzi az állapot hosszát. Itt megállhatunk, hiszen eljutottunk a beszédfelismerésben oly sikerrel alkalmazott folytonos megfigyelési-sűrűségfüggvényű rejtett Markov-modellig. A következőkben egy egzaktabb matematikai definíciót adunk meg, majd a mintaillesztési–felismerési folyamatot mutatjuk be. 1.1.2.2.2 Rejtett Markov-modell A Markov-modell (használatos a Markov-lánc elnevezés is) diszkrét állapotok és az állapotok közötti átmenetekre értelmezett valószínűségek összessége. Az állapotokat q-val jelöljük (az i-ik állapotot qi -val), az ún. állapotátmeneti valószínűségeket pedig a-val. aij jelenti az i-edikből a j-edik állapotba való kerülés valószínűségét, formálisan: a i j = P(q i → q j ) . Grafikus reprezentációnál az állapotokat ellipszisekkel jelöljük, a lehetséges állapotátmeneteket pedig (ahol a i j > 0 ) nyíllal. 2
a12 a21 a11
a321
a11 =0.6, a12=0.2, a13=0.2, a21 =0.5, a22=0, a23=0.5, a31 =0, a32=0.9, a33=0.1.
a23
1
3
a33
a13 3.7 ábra Illusztráció: egy háromállapotú Markov-modell
A Markov láncokat gyakran használják valamilyen fizikai folyamat modellezésére, ahol különböző megfigyelések alapján kell szimulálni – modellezni a folyamatot. Ha a megfigyelés egyértelműen azonosítja, hogy a folyamat milyen állapotban van, akkor a használt modellt megfigyelhető Markov-modellnek vagy egyszerűen Markov-láncnak nevezzük. Ilyen eset pl. a kockadobálás, hiszen összesen 6 állapot lehetséges, a dobás végrehajtása után végzett megfigyelés pedig egyértelműen azonosítja az állapotot (tulajdonképpen az állapot – megfigyelés szétválasztásra itt nincs is szükség). Számos folyamat létezik viszont, melyekre ugyan az állapotok jól definiálhatók, rájuk a megfigyelések alapján mégsem következtethetünk egyértelműen. Vegyük a következő egyszerű példát: Van három dobozunk, mindegyikben 6 db labda. Az elsőben 3 fehér, 2 piros, 1 fekete, a másodikban 3 piros, 2 fehér, 1 fekete, a harmadikban 4 fekete, 1 piros, 1fehér. Legyen a megfigyelésünk az, hogy egy dobozból kihúzunk egy labdát. A megfigyelés alapján el szeretnénk dönteni, melyik állapotban vagyunk, vagyis, hogy mi a sorszáma a doboznak, amelyikből húztunk. Világos, hogy bár az első dobozban főleg pirosak vannak, a másodikban főleg fehérek, az harmadikban meg feketék, a megfigyelés nem determinálja az állapotot. Csak valószínűségeket tudunk mondani – előzetes ismereteink birtokában. Legyen például a gondolatkísérletben a megfigyelésünk a piros labda. A következő megállapításokat tehetjük: 31-10 oldal
feltéve, hogy az 1. dobozból húztuk, az esemény valószínűsége 1/3. Feltéve, hogy az 2. dobozból húztuk, a valószínűség 1/2, míg ha azt tesszük fel, hogy a 3. dobozból húztuk, akkor 1/6. Valószínűsíthetjük, hogy a 2. dobozból húztuk a piros labdát, de nem lehetünk biztosak benne. Az ilyen és ehhez hasonló folyamatok modellezésére alkalmasak a rejtett Markovmodellek. A rejtett szó arra utal, hogy a megfigyelő nem látja az állapotokat, azok mintegy rejtve maradnak. Minden állapothoz tartozik egy diszkrét vagy folytonos eloszlásfüggvény, ami azt mutatja meg, hogy az állapotban értelmezett egyes (diszkrét vagy folytonos) megfigyeléseknek mi a valószínűsége. A j-ik állapotban az o esemény (megfigyelés) valószínűségét b j (o) -val jelöljük. A fenti példán keresztül szemléltetve: Az első doboz (állapot) eseményeinek valószínűség-eloszlása:
b1 ( piros ) = 1 , b1 ( fehér ) = 1 , b1 ( fekete) = 1 . 3 2 6 Hasonlóan, a többi állapot eloszlása is könnyen számolható, ezt az olvasóra bízzuk. Természetesen a megfigyelésnek nem kell diszkrétnek lennie. Lehet például valós szám Nes – azaz vektor –, ilyenkor b j (o) egy vektor-skalár függvény, egy N-dimenziós eloszlás sűrűségfüggvénye. Lényegében ugyanarról van szó mint korábban, a megfigyeléshez egy valószínűségi mértéket rendelünk. Az utóbbi típusú modelleket folytonos megfigyelésisűrűségfüggvényű rejtett Markov-modelleknek hívjuk, ilyeneket használnak a korszerű beszédfelismerőkben is.
1.1.2.3 Beszédfelismerés HMM-alapú mintaillesztéssel 1.1.2.3.1 Izoláltszavas felismerés A tárgyalás egyszerűsítése végett tételezzük fel, hogy a felismerendő szavakat egymástól szünetekkel elválasztva ejti ki a beszélő. Így az egyes szavak „izolálva” vannak egymástól, elegendő egyszerre eggyel foglalkozni. Tételezzük fel továbbá, hogy egy beszéddetektáló algoritmus behatárolta a bemondás elejét és végét, így egy véges hosszú tulajdonságvektorsorozat áll rendelkezésre, amelyikről a mintaillesztőnek kell eldönteni, melyik nyelvi szimbólumhoz tartozik. o1
ot
z
e
oT
r
e qj
qi
P (" ezer" ) = ?
max ? t
í
z
P("tíz") = ?
3.8 ábra HMM-alapú izoláltszavas felismerés
Izoláltszavas felismerésnél minden egyes felismerendő szónak külön rejtett Markovmodellje van. A topológia általában „balról-jobbra” (angol nyelvű irodalomban Left-to-Right) típusú, amelyben az állapotok szekvenciálisan következnek, csak a helyben maradás illetve a 31-11 oldal
következő állapotba lépés engedélyezett (3.8 ábra). Az állapotokat úgy célszerű megválasztani, hogy egy viszonylag jól definiálható hangrészletet képviseljenek (vagyis, hogy az egy állapothoz tartozó tulajdonságvektorok akusztikailag kis mértékben térjenek el egymástól). A feladat minden egyes rejtett Markov-modellnél a legvalószínűbb állapotsorozat megtalálása az adott tulajdonságvektor-(megfigyelés-)sorozat esetén. Magukat a valószínűségértékeket is el kell tárolni, arra a modellre – mint felismert szóra – döntünk, amelyiknél a legnagyobb ez az érték. Mielőtt a mintaillesztő algoritmusra rátérnénk, vizsgáljuk meg, hogy az egyes HMM paramétereknek mi a jelentősége: •
állapotátmeneti valószínűség:
a i j = P(q i → q j ) , ez határozza meg, hogy mi a következő
állapot, valamint időtartamra vonatkozó információt hordoz a bal-jobb struktúrában. •
lokális megfigyelési eloszlás:
b j (o t ) = P(o t | q j ) , a j-ik állapotban az ot megfigyelés,
azaz a t-edik tulajdonságvektor valószínűségét adja meg. Vagyis egy olyan mérőszámot generál, amely azt mutatja, hogy az adott tulajdonságvektor mennyire hasonlít a modellezett hangrészhez. Igazából b j (o t ) -n keresztül történik a mintaillesztés, hiszen egy olyan eloszlásfüggvényről van szó, melynek paraméterei úgy vannak beállítva, hogy az állapotnak megfelelő tulajdonságvektorok esetén adjon maximális valószínűséget a kimenetén. A b j (o t ) -t a hagyományos megközelítésben M db. Gauss-függvény keverékéből állítják elő: M
b j (o t ) = ∑ c jm G (o t , µ jm , Σ jm ) m =1
3.9 képlet Multimodális Gauss-eloszlás alkalmazása kimeneti valószínűség megadasára A Baum-Welch tanító algoritmussal a
Σ jm kovariancia mátrix µ jm átlagvektor és c jm
súlytényező becsülhető, valójában itt jön be az adatbázis kérdése, ugyanis a fenti paraméterek jó beállításához nagy mennyiségű beszédadatra van szükség.
Tehát, a cél a legnagyobb valószínűségű állapotsorozat megkeresése adott modellnél. Erre a Viterbi-algoritmust használják, mely a DTW-hez hasonlóan a dinamikus programozásra épül. Definiáljuk először a δ t (i ) mennyiséget, amely a kezdőtől az i. állapotig, az első t db megfigyelés során számított legjobb út valószínűségét jelenti. Ennek segítségével az algoritmus a következőképpen írható le: •
(Legyen a modell-állapotok száma N, a tulajdonságvektoroké T.)
•
Inicializálás:
•
Indukciós lépés:
δ t (i ) = 1; t = 0, minden i = 1...N − re. δ t +1 ( j ) = max [δ t (i ) ⋅ a ij ] ⋅ b j (o t +1 ); i
minden i = 1...N és j = 1...N − re. •
Leállás: ha t = T . A kimenetet a
max δ T (i ) jelenti. i
Az algoritmust egy TxN-es rácsban való haladással szokásos szemléltetni. A vízszintes tengelyen sorakoznak a tulajdonságvektorok, a függőleges tengely mentén pedig az állapotok vannak. A DTW-hez hasonlóan itt is nagyjából az a feladat, hogy a bal alsó sarokból valahogy eljussunk a jobb felsőbe. Minden egyes ütemben egy oszloppal jobbra lépünk, és az új oszlop minden rácspontjában megvizsgáljuk, hogy hogyan lehet ide jutni, hogy az idáig vezető út a legnagyobb valószínűségű legyen. Az algoritmus megvalósításához egy N-elemű táblázatot (oszlopot) kell eltárolni, mely az előző ütem legjobb útjainak a valószínűségét tárolja állapotonként. Első lépésként a táblázatot 31-12 oldal
egyesekkel töltjük fel, majd az indukciós lépés szerint frissítjük az értékeket. Az indukciós lépésben van az algoritmus lényege: a kiválasztott ( q j ) állapotban megvizsgáljuk, hogy melyik az az előző ütembeli állapot, amelynek a „legjobb út valószínűsége” az átmeneti valószínűséggel súlyozva a legnagyobb, vagyis honnan lehet a legkisebb veszteséggel ide jutni. Azután ezt a számot ( max [δ t (i ) ⋅ a ij ] ) beszorozzuk az éppen beérkezett i
tulajdonságvektor adott állapot szerinti megfigyelési-valószínűségével ( b j (o t +1 ) ), és máris megkaptuk az új út-valószínűséget. Világos, hogy ha olyan állapotban vagyunk, amelyik nem az aktuális tulajdonságvektort modellezi, akkor a megfigyelési valószínűség kicsi lesz, és lerontja az út valószínűségét. A számítást minden ütemben mindegyik állapotra (az oszlop minden rácspontjára) elvégezzük. Végül, az utolsó lépésben a táblázat legnagyobb értéke ( max δ T (i ) ) adja a teljes tulajdonságvektor-sorozatra számított legjobb út valószínűségét. i
Ezzel az algoritmus lefutott, a további teendőnk mindössze annyi, hogy kiválasszuk azt a modellt, amelyiknél a legnagyobb ez a számérték – ez azonosítja a felismert szót. Megjegyzések: •
A gyakorlatban a valószínűségek helyett azok negatív logaritmusával számolnak, mivel így szorzás helyett összeadásokat kell végrehajtani. A transzformált valószínűségeket költségként is értelmezhetjük, ekkor teljesen hasonló módon a minimális összköltségű útvonalat kell keresni.
•
Természetesen egy adott lépésben nem kell minden állapotot végignézni, csak azokat, melyekbe lehetséges az előző lépésből eljutni. (A 0 átmeneti valószínűség miatt amúgy is “kiesnének” az érvénytelen utak.)
•
A fenti algoritmus szerint a legjobb út valószínűsége határozható meg adott HMM-nél. Izoláltszavas felismerésnél ez elegendő, de ha magára az útvonalra explicite is kíváncsiak vagyunk, akkor ki kell egészíteni az eljárást. Szükségünk van egy TxN-es tömbre, ebbe az arg max [δ t (i ) ⋅ a ij ] értékeket írjuk be keretenként, a megfelelő oszlopba. Erre azért van i
szükség, mert így az utolsó, “nyerő” állapotból a maximumokon visszafelé haladva le tudjuk követni, hogy hogyan is kerültünk oda – ezt hívják „backtracking”-nek. Így némi memória és számítási idő ráfordításával a legjobb út valószínűsége mellett az útvonalat is meg tudjuk határozni. Vegyük észre, hogy a legvalószínűbb állapotsorozat meghatározása – az alkalmazott rejtett Markov-modellek topológiájából fakadóan – itt az időillesztést jelenti.
1.1.2.3.2 Nyelv modell integrálása Természetes igény, hogy a beszédet ne kelljen szünetekkel széttaglalni, hanem a felismerő folyamatosan egymás után kiejtett szavakat, akár teljes mondatokat is felismerjen. A kérdés, hogy hogyan lehet továbblépni a jelenlegi technológiáról, hogyan lehet integrálni valamilyen nyelv-modellt a felismerőbe, és arra miért van egyáltalán szükség. Az előző fejezetben harmadikként említett megjegyzésnek igen nagy jelentősége van. Azt mondja ki, hogy a teljes Viterbi-algoritmussal tetszőleges HMM-nél adott megfigyeléssorozatra a legvalószínűbb útvonal – azaz állapotsorozat – meghatározható. Ezt már az izoláltszavas felismerésnél is felhasználhattuk volna, hiszen, ha egybevonjuk az egyes szavak HMM-jét egyetlen nagy rejtett Markov-modell gráfba (3.10 ábra), akkor a legvalószínűbb útvonal a felismert szót is azonosítja. Ehhez csupán olyan speciális állapotokra van szükség (körrel jelölve), melyekkel egybe lehet fogni a szavakat. A speciális állapotok csak abban különböznek a „rendes” HMM-állapotoktól, hogy a rajtuk való áthaladás nem szól bele az útvonal valószínűségébe.
31-13 oldal
o1
ot
z
e
r
e qj
qi
t
oT
?
?
z
í
3.10 ábra Izoláltszavas felismerés HMM-gráfban útvonalkereséssel
Látható, hogy végül is a felismerési problémát visszavezettük egy gráfban való minimális költségű (maximális valószínűségű) útvonal meghatározására. Ha tehát kapcsoltszavas felismerést szeretnénk végezni, akkor a legkézenfekvőbb megoldás egyszerűen egymáshoz illeszteni a rész-gráfokat. Sőt, a kezdő- és végpont közé egy opcionális szünet-állapot közbeiktatásával (nincs berajzolva) rögtön folyamatos beszéd felismerésére alkalmas hálózatot kapunk. t
z
i
sz
á
e
z
n
gy
e
hz
a
t
3.11 ábra HMM-alapú kapcsoltszavas felismerés
A fenti számfelismerős HMM-struktúra természetesen csak illusztráció. A valóságban sokkal bonyolultabb gráf szükséges még ilyen egyszerűnek tűnő feladathoz is. A lényeghez azonban eljutottunk: máris nyelvtani információt vittünk be a felismerési mintaillesztésbe a hálózati topológián keresztül. Mi több, kijelenthetjük, hogy a HMM-gráf szerkezetének kialakításával bármilyen kiejtési illetve nyelvtani információt reprezentálhatunk a beszédfelismerő rendszerben. A probléma csak az, hogy eddig semmilyen természetes nyelvet nem sikerült determinisztikus nyelvtannal leírni, márpedig csak olyat lehet a fenti típusú hálózattal megvalósítani. Még elképzelni sem könnyű, milyen hatalmas gráfra lenne szükség egy teljes nyelv leírásához. A méret mellet az is probléma, hogy nem tudjuk igazán szabályokba önteni a nyelvtant. Ezért ma inkább sztohasztikus nyelvmodelleket használnak, melyek statisztikai alapon szavak, szópárok, szó N-esek valószínűségi mutatóival igyekeznek nyelvtani tudást vinni a rendszerekbe, ezáltal javítani a felismerési eredményeken. (Pl.: milyen gyakran fordul elő a „beszédfelismerés” szó a „bonyolult” szó előtt.) Felvetődik a kérdés: miért van szükség nyelvmodellre, miért nem jó, ha egyszerűen párhuzamosan kapcsolva a szavakat, egy visszacsatolással lefedjük az összes szókombinációt? Még alapvetőbb kérdés: miért kell egyáltalán szómodelleket használni, miért nem kapcsoljuk össze minden lehetséges módon a 100-nál is kevesebb számú fonéma modelljét, ezáltal minden értelmes és értelmetlen emberi beszéd felismerését lehetővé téve?
31-14 oldal
A válasz mindkettőre lényegében ugyanaz: az értelmetlen illetve nyelvtanilag hibás változatok megengedésével olyan nagy lesz a felismerő által választható lehetőségek száma, hogy bennük a helyes megoldások szinte elvesznek, a rendszernek nagyon sok a lehetősége a hibázásra, ezért sokat fog hibázni – akárcsak az ember. Fonéma alapú felismerést természetesen gyakorta használnak, erről részletesen az 5.1 fejezet szól, a nagyszótáras felismerők kivétel nélkül ilyen elvűek. Azonban ilyenkor is meg kell adni, hogy a fonémák hogyan kapcsolódhatnak egymáshoz, vagyis be kell korlátoznunk a felismerési lehetőségek számát azzal, hogy megadjuk milyen fonéma sorrendek jöhetnek egyáltalán szóba – erről szól a kiejtés-modellezés. Pl. a 3.11-es ábrán tulajdonképpen a „tíz”, vagy „ezer” szavak kiejtési gráfjai szerepelnek. A nyelv-modellezés is hasonló. Az angolhoz hasonló, kötött szórendű nyelvekben drasztikusan lehet csökkenteni a felismerési hibát azzal, hogy megadjuk milyen szó sorrendek helyesek, vagyis a hibás szórendeket kizárjuk a felismerési lehetőségek közül. A gyakorlatban a statisztikai, vagy sztohasztikus nyelvmodellek váltak be, itt valószínűségeket rendelünk az egyes szósorrendekhez, a kisebb előfordulási gyakoriságú szórendeknek kisebb valószínűséget adunk, így a nagyobb gyakoriságú – vélhetően helyes – szórendek felismerési aránya nagyobb lesz. A legegyszerűbb az unigram modell, itt egyszerű párhuzamos lexikonban tároljuk az összes szómodellt, de a szavakhoz vezető utakat az általános előfordulási gyakoriságuknak megfelelő valószínűségekkel súlyozzuk. A modell-struktúrában nem kell továbblépni, hiszen a speciális csomópontoknál is értelmezhetők az állapot-átmeneti valószínűségek, amelyeket most nem egyformának veszünk, hanem a kívánt súlyt állítjuk be rajtuk. A bigram illetve trigram nyelv-modellekkel még hatékonyabbá tehető a felismerés. Ilyenkor 2 illetve 3 db. W elemszámú párhuzamos lexikont kell egymás mellé rakni, és a lexikonok közötti WxW számú összeköttetés mindegyikét a megfelelő szó-pár illetve szóhármas valószínűségével súlyozni. A módszer tovább extrapolálható, bár a gyakorlatban csak ezeket használják, általánosságban n-gram nyelvmodell néven szoktak hivatkozni rá. Sajnálatos módon a magyar nyelvre nem vihető át közvetlenül ez a fajta nyelvmodellezés. Az csak a kisebbik probléma, hogy a nyelvünkben a szórendre nem igazán jellemző a kötöttség. A fő gond az, hogy a magyar nyelv agglutináló-flektáló, vagyis a szóalak nagyon változékony a ragozás, toldalékolás miatt. Így nem lehet – vagy nagyon nehéz – statisztikát készíteni arról, hogy az egyes szavak milyen sorrendben követik egymást. A probléma gyökere az, hogy a nyelvünk építőkövei nem a szavak (mint az angolban), hanem a morfémák. Így a magyar nyelvi modellezés ma is kutatások tárgya, egyelőre a sztohasztikus morfológiai elemzés tűnik ígéretes módszernek. 1.1.2.3.3 Optimalizálási eljárások Az előzőekből kitűnik, hogy egy használható diktálórendszerben, ami nyelvi modellezéssel is támogatva van, igen nagy méretű HMM-gráfban kell az útvonalkeresést elvégezni. Vegyünk W= 20.000 szavas szótárméretet, szavanként 20 modellállapottal számolva, trigram nyelvmodell esetén 3 x 20.000 x 20 = 1.2 millió a HMM állapotok száma, és a linkek száma több mint WxWx2 = 800 millió. E cseppet sem elméleti problémának nem lehet a nyers erő módszerével nekimenni. Az, hogy ilyen adatbázisokat kezelő beszédfelismerő programok személyi számítógépeken futnak, az optimalizálási technikák magas szintű alkalmazásának köszönhető. Mivel ezen technikák a szoftverek használhatóságát (eladhatóságát) nagymértékben befolyásolják, a gyártók nem nagyon publikálják őket. Tanulmányunknak sem célja e szoftvertechnológiai kérdésekbe belemenni, a továbbiakban ezért csak egyetlen optimalizációs eljárást ismertetünk, mely viszont széles körben elterjedt egyszerűsége és hatékonysága folytán. Az angol nyelvű irodalomban „beam-search”-nek nevezett módszer az útvonalkeresési algoritmus erőforrásigényének behatárolására, csökkentésére szolgál. A nagyméretű HMMgráfokban történő mintaillesztést ma általában a „Token-Passing” algoritmus segítségével valósítják meg. Tulajdonképpen a Viterbi-algoritmus egy olyan interpretációjáról van szó, melyben az útvonalkeresést a gráfba helyezett tokenek terjedésével szemléltetik. Minden 31-15 oldal
kezdőállapotba berakunk egy tokent, majd ütemenként (minden egyes tulajdonságvektor beérkezésekor) tovább terjesztjük őket a Viterbi-indukciós képletnek megfelelően. A tokenben el van tárolva az útvonal, amin végighaladt, valamint az útvonal valószínűsége (és még néhány egyéb plusz információ). A tokenek szétágazásnál sokszorozódnak, csomópontnál pedig rekombinálódnak, azaz a legjobb jelölt halad tovább. Néhány lépés után, ahogy a hálózat a nagyszámú szóra szétágazik a tokenek száma igen gyorsan megnőhet, és felismerési folyamat könnyen túlterhelheti a számítógépet. Hogy a mintaillesztési eljárás kézben tartható legyen, a „beam-search”–nél a rossz tokeneket egyszerűen eldobják. Hogy melyik token minősül rossznak, annak eldöntésére több lehetőség van. Lehet például a valószínűségek szerint sorba rendezni őket és létszámkorlátot szabni, vagy az adott valószínűségi szint alatti tokeneket eldobni. Mindenesetre, a tokenek számát maximálni illetve csökkenteni lehet anélkül, hogy a felismerési hiba észrevehetően megnőne. Tehát a keresés a kezdeti minták alapján valószínűbb jelöltekre összpontosul, így erőforrásokat takarítunk meg. Ha belegondolunk, emberi beszédfelismerésnél is valami hasonló történik; miután egy szónak az elejét meghallottuk, már nem foglalkozunk azokkal a szavakkal, amelyek nagyon másképpen kezdődnek. Annyi még ide kívánkozik, hogy amennyiben nem alkalmazunk nyelvmodellt, egyszerű párhuzamos szótár helyett annak tömörített változatát célszerű használni. Szófát (azaz az egy szinten lévő azonos állapotokat csak egyszer vesszük fel a gráfba) építve az állapotok számát jelentősen csökkenteni lehet, ezzel is redukálva a mintaillesztés erőforrásigényét és gyorsítva a keresést. 1.1.2.4 Mesterséges neurális hálózatok Néhány évvel ezelőtt a mesterséges neurális hálózatok beszédfelismerési célokra való felhasználása még erősen kísérleti stádiumban volt. Ismereteink szerint termékszintű ANNalapú (Artificial Neural Network) felismerő szoftverek ma sincsenek piacon, ám mára több kutatócsoportnak is sikerült jobb eredményeket elérni ANN-es ill. kombinált HMM-ANN módszerrel, mint a hagyományos HMM technikákkal. Mivel további fejlődés várható ezen a téren, nem hagyhatjuk ki a tanulmányból ezt a fajta megközelítést, tekintettel arra is, hogy a jövő beszédfelismerőiben is valószínűleg felhasználásra kerül. Elsőként tisztáznunk kell, hogy a mesterséges neurális hálózatok nem a biológiaiak „leutánzásai”, hanem – a nyilvánvaló analógiák ellenére - sokkal inkább matematikai – számítástechnikai fogalmak. Az elméleti kutatások bebizonyították, hogy a többrétegű neuronhálók univerzális függvény-approximátorok, ennek következtében általános osztályozási feladatokra jól alkalmazhatók. Természetesen adódik, hogy tulajdonságvektor(sorozatok) osztályozására is használhatók, megfelelően betanítva felismerik az adott hangrészletet. A következőkben ismertetjük az ANN-ek felépítését, működési elvét, majd vázoljuk a beszédfelismerési alkalmazási lehetőségeket. 1.1.2.4.1 A neurális hálózatok felépítése és működése A neurális hálók főbb jellegzetességei: •
sok hasonló, egyszerű processzáló elem alkalmazása
•
masszív párhuzamos működés
•
a tudás elosztva van tárolva az egyes csomópontok (neuronok) közötti összeköttetéseken keresztül.
Az alapegység a mesterséges neuron, melyekből a hálózat összeáll. A leggyakrabban használt típus, a perceptron elvi rajza az alábbi ábrán látható: 31-16 oldal
x0=1 x1 x2
xN
w0 N
w1 w2
Σ
s
F(.)
y
s = ∑ wi xi , i =0
y = F (s ) .
wN
3.12 ábra A perceptron (mesterséges neuron) elvi rajza
Látható, hogy egy több bemenetű, egy kimenetű egységről van szó. Először a bemenetek súlyozott összege kerül előállításra, majd ezt nemlineárisan transzformáljuk az F() telítődéses, ugrás vagy monoton növekvő függvénnyel. A perceptron önmagában kétosztályos lineáris szeparációra képes, vagyis a bemeneti súlyok megfelelő megválasztásával elérhető, hogy ha a bemenő adat az egyik (lineárisan szeparálható) osztályba tartozik, akkor a kimenetén 1-et adjon, ha a másikba, akkor 0-t. A súlyok beállítását végző tanító algoritmusra itt nem térhetünk ki, a lényeg, hogy ellenőrzött tanításról van szó, vagyis bemeneti – kimeneti adatpárok segítségével „tanul” a neuron. Történetileg először egyedi neuronokat – perceptronokat – használtak, majd hamar felmerült a többosztályos nemlineáris szeparálás szükségessége. A megoldást a perceptronok összekapcsolása jelentette. Alapesetben három rétegű előrecsatolt hálókat alkalmaznak (3.13 ábra), (Multi Layer Perceptron – MLP), ahol valójában két aktív neuroncsoport van, a bemeneti réteg csak a minták tárolására szolgál. Rejtett réteg
Bemeneti réteg
Kimeneti réteg
súlyok 3.13 ábra Előrecsatolt háromrétegű MLP hálózat
Az MLP hálózatok elméletileg képesek tetszőleges nemlineáris leképzés megvalósítására, tehát általános (nemlineáris) osztályozási feladatokra is használhatók. A tanítási elvük hasonló az egyszerű perceptronéhoz, bemeneti – kimeneti adatpárokat kell biztosítani a tanító algoritmusnak, ahol a bemenetet egy I dimenziós vektor (minta) szolgáltatja, a kimenetet pedig egy O dimenziós, melyben egyetlen 1-es van (az indexe jelzi, hogy melyik osztályba tartozik a minta), a többi 0. Természetszerűleg ahány kimeneti neuron van, annyi osztályba sorolhatjuk a bemeneti mintákat. A rejtett réteg(ek) száma illetve mérete szabja meg, hogy mennyire pontosan tud a háló approximálni. Végső soron itt is a csomópontok közötti súlyok adják a hálózat „memóriáját”, a tanítás során ezeket kell beállítani. A neurális hálózatok alkalmazásának a legnagyobb nehézsége itt van, ugyanis a súlymódosító tanítási algoritmusok igen számításigényesek. A neurális hálózatoknak és tanítási módoknak igen sok fajtája van, melyek különféle feladatokhoz lettek optimalizálva. Ezek részletezésébe nem mélyedünk el, a fenti MLP-háló a legáltalánosabban használható ellenőrzött tanítású struktúra. (Léteznek nem ellenőrzött tanítású neurális hálózatok is, azonban ezeket nem célszerű mintaillesztési feladatokra használni.) 31-17 oldal
1.1.2.4.2 Mesterséges neurális hálózatok beszédfelismerési alkalmazásai Mint a bevezetőben is utaltunk rá, többrétegű perceptronhálóval könnyen megvalósíthatunk beszédminta osztályozót. Ehhez a bemeneti neuronok számát a tulajdonságvektor méretével egyezőre kell választani. A kimeneti egységekből nyilván annyi szükséges, ahány hangosztályt szeretnénk megkülönböztetni. A felismerés során minden ütemben a soron következő tulajdonságvektort adjuk a háló bemenetére, a kimeneteken ekkor egy (0 és 1 közötti) hasonlósági mérőszám jelenik meg, mely – megfelelő betanítás esetén – azt mutatja meg, hogy az adott beszédkeret mennyire hasonlít az előzőleg, adott kimeneten tanított mintákra. Vagyis az adott hang-osztályba tartozás mértékét (valószínűségét) mutatja minden kimeneti neuron. Látható, hogy a minta-felismerést (osztályozást) megoldottuk, de az időillesztés elmaradt. Tehát valódi mintaillesztéshez – mely mindkettőt magában tartalmazza – ki kell egészíteni az eljárást. Voltaképpen egy időillesztést részben magában hordozó megközelítés, hogy a neurális hálózat egy rövid hangrészletet egyben ismerjen fel, és ne tulajdonságvektoronként kelljen arra következtetni. Ilyenkor több, egymás után következő vektort kell figyelni egyszerre. Fix ablakméret nem használható, hiszen nem ismerjük a hangrészlet hosszát. A legjobban TDNN (Time Delay Neural Network) illetve visszacsatolt (recurrent) hálózatok váltak be, melyekben beépített késleltetések ill. visszacsatolások gondoskodnak a néhány ütemmel korábbi minták figyelembevételéről. A probléma ezekkel a módszerekkel az, hogy csak elég rövid idejű beszédrészletek ismerhetők fel velük hatékonyan, hosszabb szavak, stb. felismeréséhez komoly utófeldolgozásra van szükség. A legjobb eredményeket a hibrid módszerekkel sikerült elérni, ahol az időillesztés külön algoritmus (HMM vagy DTW) segítségével történik. A legkézenfekvőbb, hogy a már bemutatott MLP-vel történő beszédkeret-osztályozás kimenetét a HMM megfigyelési valószínűségek számítására használjuk fel. Tulajdonképpen arról van szó, hogy a Gauss függvények keveréke helyett a neurális hálózat valósítja meg az állapotfüggő megfigyelési valószínűségeloszlás-függvényt. A módszernek több továbbfejlesztése lehetséges, mint például több tulajdonságvektor figyelembevétele egy valószínűség előállításához, a priori ismeretek integrálása stb. Hasonlóan, a mesterséges neuronhálók a DTW lokális távolság számítására is használhatók. Ezeken kívül is rengeteg lehetőség van a különböző módszerek összekombinálására, melyek az egyes megközelítések előnyeit egybekovácsolva kínálnak adott peremfeltételek mellett hatékony megoldásokat.
31-18 oldal
1.1.3 Utófeldolgozás Két alapvető módszert lehet elkülöníteni a legvalószínűbb mondat felismerésére, mely megfelel mind az akusztikus, mind a nyelvi feltételeknek. Ezek a moduláris és az integrált technológiák. Az integrált technológia esetén az összes tudás egyidejű figyelembevételével történik a felismerés. Ebben az esetben az akusztikus, nyelvi, szintaktikai és szemantikai információk összességét egyetlen véges automatává konvertáljuk mely tartalmazza az akusztikus modelleket is. A beszédfelismerés során így a jellemző vektorok sorozatát összevetjük a feltételeknek megfelelő összes sorozattal, és kiválasztjuk a legmegfelelőbbet. Egy sor probléma vetődik fel azonban az integrált technológiával. Először is nem minden tudást lehet tökéletesen leírni és integrálni, pl. prozódia és egyéb hosszú idejű feltételek nehezen integrálhatók egy véges automatába. Másrészt a nagyszótáras feladatok esetén keletkező HMM-hálózat általában kezelhetetlenül nagy. A moduláris felépítésű rendszerben a mintaillesztő, a szó, a mondat és a feladat szintű elemzők mind különálló egységet alkotnak. Ezek önmagukban is elkészíthető, tesztelhető egységek, melyek kisebb komplexitásúak, mintha az egészet integrálnánk. Így a párhuzamos fejlesztés könnyebben megoldható. Spontán beszélt nyelvet kezelő felismerők valamint a dialógus rendszerek általában ilyen felépítéssel működnek. Hátránya ennek a megoldásnak, hogy minden egyes szinten döntést kell hozni a következő szintek feltételeinek ismerete nélkül. Természetesen több hipotézis tovább adása csökkenti a végső hiba lehetőségét, de mégis nagyobb a hibalehetőség, mint az integrált rendszerek esetén. Moduláris feldolgozás esetén a mintaillesztő utáni egységeket összefoglaló néven utófeldolgozó egységeknek nevezzük. A határ meghúzása, hogy meddig modellezhető hatékonyan véges automatával a szabályrendszer, és így integrálható az akusztikus modellekkel, feladat függő. A feltételek között szerepelnek nyelvtani, nyelvi szabályok, és kiegészítésként feladat specifikus szabályok: parancsmódú rendszerekben a vezérelt gép állapotától, míg dialógus rendszereknél a párbeszéd állapotától függ az elfogadó halmaz. Dialógus, illetve parancsmódú rendszerek két osztályba sorolhatóak a nyelvtanok kötöttsége szerint. Egyszerűbb esetben erősen kötött a nyelvtan, ami azt jelenti, hogy a felhasználó válaszának pontosan illeszkedni kell a rendszer elvárásaihoz, mintha egy űrlapot töltenénk ki. Egy komplexebb megoldás, ha spontán beszédet is megért a rendszer, azaz spontán beszédben megtalál kulcsszavakat, kiválasztja a kért információt. A következőkben először a kötött nyelvi modellről, majd a kulcsszó keresésről lesz szó.
1.1.3.1 Nyelv modellezése A nyelv modellezésének kérdését már tárgyaltuk a mintaillesztésről szóló fejezetben is, ahol integrálva volt az akusztikus modellekkel. Mint a bevezetőben említettük, több oka is lehet annak, hogy a nyelvi modell önálló egységként szerepel: egyik ok, ha nem könnyen írható le véges automatával, másik, ha ez túl nagy számítási komplexitást eredményezne. A tág értelemben vett nyelvmodellezés tartalmazza a feldolgozó rendszer (dialógus rendszer, vagy vezérelt gép) állapotától függő elfogadható mondatokat, és ezek összes helyes variációját, akár független egységként is. Jól körülhatárolt esetekben környezetfüggetlen nyelvtanokkal megadható a nyelvi modell, ami hatékony feldolgozást tesz lehetővé. Általános esetben, illetve komplex feladatoknál, mint pl. egy diktáló rendszer természetes nyelvi feldolgozó egysége, a mintaillesztésnél említett n-gram modelleket alkalmazzák, azonban a kutatások előrehaladtával ezeket a feladatokat is igyekeznek formalizálni a nagyobb felismerési biztonság érdekében. 1.1.3.1.1 Környezetfüggetlen nyelvtanok alkalmazása A számítógépek világában a nyelvtanok ma már alapkőnek tekinthetőek. A UNIX operációs rendszer alapvető részét képzi egy általános nyelvtani elemző algoritmus. A 31-19 oldal
nyelvtanok elterjedését a fordítóprogramok indikálták. A processzornak is természetesen van egy saját egyszerű nyelve, azaz a processzor csak a szintaxisának megfelelő memóriatartalmat hajlandó feldolgozni. A programozók munkájuk hatékonyabbá tétele érdekében hamar elkészítették a magas szintű programozási nyelveket. A programozási nyelveknek vannak kulcsszavai (terminálisok) és ezek sorrendjét leíró szabályok. A szabályok megfogalmazását segítik a kulcsszavak sorrendiségének egy halmazát összefoglaló nemterminálisok. A magas szintű programnyelven megírt programot a fordítóprogram első lépésben szintaktikailag ellenőrzi. A fordító beolvassa a kulcsszavak azaz a terminálisok sorozatát, és leellenőrzi, hogy a nemterminálisok segítségével megfogalmazott szabályok által megadott sorrendben érkeznek-e a terminálisok. A szintaktikai ellenőrzés sikeres, hogy ha a terminálisok elfogytak, és eközben nem volt hiba. Ezt a jellegű feladatot általánosan ellenőrzésnek hívhatjuk, azaz ellenőrizzük, hogy a leírt mondat eleme-e a nyelvnek. A fordítás második lépése a transzformáció, amikor a magas szintű nyelv elemeinek sorozatát át akarjuk alakítani a processzor kulcsszavainak sorozatára. Ekkor jutnak a nemterminálisok fontos szerephez. A nemterminálisok tekinthetők részszabályoknak. Például az if-else utasítást elfogadó nemterminális. Amennyiben az elemzett kódot elfogad egy nemterminális, a nemterminálishoz megadott processzor kód generálódik. A kód természetesen nem teljes, hiszen az if-else utasítás szabálya további nemterminálisok segítségével van megfogalmazva (pl. a logikai feltételt szintaktikáját megadó nemterminális.). Ezen nemterminálisok saját fordítása segítségével rekurzívan fordul végül is az utasítás a végleges processzor nyelvre. A nyelvtanok ilyen felhasználása, azaz a nemterminálisokhoz vagy szabályokhoz rendelt extra információ alkalmas az elemzett mondat transzformálására. A transzformálás pedig természetesen lehet a mondat által kódolt információ dekódolása, a mondat szemantikus elemzése, azaz a mondat megértése is. A nyelvtanok megértését segítheti a következő példa. A példa olyan szabályrendszert valósít meg, amely elfogadja a számokat 0-99. A végső szabály a <MONDAT> nemterminális, amit két szabály ad meg: érvényes terminális sorozat a számok 0-9 és a számok 10-99. A terminálisokat a <SZÁMJEGYEK 1-9> és <SZÁMJEGYEK 0-9> nemterminálisok igyekeznek absztraktan kezelni. <SZÁMJEGYEK 1-9> ::= “1”; <SZÁMJEGYEK 1-9> ::= “2”; … <SZÁMJEGYEK 1-9> ::= “9”; <SZÁMJEGYEK 0-9> ::= “0”; <SZÁMJEGYEK 0-9> ::= <SZÁMJEGYEK 1-9>; <MONDAT> ::= <SZÁMJEGYEK 1-9> <SZÁMJEGYEK 0-9>; <MONDAT> ::= <SZÁMJEGYEK 0-9>;
Ennyi számot természetesen felsorolhattunk volna, és evvel a látszólag bonyolult nyelvtanokra sem lenne szükség, de a példa is érzékeltetheti a nyelvtanok absztrakciós képességét. (Amennyiben rekurzív szabályt is alkalmaztunk volna, az összes mondat felsorolásának esélye is megszűnt volna.) A nyelvtanok osztályozhatók a szabályok struktúrája alapján. Az egyik osztály a környezetfüggetlen nyelvtanok osztálya. (A környezetfüggetlen nyelvtanok részhalmazát képzik a reguláris nyelvtanok. A reguláris nyelvtanok ezért érdekesek, mert a szabályok egyértelműen meghatároznak egy determinisztikus véges automatát.) A környezetfüggetlenség arra utal, hogy a szabályokban a terminális és nemterminális szimbólumok tetszőlegesen követhetik egymást. A nyelvtanok alkalmazássásához természetesen szükség van egy szoftvereszközre, ami fogadja az input terminális sorozatot, és leellenőrzi hogy megfelel-e a szabályoknak. Ez az eszköz képes egy speciális szintaktikával elkészített szabályrendszert felolvasni, és ezek alapján az input mondatokat kiértékelni.
31-20 oldal
A beszédfelismerésben a parancsmódú beszédfelismerő rendszerek alapvető eszköze a nyelvtan. A felismerő által elfogadható parancsokat nyelvtanok formájában fogalmazza meg az alkalmazás. A mintaillesztő rendszer által kiadott alternatívákat az utófeldolgozó egység az aktív nyelvtanok segítségével leellenőrzi, és a legvalószínűbb és érvényes mondatot tekinti felismertnek. A következő példa a fájlműveleteket fogalmazza meg.
::= “fájl” <MŰVELET>; fájl_műveletek := CTRL <MŰVELET> ::= “megnyitása”; művelet := O <MŰVELET> ::= “mentése”; művelet := S <MŰVELET> ::= “nyomtatása”; művelet := P
A szabályok alatt található a szemantikus információ, amit a transzformációs nyelvtanoknál ismertünk meg. Amennyiben valamelyik felismert hipotézis a „fájl” szóval kezdődik, az első szabály elsül és a CTRL információ letárolásra kerül. A CTRL a parancs gyorsbillentyűkombinációjának első billentyűje. Ha a kiejtett parancs eleget tesz a <MŰVELET> nemterminális által definiált szabálynak is, a hipotézis elfogadásra kerül, és a tartalmi információ a gyorsbillentyű-kombináció második tagjával kiegészül. Az alkalmazás természetesen megkapja a felismert parancs mellett a szemantikus információt, ami alapján egyértelműen végrehajtathatja a parancsot. 1.1.3.1.2 Információ kiemelés Ahogyan a parancsmódú rendszerek átalakulnak dialógus rendszereké, a nyelvtanok definíciója és felhasználása is átalakul. Amennyiben megkísérelnénk leírni egy természetes nyelvet környezetfüggetlen nyelvtan segítségével, valószínűleg bevezetnénk a jól ismert nyelvtani fogalmainkat: alany, állítmány, jelző, határozó stb. A fogalmak formálisan a nemterminálisok fogalmazzák meg. A dialógus rendszerekben a nyelvtanok szerkezete ezt az utat követi. A cél a felhasználó gondolatainak megértése. A gondolatokat szerencsére a rendszert felprogramozók jól ismerik előre. Repülőtéri információs rendszer esetében előre tudjuk, hogy a felhasználó egyszer ki fogja mondani, hogy honnan, hova és mikor akar utazni. Ezek a határozóval analóg fogalmak. Nagyon jól tudjuk, hogy milyen nyelvtani szerkezet azonosítja a honnan, a hova információt („Budapestről”, „Londonba” stb.). A nyelvtan tehát a keresett információt kifejező nyelvtani szerkezeteket fogja tartalmazni a parancsok helyett. A nyelvtan tartalmán kívül módosításra van szükség az elemző eszközben is. Eddig az elemzés akkor volt sikeres, ha elfogyott a terminális szimbólumsorozat, és eközben nem tapasztaltunk hibát. Az információ kiemelés alapvető ismérve, hogy nem igyekszik megadni az érvényes mondatok teljes halmazát, hanem a keresett információra nyelvtani fordulataira szorítkozik csupán. (Ennek is köszönheti sikerességét, mert a köznyelv gyakran sérti meg a szabályokat, ami a teljes körű nyelvtani elemzés alkalmazása esetén sikertelen felismerésre vezetne.) Az elemzést tehát nem a felismert mondat elején kell kezdeni, hanem a terminális sorozat minden egyes elemét potenciális mondatkezdetnek kell tekinteni. Más szavakkal a nyelvtani elemző elfogadja, ha egy mondat a terminális sorozat közepén helyezkedik el. Ezt a keresési eljárást Word Spottingnak nevezik, hiszen az eljárás szavakat, szókapcsolatokat keres a felismert szósorozatban. (Az információ kinyerési technológia alkalmazásával a 3.2-es fejezet foglalkozik részletesen.)
31-21 oldal
1.1.4 Modellek paraméterbecslése A mintaillesztésről szóló alfejezetben tárgyaltuk a statisztikus modelleket. Ismertettük a felépítésüket, és hogy hogyan lehet használni őket. Most arról a nem kevésbé fontos kérdésről lesz szó, hogy hogyan lehet ezen modellek paramétereit úgy beállítani, hogy a modellezett akusztikai-nyelvi jelenségeket minél jobban leírják.
1.1.4.1 Akusztikus modell Amikor akusztikus modellekről beszélünk, akkor voltaképpen olyan HMM-ekre gondolunk, amelyek mindig egyben maradnak a felismerési gráfban. Ilyenek például az izoláltszavas HMM-es felismerőben a szómodellek. Gyakorlati szempontból fontosabbak a fonémamodellek, melyeket nagy szótáras folytonos beszédfelismerőkben alkalmaznak. Az előnyük nyilvánvalónak tűnik, fonémából sokkal kevesebb van, mint szóból. Egy fonémamodell általában 2 (pl. zárhangok: p, t, d, b stb.) vagy 3 (pl. magánhangzók: a, á, e, o, stb.) állapotú HMM-et jelent. Az egy hangosztályhoz tartozó beszédhangok azonban nagymértékben különbözhetnek egymástól, attól függően, hogy milyenek a szomszédos hangok (koartikuláció), ezért egy fonémának több akusztikus modellje lehet. Egy korszerű beszédfelismerőkben alkalmazott akusztikus modellek (monophonok, biphonok, triphonok szó belsejében és szóhatárokon) száma így több ezer is lehet. Végeredményben az akusztikus modellek paraméterbecslése alatt mindig rejtett Markovmodellek paramétereinek beállítását értjük. Függetlenül attól, hogy milyen szintű modellről van szó, a tanítás lényegében ugyanúgy történik: össze kell gyűjteni minden egyes modellhez a neki megfelelő tulajdonságvektor-sorozatból minél többet (minél több beszélőtől, stb.), majd ezekből egy cél-algoritmus segítségével a statisztikai információkat kivonjuk, és az adott HMM paramétereit ezekre „ráhúzzuk”. A rejtett Markov-modellek klasszikus paraméterbecslő eljárása a Baum-Welch algoritmus. Ennek részletes ismertetését nem tárgyaljuk, az algoritmus lényege, hogy az állapotátmeneti valószínűségeket valamint az állapotfüggő megfigyelési valószínűség-eloszlás paramétereit úgy képes beállítani, hogy a tanított mintákra adott felismerési valószínűség-függvény lokális maximumát megtalálja. Ezt iteratív módon, ML (Maximum Likelihood) kritériumot használva éri el. Az eljárás szépsége, hogy a maximalizálandó valószínűség iterációnként monotonon nő. A probléma az, hogy az eloszlásfüggvények megfelelő kialakításához (a Gaussfüggvények felparaméterezéséhez) több száz mintára lenne szükség minden egyes állapotnál. Viszont, mint láttuk, az akusztikus modellek száma elég nagy lehet, sok olyan hangkapcsolat van, mely fontos ugyan, de viszonylag ritkán fordul elő a beszédben, következésképpen igen nagy beszéd-adatbázis szükséges jó (környezetfüggő) akusztikus modellek kialakításához. Magyar nyelvű beszédfelismerő létrejöttét egyelőre éppen a megfelelő méretű és minőségű adatbázis hiánya hátráltatja. A kevés számú mintából eredő nehézségekre különféle „smoothing” (simítási) technikákat dolgoztak ki, melyek segítségével a durva modellezési hibák kiküszöbölhetők.
1.1.4.2 Nyelv modell A statisztikai (n-gram) nyelvmodellek paraméterbecslése elvileg igen egyszerű. Tulajdonképpen csak egy hatalmas szöveg-adatbázis kell hozzá, amelyben a szópárok, szóhármasok számáról statisztikát készítünk, az egyes bigramok illetve trigramok valószínűségét a relatív gyakoriságuk adja. A valós helyzet azonban nem ennyire egyszerű. Gondoljunk bele, hogy egy közepes (10000 szavas) lexikonméret esetén 1012 féle sorrendben állhat 3 szó egymás után (trigram-modell), melyek mindegyikéhez egy valószínűséget kell rendelni. Ha a fenti eljárást önmagában 31-22 oldal
alkalmazzuk, akkor a mai rendelkezésre álló adatbázisok esetén nagy számban lesznek olyan szóhármasok, mely értelmesek, helyesek, de mivel az adatbázis szövegében nem fordultak elő, 0 valószínűséget kapnak – tehát a felismerési lehetőségek közül ki lesznek zárva. A probléma kezelése nem triviális. Hiszen ha egyenlő valószínűséget adunk minden szóhármasnak, amely nem fordul elő a tanító szövegben, akkor pont azt tettük, amit nem akartunk: megengedtünk egy csomó értelmetlen vagy hibás szósorrendet. Ehelyett főleg a jobban becsülhető bigramokből extrapolációval ill. a nagyobb számban előfordult trigramok közti interpolációval igyekeznek valószínűségeket rendelni az ilyen szóhármasokhoz. A szó frázisok (pl. New York ), vagy olyan szópárok, melyek közé mondatrészek ékelődhetnek további nehézségeket állítanak a nyelvmodellezők elé, ez a témakör mára a beszédfelismerés egyik önálló tudományágává fejlődött.
31-23 oldal
1.2
Kutatás
A beszédfelismerés területén időről időre újabb problémák kerülnek felszínre, így mind a mai napig élő kutatási terület. Néhány évtizede nagy eredmény volt, ha néhány számjegyet nagy pontossággal sikerült felismertetni laboratóriumi körülmények között. A kezdeti sikereket újabb, egyre komplexebb igények követték, mint pl. a kapcsolt szavas felismerés, folyamatos felismerés, zajos környezet kezelése, spontán beszéd (ö-zés, hümmögés) kezelése. Sok kérdésre születtek komplex matematikai modellek, némelyekre párhuzamos alternatívákkal (pl. jelfeldolgozás, mintaillesztés), de van még jó néhány terület, mely még ma is kutatás alatt áll (pl. zaj kezelése, nyelvi modellek). Ez a kutatási terület is eredményvezérelt, azaz a kutatásokat abban az irányban folytatják, amerre a felismerési eredmények nőnek. Időnként azonban vissza kell térni korábban elvetett technológiákhoz, hisz azok lehet, hogy önmagukban nem állják meg a helyüket, de fontos kiegészítői lehetnek másoknak. Erre jó példa, hogy a gyakorlatilag minden alapismeret nélküli mintaillesztésen alapuló rendszerek hatékonyabbnak bizonyultak, mint a tudásbázisú rendszerek, mivel az ismereteink hiányosak, és nem is mindig helytállóak. A mintaillesztésen alapuló rendszerek hatékonyságának azonban épp az szabhat korlátot, hogy nem veszik figyelembe az emberi beszédértés folyamatát, még azt a kis részét sem, amit ismerünk.
1.2.1 Kutatás és a fejlesztés kapcsolata A beszédfelismerés kutatása még nem egy lezárt terület, azonban a számítógépek teljesítményének növekedésével reálissá vált otthoni, irodai környezetben beszédfelismerésen alapuló alkalmazások használata. A fejlesztő és szolgáltató vállalatok látják a benne rejlő ígéretes technológiát, a felhasználókban pedig egyre nagyobb az igény a természetes felhasználói interfészek felé. Terjednek a telefonos lekérdező rendszerek, ahol az ügyintézőt egy beszédfelismerésen alapuló alkalmazás helyettesíti, megjelentek már termék szinten diktáló rendszerek cél szótárral, illetve kötetlen szótárral és sorolhatnánk tovább. Ezen alkalmazások többsége azonban nem probléma mentes. A felhasználói környezet zaja jelentősen rontja a felismerés hatékonyságát, különböző zajok, csatorna torzítások hatására kell felkészíteni az alkalmazásokat. Ezek a problémák visszakerülnek a kutatókhoz, akik több-kevesebb sikerrel megoldják őket. További probléma, hogy a kutatások első sorban angol nyelvterületen, az angol nyelvvel kapcsolatban folynak. Bár a kisebb országok is, mint Magyarország bekapcsolódnak a kutatásba, mégis érezhető a lemaradás a saját nyelvünk tekintetében. Ez nem technológiai, vagy tudásbeli probléma, főképp a megfelelő méretű beszédadatbázis hiányán alapul. A standard technológiák többsége kis módosítással használható magyar nyelvre is, csak nincs elegendő adat a betanításhoz illetve a teszteléshez, de várhatóan a közeljövőben ez az akadály is elhárul. A fejlesztő vállalatok még erősen a kutatásra vannak utalva, mivel a folyamatosan felmerülő illetve a korábbi problémák még megoldásra várnak, a kutatók pedig a szolgáltatók segítségére, ahol nagy méretben lehet próbaüzemeket tartani, illetve adatokat gyűjteni.
1.2.2 Használhatóság, robusztus felismerés Amikor a beszédfelismerés a kutatási fázisból lassan a fejlesztés irányába tolódik, a használhatóság kérdése egyre inkább előtérbe kerül. Kikerül a laboratóriumból egy technológia, aminek működni kell valós körülmények között is. Ilyen alapvető igény például, hogy zajban is működjön a rendszer. A legtöbb applikáció hatásfoka azonban már kis zajban jelentősen romlik, szemben az emberrel, aki elég nagy zajban is képes megérteni az elhangzottakat. Ezeken a pontokon kapcsolódik be a bevezetőben említett tudás alapú feldolgozás. Ha például valaki viszonylag nagy zajban hirtelen hozzánk szól sokszor visszakérdezünk, hogy mit is akar, de még mielőtt megismételné már tudjuk a választ. Ez a mintaillesztés egyik korlátja hogy nem veszi figyelembe a körülményeket. Nem várható el 31-24 oldal
persze egy felismerő rendszertől, hogy lásson, érezzen, de a korábban elhangzott beszédben lévő információk felhasználása segíthet. További probléma a beszélőfüggőség. Amíg egy rendszert egy ember használ, addig kis fáradsággal megtehető, hogy egy általános rendszert adaptáljunk a hangjára, de ez sok felhasználó esetén kényelmetlen. Képzeljük el, hogy egy intelligens háztartásban, ahol sok minden beszédvezérelt, megszólalás előtt be kell gépelni a felhasználó nevét. Sok esetben a beszédfelismerő programmal együtt mikrofont is kapunk. Ez nem egyfajta kedvesség a gyártótól, hanem a rendszer más mikrofonnal nem, vagy csak gyengébben működik. Hogyan használható akkor ez a rendszer pl. egy telefonos környezetben, ahol minden egyes készüléknek más a mikrofonja? A következő pontokban a fent felsorolt problémákat részletesebben bemutatjuk a jelenlegi megoldási javaslatokkal együtt.
1.2.2.1 Zaj érzéketlenség Minden jelet, ami nem a hasznos, azaz nem a felismerendő beszéd, azt zajnak tekintünk. Ilyen a gépek zúgása, motorzaj, telefon kódoló zaja, másik beszélő. A zajokat osztályokba sorolhatjuk, a következőkben néhány példával illusztráljuk őket: •
additív zaj: gépzaj, ventillátor zaja, háttérben beszélgetés zaja
•
lineáris torzítás: visszaverődés falról (visszhang), mikrofon karakterisztika
•
tranziens jelenségek: ajtó csapódás, telefon csörgés
•
nemlineáris torzítás: véletlenszerű kattogás a telefonvonalban
•
interferencia - áthallás: több ember beszélget egyszerre
Kísérletek során a felismerendő mintákhoz mesterségesen zajt adva az emberi felismerés lényegesen kisebb mértékben romlott, mint a gépi. Mivel minden valódi alkalmazás során felmerülnek zajok, így kiemelten fontos kutatási terület a környezeti zajok kezelése. 1.2.2.1.1 Spektrális kivonás A beszédjelben lévő additív zaj spektrumát meg lehet becsülni többféle módon. A beszéd közötti csendes részek, vagy egy párhuzamos mikrofon használatával. Az előbbi egyszerűbb a felhasználó szempontjából, az utóbbi pedig a feldolgozáséból. Több mikrofon esetén ugyanis szinkron tudjuk a környezeti zajt becsülni, míg egyetlen mikrofon esetén csak hosszúidejű átlagot lehet becsülni, ami változó zajok esetén (pl. egy mozgó autóban) nem elég hatékony. A zajos beszédjel spektrumából a zaj spektrumát kivonva elvileg a tiszta beszéd spektrumát kapjuk, természetesen a becslés pontossága gátat szab a tökéletes beszédtisztításnak. 1.2.2.1.2 Spektrális normalizáció Ezzel a módszerrel a normálás részben már találkozunk. A beszéd spektrum hosszúidejű átlagával normálják a rövid idejű spektrumot, és így az ismeretlen lineáris torzítás kiküszöbölhető. Természetesen a tanító adathalmazon is végre kell hajtani a normalizációt. 1.2.2.1.3 Empírikus kepsztrális kompenzáció Ebben az esetben szükség van egy úgynevezett sztereo adatbázisra, azaz zajmentes betanító mintához párban van egy zajos minta is. A minták keretenként vannak illesztve (pl. DTWvel), és keretenként számítják ki a kepsztrum különbségeket. Minden egyes szóhoz persze nem lehet nyilvántartani ezeket a kompenzációs vektorokat, de a kereteket jel-zaj viszony alapján osztályozva, és az eltéréseket osztályonként átlagolva néhány kompenzáló vektort kapunk. Ez a megoldás erősen környezetfüggő. Több környezetre is be lehet tanítani a rendszert és ilyenkor először ki kell választani a megfelelő kompenzációs halmazt. Ez a megoldás mind additív zaj, mind lineáris torzítás kompenzációra használatos. 31-25 oldal
1.2.2.2 Telefon bemenet Szolgáltatások elérésének tipikus módja a telefonos lekérdezés. Ilyen esetekben a beszédfelismerő bemenetére a telefon csatornán keresztül kerül a beszédjel, aminek spektrális tulajdonságát nagymértékben befolyásolja a telefonos rendszerek átviteli karakterisztikája. Mivel a tulajdonságvektor komponensei függnek a telefon vonal által elnyomott frekvenciatartományban érkező információtól is, a felismerés leromlik. (Habár a telefon alkalmas emberi beszélgetések továbbítására!) További nehézség, hogy sokféle, jelentősen eltérő telefonról van szó: analóg, ISDN NMT, GSM, DECT. Továbbá a készülékek is különböznek egymástól, így mindenképpen adaptív kompenzációra van szükség. Az telefoncsatorna lineáris torzításának illetve additív zajának kompenzációjára a korábbi fejezet algoritmusai használhatóak.
1.2.2.3 Automatikus beszélőfelismerés A digitális beszédfeldolgozás nagy területei a beszéd illetve beszélő személy felismerés valamint a szintézis önálló kutatási területek, azonban rengeteg a közös pont bennük. A beszédfelismerő rendszerek tulajdonságvektorai beszélőfüggők, ami az egész rendszert beszélőfüggővé teszi. Ez természetesen nem megengedhető egy információs rendszer esetében. A tulajdonságvektorok előállításánál beszéd illetve beszélő felismerős esetén épp ellentétes a cél, így sokat tanulnak egymás hibáiból. Teljesen nem lehet szétválasztani a feladatokat, így sokszor azonos jellemzőkből indulnak ki, csak a beszédfelismerésnél egy-egy hangra jellemző egységekből, míg a beszélő felismerésnél az egy-egy beszélőre jellemző egységekből becslik a paramétereket. Ez utóbbi azonban segítséget nyújt a beszélő adaptációnál, ami egy tipikus megoldás az ASR (Automatic Speech Recognition) rendszereknél. Az új felhasználóra jellemző mértékben módosulnak a tulajdonságvektorok. További alkalmazása a beszélőfelismerésnek a referencia minták közötti válogatás. Először eldönti, hogy ki beszél, majd a hozzá tartozó referencia tár alapján történik a további feldolgozás. Ez nem feltétlenül jelent beszélőnként független referenciákat, lehet hasonló beszélőket egy csoportba sorolni, vagy egyszerűbb esetben szétválasztani a női, férfi és gyerek beszélőket. A beszélő felismerésénél is felmerül a zajosság kérdése, a megoldás analóg módon történik a 3.3.2.1-ben leírtakkal.
1.2.3 Akusztikus technológiák Sokak által kedvelt hasonlat a beszédfelismerésre a repülés tudománya. A gépek nem csapkodják szárnyukat, mint a madarak, mégis sokat tanultak a mérnökök a madaraktól. Ugyanígy van ez ebben a tudományban is. A beszédakusztikával foglalkozó tudósok eredményeit igen sok területen használjuk, még akkor is, ha nem akarjuk utánozni az emberi felismerést. Ilyen akusztikus megfontolásokon alapulnak a jelfeldolgozás ismertetett lépései, a zaj kompenzáció korbábban ismertetett megoldásai is. A következőkben két további területről esik szó. Az egyik terület a beszélő függetlenség, azaz olyan paraméterek megállapítása, ami független a beszélőtől. A következő pont pedig eddig további olyan hosszú idejű jellemzőket mutat be, melyek a beszéd megértése szempontjából fontosak lehetnek.
1.2.3.1 Beszélő függetlenség Bizonyos alkalmazásoknál a beszélő függőség a használatból adódik, pl. egy mobil telefon tárcsázó rendszere. Ilyenkor kevés (<100) szót kell a rendszernek tudni, ami különösebb fáradtság nélkül betanítható. Nagyobb szótár, vagy komplexebb feladatok esetén azonban már nem várható el a felhasználótól, hogy a teljes tanító adathalmazt bemondja. Ilyenkor tipikus megoldás a beszélő adaptáció. A legkényelmesebb megoldás azonban a beszélő független rendszer, ez az ami széles körben használható. A referencia minták, vagy modellek ilyen esetekben sem beszélő függetlenek, bár általában sok beszélő alapján becslik őket. Ilyenkor 31-26 oldal
alapvető igény a sok és változatos hangú bemondótól gyűjtött hanganyag, mely előreláthatólag lefedi a felhasználók jellegzetességeit. Sok beszélőtől vett minta alapján eldönthető az egyes jellemzőkről is, hogy mennyire beszélőfüggők. Mint már említettük, nincs tökéletes megoldás, de a sokféle lényegkiemelő közül ez egy fontos választási szempont. Az LPC, vagy LPC-kepsztrum paramétereket pl. személyfüggőségük miatt egyre kevésbé használják az ASR területén, ezzel szemben a beszélőfelismerésben egyre nagyobb szerepet kapnak.
1.2.3.2 Beszéd egyéb jellemzőinek alkalmazása A lényegkiemelés szempontjából eddig két területet említettünk: mit mondunk, illetve ki mondja. A hogyan, azaz a prozódia is fontos lehet sok esetben. A beszéd dallama, hangsúlya, sebessége. A prozódiai információ elsősorban a szintézis területén fontos, a természetes hangzás érdekében, azonban egyre nagyobb teret kap a dialógus rendszerekben is, ahol jellemzően spontán módon válaszolunk a gép kérdéseire. Például arra az egyszerű kérdésre, hogy “Hová szeretne utazni?”, amit mondjuk egy vasúti információs rendszer tesz fel, rengeteg féle módon lehet válaszolni - egyetlen szóval, vagy akár egy komplett mondattal. Ilyenkor a célállomás a fontos információ, és feltételezzük, hogy ezt hangsúlyosan is mondja a felhasználó és így nem a teljes szövegben, hanem annak rövidebb szakaszain kell keresnünk. Egy másik példa a dühös felhasználó, aki nem azért beszél hangosan, mert zaj van, hanem mert pl. a gép már harmadszor kérdezi ugyanazt, vagy egyszerűen csak ideges. Ilyenkor nem célszerű visszakiabálni, hanem a sok lehetőség közül a legkedvesebbet és egyben a legcélravezetőbbet kell kiválasztani a következő kérdésnél. Parancsmódú rendszereknél sem mindegy, hogy a mondat kijelentő, vagy kérdő módban hangzik el. Bár ilyenkor általában nincs viszont kommunikáció, mégis mérlegelni kell az egyes feladatok végrehajtása előtt. Ezen hosszú idejű jellemzők bevezetése újabb problémákat vet fel a tipikusan keret orientált jelfeldolgozás és mintaillesztés területén. Használata azonban nyilvánvalóan szükséges egy dialógus rendszerben.
1.2.4 Nyelv modellezés A nyelv modellezése magában foglalja a szavak felépítését hangok sorozatából, dialógus rendszerek felépítését valamint a spontán beszélt nyelv leírását is. Már az egyszerűbb feladatok, mint a szótárépítés megoldása sem triviális feladat, ha belegondolunk, pl. a magyar nyelv komplex ragozási struktúrájába. Ha bonyolultabb rendszereket akarunk építeni, pl. egy dialógus rendszert, akkor az aktuális elfogadó halmazt szűkíti a beszélgetés állapota, azonban fel kell készülni minden eshetőségre. Ez leginkább tapasztalatot igényel az adott téma területén. Spontán beszéd esetében azonban a nyelv teljes frázis és mondatszintű szerkezetét le kell írni. A nyelvi szabályok többsége ismert, hatékony formalizálása azonban még jelenleg is folyik.
1.2.4.1 Nyelvtan leírása A tágabb értelemben vett nyelvi modellezés két szintre osztható, ezek a szótármodellezés és szó szintű keresés, valamit a szűkebb értelemben vett nyelvmodellezés és mondat illesztés. 1.2.4.1.1 Lexikonépítés A legegyszerűbb lexikonépítési módszer, ha felsoroljuk a szavakat, és párhuzamosan azt, hogy a felismerésnél alkalmazott egységekből (pl. fonémákból) hogyan állíthatók elő, ezek tipikusan kiejtésen alapuló táblázatok. Amennyiben azonban a szóhatárokon lévő koartikulációt is szeretnénk modellezni, ami folyamatos beszéd esetén jelentős, akkor egy
31-27 oldal
kiejtési gráfot kell definiálni, ami megadja, hogy adott hangsorozat miként módosul szóhatáron. Egy további lexikonépítési probléma, mely nem minden nyelvnél jelenik meg, de az olyan erősen ragozó nyelveknél mint a magyar elkerülhetetlen, a ragozási hálózatok építése. Magyar nyelven általános célú szótárat a ragozás miatt képtelenség lenne kezelhető méretben felsorolással előállítani. A korábban említett n-gram nyelvtanok pedig nem elég hatékonyak, mivel rengeteg helytelen alakot is előállítanak. Egy morfológiai alapú szabályrendszer alapján morfémákból (szótövekből, ragokból, jelekből, képzőkből) előállíthatóak lennének a magyar szavak. A rejtett Markov-modell alapú mintaillesztőkhöz egy ilyen hálózat hatékonyan integrálható, és így a szótárméret hatékonyan kezelhető. Egy analógia erre a feladatra, hogy az MsWord-ből ismert helyesírás elemzőnek kell egy szünetek nélkül sok hibával leírt szöveget helyesen leírnia. 1.2.4.1.2 Mondatépítés A mondat szintű illesztés segítségével lehet a szóhipotézisek sorozatából az adott nyelven helyes mondatot kiválasztani. Kisebb feladatoknál az elfogadó halmazt véges automatákkal lehet megadni, azonban tipikusan itt is n-gram megoldásokat alkalmaznak amiket nagy tanító minta alapján becsülnek. Az n-gram modellek használata javítja a felismerést, hisz csökkenti a keresési teret, azonban hatékonyabb megoldás lenne itt is a szabály alapú megoldás. Ez a nyelvészettel közös terület jelenleg kutatási fázisban van. A probléma itt is egy ismert feladat inverze: a hagyományos mondatelemzés (tagmondatok, frázisok, igei - főnévi szerkezetek) inverzét kell itt végrehajtani. A természetes nyelvi szerkezetek formális leírása tehát még a jövő feladata.
1.2.4.2 Előismeretek leírása A beszédfelismerő rendszerek sok esetben - elegendő ismeret hiányában – a felismerendő beszéd szavait egymástól függetlennek tekintik. Ha meggondoljuk az ember sokszor tudja mi lesz a beszélgetőtárs következő (néhány) szava. Ennek modellezése igen bonyolult feladat, a teljes nyelvi struktúrát magában foglalná. Azonban bizonyos tématerületekre való szűkítés már reális feladat. Az elhangzottak alapján a felismerő rendszer eldöntheti, hogy a szótár, vagy a nyelvi modell mely részét használják a beszélők és ez alapján folytatja a működést. Ez abban az esetben, ha más területre tévednek szuboptimális, általában viszont mind a sebességen, mind felismerési eredményeken javít. Ugyanezen az alapon lehet többnyelvű rendszerekben a nyelv felismerése után az adott nyelvre korlátozódni, mind az akusztikus modellek, mind a szótár szintjén. Hasonló előismeret a korábban részletesebben tárgyalt környezeti zaj is, aminek ismerete nélkül a hatékony zaj kompenzáció illetve adaptáció elképzelhetetlen. Az emberi működést leutánozva fontos feladat a beszédfelismerő rendszer számára a tématerület minél szorosabb behatárolása, hiszen ez magával vonja a hipotézisek számának csökkenését. A diszkóban beszélgető emberek tudatosan egyszerűen és egyértelműen beszélnek, mert így remélik a megértésüket. Míg a vevő oldalon a várható téma ismerete rengeteget segít a felismerésben. A várható témát a közlést megelőző rövid és hosszú távú események egyértelműen meghatározzák. A tématerületek detektálása, majd az aktív területre jellemző adatok aktivizálása tehát nagyban hozzájárulhatna a beszédfelismerés alkalmazhatóságának fejlődéséhez. A terület szervesen csatlakozik a beszélő mondataiban lekódolt információ kinyerésének technikáihoz. A felismert mondatokban rejlő információ tárolása nyújthatja azt az információt, ami a szövegkörnyezet optimális beállításához szükséges.
31-28 oldal
2 Függelék 2.1
Rövidítések
Rövidítés
ANN
Leírás
Artificial Neural Networks
API ASR CELP COBRA DCOM
Application Programming Interface Automatic Speech Recognition Code Excited Linear Prediction Common Object Requester Broker Architecture Distributed Component Object Model
DTW
Dynamic Time Warping
FFT HMM HTML IC JAVA API L&H LM LPC ML MLP PC PCM SAPI SDK SNR SZJA TDNN URL VUI XML
2.2
Fast Fourie Tranformation Hidden Markov Model Hypertext Markup Language Integrated Circuit JAVA Application Programming Interface Lernout&Hauspie Language Model Linear Prediction Code Maximum Likelihood Multi Layer Perceptron Personal Computer Pulse Code Modulation Speech Application Programming Interface Software Development Kit Signal Noise Ratio Személyi jövedelemadó Time Delay Neural Network Uniform Resource Locator (Internet cím) Voice User Interface Extended Markup Language
Összefoglaló táblázatok
2.2.1 Megvalósított információs rendszerek Gyártó Nortel Nuance Communication AT&T
Termék Stock Talk Voice Broker
SpeechWorks és Dialogic
Universal Card Service One Number Follow Me
Dialogic
Telefon Server API
Philips
SpeechMania
IBM
ViaVoice Directory Dialer
Unisys Phonetic Systems
Talk to the Wizard Customer Care Centre Branch Office
Megjegyzés Tözsdei információs rendszer Tözsdei információs rendszer. 13000 részvényről nyújt információt. Telefon szolgáltató információs rendszere. Az automatizálás 6 hónap alatt térült meg. Telefonos szolgáltatás automatikus adminisztrálása. A Dialogic beszédfelismerő és beszédértő keretrendszerében megvalósítva. Telefonos rendszerekben alkalmazható dialógus keretrendszer. A Philips dialógus technológiájával a Lufthansa repülőtársaság számára készített repülőtéri információs rendszer. Tetszőleges telefonközpontba integrálható szoftver, ami a hívandó nevének kimondásával kapcsolja a melléket. Wizard jellegű dialógus fejlesztő eszköz. Tetszőleges vállalat telefonos szolgáltatásának automatizálását elvégző keretrendszer. Tetszőleges vállalat telefonos szolgáltatásának automatizálását elvégző skálázható keretrendszer. 31-29 oldal
Unisys
Natural Language Speech Assistant
World Brench
Dialógus rendszerek fejlesztésének teljes életciklusát lefedő fejlesztői környezet. Dialógus fejlesztő környezet.
2.2.2 Megvalósított internetes beszédfelismerő rendszerek Gyártó Texas Instruments Philips L&H
Termék Speech Aware Multimedia FreeSpeech Browser Conversa Audio Café
Nuance
SpeechObjects
IBM
Chat-room with ViaVoice
Omintel és Philips SpeechWorks
SpeechPortal
Megjegyzés Internetes multimédia szoftvereszközök. Internetes böngészőkhöz hanginterfész alkalmazás. Internetes böngészőkhöz hanginterfész alkalmazás. Weboldalak beszéd és zene integrálását támogató Java Applet. Weboldalak dialógus támogatásához szoftver komponensek. (Támogatják az összetett mondatokat, belebeszélést stb.) Internetes chat oldalakhoz hanginterfész. 150 alkalmazásból álló telefonközpontos és internetes dialógus alkalmazás. Internetes oldalakhoz beszédinterfész.
2.2.3 Megvalósított folyamatos beszédfelismerő rendszerek Gyártó Dragon Systems
Termék Delux Naturally Speaking Naturally Speaking for teenagers AudioMining
L&H (Kurzweil)
Naturally Speaking Medical Suite VoiceXpress VoiceXpress for Lawyers Voice Xpress Personal Finance
MindMaker és L&H
Clinical Reporter & Emergency Medicine Parrot
IBM
ViaVoice
Philips
MedSpeak/ Radiology Speech Magic
Megjegyzés Folyamatos beszédfelismerő szoftvercsomag. Tulajdonságok: 10-30 perces tréning; integrált parancsmód és betűzés; playback, dinamikus ConText, erős PC. Teljes csomag ára: $400 Folyamatos beszédfelismerő szoftver. Andrea Electronics zajszűrő mikrofonjával árulják mindössze $60-ért. Audio és videó anyagokat felindexelve támogatja a keresést. Folyamatos beszédfelismerő szoftver orvosi alkalmazásra specializálva. Folyamatos beszédfelismerő szoftver integrált parancsmóddal és betűzéssel. Ügyvédek munkáját támogató folyamatos beszédfelismerő szoftvercsomag. A pénzügyi szoftverek interfészét hanggal kiegészítő folyamatos és parancsmódú beszédfelismerő szoftver. Ára $30. Orvosok papírmunkáját támogató folyamatos beszédfelismerő rendszer. A számítógép képernyőjén megjelenő papagáj asszisztensi feladatokat lát el: e-mail felolvasás, magas szintű parancsok és vicc mesélés. Folyamatos beszédfelismerő szoftver. Tulajdonságai: kezdeti tréning, integrált parancsmód és betűzés, magas szintű javítási támogatás, külső recorder eszközök támogatása. Röntgen orvosok munkáját támogató folyamatos orvosi beszédfelismerő szoftvercsomag. Off-line folyamatos beszédfelismerő rendszer kliensszerver architektúrával felépítve. 31-30 oldal
Speech Pro
Folyamatos beszédfelismerő szoftver. Tulajdonságok: kezdeti tréning, integrált parancsmód és betűzés, playback, szövegkörnyezet adaptálás. Ára: $100.
2.2.4 Megvalósított beszédfelismerő hardver rendszerek Gyártó Sensory Inc. OKI Semiconductors ART
Voice Signal Speech Recognition System Mororola és Nuance
Termék Voice Direct Voice password Voice Recognition Processor Handwriting and Voice Recognition Software for HandHeld Devices VSTalk
Megjegyzés Szeparált szófelismerő integrált áramkör. Felhasználó-felismerő és ellenőrző integrált áramkör. Beszédfelismerő processzor.
Myosphere
Parancsmódú eszköz, ami rádiós csatornán tartja a kapcsolatot a központi számítógépes hálózattal. (Belebeszélés és elaltatás támogatással.) Hordozható eszközökhöz beszédfelismerő rendszer fejlesztői környezet. Digitális diktafon az Intel flash-memória kártyájával. A rögzített hanganyagot az IBM ViaVoice felismerő rendszere ismeri fel. Digitális diktafon flash-memória kártyával. Támogatja a hangrögzítést, visszajátszást, szerkesztést, hanganyag e-mailben küldését és PC-s felhasználást. Hangvezérelt hordozható menedzser-kalkulátor. Hordozható hangvezérelt eszköz rádiós kapcsolattal a központi adatbázishoz ipari felhasználásra. Zajszűrő mikrofon rendszerek.
Olympos, IBM és Intel
Kit for Mobile Development D1000 Digital Voice Recorder
Sony
Voice File Recorder
Philips SyVox
NinoVoice P2V
Andrea Electronics
Microphones
Hordozható általános célú eszközökhöz beszédfelismerő szoftver. 4k ROM 1k RAM igényű beszédfelismerő szoftver hordozható eszközökhöz.
31-31 oldal