def apply_hmm(data, clabs, kMVA): kMVA.estim_kbasis(data, clabs) data = kMVA.transform(data, k=2) model = init_hmm(3, 3, 2) data = [list(x) for x in data] dt, T = 1, 2 seq_set = ghmm.SequenceSet(ghmm.Float(), [sum(list(data[i:i+T]), []) for i in range(0, len(data) - T, dt)]) model.baumWelch(seq_set, 10, 0.01) plotGHMMEmiss(model, stInd=0, dimInd=1)
def check_particular_phoneme(phData): syspath = 'recsystem' somePh = phData.keys()[0] print somePh, len(phData[somePh][0]), len(phData[somePh][0][0]) for sample in phData[somePh][0]: p = plt.plot(sample) plt.grid(True) plt.show() hmm = init_hmm(nStates=3, nMix=1, dim=len(phData[somePh][0][0])) seq_set = ghmm.SequenceSet(ghmm.Float(), [sum(phSample, []) for phSample in phData[somePh]]) print 'Let us train it!' hmm.baumWelch(seq_set) # print os.path.join(syspath, 'hmm', somePh) # hmm = hmm_built_from(HmmFromGHMMBuilder, os.path.join(syspath, 'hmm', somePh)) hmmReloaded = HMMClassifier.reassigned_ghmm_object(hmm, 0.5) loglikel = [hmmReloaded.loglikelihood(seq) for seq in seq_set] pl = plt.plot(loglikel) plt.show()