I understand how to run sphinx2-batch on a single lm, and I know how to load mutiple lms with a lm.ctl file, but how do I specify which lm should be used for each mfc file in my .ctl file?
-Scott
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Whew! I finally figured this out.! It required both diving into the source, and running gdb, since I couldn't find any info out on the web.
FYI
There are parameters to sphinx2 that are neither mentioned in the sphinx-II user guide, nor in the usage output if you just type 'sphinx2-batch`
-lmnamedir <dir> is one of those params
if you use -lmctlfn, you'll need a way to specify which lms are associated with what utterances in the -ctlfn. This is done by creating an<uttid>.lmname file (in the dir specified by -lmnamedir) for each utterance, the contents of which are a single line with the name of the lm to use for that utterance.
Getting the uttid requires that you use the --datadir param to specify what dir the data is in, so that you can simply list the basenames of the mfc files in the ctlfn (you cant create a filename <uttid>.lmname if uttid is a path).
I also found that -lmfn and -lmctlfn aren't mutually exclusive - my application works fine using -lmctlfn without a -lmfn, but when running sphinx2-batch it wants a lm with "" as it's name, so you need to also specify one with -lmfn, otherwise it will segfault.
Hopefully someone witl find this useful now that I've written this all up....
-Scott
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I understand how to run sphinx2-batch on a single lm, and I know how to load mutiple lms with a lm.ctl file, but how do I specify which lm should be used for each mfc file in my .ctl file?
-Scott
Whew! I finally figured this out.! It required both diving into the source, and running gdb, since I couldn't find any info out on the web.
FYI
There are parameters to sphinx2 that are neither mentioned in the sphinx-II user guide, nor in the usage output if you just type 'sphinx2-batch`
-lmnamedir <dir> is one of those params
if you use -lmctlfn, you'll need a way to specify which lms are associated with what utterances in the -ctlfn. This is done by creating an<uttid>.lmname file (in the dir specified by -lmnamedir) for each utterance, the contents of which are a single line with the name of the lm to use for that utterance.
Getting the uttid requires that you use the --datadir param to specify what dir the data is in, so that you can simply list the basenames of the mfc files in the ctlfn (you cant create a filename <uttid>.lmname if uttid is a path).
I also found that -lmfn and -lmctlfn aren't mutually exclusive - my application works fine using -lmctlfn without a -lmfn, but when running sphinx2-batch it wants a lm with "" as it's name, so you need to also specify one with -lmfn, otherwise it will segfault.
Hopefully someone witl find this useful now that I've written this all up....
-Scott