基于DTW的孤立词语音识别

引言

近年来,语音识别已经成为一个非常活跃的研究领域。目前,语音识别技术已经作为一种重要的人机交互手段,辅助传统的键盘、鼠标等输入设备,在个人计算机上进行文字录入和操作控制。而在平板电脑、智能家电、工业现场控制等应用场合,语音识别技术则有更为广阔的发展前景。

在特定人孤立词语音识别中,最为简单有效的方法是采用动态时间规整(Dynamic Time Warping,DTW) 算法,该算法基于动态规划的思想,解决了语音长短不一的模板匹配问题,是语音识别中出现最早、较为经典的一种算法。

本文首先介绍基于DTW的孤立词语音识别系统,然后分别介绍系统各个部分的具体实现,最后介绍基于该系统进行的孤立数字识别实验和结果。

基于DTW的孤立词语音识别系统

下图是基于DTW的孤立词语音识别的系统框图。
基于DTW的孤立词语音识别的系统框图

系统包括两个部分:训练部分和测试部分。训练部分包括:预处理、端点检测、Mel倒谱分析、语音模板库的构建;训练部分包括:预处理、端点检测、Mel倒谱分析、DTW算法分析、得到识别结果。下面就分别介绍系统所涉及到的各个部分。

预处理

预处理包括预加重、分帧和加窗三个步骤。

  • 预加重通过滤波提升高频分量并消除工频干扰。预加重采用具有6dB/倍频程的提升高频特性的一阶数字滤波器实现。
  • 语音信号具有短时平稳特性,因此可以对语音信号进行分帧处理。同时为了便于计算 FFT,本系统选取帧长N为256个语音点,帧移M为128点。
  • 窗函数采用了汉明窗。因为汉明窗与矩形窗和汉宁窗相比具有最低旁瓣,可以有效地克服泄漏现象,具有更平滑的低通特性,故本文采用汉明窗对语音信号进行分帧处理。

端点检测

端点检测是语音识别的第一步,也是非常关键的一步。端点检测是根据语音的特点及其参数的统计规律,将语音信号从背景噪声中分离出来。端点检测采用基于短时能量和短时平均过零率法,利用已知为“静态”的最初十帧信号为短时能量设置2个门限ampl 和amph,以及过零率阀值zcr。

语音结束点的检测方法与检测起点相似,但此时从后向前搜索。

Mel倒谱分析

语音特征参数提取是语音识别的关键问题,特征参数的好坏对于语音识别精度和识别时间有很大影响。研究表明,倒谱特征参数所含的信息量比其他参数多,能较好地表现语音信号。本文选取能够反映人对语音的感知特性的 Mel 频率倒谱系数 (MFCC) 作为特征参数,阶数为 12。

MFCC的计算流程如下:

  1. 根据 Mel(f) = 2595lg(1+f/700),将实际频率尺度装换为Mel频谱尺度。
  2. 在 Mel频率轴上配置L个三角形的滤波器组,L的个数由信号的截止频率决定。
  3. 根据语音信号幅度谱求每一个三角形滤波器的输出。
  4. 对所有滤波器输出做对数运算,再进行离散余弦变换得到MFCC。

DTW算法分析

动态时间规整(Dynamic Time Warping,DTW)是把时间规整和距离测度计算结合起来的一种非线性规整技术。DTW可以有效解决测试模板与参考模板语音时间长度不等的问题。

下图利用DTW计算序列T和S之间的距离的示意图
利用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