从原理入手,解析基于DSP的汉字语音识别系统的实现方式

2016年02月25日

从原理入手,解析基于DSP的汉字语音识别系统的实现方式

语音识别是机器通过识别和理解过程把语音信号转变为相应的文本文件或命令的高技术。作为专门的研究领域,语音识别又是一门交叉学科,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。语音识别经过四十多年的发展,已经显示出巨大的应用前景。本文从实现原理入手,介绍语音识别系统的实现方式。

概述

本汉语语音识别系统是一个非特定人的、孤立音语音识别系统。其中孤立音至少包括汉语的400多个调音节(不考虑声调)以及一些常用的词组。识别系统主要用于手持设备,如手机、掌上电脑。这些设备的CPU一般是DSP,硬件资源十分有限,而且大多不支持浮点运算。那么,对系统各个部分的设计首要考虑的是系统对硬件资源的开销必须尽量的小,不能超过这些设备的限制。硬件资源的开销包括存储模型参数的开销,以及识别过程中对内存、DSP的运行时间的开销。

2 实现流程

一般的语音处理流程图如图1所示。

图1 语音识别系统的处理流图

图1 语音识别系统的处理流图

在语音识别系统中,模拟的语音信号在完成A/D转换后成为数字信号,但时域上的语音信号很难直接用于识别,因此需要从语音信号中提取语音的特征,一方面可以获得语音的本质特征,另一方面也起到数据压缩的作用。输入的模拟语音信号首先要进行预处理,包括预滤波、采样和量化、加窗、端点检测、预加重等。语音识别系统的模型通常由声学模型和语言模型两部分组成,分别对应于语音到半音节概率的计算和半音节到字概率的计算。

3特征提取

目前通用的特征提取方法是基于语音帧的,即将语音信号分为有重叠的若干帧,对每一帧提取语音特征。由于本技术方案采用的语音库采样率为8 kHz,因此采用帧长为256个采样点(即32 ms),帧步长或帧移(即每一帧语音与上一帧语音不重叠的长度)为80个采样点(即10 ms)。

现有语音识别系统采用的最主要的两种语音特征包括:

线性预测倒谱参数(Linear Prediction Cepstrum Coefficient,LPCC),该特征是基于语音信号为自回归信号的假设,利用线性预测分析获得倒谱参数。LPCC参数的优点是计算量小,对元音有较好的描述能力,其缺点在于对辅音的描述能力较差,抗噪声性能较差。

Mel 频标倒谱参数(Mel Frequency Cepstrum Coefficient,MFCC),该特征考虑了人耳的听觉特性,将频谱转化为基于Mel频标的非线性频谱,然后转换到倒谱域上。由于充分模拟了人的听觉特性,而且没有任何前提假设,MFCC参数具有识别性能和抗噪能力,实验证明在汉语数码语音识别中MFCC 参数的性能明显优于LPCC参数,因此本技术方案采用MFCC参数为语音特征参数。

求MFCC参数的大致过程为:

对输入语音帧加Hamming窗后做快速傅里叶变换(Fast Fourier Transformation,FFT),将时域信号转化为频域信号。

将线性频标转化为Mel频标。转化方法是将频域信号通过24个三角滤波器,其中中心频率在1 000 Hz以上和以下的各12个。滤波器的中心频率间隔特点是在1000Hz以下为线性分布,1 000 Hz以上为等比数列分布。三角滤波器的输出为:

式中:Xk为频谱上第k个频谱点的能量;Yi为第i个滤波器的输出;Fi为第i个滤波器的中心频率。

用离散余弦变换(Discrete Cosine Transformation,DCT)将滤波器输出变换到倒谱域:

式中:p为MFCC参数的阶数,这里取p = 12。{Ck}k = 1,2,…,12即为所求的MFCC参数。

为体现语音的动态特性,在语音特征中加入了一阶差分倒谱,其计算方法如下式所示:

式中下标l与l - k表示第l与l - k帧;m表示第m维。

MFCC参数计算的要点是将线性功率谱S(n)转换成为Mel频率下的功率谱,这需要在计算之前先在语音的频谱范围内设置若干个带通滤波器Hm(n),m= 0,1,2,…,M - 1,n = 0,1,2,…,N/2 - 1。M为滤波器个数,N为一帧语音信号的点数。每个滤波器具有三角形特性,其中心频率为fm,它们在Mel频率轴上是均匀分布的。在线性频率上,当m 较小时相邻的fm间隔很小,随着m的增加相邻的fm间隔逐渐拉开。Mel频率和线性频率的转换关系如下: