关于凌阳SI和SD连接的研究

本文介绍了一种利用两块凌阳SPCE061A板实现特定人(SD)与非特定人(SI)语音识别的方法。通过解决两个不同库的冲突,并设计合理的硬件连接及控制流程,成功在一个小车上实现了双模式语音控制。
导读:
  使用过凌阳SPCE06A板的朋友们应该都知道,凌阳有两种语音识别模式:SD(特定人语音识别) 和SI(非特定人语音识别)。有的朋友可能也想过将这两种控制模式连接起来放在一个工程里面,以达到“双控”的目的。但是,这样就会出现一个问题:就是这两种语音识别模式要用到两个不同的库bsrv222SDL.lib和bsr061v311.lib(本文只用这两个库来说明,其他不同版本的库也可能会有所不同),如果把他们放在一个工程里面就要把两个库都要加进去,但是这样编译的时候就出现问题了,会出现错误提示,说函数__gIsStopRecog定义了两次。这时如果你用凌阳IDE下的Libmaker工具打开这两个库,比较一下就可以发现,两个库里面都有这样的一个函数。
  开始的时候我试着更改其中的一个库,但是当稍微有改动之后,再编译的时候,编译工具就不再识别这个库了,所以这样就行不通了。我也试着自己建立一个库,把bsr061v311.lib里没有的函数,而特定人语音识别要用到的函数放在这个库里面,想通过这个建立的库间接的调用 bsrv222SDL.lib,虽然编译连接都通过了,没有错误,但是当运行的时候,运行到要调用我建立的库里的函数的时候,程序就死了,最后这个方法也没有成功。看来在一块61板上同时实现SI和SD两种语音识别模式是行不通了,我就想能否让两块61板通过它们之间的通信来实现呢?于是我就有着手研究,最后,终于实现了。
   硬件连接:
  硬件连接很简单,把一块61板的IOB7(Rx)和IOB10(Tx)分别与另一快61板的IOB10(Tx)和IOB7(Rx)连接起来,同时需要注意的是还要把两块板子的地连接起来,使它们具有相同的地。
  
   4. 控制流程图
   (1) 特定人语音识别流程图(主)
  (2) 非特定人语音识别流程图(从)
  开始
  语音提示,训练两条命令:特定人语音识别和非特定人语音识别
  训练成功
  自动存储到内部flash
  命令提示:
  请选择控制模式
  特定人
  训练五条命令:返回,前进,倒车,左拐,右拐
  训练成功
  自动存储到内部flash
  开始识别
  自动装载五条命令
  返回命令
  非特定人
  发送
  “I”
  接收到“D”
  第一次
  操作说明:
  (1) 开始训练特定人和非特定人两条命令,训练成功后如果听到两声ok,说明自动存储成功。然后出现语音提示:请选择控制模式。
  (2) 此时若发布命令:特定人。将进入特定人语音识别。如果是第一次使用特定人语音识别,将会提示训练:返回,前进,倒车,左拐,右拐五条命令,训练成功后如果听到两声ok后,则说明自动存储成功,然后进入识别状态,此时发布命令,小车就会执行相应的动作,若发布返回命令,则会听到:请选择控制模式,可以继续选择控制方式。若不是第一次使用特定人语音识别,则会自动加载以前训练的五条命令,直接进入识别状态。
  (3) 若发布命令:非特定人。将进入非特定人语音识别模式。以前进命令为总的触发命令,发布命令,小车就会执行相应的动作,若发布自我介绍命令,将会出现语音: THIS IS SI MODEOL,I AM A SMART CAR,NICE TO TALK TO YOU,GOODBYE!.返回。然后出现语音提示:请选择控制模式,可以继续选择控制方式。
   5. 结语
  本设计通过两块SPCE061A之间的通信,达到了控制同一个小车的目的,获得了较好的效果。读者可以发挥自己的想象增加训练的命令,使小车能够完成更多的动作,也可以根据自己的爱好更改控制对象。

本文转自
http://blog.21ic.com/user1/3180/archives/2006/24297.html  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值