新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于DSP的声控系统设计与实现

基于DSP的声控系统设计与实现

作者:时间:2014-12-07来源:网络收藏

  系统软件设计

本文引用地址:http://www.eepw.com.cn/article/266441.htm

  软件设计中最重要的部分就是编写语音识别程序。语音识别过程本质上是一种多维模式识别过程。针对凌阳单片机编写语音识别程序,主要可以分为:训练、辨识、辨识结果输出三部分。

  1 训练程序

  当程序第一次运行时,需要进行语音识别训练。完成识别训练后,会在FLASH 存储器中设定标志位,下次重新启动时,可以跳过语音训练过程,直接进行语音识别程序。如果用户需要重新训练,也可以通过按键来擦除标志位,该部分程序框图如下:

  

基于DSP的声控系统设计与实现

 

  2 语音识别程序

  语音识别程序是整个程序编写过程中最重要的部分, 主要可以分为辨识器初始化、识别过程实时监控、获取辨识结果和终止辨识四部分。

  2.1 辨识初始化

  辨识初始化使用void BSR_InitRecognizer (int AudioSource)函数来实现。当参数AudioSource 取1 时为LINE_IN 电压模拟量输入;当参数AudioSource 取0 时为MIC 语音输入。

  2.2 识别过程实时监控

  该功能调用void BSR_EnableCOUIndicator()函数来实现,主要用来辨识是否正常工作。如果辨识正常,CPU 会产生一个占空比为50%的方波。如果CPU 超载,则会产生不稳定的波形,这时为了避免语音辨识产生错误信息,就需要删除命令或者优化程序。

  2.3 获取辨识结果

  该功能调用int BSR_GetResult()函数来实现,当无命令识别出来时,返回值为0;当识别器未初始化或识别未激活返回-1;当识别不合格时返回-2;当识别出来时,返回命令的序号。

  2.4 终止辨识

  该功能调用void BSR_StopRecognizer()函数实现,主要用于停止识别,并关闭FIQ_TMA 中断。

  3 辨识结果输出

  通过BSR_GetResult()可以得到命令的序列号,将命令的序列号改写成Voyager II 型机器人的相关协议, 然后通过RS232口传输给机器人即可达到语音控制的目的。

  4 串口通信程序

  为了方便用户对Voyager II 型机器人进行二次开发, 北京博创兴盛机器人技术有限公司提供了标准串行接口, 并制定了详细的通信协议,供用户使用。为了提高通信的效率和稳定性,在Voyager II 型机器人内部,先将RS-232 标准电平转换为TTL电平,再将TTL 电平通过MAX491 转换为RS-485 的标准电平。

  由于协议中,只支持一个主机,所以在本声控系统中,将声控系统的单片机作 为整个硬件系统的主机, 即整个硬件系统的最高管理者,其地址默认为0.其他设备的地址默认为1-255.具体分配如下:系统设备占用地址0x01-0x0F;电机设备地址 0x100-0x1F;系统保留地址为0x20-0x7F;用户设备地址:0x80-0xAF;在系统运行过程中,主机一直占用自己的TXD 线,从机的RXD 线在不进行通信时为高阻状态,只有在接收到与自己地址相符的数据帧时,才能占用总线,一旦通信结束,立即释放总线,回到高阻状态。

  主机和从机采用标准的“一问一答”通信机制,如果主机的命令需要有数据反馈,则返回需要的数据;如果不需要数据反馈,就返回上位机发送的命令。

  下面,以控制机器人前进为例说明串口通信的协议格式:

  (1)发送固定通信字头两字节:0x55 0xAA

  (2)发送接收设备地址:0x01

  (3)发送数据长度:0x04

  (4)发送命令字:0x26

  (5)发送左电机速度两字节:0x00 0x06

  (6)发送右电机速度两字节:0x00 0x06

  (7)发送数据效验和:0x3A

  在明确了协议格式和需要发送的内容之后, 就可以编写串口通信程序。首先,根据SPCE061A 的PLL 频率和需要设定的波特率,计算出P_UART_BaudScalarHigh 和P_UART_BaudScalar-Low 的取值,完成串口参数的设定。在完成设定后,将需要发送的数据存储到P_UART_Data 中,SPCE061A 就可以将数据发送给Voyager II 型机器人。由于,SPCE061A 的串口每次只能发送1个字节的数据,所以需要采用循环的方式,依次将通信内容发送给Voyager II 型机器人。Voyager II 型机器人收到指令后, 就可以按照指令,进行相应的动作。

  总结

  本系统采用了低成本 的-SPCE061A 作为主控芯片,和传统的基于PC 机的相比, 虽然识别的语音库相对较少,但是其具有低成本、低功耗、体积小和使用灵活方便等特点,不仅适合于中、小型机器人,还适合于教学科研使用。所以,本声控系统 具有良好的市场前景和广阔的使用空间。

存储器相关文章:存储器原理


声控灯相关文章:声控灯原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