Speech Recognizer Mini-Course
From SpeechWiki
(Difference between revisions)
m |
|||
(21 intermediate revisions not shown) | |||
Line 53: | Line 53: | ||
ecsystem("mv -v $modelDir/tmp/* $out"); | ecsystem("mv -v $modelDir/tmp/* $out"); | ||
}</pre> | }</pre> | ||
- | [[ | + | |
- | + | = See also = | |
+ | *[[Htk-group blog]] | ||
+ | *[[Train.sh]] |
Latest revision as of 22:09, 20 June 2008
Mini Course Video
Part of the HTK Lecture video is currently available.
As of 4:21 p.m. 01/13/2006, part 1 of lecture 1 can be obtained at
http://mickey.ifp.uiuc.edu/speech/HTK/
I will post the rest of the lecture videos during this weekend.
Bowon
Dynamic Stop Herest
Here's a perl routine that runs HERest until likelihood improvement falls below some threshold:
example:
herest("HERest -T 1 -A -D -S $modelDir/timitPLP.scp -I $modelDir/timitCMUPLP.mlf -t 250.0 150.0 1000.0 $modelDir/CMUphonebet.txt","$modelDir/timitMonophonesHRest.hdf", "$modelDir/timitMonophonesHERest1.hdf", .01);
code:
#assumes $modelDir/tmp dir exists, assumes that $in and $out are files #run until improvment is less than eps #Arguments: #1 The HERest command. It must not have the -H and the -M flags - those are added by herest(). #2 The name of the 'In' MMF-file -what normally goes after the -H flag #3 The name of the final 'Out' MMF-file -what normally goes after the -M flag #4 The improvement likelihood (not log-likelihood) threshold sub herest{ (my $cmd, my $in, my $out, my $eps) = @_; (my $lastAvgProb, my $nextAvgProb, my $itCounter) = (-1,-1,0); #run it once my @cmdList = split(/ /, $cmd); my $hmmList = pop @cmdList; push @cmdList, ("-H", $in, "-M ", "$modelDir/tmp", $hmmList, " | grep '^[^ ].*' | tee $modelDir/herest.log"); ecsystem(join(' ',@cmdList)); my $getProbCmd = "cat $modelDir/herest.log | grep Reestimation | " . 'sed \'s/.*frame = \(.*\)$/\1/\''; $nextAvgProb = `$getProbCmd`; $itCounter++; #run it a few more times $cmdList[-5]="$modelDir/tmp/*"; my $iterCmd = join(' ',@cmdList); while ($nextAvgProb-$lastAvgProb > $eps){ $lastAvgProb = $nextAvgProb; ecsystem($iterCmd); $nextAvgProb = `$getProbCmd`; $itCounter++; } print " herest iterated $itCounter times, eps = ".($nextAvgProb-$lastAvgProb)."\n"; ecsystem("mv -v $modelDir/tmp/* $out"); }