本方案在接收阵上引入一组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,为其中长度较长的信号,其长度为,那么:
即为相对时延。若,则信号比信号先到达,反之,则信号先到达。现在讨论的情况,则要对信号进行延时补偿,即将信号向左平移,平移出的值舍去。
根据以上两路信号的讨论,可以总结出四路信号进行延时补偿的步骤:
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个词,但是这都需要进一步的研究以及更高性能的硬件支持。 |
|