comparison SparseHMM.cpp @ 131:b877df85ad9e fixedlag

mono pitch works now with the refactored HMM implementation
author Matthias Mauch <mail@matthiasmauch.net>
date Fri, 03 Jul 2015 14:09:05 +0100
parents 080fe18f5ebf
children 926c292fa3ff
comparison
equal deleted inserted replaced
130:080fe18f5ebf 131:b877df85ad9e
50 { 50 {
51 size_t nFrame = obsProb.size(); 51 size_t nFrame = obsProb.size();
52 if (nFrame < 1) { 52 if (nFrame < 1) {
53 return vector<int>(); 53 return vector<int>();
54 } 54 }
55 55
56
57 initialise(obsProb[0]); 56 initialise(obsProb[0]);
58 57
59 // rest of forward step 58 // rest of forward step
60 for (size_t iFrame = 1; iFrame < nFrame; ++iFrame) 59 for (size_t iFrame = 1; iFrame < nFrame; ++iFrame)
61 { 60 {
64 63
65 vector<int> path = finalise(); 64 vector<int> path = finalise();
66 return(path); 65 return(path);
67 } 66 }
68 67
68 void
69 SparseHMM::reset()
70 {
71 m_scale.clear();
72 m_psi.clear();
73 for (size_t i = 0; i < m_delta.size(); ++i) m_delta[i] = 0;
74 for (size_t i = 0; i < m_oldDelta.size(); ++i) m_oldDelta[i] = 0;
75 }
69 76
70 void 77 void
71 SparseHMM::initialise(vector<double> firstObs) 78 SparseHMM::initialise(vector<double> firstObs)
72 { 79 {
80 reset();
81
73 double deltasum = 0; 82 double deltasum = 0;
74 83
75 // initialise first frame 84 // initialise first frame
76 for (size_t iState = 0; iState < m_nState; ++iState) 85 for (size_t iState = 0; iState < m_nState; ++iState)
77 { 86 {