I have a question about MLLR adaptation with SphinxTrain. I've trained my own spanish model and I need to use speaker adaptation but I have a problem. I've followed the instructions in http://www-2.cs.cmu.edu/~archan/documentation/chapter9.ps
and I did the single iteration of Baum-Welch, I created the MLLR matrix with mllr_solve and I can do online mean transformation with a correct result.
The problem is that I would use my adapted model with Sphinx4 and I think it's necessary doing offline mean transformation before. When I try to use mllr_transform I got an error (params are incorrect) and if I run it without params I got this:
C:\tutorial_sphinx2\prueba1>bin\mllr_transform [Switch][Default][Description]
-help no Shows the usage of the tool
-example no Shows example of how to use the tool
-outmllrfn Output MLLR regression matrices file
-accumdir Paths containing reestimation sums from bw
-meanfn Baseline Gaussian density mean file
-varfn variance (baseline-var, or error-var) file
-fullvar no Variances are full covariance matrices
-cb2mllrfn .1cls. Codebook to mllr class mapping index file (If it is given, ignore -cdonly)
-cdonly no Use only CD senones for MLLR (If yes, -moddeffn should be given.)
-moddeffn Model Definition file (to get CD starting point for MLLR)
-mllrmult yes Reestimate full multiplicative term of MLLR adatpation of means (yes/no)
-mllradd yes Reestimate shift term of MLLR adaptation of means (yes/no)
-varfloor 1e-3 var floor value
This is the same output you can see with mllr_solve. Is there anything wrong with mllr_transform? How can I solve it?
Thanks.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hm, are you sure you are using latest version and so on, for me it prints different things:
[shmyrev@shadow bin.i686-pc-linux-gnu]$ ./mllr_transform
----- Compiled on May 19 2007, 22:46:09
[Switch][Default][Description]
-help no Shows the usage of the tool
-example no Shows example of how to use the tool
-inmeanfn Input Gaussian mean file name
-outmeanfn Output Gaussian mean file name
-ingaucntfn Input Gaussian accumulation count file name
-outgaucntfn Output Gaussian accumulation count file name
-mllrmat The MLLR matrix file
-cb2mllrfn .1cls. The codebook-to-MLLR class file. Override option -cdonly
-cdonly no Use CD senones only. -moddeffn must be given.
-inverse no Apply the inverse transform (for speaker adaptive training).
-moddeffn Model Definition file.
-varfn Variance (baseline-var, or error-var) file (NOT USED!!!)
-varfloor 1e-3 Variance floor value (NOT USED!!!) [shmyrev@shadow bin.i686-pc-linux-gnu]$ ./mllr_transform
----- Compiled on May 19 2007, 22:46:09
[Switch][Default][Description]
-help no Shows the usage of the tool
-example no Shows example of how to use the tool
-inmeanfn Input Gaussian mean file name
-outmeanfn Output Gaussian mean file name
-ingaucntfn Input Gaussian accumulation count file name
-outgaucntfn Output Gaussian accumulation count file name
-mllrmat The MLLR matrix file
-cb2mllrfn .1cls. The codebook-to-MLLR class file. Override option -cdonly
-cdonly no Use CD senones only. -moddeffn must be given.
-inverse no Apply the inverse transform (for speaker adaptive training).
-moddeffn Model Definition file.
-varfn Variance (baseline-var, or error-var) file (NOT USED!!!)
-varfloor 1e-3 Variance floor value (NOT USED!!!) [shmyrev@shadow bin.i686-pc-linux-gnu]$ ./mllr_transform -help yes
----- Compiled on May 19 2007, 22:46:09
./mllr_transform \
-help yes
Description:
Given a set of MLLR transform, mllr_transform can transform
the mean according to formulat y=Ax+b.
The output and input files are specified by -outmeanfn and
-inmeanfn respectively. You may also transform the context-
dependent model using the option -cdonly. In that case you
need to specify a model definition using -moddeffn.
INFO: parse_cmd_ln.c(64): User asked for help or example. [shmyrev@shadow bin.i686-pc-linux-gnu]$ ./mllr_transform -example yes
----- Compiled on May 19 2007, 22:46:09
Hm, actually nightly build is the latest version. I wonder if something went wrong in the build process. Mine nigtly build is from May as you can see above.
So please check everything once again, it should really work.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I have a question about MLLR adaptation with SphinxTrain. I've trained my own spanish model and I need to use speaker adaptation but I have a problem. I've followed the instructions in
http://www-2.cs.cmu.edu/~archan/documentation/chapter9.ps
and I did the single iteration of Baum-Welch, I created the MLLR matrix with mllr_solve and I can do online mean transformation with a correct result.
The problem is that I would use my adapted model with Sphinx4 and I think it's necessary doing offline mean transformation before. When I try to use mllr_transform I got an error (params are incorrect) and if I run it without params I got this:
C:\tutorial_sphinx2\prueba1>bin\mllr_transform
[Switch] [Default] [Description]
-help no Shows the usage of the tool
-example no Shows example of how to use the tool
-outmllrfn Output MLLR regression matrices file
-accumdir Paths containing reestimation sums from bw
-meanfn Baseline Gaussian density mean file
-varfn variance (baseline-var, or error-var) file
-fullvar no Variances are full covariance matrices
-cb2mllrfn .1cls. Codebook to mllr class mapping index file (If it is given, ignore -cdonly)
-cdonly no Use only CD senones for MLLR (If yes, -moddeffn should be given.)
-moddeffn Model Definition file (to get CD starting point for MLLR)
-mllrmult yes Reestimate full multiplicative term of MLLR adatpation of means (yes/no)
-mllradd yes Reestimate shift term of MLLR adaptation of means (yes/no)
-varfloor 1e-3 var floor value
This is the same output you can see with mllr_solve. Is there anything wrong with mllr_transform? How can I solve it?
Thanks.
The problem is only in Windows. I've tryed the same in Ubuntu because I saw you use linux and it's correct.
Cheers!
Hm, are you sure you are using latest version and so on, for me it prints different things:
[shmyrev@shadow bin.i686-pc-linux-gnu]$ ./mllr_transform
----- Compiled on May 19 2007, 22:46:09
[Switch] [Default] [Description]
-help no Shows the usage of the tool
-example no Shows example of how to use the tool
-inmeanfn Input Gaussian mean file name
-outmeanfn Output Gaussian mean file name
-ingaucntfn Input Gaussian accumulation count file name
-outgaucntfn Output Gaussian accumulation count file name
-mllrmat The MLLR matrix file
-cb2mllrfn .1cls. The codebook-to-MLLR class file. Override option -cdonly
-cdonly no Use CD senones only. -moddeffn must be given.
-inverse no Apply the inverse transform (for speaker adaptive training).
-moddeffn Model Definition file.
-varfn Variance (baseline-var, or error-var) file (NOT USED!!!)
-varfloor 1e-3 Variance floor value (NOT USED!!!)
[shmyrev@shadow bin.i686-pc-linux-gnu]$ ./mllr_transform
----- Compiled on May 19 2007, 22:46:09
[Switch] [Default] [Description]
-help no Shows the usage of the tool
-example no Shows example of how to use the tool
-inmeanfn Input Gaussian mean file name
-outmeanfn Output Gaussian mean file name
-ingaucntfn Input Gaussian accumulation count file name
-outgaucntfn Output Gaussian accumulation count file name
-mllrmat The MLLR matrix file
-cb2mllrfn .1cls. The codebook-to-MLLR class file. Override option -cdonly
-cdonly no Use CD senones only. -moddeffn must be given.
-inverse no Apply the inverse transform (for speaker adaptive training).
-moddeffn Model Definition file.
-varfn Variance (baseline-var, or error-var) file (NOT USED!!!)
-varfloor 1e-3 Variance floor value (NOT USED!!!)
[shmyrev@shadow bin.i686-pc-linux-gnu]$ ./mllr_transform -help yes
----- Compiled on May 19 2007, 22:46:09
./mllr_transform \ -help yes
Description:
Given a set of MLLR transform, mllr_transform can transform
the mean according to formulat y=Ax+b.
The output and input files are specified by -outmeanfn and
-inmeanfn respectively. You may also transform the context-
dependent model using the option -cdonly. In that case you
need to specify a model definition using -moddeffn.
INFO: parse_cmd_ln.c(64): User asked for help or example.
[shmyrev@shadow bin.i686-pc-linux-gnu]$ ./mllr_transform -example yes
----- Compiled on May 19 2007, 22:46:09
./mllr_transform \ -example yes
Example:
The simplest case:
mllr_transform -inmeanfn inMeans -outmeanfn outMeans -mllrmat matrix
Adapt only on CD phones:
mllr_transform -inmeanfn inMeans -outmeanfn outMeans -mllrmat matrix -cdonly yes -moddeffn mdef
Help and example:
nmllr_transform -help yes -example yes
INFO: parse_cmd_ln.c(64): User asked for help or example.
[shmyrev@shadow bin.i686-pc-linux-gnu]$
Thanks!! I'm using the SphinxTrain nightly build package in http://cmusphinx.sourceforge.net/html/download.php#SphinxTrain
and I guess it's not the latest version. I'll try with cvs.
Hm, actually nightly build is the latest version. I wonder if something went wrong in the build process. Mine nigtly build is from May as you can see above.
So please check everything once again, it should really work.