基于DTW的孤立词语音识别
引言
近年来,语音识别已经成为一个非常活跃的研究领域。目前,语音识别技术已经作为一种重要的人机交互手段,辅助传统的键盘、鼠标等输入设备,在个人计算机上进行文字录入和操作控制。而在平板电脑、智能家电、工业现场控制等应用场合,语音识别技术则有更为广阔的发展前景。
在特定人孤立词语音识别中,最为简单有效的方法是采用动态时间规整(Dynamic Time Warping,DTW) 算法,该算法基于动态规划的思想,解决了语音长短不一的模板匹配问题,是语音识别中出现最早、较为经典的一种算法。
本文首先介绍基于DTW的孤立词语音识别系统,然后分别介绍系统各个部分的具体实现,最后介绍基于该系统进行的孤立数字识别实验和结果。
基于DTW的孤立词语音识别系统
下图是基于DTW的孤立词语音识别的系统框图。
系统包括两个部分:训练部分和测试部分。训练部分包括:预处理、端点检测、Mel倒谱分析、语音模板库的构建;训练部分包括:预处理、端点检测、Mel倒谱分析、DTW算法分析、得到识别结果。下面就分别介绍系统所涉及到的各个部分。
预处理
预处理包括预加重、分帧和加窗三个步骤。
- 预加重通过滤波提升高频分量并消除工频干扰。预加重采用具有6dB/倍频程的提升高频特性的一阶数字滤波器实现。
- 语音信号具有短时平稳特性,因此可以对语音信号进行分帧处理。同时为了便于计算 FFT,本系统选取帧长N为256个语音点,帧移M为128点。
- 窗函数采用了汉明窗。因为汉明窗与矩形窗和汉宁窗相比具有最低旁瓣,可以有效地克服泄漏现象,具有更平滑的低通特性,故本文采用汉明窗对语音信号进行分帧处理。
端点检测
端点检测是语音识别的第一步,也是非常关键的一步。端点检测是根据语音的特点及其参数的统计规律,将语音信号从背景噪声中分离出来。端点检测采用基于短时能量和短时平均过零率法,利用已知为“静态”的最初十帧信号为短时能量设置2个门限ampl 和amph,以及过零率阀值zcr。
语音结束点的检测方法与检测起点相似,但此时从后向前搜索。
Mel倒谱分析
语音特征参数提取是语音识别的关键问题,特征参数的好坏对于语音识别精度和识别时间有很大影响。研究表明,倒谱特征参数所含的信息量比其他参数多,能较好地表现语音信号。本文选取能够反映人对语音的感知特性的 Mel 频率倒谱系数 (MFCC) 作为特征参数,阶数为 12。
MFCC的计算流程如下:
- 根据 Mel(f) = 2595lg(1+f/700),将实际频率尺度装换为Mel频谱尺度。
- 在 Mel频率轴上配置L个三角形的滤波器组,L的个数由信号的截止频率决定。
- 根据语音信号幅度谱求每一个三角形滤波器的输出。
- 对所有滤波器输出做对数运算,再进行离散余弦变换得到MFCC。
DTW算法分析
动态时间规整(Dynamic Time Warping,DTW)是把时间规整和距离测度计算结合起来的一种非线性规整技术。DTW可以有效解决测试模板与参考模板语音时间长度不等的问题。
下图利用DTW计算序列T和S之间的距离的示意图
实验
这一部分介绍利用孤立数字语音识别系统所做的实验,首先介绍实验的配置,然后列出了该实验的结果。
实验设置
- 录制环境:安静条件下利用 PC录制
- 数据参数:16kHz 频率、16bit量化、单声道
- 训练数据:数字0-9,10段语音
- 测试数据:数字0-9,10段语音
实验结果
- 识别准确率100%
总结
本文首先介绍了孤立词语音识别,然后设计并实现了孤立数字语音识别系统,并利用该系统做了数字识别的实验。实验结果证明了该系统具有较好的识别性能。DTW 算法虽然在实现小词汇量孤立词识别系统中具有很有的效果、并得到了广泛的应用,但是 DTW 算法也有很多缺点,例如,端点检测精度的敏感性、语音识别的精度和效率并不是很高。
代码
源代码:https://github.com/shuaijiang/DTW_based_Isolated_Word_Recognition
参考文献
- 万春, 黄杰圣, 曹煦晖. 基于 DTW 的孤立词语音识别研究和算法改进[J]. 计算机与现代化, 2004 (11): 4-6.
- 林波, 吕明. 基于 DTW 改进算法的孤立词识别系统的仿真与分析 [J].信息技术, 2006, 30(4): 56-59.
---------- Version0 2014/05/20 23:37:52
Version1 2014/06/23 10:56:55
Version2 2014/06/23 20:20:19