FPGA语音识别的四旋翼飞行器控制系统设计

2018-01-09 23:19靖固张学松
哈尔滨理工大学学报 2017年6期

靖固+张学松

摘 要:以FPGA语音识别命令作为四旋翼的航拍遥控命令,将FPGA快速处理信息的能力与语音控制的简单、准确、灵活特点相结合。控制系统分为2部分,四旋翼飞行器利用单片机,采用模糊神经网络PID控制四旋翼螺旋桨的转速达到对机身的飞行高度和方向的控制;语音遥控命令利用FPGA,采用优化的隐马尔可夫模型完成对机身的飞行姿态的命令控制。经仿真验证语音控制四旋翼控制系统具有很强的实时性,能很好地控制四旋翼飞行器完成航拍任务。

关键词:FPGA;四旋翼控制系统;模糊神经网络PID;优化的隐马尔可夫模型

DOI:10.15938/j.jhust.2017.06.018

中图分类号: TP391.41

文献标志码: A

文章编号: 1007-2683(2017)06-0095-07

Abstract:This paper uses FPGA speech recognition command as the fourrotor aerial remote control command. The FPGA can quickly process information combined voice control of the simple, accurate and flexible features.The control system is divided into two parts. The fourrotor craft uses the singlechip computer and it uses the fuzzy neural network PID to control the speed of the fourrotor propeller to achieve the control of the flying height and direction of the fuselage. The voice remote command uses FPGA to optimize the hidden markov model that completes the command control of the flight attitude of the fuselage. The simulation of the fourrotor control system has a strong realtime, and the system can control the four rotorcraft to complete the aerial mission better.

Keywords:FPGA; fourrotor control system; fuzzy neural network PID; optimized hidden Markov model

0 引 言

伴随着航拍等新型技术的崛起,四旋翼飞行器成为近年来的热点研究主题[1]。本文就是利用FPGA的快速处理信息的能力[2],将信息量較大的语音航拍遥控命令[3]在FPGA上识别处理,将FPGA快速处理信息的能力与语音控制的简单、准确、灵活性特点相结合,使四旋翼飞行器控制系统更能满足特定系统的实时性、准确性和灵活性的要求[4]。

1 系统整体设计

基于FPGA语音识别的四旋翼飞行器控制系统是由四旋翼飞行器系统和语音控制系统组成。语音控制系统是由FPGA语音识别[2]模块进行语音识别控制,首先由麦克风采集语音控制命令,通过FPGA处理转换成数字控制信号,通过2.4GHz无线模块发送;四旋翼飞行器控制系统由四旋翼上的2.4GHz无线接收模块、MPU6050检测模块和单片机主控器组成。单片机将接收的控制命令解析出姿态角与MPU6050检测的当前四旋翼姿态比较后,通过单片机控制器的整合来控制四旋翼的飞行姿态。系统整体框图如图1,通过显示屏当前的图像来调整摄像头的角度,进而达到想要航拍的图像。

2 四旋翼控制器系统设计

2.1 四旋翼飞行器工作原理

四旋翼飞行器是由一对正桨、一对副桨、4个无刷电机、4个无刷电调、电池、机架、2.4GHz无线接收模块[5]、MPU6050[6]以及起主要控制的单片机处理器组成。4个螺旋桨正副桨交替安装,两个螺旋桨顺时针旋转两个螺旋桨逆时针旋转。四旋翼飞行器有 “十”字模型和“X”字模型[7],本系统采用“X”字模型。系统通过控制四旋翼四个螺旋桨转速来改变四旋翼3个姿态角,从而改变四旋翼运动轨迹。三个姿态角如图2、图3和图4所示。α为俯仰角,β为偏航角,γ为横滚角。

2.2 建立四旋翼飞行器的数学模型

首先定义 “X”字模型坐标系,在悬停状态下四旋翼受力情况如图5所示[8]。

偏差和偏差变化率作为模糊神经网络PID控制器的输入,经过学习和训练的模糊神经网络输出P、I、D,再经过比例因子调整后得到最佳的参数,输入给PID控制器。模糊神经网络[11]控制器有输入层、隶属函数层、模糊推理层、归一化层、输出层组成。其结构如图7所示[12]。

