DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[待整理] 基于FPGA的语音智能操控系统

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 16:19:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
设计摘要:
        1、设计意图
        科学技术水平的发展,使人们的生活受到潜移默化的影响,并逐渐改变人们的生活习惯,不断地提高人们的生活质量。比如由于全自动洗衣机、微波炉等智能化设备的出现,我们不必按键操控每一步过程,机器可以自动完成整个过程,用户也可以遥控他们。
         
        智能化所带来的方便、快捷带给人们更加舒适的生活,但是随着家用电器的不断增多,需要的遥控器也不断增多,给人们造成许多的不便,因此,一种能够解放人们双手并且实时、快速、方便的语音智能操控系统的概念应运而生。语音智能操控系统可以取代多个遥控器,当需要控制某一家电时,只需说出所需调节的内容(如,空调开,温度25℃),语音智能操控系统就能通过对操控者的语音识别,完成匹配并发出遥控信息完成相应的操作。
         
        基于FPGA实现语音智能操控系统具有:
        (一)设计灵活、操作方便、快捷
         
        (二)准确度高,工作范围大
         
        (三)可随时用语音操控带有遥控装置的用电器
         
        (四)可扩展性强,增强了系统的外接功能
         
        (五)便于更新和系统升级,可随时嵌入更新系统程序
         
        (六)设计周期短、开发费用低、功耗低等独特优点。
         
        2、适用范围
        语音智能操控系统主要控制的家用电器有两类,第一类是开关型家电,包括家居照明、饮水机、电饭煲、抽风机、充电器、电风扇等;第二类是红外遥控型家电,包括空调、电视机、DVD、电动窗帘、电动闸门等。还有很多有待开发的应用领域,范围很广。
         
        3、主板
        该系统利用FPGA板块,可自主嵌入应用程序,用户可根据自己需求植入语音信息,以待匹配。如果用户不需要某项语音匹配信息,可删除,灵活性非常高。同时,由FPGA主板设计ASIC电路,具有设计周期短、开发费用低、功耗低的优点。系统控制核心都在FPGA内部实现,可以极为方便的更新和升级系统,大大的提高了系统的通用性和可提高性。
         
        功能描述:
        由FPGA实现语音智能操控系统的系统构架图如图2-1所示,它是以FPGA为主板,嵌入语音识别系统并结合红外遥控系统完成的智能操控系统。
       

         

        图21  由FPGA实现语音智能操控系统的系统构架图

         

        FPGA中嵌入的语音识别系统分为两种工作模式:训练模式和识别模式首先,用户在训练模式下,完成相应的语音信息的输入和特征存储工作,建立完整的语音信息特征数据库。然后,在识别模式下,由语音输入设备输入语音信息进行比对,匹配后即发出相应操作的信号,遥控设备。系统框图如图2-2所示
       

        图2-2   语音识别系统的框图

         

        该系统分为五个模块:语音信息特征提取模块、语音信息特征数据库建立模块、语音信息输入采集与预处理模块、语音信息比对模块、操控指令连接发送模块。
         
        1、语音信息特征提取模块,即对接收到的语音信息通过语音识别算法提取相关特征匹配数据,其中用到语音信息输入采集模块。
         
        2、语音信息特征数据库建立模块,即对特征提取模块所得匹配数据存储到存储器中,以备对比匹配使用。
         
        3、语音信息输入采集模块,即通过麦克风输入语音信息,当满足要求时,通过信息特征提取模块对输入的语音信息的特征数据进行提取,保存到缓冲区,等待对比。
         
        4、语音信息比对模块,即用保存到缓冲区的特征数据和数据库中的数据进行比对,是否与某一数据匹配。
         
         5、操控指令连接发送模块,即当输入的语音信息与某一库存信息匹配时,就完成主板与红外发射装置的连接并发出相应的操作指令信息,完成操作。
         
        整个过程由嵌入到FPGA芯片内的程序完成。另外,基于NiosII的SOPC系统帮助我们完成了上述功能。同时,我们通过开发工具SOPC Builder,在FPGA上创建软硬件开发的基础平台,可以很快的将硬件系统(包括处理器、存储器、外设接口和用户逻辑电路)与常规软件集成在单一可编程芯片中。而且,SOPC Builder 还提供了标准的接口方式以便我们将自己的外围电路做成Nios Ⅱ软核可以添加的外设模块。这种设计方式更加方便了我们对系统的调试。
         
        性能参数:
           
  •                 系统的性能参数:
        麦克风参数:
         
        灵敏度:-34~2dB(0dB=1V/Pa  at  1kHz)

         

        频率响应:20Hz~20KHz

            

        阻抗:50Ω±30% (at 1kHz) 负载阻抗:≥1000Ω

            

        等效噪声级:13/14/15dB

          

        信噪比:81/80/79 dB

          

        最大声压级:135dB (at 1kHz≤1% T.H.D)

            

        耗电电流:3mA

          

        2、 工作环境:

         

            工作温度:

         

            相对湿度:

         

        3、 通信协议参数:

         

            波特率:9600bit/s;起始位;1bit;

         

            数据位:8bit;    停止位:1bit.

         

        4、 算法参数:

         

        5、 耗时:

         

        6、 系统资源利用情况:

         

        设计结构:

        本设计以FPGA 系列Spartan-6开发板为设计平台,开发板、麦克风、红外模块组成完整的硬件平台,整个系统简洁美观,无杂乱的连线,系统中语音采集和控制输出由外围设备实现外,其他部分处理全部有FPGA系列Spartan-6实现。图4-1为基于FPGA实现语音智能操控系统硬件设计图。
       

        图4-1  基于FPGA实现语音智能操控系统的硬件设计图

         

        系统上电后,软件即开始运行一系列初始化程序完成系统的初始化工作,然后要求用户选择工作模式,工作模式分为训练模式和识别模式,模式的选择由用户通过主板的按键进行,若不选择,则默认为进入识别模式。下面是这两种工作模式软件流程的简要说明。图4-2是语音智能操控系统总体设计流程图。
         
       

         

          图4-2语音智能操控系统总体设计流程图

         

        训练模式:在该模式下,对语音信息进行训练(就是把所用到的目标语音信息特征数据进行存储,建立数据库)。进入训练模式后,用户根据指示灯的提示,输入相应的语音信息,计算机内部程序对输入的语音信息进行特征提取并将特征数据存入缓冲区,每一遍提取后都会进行检测,判断是否充分,若不充分,返回上一单元继续提取,直到充分为止。然后进行数据存储,将存入缓冲区的数据存入存储器中。系统发出提示是否继续训练,用户根据主板的指示灯,通过按键选择,若结束训练,系统返回模式选择单元,结束训练。

         

        识别模式:在识别模式下,用户输入语音指令信息,系统检测是否满足识别条件(比如是否是正常的语音信号),然后进行特征数据提取,整个过程和训练模式中的一样,提取后再进行匹配,在数据库中寻找与提取的特征数据相匹配的数据。若没有找到,则返回输入单元,继续输入;若找到匹配后,进入下一单元。根据存储的特征数据在系统中找到相应的操作指令,连接红外发射装置,发出操控指令信号,操控其他设备。完成之后,返回模式选择单元。

         
        设计方法:

        本系统设计开发中主要使用的硬件工具和软件设备:

        Spartan—6、音频编解码芯片、麦克风、ISE仿真软件。

         

        以下分模块介绍所用算法:

        5.1语音信息输入采集与预处理模块
        本模块要实现的功能是采集语音信号,并对其进行FIR滤波、语音数据归一化、语音的端点检测处理。语音采集部分采用外加的音频编解码器进行设计,通过VERILOG HDL编写对芯片的工作模式进行设置,是芯片在上电后对工作模式设置在系统要求的状态下。
         
        语音预处理包含三部分,语音归一化处理单元、FIR滤波器运算单元、语音端点检测单元。图5-1.1是预处理的结构功能图:
         
       

        图5-1.1预处理的结构功能图

         

        在分析处理之前必须进行端点检测过程,以确定语音信号的开始点和结束点。其中包括对语音信号短时能量和短时过零率的分析。
        短时能量

        其中, 为原样本序列在窗函数所切取出的第n段短时语音,N为帧长。

        短时过零率
         
                                 
                                                                
         
        其中, 为符号函数。
         

       

        图5-1.2语音的端点检测状态图

         

        5..2语音信息特征数据的提取模块

        这里利用到MFCC音频特征提取算法,语音信号输入系统后,先进行加窗、滤波等预处理,再进行采样等过程,最终完成特征数据的提取。在识别模式下,语音信息的采集也是用到了这个算法,过程相同。

         

        MFCC算法是有效的基于内容的音频特征提取算法,其处理过程如下:

        (1) 对音频信号进行预处理,即预加重、分帧、加窗处理;

         

        (2)将每帧音频信号进行傅里叶变换得到其频谱:

         

        (3)用Mel滤波器组在频域进行带通滤波,并对每个频带的能量叠加得到频谱能量x(k);

         

        (4)将滤波器组的能量取对数,然后做离散余弦变换,即得到MFCC特征。

         

        图5-2为MFCC特征提取算法的流程图。

                         

        图5-2 MFCC特征提取算法的流程图

         

        计算公式为:

         

        此时所提取的特征为音频信号的静态特征,该信号再经一阶差分后即得到音频的动态特征。

         

        5.3 特征数据匹配模块

        完成特征数据提取后,系统需要完成匹配的过程,这里用到了DTW算法,即在数据库里重复寻找与输入的音频特征差别最小的数据信息,完成匹配。

         

        DTW算法是典型的DP人算法,它利用动态时间规整方法将模板特征序列和语音特征序列进行匹配,比较二者之间的失真,得出识别判决的依据。DTW算法的具体过程如下:

         

        假设存储的一个词条模板包括M帧倒谱特征R={r(m);m=1,2,...,M};识别特征序列包括N帧倒谱特征T={t(n);n=1,2,...,N}。在r(i)和t(i)之间定义帧局部失真D(I,j),D(I,j)=|r(i)-t(i)|*2,通过动态搜索路径中找到的累积失真最小的路径,即最优的匹配结果。采用对称形式DTW:

         

                   

        其中S(i,j)是累积失真,D(i,j)是局部失真。

         

        当动态规划过程计算到固定节点(N,M)时,可以计算出该模板动态匹配的归一化距离,识别结果即该归一化距离,最小的模板词条

                               

         

        计算过程中,为了减少计算量,我们采取以下方法:

        全局路径约束,即只计算四条直线:y=0.5x,y=2x,y=0.5x+(M-0.5N)

        ,y=2x+(M-2N)所谓的平行四边形内部的点;

         

        端点约束为固定起点、终点,即从左下角开始计算,到右上角点截止;

         

        对进行模式匹配的两条语音命令的长度N和M进行了约束,如果两者之间相差太大则直接放弃该参数模板,不进行DTW运算。      

         

       

        图5-3 DTW算法流程图

         
        设计特点:

        该设计的主要特点:

        该设计采用MFCC音频特征提取算法和DTW特征匹配算法,对音频进行了加窗、滤波预处理,特征数据的提取和比对都比较精确,系统的稳定性和准确性都得到了提高。

         

        系统采用Spartan-6主板,将程序编写后嵌入到芯片内部,外部只是采用简单的线,用于连接输入、输出设备,主板采用集成电路,减少了连线错误的可能性。同时,内嵌的程序可作修改,更具实用性,也节省了制作材料。

         

        当系统出现错误时,可调出内部程序,在仿真软件上进行模拟查询错误;若问题出在外部电路,由于电路连线简单,用户便于查找和更改。相比于单纯的电路结构,该系统结构明了,无需大范围的改动,更加实用和节省材料。

         

        系统采用红外模块操控家电设备,结构简单,控制方便。

         

        红外操控本身就具有可遥控的特点,即芯片可固定于某一位置,连接多个红外发射端口,就可完成对多个设备的操控。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-2 22:55 , 耗时 0.096887 秒, 22 个查询请求 , Gzip 开启.

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

桂公网安备 45031202000115号

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

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

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

QQ:28000622;Email:libyoufer@sina.com

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

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