在实时录音的情况下 , 利用该语音识别系统 , 不同的人对 20 条 2~8 个字的语音命令进行识别 , 准确率可达到 95 % , 识别时间115~3 s , 实现了小词汇量连续语音的非特定人的实时识别。
目前 , 用于语音识别的方法有基于动态时轴归整(DTW) 技术的模板匹配法、基于概率统计的 HMM 法和基于人工神经网络 (ANN) 的最优搜索法。
当录音控件录音完成并进行端点检测后 , 向主程序发送一个事件 , 通知主程序读取语音数据及短时参数信息等. 端点检测算法主要采用短时平均能量和短时平均过零率作为判决的主要特征。
本系统采用 8 kHz 采样频率、16 bit、单声道的PCM 录音格式 , 帧长 N 为 30 ms , 帧移 M 为 10 ms 。
语音信号特征参数的提取是语音识别的一个重要环节。目前常用的方法是基于人的发音器官建立声道模型和基于听觉器官建立听觉模型。
基于听觉模型得到的MEL 倒 谱 系 数 (Mel - Frequency Cepstrum Coefficients ,MFCC) 比基于声道模型得到的 LPC 倒谱系数更符合人耳的听觉特性 , 在有信道噪声和频谱失真的情况下 , 能产生更高的识别精度。
MFCC 建立在 Fourier 频谱分析基础上 , 首先利用人耳的感知特性 , 在语音的频谱范围内设置若干个带通滤波器 , 每个滤波器具有三角形或正弦形滤波特性 , 然后在特征矢量中纳入能量信息 , 计算相应滤波器组的信号能量 , 再通过离散余弦变换 (DCT) 计算其对应的倒谱系数。
语音信号的 MFCC 特征参数主要反映语音的静态特征 , 语音信号的动态特征可以通过这些静态特征的差分谱来描述 , 这些动态信息和静态信息形成互补 , 能很大程度上提高系统的识别性能。因此本系统利用 12 阶MFCC 参数及其一阶差分作为语音信号的特征参数 。
隐含马尔科夫模型 (Hidden Markov Model) 是 20 世纪 80 年代在语音识别领域的重大发展 , 一方面用隐含的状态对应声学层各相对稳定的发音单位 , 并通过状态转移和状态驻留描述发音的变化 ; 另一方面引入了概率统计模型 , 用概率密度函数计算语音特征参数对 HMM模型的输出概率 , 通过搜索最佳状态序列 , 以最大后验概率为准则找到识别结果。它较为完整地表达了语音的声学模型 , 并采用统计的训练方法将底层的声学模型和上层的语言模型结合到统一的语音识别搜索算法中。目前 , 基于 HMM 模型的语音识别算法是主流研究方向。
HMM 模型的三项基本问题的解决
(1) 输出概率的计算问题 :给定观察序列和 HMM 模型 ,通过前向概率和后向概率计算观察序列对 HMM 模型的输出概率。
(2) 状态序列解码问题 : 给定观察序列和 HMM 模型 , 通过 Viterbi 识别算法确定一个最优的状态转移序列。viterbi 算法是广泛用于通信领域的动态规划算法 , 它不仅可以找到一条”最优”的状态转移路径 , 还可以得到该路径所对应的输出概率。为减少计算量 , 通常采用对数形式的 Vterbi 算法。
(3) 模型参数的估计问题 : 利用 Baum - Welch 算法训练模型参数 , 使观察序列对 HMM 模型的输出概率最大。Baum- Welch 算法主要利用极大似然 (ML) 准则对初始化的 HMM 模型参数进行重估 , 即对同一条命令用不同的人说多次 , 分别计算出各自的特征参数序列 , 然后用其重估模型参数。在本系统中 , 用户可以在训练流程中对每条命令训练 P 次 , 则记录训练次数 P , 由此生成的相应的 P 个观测序列可构成集合 。
识别实验
本系统可接受最多 9 s 的含命令语音 , 对 8 kHz 采样频率、16 bits、单声道的 PCM 语音进行每帧 30 ms 的短时分析 , 采用 24 阶 MFCC 及一阶差分参数作为语音特征参数。创建包含 20 条 2~5 个词组成的语音命令数据库 , 对每条命令分别建立 4 个状态、每个状态含 3 个高斯概率密度函数的 CDHMM 模型。
系统分训练和识别两个流程。训练过程对 HMM 模型参数进行最多 20 次的迭代计算 , 直到收敛。实验表明 ,对不同命令的训练时间在10~50 s。识别过程将测试语音的 HMM 模型与训练库中的各个模型应用Viterbi 算法进行搜索 , 找到输出概率最大的训练模型。实验表明 , 识别时间在 115~3 s , 识别准确率为 95 %左右。