[FeatureSet fs] setDesc @../step5/featDesc fs setAccess @../step2/featAccess [CodebookSet cbs fs] read ../step8/codebookSet [DistribSet dss cbs] read ../step2/distribSet [PhonesSet ps] read ../step2/phonesSet [Tags tags] read ../step2/tags [Tree dst ps:phones ps tags dss] read ../step2/distribTree SenoneSet sns [DistribStream str dss dst] [TmSet tms] read ../step2/transitionModels [TopoSet tps sns tms] read ../step2/topologies [Tree tpt ps:phones ps tags tps] read ../step2/topologyTree [DBase db] open ../step1/db.dat ../step1/db.idx -mode r [Dictionary dict ps:phones tags] read ../step1/convertedDict [FMatrix ldaMatrix] bload ../step5/ldaMatrix AModelSet amo tpt ROOT HMM hmm dict amo Path path cbs load ../step8/codebookWeights dss load ../step8/distribWeights cbs createAccus dss createAccus proc forcedAlignment {utt {method viterbi}} { set uttInfo [db get $utt] makeArray arr $uttInfo hmm make $arr(text) -optWord SIL if { $method != "labels" } { set score [path $method hmm -eval $uttInfo] } else { set score [path bload ../step4/labels/$utt -hmm hmm] fs eval $uttInfo } return score } foreach epoch {1 2 3} { cbs clearAccus dss clearAccus foreach utt [db] { puts "$epoch:$utt [forcedAlignment $utt labels]" sns accu path } sns update cbs save codebookWeights.$epoch dss save distribWeights.$epoch } exit