HCompV计算所有训练数据全局的均值和协方差,他被用来初始化HMM,使所有分量的均值和协方差与全局一致。
当训练的模型非常大而数据又有限的时候,为了避免因为缺失数据而使得方差变得非常大,需要使用一个**方差宏**(variance macro)来控制,HCompV可以用来生成方差宏文件。
HCompV的最后一个作用是使用基于聚类的方差和均值正则化的方法来估算方差和均值。给定一串句子和一个说话者的模式,HCompV可以为每一个说话人计算均值和方差。
HCompV的用法如下
~~~
HCompV [options] [hmm] trainFiles ...
~~~
hmm是要被更新的hmm文件,当`-c`选项出现时,不需要hmm名称。这个命令计算语音训练数据方差,并将其拷贝到每一个给定的hmm定义的高斯部分,如果存在多个数据流,每一个数据流的方差都会被单独估计。HMM定义可以通过一个或多个宏文件来加载(`-H`选项)。否则将会从名为hmm的文件中读取。输入定义的所有类型都会在输出中被保留,默认条件下被更新的定义会覆盖旧的定义,然而你可以通过`-M`选项来将新的数据都保存到指定的文件夹下。`-f`选项可以用来生成varFloorN文件,其数值为全局方差的指定比例;
具体的各个参数的意义如下:
`-c s`基于聚类方法估算均值和方差,并存储到特定文件夹中;
`-k s`基于聚类的说话人模式的均值和方差估计,每一个与模式匹配的说话文件将被聚为一类;
`-p s`基于路径的聚类;
`-q s`控制基于聚类方法估算的输出格式;
`-f f`用全局方差的f倍来设定方差宏的值,创建varFloors文件;
`-l s`s必须是一个label,当该选项被设定时,HCompV查找所有的训练数据,并且只使用以s为标记的语音帧;
`-m`每一次训练HCompV都会更新方差,一旦设定该选项,那么均值也会被更新;
`-o`指定输出文件名;
`-v f`设置最小方差f,默认值是0
`-B`以二进制文件的形式输出HMM定义;
`-F fmt`设置源数据格式为fmt;
`-G fmt`设置label文件的格式为fmt;
`-H mmf`加载名为mmf的HMM宏模型文件,这个命令可以重复多次;
`-I mlf`加载名为mlf的主标记文件,这个命令可以被重复多次;
`-L dir`在dir文件夹中寻找label文件;
`-M dir` 输出HMM宏文件到dir中;
`-X ext`设置label文件扩展名为ext,默认是lab;