摘 要:研究一种适合医疗仪器的语音识别算法,采用带噪声端点检测算法、美尔频标倒谱系数(MFCC)特征参数提取算法和整体路径约束DTW算法即ADTW算法,能有效地提高识别率和稳健性。
在此为噪声环境下的语音识别提供了理论分析与仿真实验数据。
实验结果表明:这种语音识别算法不仅有很高的识别率,而且能减小或者消除噪声所带来的训练模型和测试语音之间的失配。
它完全满足医疗仪器对语音识别率的要求。
关键词: 端点检测; 美尔频标倒谱系数; ADTW模式匹配; Matlab仿真
中图分类号:TP301.2 文献标识码:A
文章编号:1004-373X(2010)10-0040-03
Isolate Word Speech Recognition Algorithm in Application of Medical Equipment
XIAO Li-jun, CHEN Ming-yi
(College of Information Science and Engineering Central South University, Changsha 410083, China)
Abstra
广东深圳专业医疗仪器结构工业产品设计医疗器械业迎来快速发展期ct:A speech identification algorithm suit for medical devices is researched, which improves the identification rate and steadiness efficiently by using noisy endpoint detecting algorithm, MFCC character parameter extraction algorithm and thewhole path constraint DTW algorithm (namely ADTW mode match algorithm). The theory analysis and simulation experiment data of speech identification under noise environment are also provided. Simulation experiment
广东深圳专业医疗产品仪器工业产品设计产品设计中的色彩分析results show that this speech identification algorithm has high identification rate, and can decrease or eliminate the mismatch between training ��pattern and speech test resulting from noise. It can reach all demands of speech identification rate for medical devices.
Keywords: endpoint detection; MFCC; ADTW mode match; Matlab simulation
随着语音识别技术的发展,语音识别技术在旅游业、服务业和军事领域中都被广泛应用。
本文主要研究的是孤立词语音识别算法应用于医疗仪器中,实现人与机器之间的通信,比如便携式肺功能仪、家用心脑血管仪等,它使得医疗仪器使用起来更加方便自然,让老年人和残疾人可以无障碍地使用。
1 孤立词语音识别系统
孤立词语音识别系统的原理如图1所示。
图1 孤立词识别系统原理
在训练阶段,用户将每个词依次说一遍,并将计算得到的每个词所对应的特征矢量序列作为模板存入模板库中。
在识别阶段,将输入语音的特征矢量序列依次与模板库中的每一模板进行相似度比较,将相似度最高者作为识别结果输出。
2 孤立词语音识别算法设计
孤立词语音识别算法设计主要包括三大部分:一是带噪声端点检测,本文采用短时能量和短时过零率相结合的方法,力求使噪声的干扰降到最低,满足抗干扰的要求。
二是特征参数提取,采用一种符合人耳听觉特性的Mel频率倒谱系数MFCC算法,该算法能很好地表征语音信号,而且在噪声环境下能取得很好的识别效果。
三是模板匹配,采用平行四边形限制动态规整范ADTW算法,可以大大减小计算量,提高程序的性能。
2.1 带噪声端点检测算法
(1) 短时平均能量[1]。
设S(n)为加窗语音信号,第t帧语音的短时平均能量为:
Eng(t)=1N∑N-1n=0|S2t(n)|(1)
Eng(t)=1N∑N-1n=0|St(n)|(2)
式中:N
广东深圳专业医用器材造型工业产品设计英特尔注资银江电子聚焦交通与医疗服务为分析窗宽度;St(n
广东深圳专业C型臂X光机产品设计公司河南舞阳县历史文化旅游产品设计)为第t帧语音信号中的�┑�n个点的信号样值。
上面两式原理是相同的,但�┦�(2)有利于区别小取样值和大取样值,不像式(1)取平方造成很大差异[2]。
短时平均能量是时域特征参数。
把它用于模型参数时,应进行归一化处理,本文将取其对数值后使用,使计算和识别结果均取得了较好的效率和结果。
(2) 短时过零率[1]。
短时过零率ZCR(zero crossing rate)为:
Zn=∑∞m=-∞[sgn(x(m))-sgn(x(m-1)]•W(n-m)(3)
式中:
sgn[x(n)]=1,x(n)>NoiseMax
(NoiseMax为噪声上限)-1,x(n) 实际频率f的单位是Hz,临界频率带宽随着频率的变化而变化,并与Mel频率的增长一致。
在��1 000 Hz以下,大致呈线性分布,带宽为100 Hz左右,在1 000 Hz以上呈对数增长。
类似于临界带的划分,可以将语音频率划分成一系列三角形的滤波器序列,即Mel滤波器组,MFCC参数的计算过程步骤如下:
(1) 根据式(6)将实际频率尺度转换为Mel频率尺度。
(2) 在Mel频率轴上配置L个通道的三角滤波器组,L的个数由信号的截止频率决定。
每个三角形滤波器中心频率c(l)在Mel频率轴上等间隔分配。
设��o(l),c(l),h(l)分别是第l个三角滤波器的下限、中心和上限频率,则相邻三角形滤波器之间的下限、中心和上限频率有如下关系:
c(l)=h(l-1)=o(l+1)(7)
(3) 根据语音信号幅度谱xn(k)求每个三角形滤波器的输出:
m(l)=∑h(l)k=o(l)wl(k)×|xn(k)|(8)
式中:
wl(k)=k-o(l)c(l)-o(l),o(l)≤k≤c(l)
h(l)-kh(l)-c(l),c(l)≤k≤h(l)(9)
(4) 对所有滤波器的输出做数学对数运算再进�┮徊阶隼肷⒂嘞冶浠�(DCT)即可得到MFCC。
C��MFCC(i)=2/Nlog m(l)cos{(l-1/2)iπ/L}(10)
2.3 模板匹配ADTW算法
传统DTW算法的一个缺点就是模式匹配的运算量太大[6],为了减少计算量和存储空间的需求,本文采用了整体路径约束DTW算法即ADTW算法。
采用平行四边形限制动态规整范围,如图2所示。
平行四边形之外的路径点对应的帧匹配距离是不需要计算和的。
也不用保存所有的帧匹配距离和累积距离矩阵,因为�┟恳涣懈髀肪兜闵系钠ヅ浼扑阒挥玫搅饲耙涣械�3个点[7]。
充分利用这两个特点可以减少计算量和存储空间的需求[8]。
把实际的动态弯折分为3段:(1,xA),(xA+1,xB)和(xB+1,N)。
其中:
xA=(1/3)(2M-N)
xB=(2/3)(2N-M)(11)
xA和xB都取最相近的整数。
由此也得出对M和N长度的限制条件:
2M-N≥3
2N-M≥2 (12)
当不能满足以上条件时,则认为两者差别太大,无法进行动态弯折匹配。
此时,在x轴上的每一帧不再需要与y轴上的每一帧进行匹配比较,而只是需要与��y轴上[y��min,y��max]间的数据帧进行比较,y��min和y��max的计算如下:
y��min=x/2,0≤x≤xB
2x+(M-2N),xB≤x≤N(13)
y��max=2x, 0≤x≤xA
x/2+(M-N/2),xA≤x≤N(14)
也可能出现xA>xB的情况,此时弯折匹配的三段为(1,xB),(xB+1,xA),和(xA+1,N)。
对于x轴上每前进一帧,虽然所要比较的y轴上的帧数不同,但弯折特性是一样的,累积距离矩阵的更新都可以用下式实现:
D(x,y)=
广东深圳专业医用器械造型工业产品设计医疗设计不止于“设计”d(x,y)+min[D(x-1,y),
D(x-1,y-1),D(x-1,y-2)](15)
图2 平行四边形区域限
2.4 孤立词语音识别算法Matlab实验仿真
为了对语音识别算法应用于医疗仪器中的效果进行测试,本文以便携式肺功能仪为例,设计了一些识别命令,基于Matlab构建了孤立词语音识别系统[9],对识别算法进行仿真和分析。
该命令分别是:开电源、关电源、肺功能检测、检测结果提示、打印输出、保存检测结果等。
该系统使用设计的模板匹配技术、特征提取和带噪声端点检测技术。
语音采用频率为8 kHz,16位量化精度,预加重系数a=0.95,语音帧每帧30 ms,240点为1帧,帧移为80,窗函数采用Hamming窗[10]。
实验人员为2名同学,一男一女。
实验仿真数据如下:
(1) 带噪声端点检测算法仿真结果。
本次端点检测实验参考模板为25个,测试模板为20个,识别率为85%,基本符合医疗仪器的要求,图3为男生“肺功能检测”端点检测图。
(2) 模板匹配ADTW算法仿真结果。
模板匹配ADTW实验的识别率达到 95%,完全达到了医疗仪器的要求。
图4 为模板匹配Matlab程序输出结果。
从输出结果看,识别得到了正确的结果。
3 结 语
实验证明,本文设计的孤立词语音识别算法能够对医疗仪器中一些命令词进行识别,并且有很高的识别率,完全满足医疗仪器对语音识别率的要求,为更多的人提供了方便,在医疗领域中有很好的应用前景。
而连续语音的识别目前来说还比较难以达到高的识别率,这也是今后语音识别研究发展的方向。
在不远的将来,语音识别技术将作为一种重要的人机交互手段,辅助甚至取代传统的键盘、鼠标等输入设备,实现语音控制操作各种设备。
图3 男声“肺功能检测”端点检测
图4 模板匹配Matlab程序输出结果
参考文献
[1]胡航.语音信号处理[M].3版.哈尔滨:哈尔滨工业大学出版社,2005.
[2]BHIKSHA R, RITA S. Classifier-based non-linear projection for adaptive endpointing of continuous speech[J]. Computer Speech & Language, 2003, 17(l): 5-26.
[3]徐大为,吴边.一种噪声环境下的实时语音端点检测算法[J].计算机工程与应用,2003(1):115-117.
[4]肖宜.语音识别中双门限端点检测算法的研究[D].武汉:武汉理工大学,20
广东深圳专业医用产品结构工业产品设计深圳时装周3月启幕08.
[5]HUANG C S, WANG H C. Bandwidth-adjusted LPC ana-��lysis for robust speech recognition[J]. Pattern Recognition Letters, 2003, 24(9): 1593-1597.
[6]李须真,李虎生,刘润生.汉语数码语音识别算法在定点DSP上的实现
广东深圳专业C型臂X光机产品设计公司医院外来医疗器械管理存在的风险和对策[M].北京:清华大学出版社,2003.
[7]马莉,党幼云.特定人孤立词语音识别系统的仿真与分析[J].西安工程科技学院学报,2007,21(3):10-12.
[8]刘金伟,黄樟钦,侯义斌.基于片上系统的孤立词语音识别算法设计[J].计算机工程,2007,33(13):25-27.
[9]何强,何英.Matlab扩展编程[M].北京:清华大学出版社,2002.
[10]杨行峻.语音信号数字处理[M].北京:电子工业出版社,2003.