add hmm baumwelch algorithm