htk的第三章例题的源代码,按照htkbook做就可以了,很快就会熟悉 htk的

源代码在线查看: htestrm

软件大小: 2320 K
上传用户: ashdfg
关键词: htk htkbook 源代码
下载地址: 免注册下载 普通下载 VIP

相关代码

				#!/bin/csh								#---------------------------------------------------------------#				# HTK Unix Shell Script: htestrm                                #				#                                                               #				# Usage:  htestrm env type set hmmdir                           #				#                                                               #				# htestrm uses the HTK environment settings to recognise the    #				# specified set of test files and then compares them with the   #				# reference labels using HResults.                              #				# type  is used to select a type of test of conditions from the #				# env file. set selects the test data independently of type.    #				# The test results are stored in a directory called             #				# test_type_set.k inside the source hmm directory hmmdir        #				# where k is the  repetition idx.                               #				# A copy of the env file containing the test parameters is left #				#in the test directory (typically changed for different indexes)#         				# The shell variable TESTSET is set equal to set & is used to   #				# specify the test data in the HTE file.                        #				# Others variables in the HTE file are indexed to reflect       #				# values with different type the different type in an order     #				# given by the HTE variable TYPELIST                            #				#                                                               #				#   TYPELIST - name of possible type values                     #				#   SETLIST - list of possible TESTSET & set values             #				#   TESTDATALIST- list of test files (TESTSET)                  #				#   TESTMLF     - MLF for reference labs (if used)  (TESTSET)   #				#   TESTLABDIR  - dir holding reference lab files               #				#   HMMLIST  - list of models to use in testing                 #				#   HVTRACE     - trace level                                   #				#   HVPRUNE - pruning threshold (indexed)                       #				#   HVWEPRUNE - word-end pruning threshold (indexed)            #				#   HVMAXACTIVE - max number of phone insts active (indexed)    #				#   HVGSCALE    - grammar scale factor (indexed)                #				#   HVIMPROB - inter-model log probability addition(indexed)    #				#   HVNET   - network definition file (indexed)                 #				#   WORDLIST- list of vocabulary items                          #				#   HRNIST  - run HResults in NIST mode                         #				#   NISTSCORE - run the NIST scoring software                   #				#   NICE    - nice level to run at                              #				#---------------------------------------------------------------#				#				# Copyright (c) Phil Woodland & Steve Young, 1992, 1993				# Last Updated 19/10/93				#								# Check Number of Args 				if (( $#argv != 4) && ( $#argv != 5)) then				   echo "Usage: htestrm env tsttype tstset hmmdir [inxformdir]"				   exit 1				endif								# Read the environment file				if ( ! -f $1 ) then				   echo "Cannot find environment file $1"				   exit 1				endif								set TYPE=$2								set SET=$3				set TESTSET=$SET								# Load in the environment file				source $1								# Check the type				if (! $?TYPELIST) then				   echo "htestrm: TYPELIST  not set"				   exit				endif				unset INDEX				set count=0				foreach i ($TYPELIST)				   @ count++				   if ($i == $TYPE) then				      set INDEX=$count				   endif				end				if (! $?INDEX) then				   echo "htestrm: $TYPE not in TYPELIST"   				   exit				endif								# Check the test set				unset setfound				if (! $?SETLIST) then				   echo "htestrm: SETLIST  not set"				   exit				endif				foreach i ($SETLIST)				   if ($i == $SET) then				      set setfound				   endif				end								if ( (! $?setfound) && ( $SET != dms0_tst ) ) then					echo "htestrm: $SET not in SETLIST\n";				        exit				endif								# Check hmmsource Exists				set HMMSOURCE=$4				if ( ! -d $HMMSOURCE ) then				   echo "htestrm: error - hmm directory $HMMSOURCE does not exist"				   exit 1				endif								# Set test dir				unset TESTDIRSET				set TESTEXTN=1				while (! $?TESTDIRSET)				   if ($?HVALIGN) then				      set TESTDIR=$HMMSOURCE/align_"$TYPE"_"$SET"."$TESTEXTN"				   else 				      set TESTDIR=$HMMSOURCE/test_"$TYPE"_"$SET"."$TESTEXTN"				   endif				   if ( ! -d $TESTDIR ) then				      mkdir $TESTDIR				      set TESTDIRSET				   else				      @ TESTEXTN++				   endif				end								# Define the file to log all output/errors to				set LOG=$TESTDIR/LOG								# Copy the test HTE file as a record				cp $1 $TESTDIR/HTE								# Check the equates file and load equates				if ($?HREQSETS) then				   set EQFILE="$HREQSETS[$INDEX]"				   if ( ! -f $EQFILE ) then				      echo "Cannot find HResults equates file $EQFILE"				      exit 1				   endif				   set EQSETS=`cat $EQFILE`				endif								# Set HVite Options				set OPT = ( -H $HMMSOURCE/MODELS )								if ( $#argv == 5 ) then				   set INXFDIR=$5				   set OPT = ( $OPT -k -J $INXFDIR )				   if ($?HVINXFORMEXT) then				      set OPT = ($OPT $HVINXFORMEXT)				   endif				endif 								if ( $?HVFORCEXFORMDIR ) then				   while ( $#HVFORCEXFORMDIR > 0 )				      set OPT = ($OPT -J $HVFORCEXFORMDIR[1])				      shift HVFORCEXFORMDIR				   end				endif				if ($?HVFORCEMACRO) then				   while ( $#HVFORCEMACRO > 0 )				      set OPT = ($OPT -H $HVFORCEMACRO[1])				      shift HVFORCEMACRO				   end				endif								if ($?HVINCADAPT) then				   set OPT = ($OPT -j $HVINCADAPT -K $TESTDIR)				   if ($?HVOUTXFORMEXT) then				      set OPT = ($OPT $HVOUTXFORMEXT)				   endif   				else if ($?HVADAPT) then				   set OPT = ($OPT -K $TESTDIR)				   if ($?HVOUTXFORMEXT) then				      set OPT = ($OPT $HVOUTXFORMEXT)				   endif				endif								set HVOPFILE=$TESTDIR/"$TYPE"_"$SET".mlf								set OPT = ( $OPT -i $HVOPFILE )				set OPT = ( $OPT -X rec )								if ($?HVTRACE) then				   set OPT = ($OPT -T $HVTRACE)				endif								# add the indexed options								if ($?HVPRUNE) then				   set OPT = ($OPT -t $HVPRUNE[$INDEX])				endif				if ($?HVWEPRUNE) then				   set OPT = ($OPT -v $HVWEPRUNE[$INDEX])				endif				if ($?HVMAXACTIVE) then				   set OPT = ($OPT -u $HVMAXACTIVE[$INDEX])				endif				if ($?HVGSCALE) then				   set OPT = ($OPT -s $HVGSCALE[$INDEX])				endif				if ($?HVIMPROB) then				   set OPT = ($OPT -p $HVIMPROB[$INDEX])				endif				if ($?HVXFORMCONFIG) then				   set OPT = ($OPT -C $HVXFORMCONFIG )				endif				if ($?HVLABFORMAT) then				   set OPT = ($OPT -o $HVLABFORMAT )				endif				if ($?HVALIGN) then				   set OPT = ($OPT -m -o TPMFW -b \!SENT_START -a -y lab)				   if ($?ALIGNMLF) then				        set OPT = ( $OPT -I $ALIGNMLF  )				   else 				       echo "Must specify an alignment MLF"				       exit 1				   endif				else 				   set OPT = ($OPT -w $HVNET[$INDEX] )				endif								set VOC=$HVVOC[$INDEX]								# set processor nice levels 				  set PR=(nice +$NICE)								# -------------- Run HVite -----------------								echo "HVite started at `date`" > $LOG				if ($?HVSPKRMASK) then				   $PR HVite -h "$HVSPKRMASK" -A -D -V -C $HVCONFIG $OPT -S $TESTDATALIST $VOC $HMMLIST >>& $LOG				else				   $PR HVite -A -D -V -C $HVCONFIG $OPT -S $TESTDATALIST $VOC $HMMLIST >>& $LOG				endif				if ( $status != 0 ) then				   echo "HVite terminated abnormally at `date`" >> $LOG				   echo "" >> $LOG 				   exit $status				else				   echo "HVite finished at `date`" >> $LOG				   echo "" >> $LOG				endif								# ------------------------------------------								# Now for results analysis				#								# Set the equates if any				set EQ=""				if ($?EQSETS) then				   unset I				   foreach x ( $EQSETS )				      if (! $?I) then				         set EQ="$EQ -e "				         set I				      else				         unset I				      endif				      set EQ="$EQ $x"				   end				endif								set OPT=""								if ($?TESTMLF) then				   set OPT=($OPT -I $TESTMLF)				endif								if ($?TESTLABDIR) then				   set OPT=($OPT -L $TESTLABDIR)				endif								if ($?HRNIST) then				  set OPT = ($OPT -n)				endif								echo "Running HResults at `date`"  >> $LOG				$PR HResults -A -z ':::' $OPT $EQ $WORDLIST $HVOPFILE >>& $LOG				if ( $status != 0 ) then				   echo "HResults terminated abnormally at `date`" >> $LOG				else				   echo "HResults finished at `date`" >> $LOG				endif				echo "" >> $LOG								# ------------------------------------------								# Now for NIST scoring if required				#								if ($?NISTSCORE) then				   if ($TYPE != wp && $TYPE != ng) then				      echo "Cant Run NIST Scoring with type = $TYPE" >> $LOG				      exit 1				   endif				   echo "Running HLab2Hyp at `date`" >> $LOG				   set HYP="$TYPE"_"$SET"				   $PR HLab2Hyp $TESTDIR/"$HYP".hyp $HVOPFILE >>& $LOG				   if ( $status != 0 ) then				      echo "HLab2Hyp terminated abnormally at `date`" >> $LOG				      echo "" >> $LOG 				      exit $status				   else				      echo "HLab2Hyp finished at `date`" >> $LOG				      echo "" >> $LOG				   endif				   cd $TESTDIR				   if ( $TYPE == wp ) then 				      wgscore "$HYP".hyp >> LOG				   else				      ngscore "$HYP".hyp >> LOG				   endif				   cat "$HYP".hyp.scr/"$HYP".sys >> LOG				   echo "" >> LOG				   cd ../..				endif								echo "htestrm finished  at `date`" >> $LOG								#---------------------------------------------------------------#				#                   End of Script: htestrm                      #				#---------------------------------------------------------------#							

相关资源