基于HMM的语音识别技术在嵌入式系统中的应用
在识别中使用的随机观察矢量就是从信号中提取的特征矢量。按照随机矢量Qn的概率分布形时,其概率密度函数一般使用混合高斯分布拟合。
其中,M为使用的混合高斯分布的阶数,Cm为各阶高期分布的加权系数。此时的HMM模型为连续HMM模型(Continuous density HMM),简称CHMM模型。在本识别系统中,采用整词模型,每个词条7个状态同,包括首尾各一个静音状态;每个状态使用7阶混合高斯分布拟合。CHMM识别流程如图1所示。
由于CHMM模型的复杂性,也可以假定On的分布是离散的。通常采用分裂式K-Mean算法得到码本,然后对提取的特征矢量根据码本做一次矢量量化VQ(Vector Quantization)。这样特征矢量的概率分布上就简化为一个离散的概率分布矩阵,此时的HMM模型称为离散HMM模型(Discrete density HMM),简称DHMM模型。本DHMM识别系统使用的码本大小为128。DHMM识别流程如图2所示。
DHMM虽然增加了矢量量化这一步骤,但是由于简化了模型的复杂度,从而减少了占用计算量最大的匹配计算。当然,这是以牺牲一定的识别性能为代价。
笔者先后自己的硬件平台上完成了基于DHMM和CHMM的识别系统。通过比较发现,对于嵌入式平台而言,实现CHMM识别系统的关键在于芯片有足够运算太多的增加。因为词条模型存储在ROM中,在匹配计算时是按条读取的。
3.3 识别性能
笔者使用自己的识别算法分别对11词的汉语数码和一个59词的命令词集作了实际识别测试,识别率非常令人满意,如表1所示。
表1 汉语数码识别率
对于59词命令词集的识别,还增加了静音模型。由于基线的识别率已经很高,所以静音模型的加入对于识别率的进一步提高作用不大,如表2所示。但静音模型的加入可以降低对端点判断的依赖。这在实际使用中对系统的稳健性有很大的提高。
表2 59词命令词集识别率
可以看到,在硬件能够支持的情况下,CHMM的识别率比DHMM有很大的提高,同时识别速度也完全可以满足使用要求。
目前嵌入式语音识别领域使用HMM模型的还比较少,使用通常限于DHMM。由于集成电路制造技术的发展,目前主流DSP都可以提供100MIPS以上的运算速度,完全可以满足CHMM对计算能力的要求。
笔者在使用SoC芯片的硬件平台上实现了DHMM和CHMM算法。其中定点CHMM语音识别算法在16位定点DSP硬件平台上达到很高的识别率,同时系统资源消耗也比较合理,安全可以替代DHMM算法。非常适合50词以内的命令词识别。以上算法已经在芯片上实现,该方案在家电语音遥控、玩具、PDA、智能仪器以及移动电话等领域内有非常好的应用前景。
《基于HMM的语音识别技术在嵌入式系统中的应用(第3页)》