Logically, the organisation of data and label files is very simple. Every data file has a label file of the same name (but different extension) which is either stored in the same directory as the data file or in some other specified directory.
This scheme is sufficient for most needs and commendably simple. However, there are many cases where either it makes unnecessarily inefficient use of the operating system or it seriously inconveniences the user. For example, to use a training tool with isolated word data may require the generation of hundreds or thousands of label files each having just one label entry. Even where individual label files are appropriate (as in the phonetically transcribed TIMIT database), each label file must be stored in the same directory as the data file it transcribes, or all label files must be stored in the same directory. One cannot, for example, have a different directory of label files for each TIMIT dialect region and then run the HTK training tool HEREST on the whole database.
All of these problems can be solved by the use of Master Label Files (MLFs). Every HTK tool which uses label files has a -I option which can be used to specify the name of an MLF file. When an MLF has been loaded, the normal rules for locating a label file apply except that the MLF is searched first. If the required label file f is found via the MLF then that is loaded, otherwise the file f is opened as normal. If f does not exist, then an error is reported. The -I option may be repeated on the command line to open several MLF files simultaneously. In this case, each is searched in turn before trying to open the required file.
MLFs can do two things. Firstly, they can contain embedded label definitions so that many or all of the needed label definitions can be stored in the same file. Secondly, they can contain the names of sub-directories to search for label files. In effect, they allow multiple search paths to be defined. Both of these two types of definition can be mixed in a single MLF.
MLFs are quite complex to understand and use. However, they add considerable power and flexibility to HTK which combined with the -S and -L options mean that virtually any organisation of data and label files can be accommodated.