导言
这次毕业设计,制作的是一款音响,里面需要用到语音识别模块,所以入手了这一款。
LD-V7配合STM32使用,因为我用的模块比较多,所以没有过多的USART串口可以使用。
因此,我打算利用这个模块上的IO口进行中间判断。
模块图片
比如:
我说:开灯
语音模块就置P1.0为高电平。P1.0和stm32的一个引脚相连。
当STM32检测到与P1.0相连引脚变为高电平,则控制LED灯打开。
于此同时,我把TTS(文字转语音模块)与语音模块的串口相连,则语音模块打印的“开灯”会直接输给TTS模块,这样子TTS模块就会把开灯语音给播报出来。
好处
通过这一番处理,我就减少了两个USART的串口使用,还有因为这个语音模块(LD-V7)他的IO口有7个,所以用来做基本的语音控制是足够的。
所以现在7个IO口我要用口令来控制他;
例如
口令:继电器开
》》 P1.0高电平
》》语音模块播报:继电器以打开
》》STM32检测到引脚变高,直接输出高电平给继电器,打开继电器。
实际操作
当我用语音模块接单片机的5V电源发现语音模块总是会重启,应该是,这个5V 直接从usb口过来,没有经过处理,然后这个模块对于电源的要求有比较高,所以一受到干扰,他就重新启动。
我开始用一个usb转ttl模块给他供电,发现正常。
为了能统一在一块板上,我试了下有经过处理的3.3V,发现stm32的3.3v 也能驱动,而且不会有多大的问题,存在一个小问题就是,即使接在stm32的电源3.3V上,也没有单独用usb转ttl模块上的5V来的好,不过将就了, 后续会自己设置开发板进行改进。
模块使用
这个模块使用非常简单,因为里面的语音识别是集成在芯片系统上了,所以你也看不到,也不需要进行设置。你只需要吧你的词条写进去,或者然后再把相应的输出写好就可以完成了。(果然是高集成的模块)
这里有一下比较好的建议就是要有一些垃圾关键词,来避免识别错误。
识别原理
垃圾关键词的应用
(自行粗略理解的,并不是什么计算!)
就是你说一句话,然后模块用拼音去和你的发音做比较,在关键词中找出那些接近程度大于多少的(假定50%),然后再从一堆大于(50% )里面输出一个最接近的。
这里就会造成一个问题
:加入你只有一个关键词:睡觉
然后你说了一句:睡了 他识别到睡所以有50% 以上的相似,但是他没有‘睡了’这个比他更接近的关键词,所以他就会输出睡觉的结果。这样子他就是错误了。如果你设置一些拟声词,有可能随随便便就触发了,所以最好吧拟声词设置为垃圾关键词,即,识别后不进行输出。
‘以上所有的资源大家搜索一下就可以找到,如果找不到可以私信我,我可以发给你们。*
如果有其他的问题可以评论区指出,有问必答,知无不言。
如果有用,不妨点个赞或者关注一下,消息第一时间通知!