【NUCLEO-L552ZE测评】+HLK-V20语音识别模块的实验
<div class='showpostmsg'><p> 通过语音控制家电是我本次评测项目的一个重点,这次实验使用的是从某宝购买的语音识别模块,这个模块具有较高的性价比,缺点就是无法改变识别的内容,只能使用其定制好的语音命令。下面是实验过程中的照片:</p><p></p>
<p> </p>
<p> 下图是语音识别模块,模块通过串口与单片机进行通讯:</p>
<p></p>
<p> 为了方便测试,我使用了一块192*64的LCD显示屏来展现相关的信息:</p>
<p></p>
<p> </p>
<p> 输出控制部分暂时使用了一块四路继电器模块,在各个继电器上标注了被控制的家电设备,并没有真正连接器对应的家电设备,在测试过程中可以通过观察对应的LED灯亮灭确定执行何种操作,同时也会在LCD屏幕上显示相应的内容:</p>
<p></p>
<p> </p>
<p> 实验过程并不复杂,因为语音识别在模块内完成,并通过串口将信息发送到单片机,单片机仅仅是将接收到的信息提取几个关键点进行判别,然后显示相应的内容并改变对应的GPIO电平的高低,从而驱动继电器动作,代码如下:</p>
<pre>
<code class="language-cs">void yy_handler(void)
{
uint8_t f0,f1,f2,f3,f4;
f1 = rx_buffer; //取关键字
f2 = rx_buffer;
f3 = rx_buffer;
f4 = rx_buffer;
LCD_clear_line(2);
LCD_clear_line(3);
/*
LCD_write_HEX(40,4,f1);
LCD_write_HEX(70,4,f2);
LCD_write_HEX(100,4,f3);
LCD_write_HEX(130,4,f4);
*/
switch (f1){
case 0x63:
switch (f3){
case 0x63:
LCD_write_BG(20,2,(uint8_t *)"关闭风扇");
OutFs_0;
break;
case 0x64:
LCD_write_BG(20,2,(uint8_t *)"关闭灯光");
OutDg_0;
break;
case 0x6e:
LCD_write_BG(20,2,(uint8_t *)"关闭空调");
OutKt_0;
break;
default:
LCD_write_BG(20,2,(uint8_t *)"暂未处理");
}
break;
case 0x64:
switch (f2){
case 0x61:
switch (f3){
case 0x69:
LCD_write_BG(20,2,(uint8_t *)"打开开关");
OutKg_1;
break;
case 0x6f:
LCD_write_BG(20,2,(uint8_t *)"打开照明");
break;
default:
LCD_write_BG(20,2,(uint8_t *)"暂未处理");
}
break;
case 0x66:
LCD_write_BG(20,2,(uint8_t *)"打开吹风机");
break;
case 0x69:
LCD_write_BG(20,2,(uint8_t *)"打开饮水机");
break;
case 0x6e:
LCD_write_BG(20,2,(uint8_t *)"打开电饭煲");
break;
case 0x75:
switch (f3){
case 0x61:
LCD_write_BG(20,2,(uint8_t *)"打开暖气");
break;
case 0x62:
LCD_write_BG(20,2,(uint8_t *)"打开浴霸");
break;
default:
LCD_write_BG(20,2,(uint8_t *)"暂未处理");
}
break;
default:
LCD_write_BG(20,2,(uint8_t *)"暂未处理");
}
break;
case 0x65:
LCD_write_BG(20,2,(uint8_t *)"进入休眠");
break;
case 0x67:
switch (f2){
case 0x61:
LCD_write_BG(20,2,(uint8_t *)"关闭电饭煲");
break;
case 0x63:
LCD_write_BG(20,2,(uint8_t *)"关闭吹风机");
break;
case 0x6b:
LCD_write_BG(20,2,(uint8_t *)"关闭开关");
OutKg_0;
break;
case 0x6e:
LCD_write_BG(20,2,(uint8_t *)"关闭暖气");
break;
case 0x79:
switch (f3){
case 0x69:
LCD_write_BG(20,2,(uint8_t *)"关闭饮水机");
break;
case 0x75:
LCD_write_BG(20,2,(uint8_t *)"关闭浴霸");
break;
default:
LCD_write_BG(20,2,(uint8_t *)"暂未处理");
}
break;
case 0x7a:
LCD_write_BG(20,2,(uint8_t *)"关闭照明");
break;
default:
LCD_write_BG(20,2,(uint8_t *)"暂未处理");
}
break;
case 0x6f:
switch (f2){
case 0x64:
LCD_write_BG(20,2,(uint8_t *)"打开灯光");
OutDg_1;
break;
case 0x65:
LCD_write_BG(20,2,(uint8_t *)"打开风扇");
OutFs_1;
break;
case 0x6e:
LCD_write_BG(20,2,(uint8_t *)"打开空调");
OutKt_1;
break;
default:
LCD_write_BG(20,2,(uint8_t *)"暂未处理");
}
break;
case 0x74:
switch (f2){
case 0x5f:
LCD_write_BG(20,2,(uint8_t *)"打开台灯");
break;
case 0x66:
LCD_write_BG(20,2,(uint8_t *)"关闭台灯");
break;
default:
LCD_write_BG(20,2,(uint8_t *)"暂未处理");
}
break;
case 0x77:
LCD_write_BG(20,2,(uint8_t *)"准备就绪");
break;
default:
LCD_write_BG(20,2,(uint8_t *)"暂未处理");
}
}
</code></pre>
<p> </p>
<p> 下面的动画是实验时继电器的动作情况:</p>
<p></p>
<p> </p>
<p> 这是实验时LCD屏幕显示的内容:</p>
<p></p>
<p> </p>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>这是压缩后的视频文件:</p>
<p><br />
<br />
</p>
<p>这个视频文件是屏幕显示内容:</p>
<p></p>
<p>加油</p>
<p>下次直接用NUCLEO-L552ZE实现语音识别</p>
<p>楼主玩具真多。</p>
蓝雨夜 发表于 2020-12-29 20:41
加油
下次直接用NUCLEO-L552ZE实现语音识别
<p>谢谢大佬鼓励,是有这个打算,已经买了一块语音识别模块。</p>
hujj 发表于 2020-12-30 09:04
谢谢大佬鼓励,是有这个打算,已经买了一块语音识别模块。
<p>不知道移植MSP432的语言识别库难不难!</p>
<p>我买的是LD3320模块,不含单片机芯片。没有接触过MSP432的资料。</p>
<p>博主 有源码嘛:pleased:</p> lollipop_new 发表于 2021-5-7 18:42
博主 有源码嘛
<p> 这是通过串口接收语音识别模块的数据,然后进行处理的。语音模块识别的代码是厂家烧录好的,用户无法修改。处理接收数据的代码已经全文发布的帖子中了。</p>
<p>老哥,你使用串口中断来接受数据的吗?<br/>我整几天了 搞不了,能看一下你的源码吗?<br/>是个菜鸡新手:Sad:</p> lion987 发表于 2021-6-25 23:37
老哥,你使用串口中断来接受数据的吗?我整几天了 搞不了,能看一下你的源码吗?是个菜鸡新手
<p> 源代码已经发布在一楼,可供参考。调试可以先用厂家的软件在电脑上进行,然后用串口调试助手测试单片机的串口通讯,确保能正常收发,最后再换上语音识别模块,这样容易成功。</p>
hujj 发表于 2021-6-26 09:01
源代码已经发布在一楼,可供参考。调试可以先用厂家的软件在电脑上进行,然后用串口调试助 ...
<p>老哥,客服没给你说的那个软件哦,这个模块可以烧录吗?我一直以为只能用串口接收16进制,然后用stm32判断,而且我的串口中断只执行一次怎么回事:puzzle:</p> hujj 发表于 2021-6-26 09:01
源代码已经发布在一楼,可供参考。调试可以先用厂家的软件在电脑上进行,然后用串口调试助 ...
<p>你是用串口中断接收数据存在全局定义的数组中吗?<br/>这部分代码可以给我看看吗,我只能识别第一句在OLED上显示,yy_interrupt()我放main函数了。老哥求解,我卡这了</p> lion987 发表于 2021-6-26 15:37
你是用串口中断接收数据存在全局定义的数组中吗?这部分代码可以给我看看吗,我只能识别第一句在OLED上显 ...
<p> 1、不知道您购买的识别模块与我购买的是不是同一商家,我是按照商家页面中的链接下载的资料;</p>
<p> 2、识别模块我们是无法烧录的,只能按照其提供的识别信息进行判断;</p>
<p> 3、您首先要解决通过串口接收语音模块的识别信息,才能完成后续的识别;</p>
<p> 4、串口数据接收的方法有很多,我是先定义一个全局变量(数组)和一个接收完成标志,串口接收到完整的数据后,给标志置1,主循环中识别完成后,给这个标志清零。</p>
<p> 5、完整的代码压缩包在总结贴中,下列的相关帖子及链接可供参考:</p>
<table cellspacing="0" style="border-collapse:collapse; width:865px">
<tbody>
<tr>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; height:19px; vertical-align:middle; white-space:nowrap; width:477px"><span style="color:black">【NUCLEO-L552ZE测评】+开箱及建立开发平台</span></td>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; vertical-align:middle; white-space:nowrap; width:388px"><span style="color:blue"><u>https://bbs.eeworld.com.cn/thread-1152076-1-1.html</u></span></td>
</tr>
<tr>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; height:19px; vertical-align:middle; white-space:nowrap"><span style="color:black">【NUCLEO-L552ZE测评】+花样点灯</span></td>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; vertical-align:middle; white-space:nowrap"><span style="color:blue"><u>https://bbs.eeworld.com.cn/thread-1152265-1-1.html</u></span></td>
</tr>
<tr>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; height:19px; vertical-align:middle; white-space:nowrap"><span style="color:black">【NUCLEO-L552ZE测评】+驱动LCD19264显示屏</span></td>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; vertical-align:middle; white-space:nowrap"><span style="color:blue"><u>https://bbs.eeworld.com.cn/thread-1152455-1-1.html</u></span></td>
</tr>
<tr>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; height:19px; vertical-align:middle; white-space:nowrap"><span style="color:black">【NUCLEO-L552ZE测评】+模拟I2C驱动DS1307日历模块</span></td>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; vertical-align:middle; white-space:nowrap"><span style="color:blue"><u>https://bbs.eeworld.com.cn/thread-1152854-1-1.html</u></span></td>
</tr>
<tr>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; height:19px; vertical-align:middle; white-space:nowrap"><span style="color:black">【NUCLEO-L552ZE测评】+串口通讯测试</span></td>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; vertical-align:middle; white-space:nowrap"><span style="color:blue"><u>https://bbs.eeworld.com.cn/thread-1153160-1-1.html</u></span></td>
</tr>
<tr>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; height:19px; vertical-align:middle; white-space:nowrap"><span style="color:black">【NUCLEO-L552ZE测评】+HLK-V20语音识别模块的实验</span></td>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; vertical-align:middle; white-space:nowrap"><span style="color:blue"><u>https://bbs.eeworld.com.cn/thread-1153496-1-1.html</u></span></td>
</tr>
<tr>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; height:19px; vertical-align:middle; white-space:nowrap"><span style="color:black">【NUCLEO-L552ZE测评】+蓝牙通讯的实验(1)</span></td>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; vertical-align:middle; white-space:nowrap"><span style="color:blue"><u>https://bbs.eeworld.com.cn/thread-1154358-1-1.html</u></span></td>
</tr>
<tr>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; height:19px; vertical-align:middle; white-space:nowrap"><span style="color:black">【NUCLEO-L552ZE测评】+AT24C32的读写操作实验</span></td>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; vertical-align:middle; white-space:nowrap"><span style="color:blue"><u>https://bbs.eeworld.com.cn/thread-1154939-1-1.html</u></span></td>
</tr>
<tr>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; height:19px; vertical-align:middle; white-space:nowrap"><span style="color:black">【NUCLEO-L552ZE测评】+如何接收完整的串口数据</span></td>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; vertical-align:middle; white-space:nowrap"><span style="color:blue"><u>https://bbs.eeworld.com.cn/thread-1155271-1-1.html</u></span></td>
</tr>
<tr>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; height:19px; vertical-align:middle; white-space:nowrap"><span style="color:black">【NUCLEO-L552ZE测评】+蓝牙通讯的实验(2)</span></td>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; vertical-align:middle; white-space:nowrap"><span style="color:blue"><u><a href="https://bbs.eeworld.com.cn/thread-1155366-1-1.html">https://bbs.eeworld.com.cn/thread-1155366-1-1.html</a></u></span></td>
</tr>
<tr>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; height:19px; vertical-align:middle; white-space:nowrap"><span style="color:black">【NUCLEO-L552ZE测评】+语音控制家电实验总结</span></td>
<td style="border-bottom:none; border-left:none; border-right:none; border-top:none; vertical-align:middle; white-space:nowrap"><span style="color:blue"><u><a href="https://bbs.eeworld.com.cn/thread-1155903-1-1.html">https://bbs.eeworld.com.cn/thread-1155903-1-1.html</a></u></span></td>
</tr>
</tbody>
</table>
<p> </p>
页:
[1]