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



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

比如我设置这个语音识别模块的一级口令为“创客小秘” , 我叫一声“创客小秘” , 语音识别模块识别成功后就给MP3模块发送一个指令 , 指定播放一个MP3文件 , 而这个文件的内容是“主人 , 我在” , 这样就完成了一个交互的过程 。
好 , 先把硬件连接好 , 我画了个简单的电路图:

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

左边这个是语音识别模块 , 右边的是MP3模块 , 它们电源正极和地都需要接 , 这个不用说 , 然后就是数据的传输了 , 通过串口来 , 它们的RX和TX交叉来接 , RX接TX , TX接RX , 这就完成了 , 很简单 。 当然 , 如果我们还要去控制家电 , 那就像上节课一样通过一个三极管控制继电器就好了 。 我这里增加了一路是用来控制这个小风扇的开与关的 , IO口控制三极管 , 然后三极管直接控制风扇 。
好 , 接下来讲讲怎样生成我们需要的MP3文件 , 我们先设想一下对话的过程 , 简单举五个例子吧 , 第一句 , 就是我说出一级口令 , 我叫一声“创客小秘” , 语音识别模块识别成功后回我一句“主人 , 我在”;
第二句 , 我说“打开继电器” ,语音识别模块识别成功后回我一句“好的” , 同理 , 我说“关闭继电器”回我“好的” 。 第三句 , 我说“打开风扇” , 回我“已开风扇” 。 第四句 , 我说“关闭风扇” , 回我“已关风扇” 。 第五句 , 我说“拜拜” , 回我“主人再见 , 很高兴为您服务!”
好 , 下一步就是生成MP3文件了 , 我们需要生成的MP3文件有:1、主人 , 我在;2、好的;3、已开风扇;4、已关风扇;5、主人再见 , 很高兴为您服务!

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

生成这些MP3文件我用的软件是朗读女 , 我们只要输入文字 , 它就会合成语音 , 选择想要的发音人 , 然后就可以直接生成MP3文件啦 , 非常好用 。 当然还有其它软件 , 比如灵云朗读软件、TTS语音合成工具、讯飞快读等 , 大家根据自己需要来选用 。
好 , 我们生成这些MP3文件后 , 把它们拷贝到TF卡里 , 然后把卡插到MP3播放模块上就可以了 。

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

到此为止 , 我们硬件上的准备已经就绪 , 接下来要做的就是要修改程序 。 到这一步要跟大家说一下控制这个MP3模块播放的指令和格式 。 举个例子 , 指定播放一个MP3文件的指令是这样的:7E FF 06 03 00 00 01 FE F7 EF , 很长吧 , 我们从语音模块通过串口给MP3模块发这一串东西 , MP3模块收到后就知道这是要播放第一个MP3文件了 , 在这里简单说一下每个字节表示的意思:7E是起始位 , 固定不变的 , 都要有它;FF这是这个模块的版本信息 , 也是固定不变的;06 , 指的是从上一字节开始 , 到后面的字节个数 , 也就是说 , 从FF开始 , 到06 03 00 00 01为止 , 一共有六个字节 。 然后这个03在这里 , 指的是指定曲目播放 , 也是固定不变的 。 00在这里指的是不需要反馈信息 , 如果是01 , 就是要反馈信息 , 这里的反馈信息指的是MP3播放模块反馈给语音识别模块的信息 。 到这个00 01 , 这里指的是歌曲序号 , 00是数据高字节 , 01是数据低字节 , 低字节01在这里表示的就是播放第一首歌曲 。 FE和F7指的是累加和校验 , 是用来给数据查错的 , 最后一位EF是结束位 , 当接收到这一位 , 就说明整个数据发送完毕了 。 在这里可能大家听得比较懵逼 , 它设置那么复杂的指令是为了提高数据传输时的准确性 , 大家听不懂也没关系 , 懂得有这么一回事就得了 。 在这里我们要关注的是03 00 00 01这四个字节 , 代表的就是指定播放第一首歌曲 , 不需要信息反馈 。


推荐阅读