仿真结果表明模糊神经网络控制器能够很好地控制四旋翼飞行器平稳飞行,当有干扰的时候也能很快的恢复到平稳飞行状态。

3 语音控制命令识别系统

3.1 优化MFCC特征

中国有56个民族,每个民族都有自己的方言且各有特点,对于语音识别加大了识别的难度。在研究中发现,梅尔倒谱系数能很好地区分这些特征,并将语音识别出来。

首先对采集的语音信号进行RC滤波和分帧,通过RC滤波器滤除语音命令输入的干扰信号,本系统帧长取256,帧移60;其次,设置预加重滤波器,能消除部分噪声,以提升清音部分的能量;再其次,加汉明窗,端点检测,在第n帧的短时能量大于噪声的短时能量,即第n帧短时能量En,并用短时过零率来区分无声、浊音以及清音。再进行FFT变换是为了得到语音信号的功率谱,而语音信号是在时域下的信号,必须变到频域下才能进行处理从而得到想要的数据。endprint

三角滤波器的作用有两方面:第一,平滑频谱,消除谐波,凸显原语音的共振峰;第二,降低运算量。Mel滤波器组有M个,中心频率为f(m), 本系统取m=24。计算滤波器组输出的对数能量,经DCT变换再加一阶动态差分,构成MFCC系数。

由于MFCC提取的特征维数较大,对之后的HMM (隐马尔科夫模型)语音识别效率带来很大的影响,所以采用如下优化方法:用主成分分析PCA算法对MFCC提取的24维参数进行优化,一方面减少HMM匹配时的计算量,另一方面使四旋翼飞行的实时性达到很好的效果。主成分分析PCA算法如图11所示。

其中:r < 总样本个数n。实现降维的目的,且保证了一定的识别率。

3.2 优化的隐马尔科夫算法

隐马尔科夫模型[14]是一种双重随机过程:①Markov链是状态与转移矩阵具有一一对应的关系,是HMM的基本随机过程;②第二个随机过程是描述状态与观察值之间的概率关系。在使用者角度来看,HMM内的随机过程是透明的,状态转移是看不到的,因而叫做隐马尔科夫模型。

隐马尔科夫模型需要解决的3个问题:

1)估计问题:给定观察序列O={O1,O2,O3,…OT}和参数模型λ=(π,A,B),如何确定观察序列与模型之间达到最佳匹配,其中T为语音信号帧数,π为初始状态概率矢量,A、B分别为状态转移概率矩阵和HMM模型的观察值概率矩阵;

2)解码问题:已知观察序列O={O1,O2,O3,…OT}和参数模型λ=(π,A,B),怎样选择最佳状态序列;

3)模型训练问题:怎样修正观察序列的参数模型λ=(π,A,B),使P(O|λ)概率最大,达到最佳识别效果。

针对以上问题,本文分别采用前向后向算法、Viterbi算法、Baum—Welsh算法。由于Baum—Welsh算法在进行训练时对初始参数要求较高,此外四旋翼飞行器要求实时性较高,所以对Baum—Welsh算法进行优化如下:

对于没有约束的随机过程来说,B矩阵可以是任意值,但对于本文的约束,让B矩阵的值全部为1,利用Viterbi算法划分状态序列,再利用K—均值算法对B矩阵进行重新估计,得到新的B1矩阵和新的λ1,用λ1代入Baum—Welsh算法中重新计算,得到λ2,比较λ1和λ2的差值与设定的阈值的大小,得最佳值。

具体优化的HMM流程图如图12所示。

对HMM孤立词识别的结果,发送到四旋翼上进行控制。由摄像头当前的位置以及控制者想要的位置对四旋翼进行命令编码。当前的指令系统由14条指令组成,分别为起飞、降落、前进、后退、左行、右行、上升、下降、停止、左旋、右旋、悬停、拍照和摄像。对14条指令进行编码,用5位二进制位表示,第一位为预留位,方便以后添加其他指令,后四位为指令位。且增加指令的数目是以指数形式增长,成本大大降低。开发者的命令编写也比较简单,由于系统已经成型,算法也没有多大改动,只是增加几条判断语句。控制系统指令编码表如表1。由于时间有限本系统只设计了当前的14条指令,以后还可以加角度控制命令,如左转5度和右转10度等一些命令。使四旋翼飞行器的指令系统更加完整,控制更加的准确和简便。

