message=
Nagyobb, vagy módosítható szótár, illetve több beszélő esetén rejtett Markov-modelleket használunk. A szótár a felismerendő szavakat tartalmazza. Minden szóhoz meg kell adni, hogy milyen beszédhangok sorozataként áll elő. Ezekhez a beszédhangokhoz akusztikus modellt kell betanítani. A felismerő (Viterbi) algoritmus kiválasztja, hogy az elhangzott szó milyen állapotsorozathoz, és ezzel milyen szóhoz tartozik a legnagyobb valószínűséggel.
Meg kell adni minden felismerendő szónak az összes lehetséges kiejtéséhez tartozó hangsorozatot, azaz milyen beszédhangok sorozataként realizálódhat az adott szó. Itt nemcsak a helyes kiejtést, hanem a spontán beszédben előforduló esetleges csonkított formákat is célszerű felsorolni, hiszen ha valaki a tulajdonképpen szót tonképp-nek ejti, azt is fel kell tudni dolgozni. A felismerés alapja a Viterbi-algoritmus. Ez minden a szótárban előforduló szóhoz tartozó állapotgráfot összevet a felismerendő vektorsorozattal, és meghatározza a bemondás állapotgráfokhoz tartozó feltételes valószínűségét. A felismerés során ki kell választani a legvalószínűbb jelöltet.
A Viterbi-algoritmus során lehetőség van a bejárt állapotsorozat meghatározására is. Ez kihasználható a modell bővítésére. Definiálhatunk egy kezdő és egy végállapotot. Ekkor a kezdő állapotból minden szó első állapotához vezet egy él, és minden szó utolsó állapotából egy él vezet a végállapotba. A Viterbi-algoritmus ekkor csupán a végállapotra határoz meg egy optimális út valószínűséget, de a legjobb utat is megadja, ami meghatározza a felismerés eredményét. Ennek a megközelítésnek folytatásaként fogunk eljutni a kapcsolt szavas, illetve folyamatos beszédfelismeréshez.
Miért is kell külön szótárat bevezetni, és a szavakat többé-kevésbé furfangos gráfokba illeszteni? Miért nem elegendő az elméleti modell, mely a hangok egymásutánját képes felismerni? A szótáralkotás elsődleges célja, hogy helyes irányba terelje a felismerő algoritmust. Ennek hiányában a lehetséges variációk száma oly nagy lenne, hogy elvesznének a helyes sorozatok közöttük. Ha az adott szó kimondása például 500 ms ideig tart, akkor a jelfeldolgozó egység 50 jellemző vektort fog hozzá rendelni. Az elméleti modell alkalmazása esetén 40 beszédhanggal számolva több mint százmilliárd lehetséges hangsorozatból kellene kiválasztani a legjobban illeszkedőt. Ezzel szemben szótár alkalmazása esetén csak a szótárban szereplő szavakkal kell számolni. A gyakorlati szótárak tíz-százezer szót tartalmaznak.
Amennyiben tökéletes akusztikus modellekkel rendelkeznénk, akkor a felismerők szótárak nélkül is működhetnének, egyszerűen a beszédhangok sorozatát várnánk eredményül a rendszertől. Az akusztikus modellek azonban ma még nagyon messze állnak a tökéletestől. A magas hibaarány miatt az elméleti modellt alkalmazva felismerési kísérletek eredményeként többnyire értelmezhetetlen hangsorozatokat kapunk. A nyelvi modellezés első lépése szavak ábrázolása. A szavakat szótárba kell rendezni, ahol minden szóhoz hozzá van rendelve a lehetséges kiejtése, illetve kiejtései: szó = beszédhangok sorozata. A szótárak egyszerűen bővíthetőek módosíthatóak mindaddig, míg a beszédhangokhoz rendelkezésre állnak az akusztikus modellek. Magyar felismerő szótárába tehát nem illeszthetünk idegen nyelvű szavakat, mivel lesznek olyan hangok, melyek a magyar nyelvben nem szerepelnek.
A szótár mérete nagy rendszerek esetén több százezres is lehet. Figyelembe véve azonban a magyar nyelv ragozási sajátosságait, ez hamar szűk keresztmetszetnek tűnik, ezért kapcsolt szavas, illetve folyamatos felismerési feladatok esetén majd további megfontolásokat kell tenni.