viterbi() and decode() are now used to get most probable observation