AI人工智能|LD3320结合MP3模块加入语音交互功能,实现人和机器交流对话( 三 )



AI人工智能|LD3320结合MP3模块加入语音交互功能,实现人和机器交流对话
本文插图

好 , 看下面的图片 , MP3模块官方给出的例程 , 在这里我只给大家简单介绍3个函数 , 首先是这个串口发送函数 , 就是把我们上面的这一串东西发送出去的函数 , 你看它最先发送出去的是起始位的7E , 然后通过一个自加循环 , i++ , 按顺序的把这一串数据全部发送出去 , 后面EF就是结束位了 。

AI人工智能|LD3320结合MP3模块加入语音交互功能,实现人和机器交流对话
本文插图

?如下图 , 往下这个是求和校验函数 , 为什么要这个函数呢 , 它是怕数据在传输的过程中出错 , 经过这个函数处理 , 配合下一个要讲的函数 , 它就知道这个数据在传输的过程有没有出错 。 举个例子 , 比如原先我是想传00010001这个数据 , 结果数据在传输的过程中受到干扰 , 有一位数据受到影响由0变成1了 , 那在接收的那一端收到的数据可能就变成了00010011了 , 如果没有校验函数去校验 , 接收端就无法判断数据的准确性 , 这就很容易出现大问题 , 所以这个函数存在的意义就在这里了 。 这个函数在这里具体是怎么校验的就不深入给大家讲了 , 解释进去又是另一片天地了 。

AI人工智能|LD3320结合MP3模块加入语音交互功能,实现人和机器交流对话
本文插图

再看到下边的图片 , 图片上面那个是Uart_SendCMD函数 , 我们一起结合下面main函数里的操作来看 , 如下图:

AI人工智能|LD3320结合MP3模块加入语音交互功能,实现人和机器交流对话
本文插图

先看下面的main函数 , 在main函数里首先初始化串口寄存器 , 然后执行Uart_SendCMD这个函数 , 这个函数的括号里有3个数据 , 0x03指的是播放指定的MP3文件 , 中间的0指的是无需反馈 , 0x01指的是播放第一首歌曲 , 这三个数据会分别赋值给上面这个函数括号里的CMD、feedback和dat , 然后大家看到上边Uart_SendCMD函数里边 , CMD放画红色横线1的位置 , feedback放画红色横线2的位置 , dat放画红色横线3的位置 , 而且这个dat分高字节和低字节的 , 这6个字节的数据是不是就是我们刚才讲过的从FF开始到01的这6个 , 是了吧 , 然后进行校验 , 最后就把这些数据通过串口给发送出去了 。
好 , 我们需要做的就是把这3个函数复制粘贴到语音识别模块的大程序中去 , 进行融合 , 如下图:

AI人工智能|LD3320结合MP3模块加入语音交互功能,实现人和机器交流对话
本文插图


【AI人工智能|LD3320结合MP3模块加入语音交互功能,实现人和机器交流对话】
AI人工智能|LD3320结合MP3模块加入语音交互功能,实现人和机器交流对话
本文插图

然后我们在语音识别程序处理函数这里加上我们想要播放的音乐就得了 , 还记得我们刚才生成的MP3文件吗?我们按顺序放到TF卡里 , 第一首是“主人 , 我在” , 第二首是“好的” , 第三首是“已开风扇” , 第四首是“已关风扇” , 第五首是“主人再见 , 很高兴为您服务” 。
来啦 , 如下图:

AI人工智能|LD3320结合MP3模块加入语音交互功能,实现人和机器交流对话
本文插图

当我们说出一级口令 , 识别成功后我们就调用第一首音乐 , 把这个函数放过来 , 里面三个数据就是0x03,0,0x01,0x01在这里指的就是播放第一首歌曲嘛 , 就是播放“主人我在” 。
好 , 然后下面 , 如下图:

AI人工智能|LD3320结合MP3模块加入语音交互功能,实现人和机器交流对话
本文插图

打开继电器关闭继电器都是调用“好的”这个MP3文件 , 那我们把这个函数放过来 , 里面三个数据就是0x03,0,0x02 。 0x02在这里指的就是播放第二首歌曲 。


推荐阅读