微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 从原理入手,解析基于DSP的汉字语音识别系统的实现方式

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

时间:12-22 来源:互联网 点击:

        语音识别是机器通过识别和理解过程把语音信号转变为相应的文本文件或命令的高技术。作为专门的研究领域,语音识别又是一门交叉学科,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。语音识别经过四十多年的发展,已经显示出巨大的应用前景。本文从实现原理入手,介绍语音识别系统的实现方式。
概述
本汉语语音识别系统是一个非特定人的、孤立音语音识别系统。其中孤立音至少包括汉语的400多个调音节(不考虑声调)以及一些常用的词组。识别系统主要用于手持设备,如手机、掌上电脑。这些设备的CPU一般是DSP,硬件资源十分有限,而且大多不支持浮点运算。那么,对系统各个部分的设计首要考虑的是系统对硬件资源的开销必须尽量的小,不能超过这些设备的限制。硬件资源的开销包括存储模型参数的开销,以及识别过程中对内存、DSP的运行时间的开销。
2 实现流程
一般的语音处理流程图如图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频率和线性频率的转换关系如下:



这些带通滤波器的参数是事先计算好的。图2给出了滤波器组的分布图,其中M 选择为26,FFT点数N为256,语音信号的采样频率为8000 Hz。


图2 利用人耳仿生学特性设计的Mel尺度滤波器组


       
4 测度估计
测度估计技术可以采用动态时间弯折DTW、隐马尔可夫模型HMM或人工神经网ANN等算法,本项目采用国际上最先进的HMM,这样能够比较容易的实现非特定人,而且系统结构也比较灵活、一致。
根据描述的语音单位的大小,HMM可分为:基于整词模型的HMM(Word based HMM)。其优点为可以很好地描述词内音素协同发音的特点,建模过程也较为简单。因此很多小词汇量语音识别系统均采用整词模型HMM。但在大词汇量语音识别中由于所需建立的模型太多而无法使用。
基于子词模型的HMM(Sub Word based HMM)。该类HMM描述的语音单位比词小,如英语语音识别中的基本音素,汉语语音识别中的半音节等。其优点为模型总数少,所以在大词汇量语音识别中得到了广泛的应用。其缺点在于其描述词内协同发音的能力劣于整词模型,但由于子词模型已经得到了非常充分的研究,所以近年来在很多小词表应用识别系统中也用了子词模型。本技术方案采用基于半音节(即声、韵母)的语音建模方法,其识别模型拓扑结构如图3 所示,其中静音HMM采用1个状态,每一声母模型采用2个状态,每一韵母模型采用4个状态。


图3 识别模型拓扑结构

根据输出概率分布的不同,HMM(隐含马尔科夫模型)可分为:
离散HMM(Discrete HMM,DHMM)。其输出概率是基于一套码本的离散概率分布,其优点在于由于实现了存储量和计算量都较小,所需的训练语音也较少,但其矢量量化的过程会造成性能的损失。
连续HMM(Continuous Density HMM,CDHMM)。其输出概率是连续概率密度函数(一般是高斯混合密度函数)。其所需的训练语音较多,模型参数存储量和计算量都较大,在训练语音足够时,其性能优于DHMM。
半连续HMM(Semi Continuous HMM,SCHMM)。SCHMM是DHMM和CDHMM的折衷,与DHMM相似,其输出为一套码本,但每个码字均为一个连续概率密度分布函数,这一点与CDHMM相近。其性能和所需的训练语音等均介于DHMM和CDHMM之间。
考虑到汉语数码语音所需的模型较少,很容易获得足够多的训练语音,因此本技术方案采用了CDHMM为语音模型。
状态输出概率分布为混合高斯密度函数。其各分量计算如下:



总的概率输出即为各分量的加权和:



式中:s表示当前状态;M为混合分量数;u,Σ ,c分别为各混合分量的均值矢量、协方差矩阵和混合分量系数。
该算法利用Viterbi译码的过程进行帧同步的搜索,易于实时实现,也容易纳入语法信息。考虑到系统的实时实现性,本技术方案采用Viterbi译码作为系统的搜索算法。
5 试验结果
在汉语全音节与词组混合的语音识别任务中,得到的初步实验结果为:PC微机浮点算法条件下正确覆盖率不低于98%,定点算法的正确覆盖率不低于97%。DSP嵌入系统定点条件下正确覆盖率不低于96%。系统的响应时间满足实时识别的要求。通过测试组严格的检查及抽样测试,证明上述结果真实可靠,该输入法基本达到实用化要求。
6 结语
语音汉字输入技术的研发是具有重大经济和社会意义的课题,该项目采用孤立语音的全音节和词组的混合识别模式,使用连续概率分布非特定人的声学模型,并辅以多候选的人机交互方式,较好地实现了在移动(便携式)电子设备上资源有限的条件下方便快捷的汉字语音输入。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top