I was doing speaker adaptation using CMLLR and trying to involve a cascade of transforms in my experiments.
Specifically, I had a set of fixed parent transforms and wanted to update input transforms only.
According to my understanding of the HTK Book, I tried to utilize parent transforms in the following way:
The file of my parent transforms:
~a "cmp.cmllrParent"
<ADAPTKIND>TREE
<BASECLASS>~b "dectree_cmp_parent.base"
<XFORMSET>
<XFORMKIND>CMLLR
<NUMXFORMS> 125
<LINXFORM> 1
....
The file of my input transforms:
~a "spkr.cmp.cmllr0"
<ADAPTKIND>TREE
<BASECLASS>~b "dectree_cmp.base"
<PARENTXFORM> ~a "cmp.cmllrParent"
<XFORMSET>
<XFORMKIND>CMLLR
<NUMXFORMS> 625
....
However, in the resulting output transform file of the first iteration,
the line with the macro "<PARENTXFORM>" disappeared.
I added the line to the output transform file manually so the file finally looked like:
~a "spkr.cmp.cmllr1"
<ADAPTKIND>TREE
<BASECLASS>~b "dectree_cmp.base"
<PARENTXFORM> ~a "cmp.cmllrParent" # I added this line manually, which was absent from my output transform file.
<XFORMSET>
<XFORMKIND>CMLLR
<NUMXFORMS> 619
....
Then this modified file was given to HERest as an input transform file for the second iteration.
What I didn't understand is that the likelihoods of adaptation utterances in the second iteration
were significantly lower than those in the first iteration.
So I suspect whether I was utilizing parent transforms in a correct way.
(I had also tried the "-E" and "-W" switches of HERest but they seemed to work
only for updating model parameters during speaker adaptive training.)