000000 590000 sil 600000 2090000 a 2100000 4500000 silb.lab contains
000000 990000 sil 1000000 3090000 b 3100000 4200000 silThen the above two individual label files could be replaced by a single MLF
#!MLF!# "*/a.lab" 000000 590000 sil 600000 2090000 a 2100000 4500000 sil . "*/b.lab" 000000 990000 sil 1000000 3090000 b 3100000 4200000 sil .
oneUsing an MLF containing
#!MLF!# "*/one.*.lab" one . "*/two.*.lab" two . "*/three.*.lab" three . <etc.>avoids the need for many duplicate label files.
#!MLF!# "*" -> "/db/dr1/labs" "*" -> "/db/dr2/labs" ... "*" -> "/db/dr7/labs" "*" -> "/db/dr8/labs"Each attempt to open a label file will result in a linear search through dr1 to dr8 to find that file. If the sub-directory name is embedded into the label file name, then this searching can be avoided. For example, if the label files in directory drx had the form drx_xxxx.lab, then the MLF would be written as
#!MLF!# "*/dr1_*" -> "/db/dr1/labs" "*/dr2_*" -> "/db/dr2/labs" ... "*/dr7_*" -> "/db/dr7/labs" "*/dr8_*" -> "/db/dr8/labs"
Suppose that a similar hierarchy of label files was constructed on disk3. These label files could be found by any HTK tool by using an MLF containing just
#!MLF!# "*" => "/disk3"If for some reason all of the drN directories were renamed ldrN in the label hierarchy, then this could be handled by an MLF file containing
#!MLF!# "*/dr1/*" => "/disk3/ldr1" "*/dr2/*" => "/disk3/ldr2" "*/dr3/*" => "/disk3/ldr3" etc.