|
汉语数码语音识别 (mandarin digit speech recognition, MDSR)
是语音识别领域中一个具有广泛应用背景的分支,它的任务是识别“0”到“9”等10个非特定人汉语数码语音,在电话语音拨号、工业监控、家电遥控等领域有着极大的应用价值[1]。但与英语数码语音识别相比,
MDSR的性能尚未达到成熟应用水平,这是因为 1) 汉语数码语音的混淆程度较高; 2) 汉语是一个多方言语种,说话人会带有或多或少的地方口音; 3)
在许多应用背景中,MDSR需要在运算和存储资源都较为紧张的数字信号处理器(digital signal processor,
DSP)系统上实现,这为MDSR算法的设计带来了很大的限制。由于以上原因,MDSR是一项相当困难的任务。 针对汉语数码语音识别提出了一系列高性能的算法,使MDSR识别率达到了98.8%。由这些算法构成的识别系统框图如图1所示。 MDSR系统[1]提取的语音特征参数包括用于识别的参数和用于端点检测的参数。

图1 MDSR系统框图
1 语音前端处理 语音前端处理包括语音特征提取和端点检测两部分。
1.1 语音特征提取 1.1.1 基本识别参数 目前常用的语音识别参数有基于线性预测编码(LPC)的线性预测倒谱系数(LPCC)和基于Mel频标的倒谱系数(MFCC)[2]。实验证明,采用MFCC参数时系统识别率高于采用LPCC参数。因此本文的基本识别参数采用MFCC参数及一阶差分MFCC参数。
1.1.2 共振峰轨迹 在MDSR中,易混淆语音“2”和“8”可以由其第2,3共振峰的变化趋势区分开[3]。因此可将共振峰轨迹作为识别参数之一,并选用峰值选取算法来提取共振峰轨迹[3]。
1.1.3 鼻音特征参数 汉语数码语音中,“0”的元音具有鼻音的特征,而“0”容易与具有非鼻化元音的“6”混淆,因此鼻音特征可用于提高“0”的识别率。鼻音的特征包括[4]:
1) 鼻音在频谱低端(约0.25kHz左右)有1个较强的共振峰。 2)
鼻音在中频段(约0.8~2.3kHz)的能量分布较为均匀,没有明显的峰或谷。 采用以下2个参数表征鼻音的特征: 1) 低频能量比:
(1)
其中fn为鼻音低频共振峰频率,
B为鼻音低频共振峰带宽。Fk为对语音作快速Fourior变换(FFT)后第k个频率点的能量, [f1,f2]则为语音“6”能量集中的频带。 2)
频谱质心:
(2)
其中[fL,fH]为0.8~2.3kHz的中频段。由于MDSR系统采用的基本识别参数为MFCC参数,其计算过程中需要作FFT,所以低频能量比和频谱质心两个参数可以顺带算出,不会影响特征提取的实时完成。
1.2 端点检测 本文提出了基于语音特征的实时端点检测算法(feature-based
real-time endpoint detection,
FRED),充分利用汉语数码语音的特点,在实时提取特征参数后完成端点检测,检测到的端点只精确到帧的量级。 根据语音学知识[4],
MDSR中各类语音的频谱特点如表1
表1 汉语数码语音频谱特点
| |
频 谱 特 征 |
| 浊 音 |
元 音 |
低频(0.1至0.4kHz间)能量较高;
中频(0.64至2.8kHz)能量较高 |
| 浊辅音 |
低频(0.1至0.4kHz间)能量较高;
中频(0.64至2.8kHz)能量较低 |
| 清辅音 |
|
高频(3.5kHz以上)能量较高 |
采用3个频谱能量分布参数{R1,R2,R3}分别反应频谱高频、低频和中频的分布特征。其定义如下:
(3)
(4)
其中: i表示第i帧, N为语音帧长,也即FFT点数,
Fk为对语音帧作FFT后各频率点能量, T为语音的总帧数,式(3),(4)
中求和号的上下限由表1中相应频率范围确定,当N为256,采样频率为实验所用语音库的11kHz时, f0=81, f1=9, f2 =2, f3=65,
f4=15.由于进行了能量归一化,所以上述特征与语音的强度是无关的。由于计算MFCC参数时需要作FFT,因此频谱能量分布参数可以顺带算出。此外,用于端点检测的参数还包括短时能量参数E0(i)[5]. 由以上参数,
FRED算法过程为: 1) 根据采入信号首尾两帧确定能量阈值; 2) 根据参数R2确定语音浊音段; 3)
根据参数R1与E0向浊音段两端扩展式搜索语音起始帧; 4) 根据参数R3确定元音段。 FRED算法的特点是: 1)
利用了语音的本质特征进行端点检测,能够很好地适应环境的变化和干扰,实验证明FRED算法可以有效地提高识别率; 2)
将语音端点定在帧的量级上,保证了特征参数在采样时实时提取,节省了系统运行时间,大大减少了系统所需的存储量; 3)
能够准确地确定语音的元音段,从而将辅音与元音分割开,有利于对语音局部特征的辨识。 2 识别算法 实验表明,
MDSR的识别错误集中在少数几对易混语音中[1],因此本文采用了两极识别框架,即第一级完成对识别结果的初步确定,第二级完成对易混淆语音的进一步辨识。
2.1 第一级识别 在第一级识别中采用的基本方法为离散隐含Malkov模型(DHMM)算法[5],用Viterbi算法[5]计算各个数码语音模型产生采入语音的概率Pr。 由于HMM是一个有人为假设的模型,所以有不可避免的缺陷。其中一个缺陷是在HMM中各状态的持续时间呈几何分布,即
P(Li=n)=anii(1-aii), (5)
其中: Li为状态i的持续时间,
aii为状态i跳转回自身的概率。按照式(5),状态持续时间越长,其概率越小,这是不 |
|