LD黑白特定人(不必针对指定人)语音区别芯片,即语音声控芯片。至多也许区别50条预先内置的指令。
办事形式:LD(LDV7)语音模块也许办事在下列三种形式:通常形式:直接讲话,模块直接区别;按键形式:按键触发着手ASR过程;口令形式:须要甲第叫醒词(口令);引荐运用口令形式,如许防止鼓噪处境下误行为。
运用处景:家居智能管制
智能小车DIY计划
结业计划改变功效
单方DIY计划
语音管制嵌入式产物计划
我采办的LDV7语音区别模块,内置单片机,LD语音区别芯片的启动是靠模块上自带的STC11L08单片机启动的,咱们也许改动模块自带工程的Demo程序,改动内部的关键词,尔后将识其它成果经过串口打印出来,咱们运用其它一个MCU与该模块举办串口通讯,懂得收到的串口指令,从而做相应的指令行为。
比如咱们说口令:目下时光(dangqianshijian)》》模块区别以后,串口输出:PrintCom("{\"VoiceCommandCode\":2}");》》MCU采纳串口音信以后,对该串口指令举办懂得(也许运用cJSON懂得此字符串);》》尔后经过TTS文字转语音模块播放目下时光,即终了本次语音区别管制历程。
区别旨趣:便是你说一句话,尔后模块用拼音去和你的发音做较量,在关键词中找出哪些预设值的词语与发音的挨近水平大于几许的(假设50%),尔后再从一堆大于(50%)内部输出一个最挨近的。
这边就会形成一个题目,轻易形成误区别太多。若是你惟有一个关键词:时光尔后你说了一句:‘岁月’,他区别到‘时’这个发音,因而有50%以上的宛如,不过候选词中没有‘岁月’这个比他更挨近的关键词,因而他就会输出‘时光’的成果。如许子他便是差错了。若是你配置一些拟声词,有或者随随意便就触发了。
办理计划:在设定好要识其它关键词语后,为了进一步低沉误区别率,也许再增加一些其余的搪塞辞汇进区别列表,用来汲取差错区别,从而到达低沉误区别率的方针。咱们把如许一些关键词语称之为“废物关键词语”。
譬喻,某个运用处景中,须要识其它关键词语是4条,“行进”,“撤退”,“开门”,“关门”。在把这4个关键词语配置进LD后,也许再其它配置10~30个词语进LD,譬喻“前门”,“后门”,“阿阿阿”,“呜呜”等等。因而最佳把一些拟声词或者轻易混淆的词语配置为废物关键词,即,区别后不举办输出。惟有区别成果是4个关键词语以内的,才以为区别灵验。若是区别成果是“废物关键词语”,则阐述是其余的声响致使的误区别,产物理当从头着手一次区别历程。如许,也许特别灵验地低沉误区别率。极地面升高末端用户的主观运用领会。
移植历程:1、向LD模块中增加关键词2、用户实行函数User_handle(nAsrRes);处置语音区别成果3、凭借不同成果,串口打印不同的指令PrintCom("{\"VoiceCommandCode\":1}");
4、MCU凭借指令不同,实行不同的行为以JSON格式发送数据至串口,与语音区别模块相接的MCU采纳此成果,尔后对此字符串举办懂得,从而获得目下识其它敕令是甚么,从而做相应的行为。
//LDif(USART5_RX_STA0x){uart5Len=USART5_RX_STA0x3f;//获得这次采纳到的数据长度receive_json=cJSON_Parse(USART5_RX_BUF);//创造JSON懂得目标,返回JSON格式能否准确if(!receive_json){printf("JSON格式差错:%s\r\n",cJSON_GetErrorPtr());//输出json格式差错音信}else{printf("JSON格式准确:%s\r\n",cJSON_Print(receive_json));item_obj=receive_json-child;//获得name键对应的值的音信while(item_obj){char*string=item_obj-string;if(!strcmp(string,"VoiceCommandCode")){if(item_obj-valueint==0){printf("收到甲第口令智能报时...\r\n");}elseif(item_obj-valueint==1){printf("“此刻几点了”敕令区别胜利\r\n");m_nCurrentVoicePlayTimes++;while(U_BSY){}if(m_nCurrentVoicePlayTimes%2==0){sprintf((char*)dtbuf,"[v5][s5][m3]目下时光为%02d时%02d分%02d秒\r\n",NowHour,NowMinute,NowSecond);}else{sprintf((char*)dtbuf,"[v5][s5][m51]目下时光为%02d时%02d分%02d秒\r\n",NowHour,NowMinute,NowSecond);}printf((char*)dtbuf);XFS_FrameInfo((char*)dtbuf);delay_ms(10);while(U_BSY){delay_ms();printf("while(U_BSY)\r\n");}}}item_obj=item_obj-next;printf("while(item_obj)\r\n");}}cJSON_Delete(receive_json);USART5_RX_STA=0;memset(USART5_RX_BUF,0,sizeof(USART5_RX_BUF));//清空数组}LDV7模块固件下载:1、翻开编译后的.hex文献2、选对串标语,芯片型号后,抉择“下载/编程”按钮,尔后给STC单片机上电或者复位。3、发出语音,测试语音区别成果
尔后其余与LDV7模块相接的MCU只需懂得采纳到的串口数据便可。
爱好请
转载请注明:http://www.0431gb208.com/sjszjzl/935.html