近年来随着人工智能的快速发展,国内语音行业也可谓是百花齐放,尤其是最近几年,人工智能AI技术以及智能家居得到了飞速的发展。本设计采用的是非特定语音识别芯片LD3320和SYN6288语音合成模块有机的结合,设计开发了一种能通过语音来控制小车运行、拨打电话、发送短信以及播放音乐的语音识别系统。这个东西虽然科技含量不高,但是非常具有可玩性,看完你也可以做一个。

系统架构介绍

系统主要由语音识别模块LD3320、SYN6288语音合成模块、GSM、摄像头等组成,主控采用MK60FX单片机,采用串口通信与SYN6288语音合成以及GSM之前进行指令传输。具体流程图如下所示。

系统上电之后首先通过预先设置的唤醒指令进行激活该模块,例如我在程序中设置的唤醒指令是“小宝贝”。接着进入语音识别状态,然后通过“主人”发送的相关指令执行相应的操作。这些相关指令都是事先要写进模块中,当模块收到指令之后便会与事先设定的词汇进行对比,相一致则执行相应操作,通过给相应的引脚高电平让单片机进行捕捉,然后单片机在捕捉到相应的高电平后随即发送相应的指令给外设(如GSM、语音播报、摄像头)。
在语音合成的程序中需要写入文字信息所以在编码的时候需要将编码格式改为ANSI,一般默认的是UTF8,如果使用默认的格式会造成中文乱码。由于我使用的K60的编译软件是IAR,这个修改编码格式的地方没有找到ANSI的格式,刚刚好在语音识别模块LD3320上集成了一块51芯片,于是我便使用LD3320模块上的51写了语音合成的程序,将语音合成SYN6288模块的RX和TX与语音识别LD3320模块的RX和TX进行连接,让他们进行串口通信传输指令。

LD3320语音识别模块

因为我已经将模块上单片机的串口与SYN6288语音合成模块的串口相连了,所以采用的其他IO口语K60进行反馈,如果主控采用其他单片机的话,便可以通过串口与主控之间进行反馈,采用串口进行反馈相对而言比较节约IO资源以及识别精确度更高一点。


SYN6288语音合成模块


另外关于GSM和摄像头这两部分我已经在之前的文章中做过详细介绍,这里就不再重复说明,感兴趣的可以去看之前的文章。

软件设计

本套系统的核心便是语音识别部分,接下来直接看程序。

这部分程序是修改我们所需要的词汇,第一条是唤醒指令,后面的便都是操作指令。

这里的便是设置该执行什么操作,比如第一个if语句下的便是唤醒成功后该执行的操作,然后下面的便是设置的命令指令,和上面的设置词汇顺序一致。
(注意,如果使用的是keil编程的单片机,建议此处使用串口进行通信来向主控传达指令,我这里是通过模块上集成51的IO口来输出高电平,再通过主控上的检测IO输入电平来进行控制的,相对精确性而言没有串口高。)
此处设置的便是设置相应的引脚。

然后此处是语音合成的程序。
下面就都是主控K60中的程序。






这里我随便写的程序比较简陋,使用的都是单个变量,程序写的比较好的可以采用数组来写,就比较好看美观一点。
对于GSM部分的程序在前面的文章中都有详细的讲解,这里不再重复。
最后
以上就是贪玩雪糕最近收集整理的关于stm32语音播报模块_语音助手控制小车的全部内容,更多相关stm32语音播报模块_语音助手控制小车内容请搜索靠谱客的其他文章。
发表评论 取消回复