当前位置:首页 > 公众号精选 > 程序员小哈
[导读]LD3320是非特定人(不用针对指定人)语音识别芯片,即语音声控芯片。最多可以识别50条预先内置的指令。 工作模式: LD3320(LDV7)语音模块可以工作在以下三种模式:普通模式:直接说话,模块直接识别;按键模式:按键触发开始ASR进程;口令模式:需要一级唤

LD3320是非特定人(不用针对指定人)语音识别芯片,即语音声控芯片。最多可以识别50条预先内置的指令。

工作模式:

LD3320(LDV7)语音模块可以工作在以下三种模式:普通模式:直接说话,模块直接识别;按键模式:按键触发开始ASR进程;口令模式:需要一级唤醒词(口令);推荐使用口令模式,这样避免嘈杂环境下误动作。

应用场景:

  • 家居智能控制

  • 智能小车DIY设计

  • 毕业设计创新功能

  • 个人DIY设计

  • 语音控制嵌入式产品设计

我购买的LDV7语音识别模块,内置单片机,LD3320语音识别芯片的驱动是靠模块上自带的STC11L08单片机驱动的,我们可以修改模块自带工程的Demo程序,修改里面的关键词,然后将识别的结果通过串口打印出来,我们使用另外一个MCU与该模块进行串口通信,解析收到的串口指令,进而做响应的指令动作。

例如

我们说口令:当前时间(dang qian shi jian)
》》 模块识别之后,串口输出:PrintCom("{\"VoiceCommandCode\":2}");
》》 MCU接收串口信息之后,对该串口指令进行解析(可以使用cJSON解析此字符串);
》》 然后通过TTS文字转语音模块播放当前时间,即完成本次语音识别控制过程。

识别原理:

就是你说一句话,然后模块用拼音去和你的发音做比较,在关键词中找出哪些预设值的词语与发音的接近程度大于多少的(假定50%),然后再从一堆大于(50% )里面输出一个最接近的。

这里就会造成一个问题,容易造成误识别太多。
如果你只有一个关键词:时间
然后你说了一句:‘时刻’,他识别到‘时’这个发音,所以有50% 以上的相似,但是候选词中没有‘时刻’这个比他更接近的关键词,所以他就会输出‘时间’的结果。这样子他就是错误了。
如果你设置一些拟声词,有可能随随便便就触发了。

解决方案:

在设定好要识别的关键词语后,为了进一步降低误识别率,可以再添加一些其他的任意词汇进识别列表,用来吸收错误识别,从而达到降低误识别率的目的。我们把这样一些关键词语称之为“垃圾关键词语”。

比如,某个应用场景中,需要识别的关键词语是 4 条,“前进”,“后 退”,“开门”,“关门”。在把这 4 个关键词语设置进 LD3320 后,可以再另外设置10~30个词语进LD3320,比如“前门”,“后门”,“阿阿阿”,“呜 呜”等等。所以最好把一些拟声词或者容易混淆的词语设置为垃圾关键词,即,识别后不进行输出。
只有识别结果是 4 个关键词语之内的,才认为识别有效。如果识别结果是 “垃圾关键词语”,则说明是其他的声音导致的误识别,产品应该重新开始一 次识别过程。这样,可以非常有效地降低误识别率。极大地提高终端用户的主观使用体验。

移植过程:

1、向LD模块中添加关键词

2、用户执行函数User_handle(nAsrRes); 处理语音识别结果

3、根据不同结果,串口打印不同的指令

PrintCom("{\"VoiceCommandCode\":1}");

4、MCU根据指令不同,执行不同的动作

