1. A Viterbi decoder, comprising: a computer executing: an observation vector sequence generator for generating an observation vector sequence by converting an input speech to a sequence of observation vectors; a local optimal state calculator for obtaining, among states constituting a hidden Markov model, a partial state sequence having a maximum similarity up to a current observation vector as an optimal state; an observation probability calculator for obtaining, as a current observation probability, a probability for observing the current observation vector in the optimal state; a buffer for storing therein a specific number of previous observation probabilities; a non-linear filter for calculating a filtered probability by using the previous observation probabilities stored in the buffer and the current observation probability; and a maximum likelihood calculator for calculating a partial maximum likelihood by using the filtered probability, wherein the non-linear filter uses at least one of following equations to calculate the filtered probability: f ⁡ ( t , K ) = ⁢ max K ⁢ [ [ b j ⁡ ( o t - K ) ] γ ⁡ ( K ) ] , f ⁡ ( t , K ) = ⁢ mean K ⁡ [ [ b j ⁡ ( o t - K ) ] γ ⁡ ( K ) ] , ⁢ and f ⁡ ( t , K ) = ⁢ median K ⁡ [ [ b j ⁡ ( o t - K ) ] γ ⁡ ( K ) ] , wherein ƒ(t,K) is the filtered probability at current time frame t,K is previous time length, b j (o t-K ) is an observation probability in a state j to observe an observation vector o t-K at a time frame t-K, and γ(K) is a time-varing correlation coefficient function between two time frames, and wherein the function γ(K) equals to c K , where c K is a correlation coefficient between the two time frames and K is a difference in frame numbers of the two frames.