DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2090|回复: 0
打印 上一主题 下一主题

[待整理] 大热的麦克风阵列语音识别系统的设计和轻松实现,提供软硬件解决方案

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 16:26:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
摘要:
          在非近距离语音识别中,由于衰减、干扰、混响等因素的影响,使语音识别率显著降低。使用麦克风阵进行语音识别的好处是通过提高信噪比来提高语音识别率。而本项目与传统的麦克风阵进行语音识别的方法又有不同,它将语音接收端与语音识别部分组成一个反馈系统,通过优化接收端滤波器的系数,使跟语音识别密切相关的倒谱域似然比最大,来提高语音识别准确率。在进行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 为其中长度较长的信号,其长度为 ,那么:
           
         
          即为相对时延。若 ,则信号 比信号 先到达,反之,则信号 先到达。现在讨论 的情况,则要对信号进行延时补偿,即将信号向左平移 ,平移出的值舍去。
           
          根据以上两路信号的讨论,可以总结出四路信号进行延时补偿的步骤:
           
          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个词,但是这都需要进一步的研究以及更高性能的硬件支持。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-30 03:39 , 耗时 0.093313 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表