text=
A rejtett Markov-modellek esetén egy irányított gráf írja le az egyes felismerendő szavakat. Ezen gráf csomópontjaiban találhatók az akusztikus modellek, ahogy azt a megelőző ábrán láthattuk. A felismerendő vektorsorozatot ezekhez a modellekhez kell illeszteni. A Viterbi-algoritmus végzi el a keretek állapotokkal történő összerendelését úgy, hogy az együttes feltételes valószínűség maximális legyen (maximum likelihood döntést hoz). A Viterbi-algoritmus a DTW-hez asonlóan a dinamikus programozásra épül. Egy T x N-es rácsban kell a (0,0) pontból a (T,N) pontba eljutni. A lehetséges átmeneteket az ábrán a függőleges tengely mentén feltüntetett állapotgráf definiálja. Minden ütemben az időtengelyen egyet jobbra lépünk, és megvizsgáljuk, hogy az adott pontokba hogyan lehet eljutni a legvalószínűbb úton. Ehhez nyilván kell tartani az előző időponthoz tartozó valószínűségeket, és ezekből kell tovább lépni egy indukciós algoritmussal. Minden állapotban megvizsgáljuk, hogy melyik az az előző ütembeli állapot, amelynek a tárolt "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. Ezt az értéket meg kell szorozni az aktuális megfigyelés feltételes valószínűségével, azaz azzal a valószínűséggel, mely megadja, hogy az adott jellemző vektor mennyire valószínű az adott állapotban. Így megkapjuk az aktuális ütemben minden állapothoz a legjobb út valószínűségét. Az utolsó ütemben a végállapothoz tartozó valószínűség jelenti az adott bemondásnak az állapotgéphez illeszkedő feltételes valószínűségét. Amennyiben minden egyes ütemben eltároljuk az állapotokhoz, hogy melyik állapotból jutottunk oda, akkor az utolsó állapotból visszafejthető, hogy milyen úton, milyen állapotokon keresztül jutottunk el az elsőtől az utolsóig. Ez egyben a modellek és a jellemző vektorok közötti időillesztést is megadja.