基于FPGA的语音智能操控系统
输出由外围设备实现外,其他部分处理全部有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)所谓的平行四边
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)