基于DSP和FPGA的机器人声控系统设计
1 引言
机器人听觉系统主要是对人的声音进行语音识别并做出判断,然后输出相应的动作指令控制头部和手臂的动作,传统的机器人听觉系统一般是以PC机为平台对机器人进行控制,其特点是用一台计算机作为机器人的信息处理核心通过接口电路对机器人进行控制,虽然处理能力比较强大,语音库比较完备,系统更新以及功能拓展比较容易,但是比较笨重,不利于机器人的小型化和复杂条件下进行工作,此外功耗大、成本高。本次设计采用了性价比较高的数字信号处理芯片TMS320VC5509作为语音识别处理器,具有较快的处理速度,使机器人在脱机状态下,独立完成复杂的语音信号处理和动作指令控制,FPGA系统的开发降低了时序控制电路和逻辑电路在pcb板所占的面积[1],使机器人的"大脑"的语音处理部分微型化、低功耗。一个体积小、低功耗、高速度能完成特定范围语音识别和动作指令的机器人系统的研制具有很大的实际意义。
2 系统硬件总体设计
系统的硬件功能是实现语音指令的采集和步进电机的驱动控制,为系统软件提供开发和调试平台。如图1所示。
系统硬件分为语音信号的采集和播放,基于DSP的语音识别,FPGA动作指令控制、步进电机及其驱动、DSP外接闪存芯片,JTAG口仿真调试和键盘控制几个部分。工作流程是麦克风将人的语音信号转化为模拟信号,在经过音频芯片TLV320AIC23量化转化成数字信号输入DSP.DSP完成识别后,输出动作指令。
FPGA根据DSP输入的动作指令产生正确的正反转信号和准确的脉冲给步进电机驱动芯片,驱动芯片提供步进电机的驱动信号,控制步进电机的转动。片外FLASH用于存储系统程序和语音库并完成系统的上电加载。JTAG口用于与PC机进行联机在线仿真,键盘则用于参数调整和功能的切换。
3 语音识别系统设计
3.1 语音信号的特点
语音信号的频率成分主要分布在300~3400Hz之间,根据采样定理选择信号的采样率为8 kHz。语音信号的一个特点在于他的"短时性",有时在一个短时段呈现随机噪声的特性,而另一段表现周期信号的特性,或二者兼而有之。语音信号的特征是随时间变化的,只有一段时间内,信号才表现稳定一致的特征,一般来说短时段可取5~50 ms,因此语音信号的处理要建立在其"短时性"上[2],系统将语音信号帧长设为20 ms,帧移设为10 ms,则每帧数据为160×16 b。
3.2 语音信号的采集和播放
语音采集和播放芯片采用的是TI公司生产的TLV320AIC23B,TLV320AIC23B的模数转换(ADC)和数模转换(DAC)部件高度集成在芯片内部,芯片采用8 k采样率,单声道模拟信号输入,双声道输出。TLV320AIC23具有可编程特性,DSP可通过控制接口来编辑该器件的控制寄存器,而且能够编译SPI,I2C两种规格的接口,TLV320AIC23B与DSP5509的电路连接如图2所示。
DSP采用I2C口对TLV320AIC23的寄存器进行设置。当MODE=O时,为I2C规格的接口,DSP采用主发送模式,通过I2C口对地址为0000000~0001111的11个寄存器进行初始化。I2C模式下,数据是分为3个8 b写入的。而TLV320AIC23有7位地址和9位数据,也就是说,需要把数据项上面的最高位补充到第二个8 B中的最后一位。
MCBSP串口通过6个引脚CLKX,CLKR,FSX,FSR,DR和CX与TLV320AIC23相连。数据经MCBSP串口与外设的通信通过DR和DX引脚传输,控制同步信号则由CLKX,CLKR,FSX,FSR四个引脚实现。将MCBSP串口设置为DSP Mode模式,然后使串口的接收器和发送器同步,并且由TLV320AIC23的帧同步信号LRCIN,LRCOUT启动串口传输,同时将发送接收的数据字长设定为32 b(左声道16 b,右声道16 b)单帧模式。
3.3 语音识别程序模块的设计
为了实现机器人对非特定人语音指令的识别,系统采用非特定人的孤立词识别系统。非特定人的语音识别是指语音模型由不同年龄、不同性别、不同口音的人进行训练,在识别时不需要训练就可以识别说话人的语音[2]。系统分为预加重和加窗,短点检测,特征提取,与语音库的模式匹配和训练几个部分。
3.3.1 语音信号的预加重和加窗
预加重处理主要是去除声门激励和口鼻辐射的影响,预加重数字滤波H(Z)=1一KZ-1,其中是为预加重系数,接近1,本系统中k取0.95。对语音序列X(n)进行预加重,得到预加重后的语音序列x(n):x(n)=X(n)一kX(n一1) (1)
系统采用一个有限长度的汉明窗在语音序列上进行滑动,用以截取帧长为20 ms,帧移设为10 ms的语音信号,采用汉明窗可以有效减少信号特征的丢失。
3.3.2 端点检测
端点检测在词与词之间有足够时间间隙的情况下检测出词的首末点,一般采用检测短时能量分布,方程为:
其中,x(n)为汉明窗截取语音序列,序列长度为160,所以N取160,为对于无音信号E(n)很小,而对于有音信号E(n)会迅速增大为某一数值,由此可以区分词的起始点和结束点。
- 基于DSP的机器人视觉伺服系统研究(04-17)
- 基于DSP的自动避障小车(04-05)
- 基于DSP的双足机器人运动控制系统设计(06-21)
- 用于日本震后救援的机器人技术(03-03)
- 基于TMS32OLF2407A的教育机器人硬件系统设计 (08-21)
- 基于DSP的覆冰机器人控制系统设计(02-13)