def test_load(sample_list, sample_annotation, sample_scores): coParser = CoParser(uris=sample_list, annotation=sample_annotation, scores=sample_scores) for uri, annotation, scores in coParser.iter('uris', 'annotation', 'scores'): break assert uri == 'uri1' assert list(annotation.itertracks(label=True)) == [ (Segment(1, 3.5), 0, 'alice'), (Segment(3, 7.5), 1, 'barbara'), (Segment(6, 9), 2, 'chris') ] assert list(scores.itervalues()) == [(Segment(1, 3.5), 0, 'alice', 0.8), (Segment(1, 3.5), 1, 'barbara', 0.1), (Segment(1, 3.5), 2, 'chris', 0.1), (Segment(3, 7.5), 3, 'barbara', 0.5), (Segment(3, 7.5), 4, 'chris', 0.4), (Segment(6, 9), 5, 'alice', 0.1), (Segment(6, 9), 6, 'barbara', 0.2), (Segment(6, 9), 7, 'chris', 0.7)]
def do_train( uris_lst, references_mdtm, features_pkl, model_pkl, n_components=16, covariance_type='diag', min_duration=0.250, ): hmm = ViterbiHMM(n_components=n_components, covariance_type=covariance_type, random_state=None, thresh=1e-2, min_covar=1e-3, n_iter=10, disturb=0.05, sampling=1000, min_duration=min_duration) # iterate over all uris in a synchronous manner coParser = CoParser(uris=uris_lst, reference=references_mdtm, features=features_pkl) references, features = coParser.generators('reference', 'features') hmm.fit(references, features) with open(model_pkl, 'wb') as f: pickle.dump(hmm, f)