久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: LD3320語音識別模塊系列單片機程序代碼 [打印本頁]

作者: zzh666    時間: 2019-4-19 11:02
標(biāo)題: LD3320語音識別模塊系列單片機程序代碼
熟悉可以互相交流一下

本工程為口令模式+IO口控制方式,每次識別都需要喊“小杰”然后才可以喊其他二級的口令,另外IO口的輸出可以查看程序PAx的端口利用情況

本工程采用keil 4建立,如您打不開,可參考以下格式進(jìn)行工程建立。


單片機源程序如下:
  1. /***************************飛音云電子****************************
  2. **  工程名稱:YS-V0.7語音識別模塊驅(qū)動程序
  3. **        CPU: STC11L08XE
  4. **        晶振:22.1184MHZ
  5. **        波特率:9600 bit/S
  6. **        配套產(chǎn)品信息:YS-V0.7語音識別開發(fā)板
  7. **  說明:普通+按鍵觸發(fā)模式: 即每次識別時都需要說“小杰”這個口令 ,才能夠進(jìn)行下一級的識別
  8. /***************************飛音云電子******************************/
  9. #include "config.h"
  10. /************************************************************************************/
  11. //        nAsrStatus 用來在main主程序中表示程序運行的狀態(tài),不是LD3320芯片內(nèi)部的狀態(tài)寄存器
  12. //        LD_ASR_NONE:                表示沒有在作ASR識別
  13. //        LD_ASR_RUNING:                表示LD3320正在作ASR識別中
  14. //        LD_ASR_FOUNDOK:                表示一次識別流程結(jié)束后,有一個識別結(jié)果
  15. //        LD_ASR_FOUNDZERO:        表示一次識別流程結(jié)束后,沒有識別結(jié)果
  16. //        LD_ASR_ERROR:                表示一次識別流程中LD3320芯片內(nèi)部出現(xiàn)不正確的狀態(tài)
  17. /***********************************************************************************/
  18. uint8 idata nAsrStatus=0;       
  19. void MCU_init();
  20. void ProcessInt0(); //識別處理函數(shù)
  21. void  delay(unsigned long uldata);
  22. void         User_handle(uint8 dat);//用戶執(zhí)行操作函數(shù)
  23. void Led_test(void);//單片機工作指示
  24. uint8_t G0_flag=DISABLE;//運行標(biāo)志,ENABLE:運行。DISABLE:禁止運行
  25. sbit LED=P4^2;//信號指示燈
  26. void Delay200ms();
  27. sbit CMD_KE=P4^1;//觸發(fā)按鍵

  28. /***********************************************************
  29. * 名    稱: void  main(void)
  30. * 功    能: 主函數(shù)        程序入口
  31. * 入口參數(shù):  
  32. * 出口參數(shù):
  33. * 說    明:                                          
  34. * 調(diào)用方法:
  35. **********************************************************/
  36. void  main(void)
  37. {
  38.         uint8 idata nAsrRes;
  39.         uint8 i=0;
  40.         Led_test();
  41.         MCU_init();
  42.         LD_Reset();
  43.         UartIni(); /*串口初始化*/
  44.         nAsrStatus = LD_ASR_NONE;                //        初始狀態(tài):沒有在作ASR
  45.        
  46.         #ifdef TEST
  47.        
  48.         PrintCom("串口運行中....\r\n"); /*text.....*/
  49.         PrintCom("口令:1、代碼測試\r\n"); /*text.....*/
  50.         PrintCom("        2、開發(fā)板驗證\r\n"); /*text.....*/
  51.         PrintCom("        3、開燈\r\n"); /*text.....*/
  52.         PrintCom("        4、關(guān)燈\r\n"); /*text.....*/
  53.         PrintCom("    5、北京\r\n"); /*text.....*/
  54.         PrintCom("        6、上海\r\n"); /*text.....*/
  55.         PrintCom("        7、廣州\r\n"); /*text.....*/
  56.         #endif

  57.         while(1)
  58.         {
  59.                 switch(nAsrStatus)
  60.                 {
  61.                         case LD_ASR_RUNING:
  62.                         case LD_ASR_ERROR:               
  63.                                 break;
  64.                         case LD_ASR_NONE:
  65.                         {
  66.                                 nAsrStatus=LD_ASR_RUNING;
  67.                                 if (RunASR()==0)        /*        啟動一次ASR識別流程:ASR初始化,ASR添加關(guān)鍵詞語,啟動ASR運算*/
  68.                                 {
  69.                                         nAsrStatus = LD_ASR_ERROR;
  70.                                 }
  71.                                 break;
  72.                         }
  73.                         case LD_ASR_FOUNDOK: /*        一次ASR識別流程結(jié)束,去取ASR識別結(jié)果*/
  74.                         {                               
  75.                                 nAsrRes = LD_GetResult();                /*獲取結(jié)果*/
  76.                                 User_handle(nAsrRes);//用戶執(zhí)行函數(shù)
  77.                                 nAsrStatus = LD_ASR_NONE;
  78.                                 break;
  79.                         }
  80.                         case LD_ASR_FOUNDZERO:
  81.                         default:
  82.                         {
  83.                                 nAsrStatus = LD_ASR_NONE;
  84.                                 break;
  85.                         }
  86.                 }// switch                                
  87.         }// while

  88. }
  89. /***********************************************************
  90. * 名    稱:          LED燈測試
  91. * 功    能: 單片機是否工作指示
  92. * 入口參數(shù): 無
  93. * 出口參數(shù):無
  94. * 說    明:                                          
  95. **********************************************************/
  96. void Led_test(void)
  97. {
  98.         LED=~ LED;
  99.         Delay200ms();
  100.         LED=~ LED;
  101.         Delay200ms();
  102.         LED=~ LED;
  103.         Delay200ms();
  104.         LED=~ LED;
  105.         Delay200ms();
  106.         LED=~ LED;
  107.         Delay200ms();
  108.         LED=~ LED;
  109. }
  110. /***********************************************************
  111. * 名    稱: void MCU_init()
  112. * 功    能: 單片機初始化
  113. * 入口參數(shù):  
  114. * 出口參數(shù):
  115. * 說    明:                                          
  116. * 調(diào)用方法:
  117. **********************************************************/
  118. void MCU_init()
  119. {
  120.         P0 = 0xff;
  121.         P1 = 0xff;
  122.         P2 = 0xff;
  123.         P3 = 0xff;
  124.         P4 = 0xff;

  125.         P1M0=0XFF;        //P1端口設(shè)置為推挽輸出功能,即提高IO口驅(qū)動能力,從驅(qū)動繼電器模塊工作
  126.         P1M1=0X00;

  127.         LD_MODE = 0;                //        設(shè)置MD管腳為低,并行模式讀寫
  128.         IE0=1;
  129.         EX0=1;
  130.         EA=1;
  131. }
  132. /***********************************************************
  133. * 名    稱:        延時函數(shù)
  134. * 功    能:
  135. * 入口參數(shù):  
  136. * 出口參數(shù):
  137. * 說    明:                                          
  138. * 調(diào)用方法:
  139. **********************************************************/
  140. void Delay200us()                //@22.1184MHz
  141. {
  142.         unsigned char i, j;
  143.         _nop_();
  144.         _nop_();
  145.         i = 5;
  146.         j = 73;
  147.         do
  148.         {
  149.                 while (--j);
  150.         } while (--i);
  151. }

  152. void  delay(unsigned long uldata)
  153. {
  154.         unsigned int j  =  0;
  155.         unsigned int g  =  0;
  156.         while(uldata--)
  157.         Delay200us();
  158. }

  159. void Delay200ms()                //@22.1184MHz
  160. {
  161.         unsigned char i, j, k;

  162.         i = 17;
  163.         j = 208;
  164.         k = 27;
  165.         do
  166.         {
  167.                 do
  168.                 {
  169.                         while (--k);
  170.                 } while (--j);
  171.         } while (--i);
  172. }

  173. /***********************************************************
  174. * 名    稱: 中斷處理函數(shù)
  175. * 功    能:
  176. * 入口參數(shù):  
  177. * 出口參數(shù):
  178. * 說    明:                                          
  179. * 調(diào)用方法:
  180. **********************************************************/
  181. void ExtInt0Handler(void) interrupt 0  
  182. {        
  183.         ProcessInt0();                                /*        LD3320 送出中斷信號,包括ASR和播放MP3的中斷,需要在中斷處理函數(shù)中分別處理*/
  184. }
  185. /***********************************************************
  186. * 名    稱:用戶執(zhí)行函數(shù)
  187. * 功    能:識別成功后,執(zhí)行動作可在此進(jìn)行修改
  188. * 入口參數(shù): 無
  189. * 出口參數(shù):無
  190. * 說    明:                                          
  191. **********************************************************/
  192. void         User_handle(uint8 dat)
  193. {
  194. if(CMD_KE==0)//按鍵按下。 只有當(dāng)按鍵按下時才對識別結(jié)果進(jìn)行處理
  195. {
  196.      //UARTSendByte(dat);//串口識別碼(十六進(jìn)制)

  197. ……………………

  198. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼


所有資料51hei提供下載:
LDV7語音模塊驅(qū)動程序.zip (627.33 KB, 下載次數(shù): 236)


作者: A星貓    時間: 2020-9-27 19:30
感謝樓主,原來我的資料是打不開的,用了你的這個版本的程序就能打開了,十分感謝
作者: sch2000    時間: 2020-11-10 13:49
小白一枚,學(xué)習(xí)了,準(zhǔn)備轉(zhuǎn)物聯(lián)網(wǎng)應(yīng)用了,
作者: innocent1234    時間: 2021-3-28 20:26
請問,博主,這個語音模塊怎樣實現(xiàn)與單片機的通信,進(jìn)一步實現(xiàn)控制,比如燈光控制

作者: shenyuqiu    時間: 2021-3-29 11:29
這個語音識別是類似小愛師兄或小度這樣的識別嗎?不知敏感度高不高?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久精品国产精品青草 | 久久久久国产成人精品亚洲午夜 | 亚洲自拍偷拍视频 | 国产伦精品一区二区三区照片91 | 国产亚洲精品成人av久久ww | 国产激情视频在线 | 在线国产一区二区 | 日韩精品久久一区二区三区 | 成人影院网站ww555久久精品 | 国产精品一区二区三区在线 | 日韩在线观看网站 | 欧美日韩电影一区二区 | 日韩欧美在线视频 | 欧美精品福利视频 | 91免费在线看 | 妖精视频一区二区三区 | 日韩电影中文字幕 | 欧美成人精品一区二区男人看 | 久久精品这里精品 | 亚洲欧美国产一区二区三区 | 成人免费黄视频 | 91免费入口 | 九九综合九九 | 国产精品精品视频一区二区三区 | 国产福利91精品 | 欧美一级二级三级视频 | 成人午夜激情 | 国产偷录视频叫床高潮对白 | 日本五月婷婷 | 欧美日韩亚洲三区 | wwww.8888久久爱站网 | 亚洲国产成人精品女人久久久 | 亚洲精品乱码久久久久久按摩观 | 国产精品视频在 | 99久久免费精品国产男女高不卡 | 成人在线一区二区 | 一区二区三区免费 | 欧美激情久久久 | 蜜月va乱码一区二区三区 | 国产亚洲一区二区三区在线 | 中文字幕一区二区三区在线乱码 |