关键词:
3.3.4 语音信号的模式匹配和训练
模型训练即将特征向量进行训练建立模板,模式匹配即将当前特征向量与语音库中的模板进行匹配得出结果。语音库的模式匹配和训练采用隐马尔可夫模型HMM(Hidden Markov Models),他是一种统计随机过程统计特性的概率模型一个双重随机过程,因为隐马尔可夫模型能够很好地描述语音信号的非平稳性和可变性,因此得到广泛的使用[4]。
HMM的基本算法有3种:Viterbi算法,前向一后向算法,Baum-Welch算法。本次设计使用Viterbi算法进行状态判别,将采集语音的特征向量与语音库的模型进行模式匹配。Baum-Welch算法用来解决语音信号的训练,由于模型的观测特征是帧间独立的,从而可以使用Baum-Welch算法进行HMM模型的训练。
3.4 语音识别程序的DSP开发
DSP的开发环境为CCS3.1及。DSP/BIOS,将语音识别和训练程序分别做成模块,定义为不同的函数,在程序中调用。定义语音识别器函数为int Recognizer(int Micin),识别结果输出函数为int Result(void),语音训练器函数为int Train(int Tmode,int Audiod),动作指令输入函数为int Keyin(int Action[5])。
语音识别器的作用是将当前语音输入变换成语音特征向量,并对语音库的模板进行匹配并输出结果,语音应答输出函数将获取的语音识别结果对应的语音应答输出,语音训练是将多个不同年龄、不同性别、不同口音的人语音指令输入转化为训练库的模板。为防止样本错误,每个人的语音指令需要训练2次,对于2次输入用用欧氏距离去进行模式匹配,若2次输入相似度达到95%,则加入样本集。语音应答输入函数是为每个语音库中模板输入对立的语音输出,以达到语言应答目的。系统工作状态为执行语言识别子程序,训练时执行外部中断,执行训练函数,取得数据库模板,训练完毕返回。程序框图如图3所示。
4 机器人的动作控制系统设计
4.1 FPGA逻辑设计
系统通过语音控制机器人头部动作,头部运动分为上下和左右运动2个自由度,需要2个步进电机控制,DSF完成语音识别以后,输出相应的动作指令,动作执行结束后,DSP发出归零指令,头部回到初试状态。FPGA的作用是提供DSP接口逻辑,设置存储DSP指令的RAM块,同时产生步进电机驱动脉冲控制步进电机转动方向和角度。
FPGA器件为动作指令控制单元,设计采用FLEXlOKE芯片,接收DSP数据后并行控制2路步进电机。FPGA内部结构逻辑如图4所示,FPGA内部设置2个元件为电机脉冲发生器,控制电机的工作脉冲以及正反转。AO~A7为DSP数据输入端口,WR为数据写端口,P1,P2为2个步进电机驱动芯片脉冲输入口,L1,L2为电机正反转控制口,ENABLE为使能信号。