服了容易陷入局部最小值的缺点,基于 GABP 的语音识别系统的最 高识别率和平均识别率都有了很大的提高。 大部分基于神经网络的语音识别系统实现识别功能都要经过从特征参数提取到应用识 别算法进行识别的过程.该过程如下图 l 所示: 神 经 网 络 识 别 语音 识别 预处理 特 征 处 理 测 试 模 板 识别结果 测度估计 识别决策 神 经 网 络 学 习 参 考 模 板 模板库 专家知识 图 1 语音识别系统原理框图 该文主要面向孤立数字识别系统作一些改进研究,其摹本识别过程也符合上图 l 描述: 输入的语音信号首先进行预处理,包括抗混叠滤波、声音的预加重、加窗分症处理与端点检 测等。预加重的目的是在于滤出低频干扰,尤其是 50Hz 或 60Hz 的工频干扰,将对于语音识 别更为有用的高频部分的频谱进行提升,以便于语音参数分析。 预加重滤波器传递函数为: H(Z) = 1 - 0.9375Z -1 (1) ? 若 s(n)为预加重前语音信号,则经过预加重滤波器后得到的信号 s (n)为: ? s (n)= S ( n ) ? 0.9375S ( n-1) (2) 该文主要完成孤立数字识别, 所要求识别的字数不多, 对环境的噪声的适应能力的要求 也并不高。 因此采用了目前比较流行的双门限端点检测算法. 借助于语音信号短时平均能量 和短时过零率来判定语音有效范围的开始和结束。 语音信号经过预处理后, 接下来很重要的一环就是进行特征提取, 常用的特征包括短时 平均能量和幅度、短时平均过零率、线性预测系数(LPC)、短时傅里叶变换和 Mel 频率倒谱 系数(MFCC)。 语音特征参数的时间序列构成了语音的模式, 将其与通过应用一系列已知信号 训练提取的参考模式逐一进行比较. 获得最佳匹配的参考模式便是识别结果。 本文中对于预 处理的每个有效语音信号段,都要提取其 12 个一阶 MFCC 系数。提取过程为:用汉明窗将语 音切割成长短一致的语音帧, 对每帧语音进行正反傅里叶变换, 经对数和离散余弦变换后取 前 12 个数作为 MFCC 系数来描述每一个帧。最后将每个语音信号对应的 MFCC 系数序列用 K —means 聚类算法进行聚类,分为 4 个聚类,使得每个语音信号都得到相应的 12 个 4 维一 阶 MFCC 系数,即可作为语音的特征参数成为神经网络的输人信号。 3.语音识别中的 BP 网络构造 语音识别中的 BP 网络构造主要包括输入层、隐层 、输出层、初始权值、学习速率与期 望误差的选取几个方面的问题。 1)网络层数:理论上,在不限制隐层节点数的情况下,两层(只有一个隐层)的 BP 网络可 以实现任意非线性映射。当模式样本很多时,减小网络规模,增加一个隐层是必要的,但 BP 网络隐层数一般不超过两层。本文所要求识别的模式样本不多,因此一个隐层已经足够。 2)输入层节点数: BP 网络语音识别系统中, 在 输入层节点数与选取的语音信号特征参数 的维度和阶数有关。 本文中每个语音信号都得到相应的 12 个 4 维一阶 MFCC 系数, 故输入层 的节点数为 12×4=48。 3)输出层节点数: 输出层的节点数取决于输出数据的类型和表示该类型所需的数据大小。 当 BP 网络用于语音识别时,以二进制形式来表示不同的识别结果,则输出层的节点数可根 据训练模板的语音数来确定。本文设定输出节点数为 1O,分别对应于 0—9 这 10 个数字。
4)隐层节点数: 通过采用一个隐层, 增加其神经元数的方法来达到网络训练精度的提高, 这在结构上。要比增加更多的隐层简单的多。但究竞选取多少个隐层节点才合适?在理论上 并没有 1 个明确的规定。 在具体设计时. 比较实际的做法是通过对不同神经元数进行训练对 [5] 比。然后适当的加上一点余量 。一般可利用下面式子决定: [6] n1 = m +a +a (3) 其中 n1 为隐层节数;m 为输入节点数;n 为输出节点数;a 为取 l—10 的常数。本实验中输 入节点数为 48,输出节点数为 10,a 选取为常数 4,因此隐层节点数 n1 =12。 5)初始权值:由于系统是非线性的,初始值对于学习是否达到局部最小、是否能收敛以 及训练时间的长短关系很大。 一般总是希望经过初始加权后的每个神经元的输出值都接近于 零。所以,一般取初始值在(-1,1)之间的随机数。 6)学习速率与期望误差的选取:学习速率决定每一次循环训练中所产生的权值变化量。 小的学习速率虽然会导致收敛速度慢, 不过能保证网络的误差值不跳出误差表面的低谷而最 终趋于最小值。所以,一般情况下,学习速率的选取范围在 0.01~0.8 之间。期望误差 0.O00001。 解决了上述几个方面的问题后。本