LD3320语音识别模块:LDV7模块使用的详细说明

LD3320是针对未指定人员(无需针对指定人员)的语音识别芯片,即语音语音控制芯片。

最多可以识别50个预建命令。

工作模式:LD3320(LDV7)语音模块可以在以下三种模式下工作:正常模式:直接讲话,模块直接识别;按键模式:按此键可触发ASR流程;密码模式:需要一级唤醒字(密码);建议使用密码模式,以免在嘈杂的环境中发生故障。

应用场景:家用智能控制智能汽车DIY设计毕业设计创新功能个人DIY设计语音控制嵌入式产品设计我购买了LDV7语音识别模块,内置单片机,而LD3320语音识别芯片由STC11L08单驱动模块随附的微型芯片是的,我们可以修改模块自己项目的演示程序,修改其中的关键字,然后通过串口打印识别结果。

我们使用另一个MCU通过串行端口与模块进行通信,分析收到的串行命令,然后执行对命令操作的响应。

例如,我们说密码:当前时间(dang qian shi jian)“”。

在识别出模块之后,串行端口输出:PrintCom(“ {” VoiceCommandCode”:2}”); “” MCU接收到串行端口信息后,将解析串行命令(可以使用cJSON解析此字符串);》》然后通过TTS文本转语音模块播放当前时间以完成语音识别控制过程。

识别原理:意思是说一个句子,然后该模块使用拼音与您的发音进行比较,找出哪些具有预设值的单词更接近关键字中的发音(假设为50%),然后从A开头大于(50%)的一束输出最接近的一束。

这将引起问题,容易引起过多的错误标识。

如果您只有一个关键字:时间,那么您说:“ moment”,他会识别“ time”的发音,因此相似度超过50%,但是没有关键字那比他更近在候选单词Words中,因此他将输出&times#39的结果。

他以这种方式错了。

如果设置了拟声词,它可能是偶然触发的。

解决方案:设置要识别的关键词后,为了进一步降低误识别率,可以在识别列表中添加其他任意单词以吸收误识别,从而达到降低误识别率的目的。

我们称这些关键词为“垃圾关键词”。

例如,在一个应用场景中,需要识别四个关键词,“前进”,“后退”,“开门”和“关门”。

在将这四个关键词设置到LD3320中之后,您可以在LD3320中设置另外的10〜30个词,例如“前门”,“后门”,“ Aaaaa”,“ Woo woo”。

等等。

因此,最好将一些拟声词或容易混淆的单词设置为垃圾邮件关键字,即在识别后不输出。

只有识别结果在4个关键词以内,才认为识别有效。

如果识别结果是“垃圾关键词”,则意味着误识别是由其他声音引起的,并且产品应重新开始识别过程。

这样,可以非常有效地降低错误识别率。

极大地改善了最终用户的主观体验。

移植过程:1.将关键字添加到LD模块中。

2.用户执行函数User_handle(nAsrRes);处理语音识别结果3.根据不同的结果,串行端口将打印不同的命令PrintCom(“ {” VoiceCommandCode“:1}”); 4. MCU根据不同的命令执行不同的操作,并以JSON格式将数据发送到串行端口。

连接到语音识别模块的MCU接收结果,然后解析字符串以获得当前识别的命令,然后执行相应的操作。

// LD3320 if(USART5_RX_STA& amp; 0x8000){uart5Len = USART5_RX_STA& amp; 0x3f; //获取这次接收到的数据长度receive_json = cJSON_Parse(USART5_RX_BUF); //创建一个JSON解析对象,如果(!receive_json){printf(“” JSON格式错误:%s,则返回JSON格式是否正确 ”,cJSON_GetErrorPtr()); //输出json格式错误信息}否则{printf(" JSON格式正确:%s ",cJSON_Print(receive_json)); item_obj = receive_json-& gt; child; //获取与名称键对应的值的信息while(item_obj){char * string = item_obj-& gt; string; if(!strcmp(string,“ VoiceCommandCode”)){if(item_obj-> valueint == 0){printf("接收第一级密码智能时间报告... ");}其他if(it