4 FPGA实现与系统仿真

利用MATLAB对四旋翼控制系统进行算法仿真。基于模糊神经网络PID控制规则的四旋翼飞行器控制系统的SIMULINK仿真模型如图16所示。四旋翼飞行器控制系统由一个计算偏差和偏差变化率的结构、模糊控制器、神经网络训练、PID控制器和系统传递函数构成。再系统前加一个阶跃响应发生器,系统最后接一个图像接收器,目的是显示本系统的调节状态。

FPGA控制命令识别系统的顶层框架如图17所示,顶层框架采用自下而上的设计方法,首先分别设计MFCC特征提取、优化的HMM语音识别、命令存储及控制等模块,仿真验证后封装,封装后通过各模块的硬联逻輯形成顶层结构。顶层时序仿真如图18所示,从仿真图中可以看出语音识别的时间为10ns,且在每个时钟周期上顶层数据的传输稳定正常,说明了顶层数据的传输能够快速、准确地识别,反过来证明了优化的动态时间规整算法的正确性。最后,将已编好的语音识别识别模块下载到FPGA封装后与Quartus II板上的麦克和显示器相连,因控制命令简单可达100%。

5 结 语

通过SIMULINK的仿真与Quartus II的仿真验证了四旋翼控制器系统和语音控制命令识别系统具有很强的实时性,能很好地实现四旋翼飞行器的稳定工作,且数据能够很好地交互,完成语音控制四旋翼飞行器进行航拍的任务。

参 考 文 献:

[1] 刘志华,郭付才,彭新伟,等.基于CY7C68013A的FPGA配置和通信接口设计[J].电子技术应用,2013,39(2):46-54.

[2] 靖固,宋振伟,王铮.车道线识别系统算法设计及其FPGA实现[J].哈尔滨理工大学学报,2013,18(6):75-77.

[3] 王强.小型无人直升机航拍系统设计与实现[D].上海:上海交通大学.2013:36-48.

[4] ASHUTHA K,ANKITHA K. Smart Shopping Cart Using Embedded System and Wireless Modules[J]. Recent Patents on Computer Science,2016,9(3): 2213-2759.

[5] 张海涛,方明,付飞蚺. 嵌入式轮式机器人实验平台设计与实现[J]. 吉林大学学报(信息科学版),2016(5):670-675.

[6] HECTOR Perez Tijero, MARIO Aldea Rivas,DANIEL Medina Ortega. Multiprocessor Platform for Partitioned Realtime Systems[J]. Softw. Pract. Exper.,2017,47(1):1002-1014.

[7] 李德仁,李明.无人机遥感系统的研究进展与应用前景[J].武汉大学学报(信息科学版),2014,39 (5) :505-513,540.

[8] 汪绍华,杨莹. 基于卡尔曼滤波的四旋翼飞行器姿态估计和控制算法研究[J]. 控制理论与应用(英文版),2013,30(9):1109-1115.

[9] 昂海松.微型飞行器的设计原则和策略[J].航空学报,2016,37(1):69-80.

[10]邹继斌,赵博,梁维燕,等.多单元永磁同步电机数学模型与转矩波动抑制[J]. 电机与控制学报,2012,16(5):46-51.

[11]刘长征,张磊. 语音识别中卷积神经网络优化算法[J]. 哈尔滨理工大学学报,2016(3):34-38.

[12]刘志军,张杰.模糊数据流的进化粒度神经网络分类算法[J].哈尔滨工程大学学报,2016,37(3):3-7.

[13]张戈.基于FPGA实时语音识别系统的实现[D].哈尔滨:哈尔滨理工大学学报,2012:29-40.

[14]VEISI H, SAMETI H. Hiddenmarkovmodelbased Voice Activity Detector with High Speech Detection Rate for Speech Enhancement[J]. IET Signal Processing, 2012(6): 54-63.

(编辑:温泽宇)endprint