摘要:
在非近距离语音识别中,由于衰减、干扰、混响等因素的影响,使语音识别率显著降低。使用麦克风阵进行语音识别的好处是通过提高信噪比来提高语音识别率。而本项目与传统的麦克风阵进行语音识别的方法又有不同,它将语音接收端与语音识别部分组成一个反馈系统,通过优化接收端滤波器的系数,使跟语音识别密切相关的倒谱域似然比最大,来提高语音识别准确率。在进行Matlab仿真之后,将算法应用到FPGA中。FPGA开发板暂定为Xilinx公司的Nexys 3 Spartan-6 FPGA Board。
1、研究方案
1.1 总统研究方案
当前基于隐马尔可夫模型(HMM)的麦克风阵语音识别系统,主要包括阵列信号处理和特征识别两个阶段,原理图如图1.1所示:
图1.1 基于HMM的麦克风阵语音识别系统结构
其中前端的阵处理主要是为了进行语音增强,目的是在提取语音参数之前,尽量减小信号波形的失真。这一做法基于的假设是,对波形质量得到改善的信号进行特征识别能够提高识别性能,即先后单独进行阵处理和特征识别操作,如图1.2所示:
图1.2 常规的麦克风阵语音识别系统框架
本项目采用的处理方法,对阵元接收的信号进行滤波求和,其目的并不是为了改善信号波形质量,而是在于直接提高识别过程中正确假设的似然概率,进而提高识别率。这一方案需要将阵处理和识别过程联合起来考虑,框架如图1.3所示:
图1.3 结合识别过程进行阵处理的语音识别系统框架
本方案在接收阵上引入一组FIR滤波器,通过优化滤波器系数,产生一组阵参数以最大化信号被正确识别的概率。此方案将识别系统的输出结果反馈至前端的麦克风阵列,把识别系统的统计模型也考虑到前端阵处理中,是一种根据期望假设最大化而非期望信号最优化的自适应处理方法,以强化对于识别更为重要的信号分量,而之前的方法则是无分别地同等地加强所有的信号分量。
语音识别系统的工作原理在于从模板库中找出最有可能产生特征观察矢量序列的单词作为识别结果输出,即:对某一待识别的观察矢量,词库中每个词汇对应的HMM模板分别计算出相应的似然概率,选择使似然概率最大的模板所对应的词汇作为识别假设结果输出。
本文采用FIR滤波器对麦克风阵接收的信号进行处理,然后从滤波得到的信号中提取语音特征矢量
。定义一个滤波器参数矢量
包含该FIR滤波器中所有的系数,识别假设的得出依照贝叶斯分类准则:
,其中词语的发生概率
是基于语言模型的经验值,而假设似然概率
的计算则基于识别系统的统计模型。本文联合空时处理和语音识别过程,目的就在于搜索出一组FIR滤波器参数矢量
使得正确假设的似然概率
最大化,提高正确假设与非正确假设之间的概率差值,从而提高得到正确假设的概率。具体流程见图1.4、图1.5。其中图1.4是训练滤波器系数的框图,图1.5是利用已训练完成的滤波器系数进行语音识别的框图。
图1.4 训练FIR滤波器系数流程图
图1.5 联合FIR滤波的语音识别流程图
1.2 关键算法
1.2.1延时求和
采用互相关法计算各路信号的时间延迟。假设有四路信号,分别为
。以
为参考信号,分别与
作互相关运算。以
与
为例,与作互相关,
指代互相关运算。求出使
最大时,信号所处的时刻,再减去与中长度较长的那个信号的长度,就可以求得信号的相对时延了。即假设使互相关函数
最大的时刻为t,
为其中长度较长的信号,其长度为
,那么:
即为相对时延。若
,则信号
比信号
先到达,反之,则信号
先到达。现在讨论
的情况,则要对信号进行延时补偿,即将信号向左平移
,平移出的值舍去。
根据以上两路信号的讨论,可以总结出四路信号进行延时补偿的步骤:
- 以信号
为参考信号,分别对其他三路信号作互相关运算;
- 记三个互相关函数分别为
;
- 计算三路信号相对于信号
的时延,分别即为
;
- 找出三个时延中值最大的那个,假设为
;
- 如果
大于0,那么信号
向左平移
,其他三路信号向左平移
;
- 如果
小于0,那么信号
不用平移,其他三路信号向左平移
1.2.2 特征参数提取
其中特征参数的提取是采用Mel频率倒谱系数,这是因为Mel刻度在对声学测量时是最合理的频率刻度。基于听觉模型得到的Mel倒谱系数比基于声道模型得到的LPC倒谱系数更符合人的听觉特性,在有信道噪声和频谱失真的情况下,能产生更高的识别精度。所以本语音识别系统选择MFCC做为特征提取的参数。MFCC的产生过程可用图1.6表示。
图1.6 计算MFCC的流程图
2、实验设备及设计方案
本项目首先用Matlab仿真算法,采用一个六通道的音频采集硬件系统,连接到PC上采集语音信号。该系统主要包括六只同型号的全指向性电容话筒,一个放大倍数可调的多通道低噪放,和一块采样频率最高可达50KHz的数据采集卡,结构框图如图2.1所示,图2.2是实物拍摄照片。实验中,将六个麦克风排列成按照5.2cm的相邻阵元中心间距排列成一均匀线阵进行数据采集,如图2.3所示。
图2.1 基于PC的音频采集硬件系统框架
图2.2 音频采集硬件实物
图2.3 麦克风阵架子,架子长约65cm,宽约20cm
本实验每个人录制HMM模型库中的十个单词,分别为able、afraid、already、autumn、base、below、body、box、build、careful,录制人离麦克风阵2.5米左右,麦克风间的距离约为5cm,这样就能够近似认为,说话人说出的语音信号是由平面波的形式到达麦克风阵的。录制环境的信噪比大约为50dB。将这些录制的单词储存在PC中,然后用Matlab程序进行训练得到滤波器系数。之后采用图1.5的流程进行语音识别。经过初步的研究发现,该算法具有较好的识别效果。
下一步就是将Matlab算法移植到FPGA中,如图2.4。
图2.4 基于Nexys 3 Spartan-6 FPGA Board的音频采集硬件系统框架
首先将训练得到的滤波器系数及HMM模型存储与Nexys 3 Spartan-6 FPGA Board的外部存储器中,之后经多路低噪声放大器,AD信号采集卡将测试者的语音信号输入到FPGA。因为采集卡输入的是串行的信号,FPGA需将六路语音信号进行时分复用采集,转换为并行的信号,供后续处理。后续处理流程及算法参见图1.5及1.2 关键算法。其中滤波器、乘法、FFT等等算法可以利用现有的IP核,以提高设计效率。识别完成后将识别结果在七段译码显示器上显示。为了简便起见,可以将able、afraid、already、autumn、base、below、body、box、build、careful分别标定为1~10,然后将相应的数字显示在七段译码显示器上。
如果识别效果理想,可以将现有的十个单词的库提升到50个词、100个词,但是这都需要进一步的研究以及更高性能的硬件支持。 |