def test_interpolate_hmm(self): acmodel1 = AcModel() acmodel1.load_htk( os.path.join(HERE, "1-hmmdefs") ) acmodel2 = AcModel() acmodel2.load_htk( os.path.join(HERE,"2-hmmdefs") ) ahmm1=acmodel1.get_hmm('a') ahmm2=acmodel2.get_hmm('a') # transitions # (notice that the transition of 'a' in acmodel1 is in a macro.) a1transition = [macro["transition"] for macro in acmodel1.macros if macro.get('transition',None)][0] transitions = [ a1transition['definition'],ahmm2.definition['transition'] ] trs = self.lin.linear_transitions( transitions, [1,0]) compare(trs,a1transition['definition']) self.assertTrue(compare(trs,a1transition['definition'])) acmodel1.fill_hmms() transitions = [ ahmm1.definition['transition'],ahmm2.definition['transition'] ] trs = self.lin.linear_transitions( transitions, [1,0]) self.assertTrue(compare(trs,ahmm1.definition['transition'])) trs = self.lin.linear_transitions( transitions, [0,1]) self.assertTrue(compare(trs,ahmm2.definition['transition'])) # states # (notice that the state 2 of 'a' in acmodel1 is in a macro.) states = [ ahmm1.definition['states'],ahmm2.definition['states'] ] sts = self.lin.linear_states( states, [1,0]) compare(sts,ahmm1.definition['states'],verbose=True) self.assertTrue(compare(sts,ahmm1.definition['states'])) sts = self.lin.linear_states( states, [0,1]) self.assertTrue(compare(sts,ahmm2.definition['states']))
def test_fill(self): acmodel1 = AcModel() acmodel1.load_htk( os.path.join(HERE,"1-hmmdefs") ) ahmm1=acmodel1.get_hmm('a') a1transition = [macro["transition"] for macro in acmodel1.macros if macro.get('transition',None)][0] acmodel1.fill_hmms() self.assertTrue(compare(ahmm1.definition['transition'],a1transition['definition']))