声学模型主要用于计算语音特征和每个发音模板之间的似然度。目的是为每个声学单元建立一套模型参数(通过不断地学习和改进得到最优的,也就是概率最大的一组HMM模型参数)。

我们知道CMUSphinx工具包里已经自带了几个性能较高的声学模型,比如有适用于麦克风或者新闻广播语音输入的美式英语声学模型,你也可以基于大量音频数据的法语或者中文声学模型。这些模型都能够获得很好的语音识别性能,并且大部分命令控制应用都可以直接使用他们,其中包括大词汇量识别系统。除了上述模型,CMUSphinx工具包也提供了一种改进声学模型的方法,这种方法对于大部分情况来说能使系统获取更高的识别率。当我们录音的环境不同(比如近距离录音、离麦克风较远以及电话语音)、出现不同的口音(比如英式英语、印度英语)或者另外一种语言时,这个对现有声学模型的改进是非常有效的。此外,如果我们需要快捷的为系统通过使用字典文件实现声学模型音素到目标音素的映射来添加对其他一些新的语言的支持,也可以利用改进现有声学模型的这种方法。

然而,对于一些应用程序来说当前的这些模型却不能正常工作,如手写识别或听写对另一种语言的支持。所以,在这些特殊的情况下,我们需要训练自己的模型。本文主要介绍如何在CMUSphinx语音识别工程中训练自己的声学模型。在开始训练之前,我们需要确定自己是否已经熟悉相关的概念并准备训练好的语言模型以及准备好相关的训练工具。