以JSON格式发送数据至串口,与语音识别模块相连的MCU接收此结果,然后对此字符串进行解析,进而得到当前识别的命令是什么,进而做相应的动作。

   
  1. //LD3320

  2. if(USART5_RX_STA&0x8000)

  3. {

  4. uart5Len=USART5_RX_STA&0x3f; //得到此次接收到的数据长度


  5. receive_json = cJSON_Parse(USART5_RX_BUF); //创建JSON解析对象,返回JSON格式是否正确

  6. if (!receive_json)

  7. {

  8. printf("JSON格式错误:%s \r\n", cJSON_GetErrorPtr()); //输出json格式错误信息

  9. }

  10. else

  11. {

  12. printf("JSON格式正确:%s \r\n",cJSON_Print(receive_json) );

  13. item_obj = receive_json->child; //获取name键对应的值的信息


  14. while(item_obj)

  15. {

  16. char * string = item_obj->string;


  17. if(!strcmp(string,"VoiceCommandCode"))

  18. {

  19. if(item_obj->valueint==0)

  20. {

  21. printf("收到一级口令 智能报时 ... \r\n");

  22. }

  23. else if(item_obj->valueint==1)

  24. {

  25. printf("“现在几点了”命令识别成功 \r\n");


  26. m_nCurrentVoicePlayTimes++;

  27. while(U5152_BSY){}

  28. if(m_nCurrentVoicePlayTimes%2==0)

  29. {

  30. sprintf((char*)dtbuf,"[v5][s5][m3]当前时间为%02d时%02d分%02d秒 \r\n",NowHour,NowMinute,NowSecond);

  31. }

  32. else

  33. {

  34. sprintf((char*)dtbuf,"[v5][s5][m51]当前时间为%02d时%02d分%02d秒 \r\n",NowHour,NowMinute,NowSecond);

  35. }

  36. printf((char*)dtbuf);

  37. XFS_FrameInfo((char*)dtbuf) ;

  38. delay_ms(10);while(U5152_BSY){delay_ms(500);printf("while(U5152_BSY) \r\n");}

  39. }

  40. }


  41. item_obj = item_obj->next;


  42. printf("while(item_obj) \r\n");

  43. }


  44. }


  45. cJSON_Delete(receive_json);


  46. USART5_RX_STA=0;

  47. memset(USART5_RX_BUF, 0, sizeof(USART5_RX_BUF)); //清空数组

  48. }

LDV7模块固件下载:

1、打开编译后的.hex文件

2、选对串口号,芯片型号后,选择“下载/编程”按钮,然后给STC单片机上电或者复位。

3、发出语音,测试语音识别结果

然后其他与LDV7模块相连的MCU只要解析接收到的串口数据即可。



喜欢请关注微信公众号:程序员小哈
有啥想玩的模块,留言给我,咱们一起玩
如果有其他的问题可以评论区指出,有问必答,知无不言。


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

本文中,小编将对语音识别技术予以介绍,如果你想对语音识别技术的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 语音识别 语音识别技术

在这篇文章中,小编将为大家带来语音识别技术的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 语音识别 语音识别技术

今天,小编将在这篇文章中为大家带来语音识别的有关报道,通过阅读这篇文章,大家可以对语音识别具备清晰的认识,主要内容如下。

关键字: 语音识别 智能家居

语音识别技术将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对语音识别技术的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 语音识别 芯片

在这篇文章中,小编将对语音识别模块的相关内容和情况加以介绍以帮助大家增进对语音识别模块的了解程度,和小编一起来阅读以下内容吧。

关键字: 语音识别 语音识别模块

一直以来,语音识别都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来语音识别的相关介绍,详细内容请看下文。

关键字: 语音识别 智能家居 智能客服 人工智能

在下述的内容中,小编将会对语音识别技术的相关消息予以报道,如果语音识别技术是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 语音识别 语音识别技术

以下内容中,小编将对语音识别模块的相关内容进行着重介绍和阐述,希望本文能帮您增进对语音识别模块的了解,和小编一起来看看吧。

关键字: 语音识别 语音识别模块

本文中,小编将对语音识别技术予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 语音识别 智能家居 物联网

在这篇文章中,小编将为大家带来汽车语音识别控制系统怎么用的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 语音识别 语音识别控制系统 语音导航
关闭
关闭