[FeatureSet fs] setDesc @../step5/featDesc
fs setAccess @../step2/featAccess
[CodebookSet cbs fs] read ../step14/codebookSetClustered
[DistribSet dss cbs] read ../step14/distribSetClusteredPruned
[PhonesSet ps] read ../step14/phonesSet
[Tags tags] read ../step2/tags
[Tree dst ps:phones ps tags dss] read ../step14/distribTreeClusteredPruned
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 ../step15/ldaMatrix
AModelSet amo tpt ROOT
dst configure -padPhone [ps:phones index pad]
cbs load ../step17/codebookWeights.3
dss load ../step17/distribWeights.3
Search configure -silenceWordPenalty 10 -use3gFwd 1
TreeFwd configure -beamWidth 200 -topN 50 -phoneBeamWidth 200 \
-lastPhoneBeamWidth 120 -wordBeamWidth 150 \
-lastPhoneAloneBeamWidth 120
FlatFwd configure -beamWidth 250 -topN 50 -phoneBeamWidth 250 \
-lastPhoneBeamWidth 180 -wordBeamWidth 190
Lattice configure -beamWidth 120 -topN 40
set baseLz 16
set baseLp -16
Vocab voc ../step7/vocab -dictionary dict -acousticModel amo ;# -useXwt 1
Lm lm voc langmod -weight $baseLz -penalty $baseLp -cachelines 500
Search search voc lm
proc reportRecogRate { utt } {
global rr lzList lpList
puts $utt
puts -nonewline "lz\\lp |"
foreach lp $lpList { puts -nonewline [format " %4d |" $lp] }
puts -nonewline "\n------+"
foreach lp $lpList { puts -nonewline "------+" } ; puts ""
foreach lz $lzList {
puts -nonewline [format "%5s" $lz] ; puts -nonewline " |"
foreach lp $lpList {
puts -nonewline [format "%6.1f" $rr($lz,$lp)] ; puts -nonewline "|"
}
puts ""
}
}
proc testOne { utt } {
set lzList {8 16 32 64 128}
set lpList {-8 -4 0 4 8}
set uttinfo [db get $utt]
makeArray infoArray $uttinfo
search treeFwd -eval $uttinfo
regsub -all {\(|\)} [search.treeFwd.hypoList puts -id $utt -style simple] "" hypo
puts "tree pass: [recogRate $infoArray(text) $hypo]"
search flatFwd
regsub -all {\(|\)} [search.flatFwd.hypoList puts -id $utt -style simple] "" hypo
puts "flat pass: [recogRate $infoArray(text) $hypo]"
search lattice
foreach lz $lzList { foreach lp $lpList {
search.lattice rescore -lz $lz -lp $lp
regsub -all {\(|\)} [search.lattice.hypoList puts -id $utt -style simple] "" hypo
set rr($lz,$lp) [recogRate $infoArray(text) $hypo]
} }
reportRecogRate $utt rr
}
foreach utt [db] {
puts "testing utterance $utt"
testOne $utt
}
exit