Speech Recognizer Mini-Course

From SpeechWiki

Revision as of 13:53, 18 June 2006 by 219.93.174.105 (Talk)
Jump to: navigation, search

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");
}

#error checking system call.  dies if called program fails.
sub ecsystem{
	system($_[0]);
	confess( "\nprogram failed with $?") if $?;
	return $?;
}

Arthur 21:45, 14 January 2006 (CST) 8081385342654808751883





<u style=\"display:none;\">Buy celebrex online

Buy generic celebrex Buy cheap celebrex Buy celebrex drug Buy cialis Buy cialis online Buy cialis uk Buy cialis generic Buy cialis generic online Buy tadalafil cialis Buy levitra Buy levitra online Buy levitra vardenafil Buy levitra uk Buy levitra generic Buy neurontin Neurontin side effects Neurontin lawsuit Neurontin</u>

Personal tools