找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13509|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的LD3320的例程(口令模式+IO口控制程序)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:470616 發(fā)表于 2019-1-19 16:42 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
1、本工程采用 KEIL4 版本建立

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

V0.7 語音識別程序:口令模式+IO口控制
本工程采用keil 4建立,如您打不開,可參考以下格式進(jìn)行工程建立。


單片機(jī)源程序如下:
  1. /***************************飛音云電子****************************
  2. **  工程名稱:YS-V0.7語音識別模塊驅(qū)動程序
  3. **        CPU: STC11L08XE
  4. **        晶振:22.1184MHZ
  5. **        波特率:9600 bit/S
  6. **        配套產(chǎn)品信息:YS-V0.7語音識別開發(fā)板
  7. **  作者:zdings

  8. **  說明:口令模式+IO控制: 即每次識別時都需要說“小杰”這個口令 ,才能夠進(jìn)行下一級的識別
  9. /***************************飛音云電子******************************/
  10. #include "config.h"
  11. /************************************************************************************/
  12. //        nAsrStatus 用來在main主程序中表示程序運(yùn)行的狀態(tài),不是LD3320芯片內(nèi)部的狀態(tài)寄存器
  13. //        LD_ASR_NONE:                表示沒有在作ASR識別
  14. //        LD_ASR_RUNING:                表示LD3320正在作ASR識別中
  15. //        LD_ASR_FOUNDOK:                表示一次識別流程結(jié)束后,有一個識別結(jié)果
  16. //        LD_ASR_FOUNDZERO:        表示一次識別流程結(jié)束后,沒有識別結(jié)果
  17. //        LD_ASR_ERROR:                表示一次識別流程中LD3320芯片內(nèi)部出現(xiàn)不正確的狀態(tài)
  18. /***********************************************************************************/
  19. uint8 idata nAsrStatus=0;       
  20. void MCU_init();
  21. void ProcessInt0(); //識別處理函數(shù)
  22. void  delay(unsigned long uldata);
  23. void         User_handle(uint8 dat);//用戶執(zhí)行操作函數(shù)
  24. void Led_test(void);//單片機(jī)工作指示
  25. void Delay200ms();
  26. uint8_t G0_flag=DISABLE;//運(yùn)行標(biāo)志,ENABLE:運(yùn)行。DISABLE:禁止運(yùn)行
  27. sbit LED=P4^2;//信號指示燈
  28. //應(yīng)用IO口定義 (模塊標(biāo)注 P2)
  29. sbit PA1=P4^1; //對應(yīng)板上標(biāo)號 P4.1
  30. sbit PA2=P2^7;  //對應(yīng)板上標(biāo)號 P2.7
  31. sbit PA3=P2^6;  //.....
  32. sbit PA4=P2^5;  //.....
  33. sbit PA5=P2^4;  //.....
  34. sbit PA6=P2^3;  //.....
  35. sbit PA7=P3^3;  //對應(yīng)板上標(biāo)號 IT1
  36. sbit PA8=P3^4;  //對應(yīng)板上標(biāo)號 T0


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

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

  96. }
  97. /***********************************************************
  98. * 名    稱:          LED燈測試
  99. * 功    能: 單片機(jī)是否工作指示
  100. * 入口參數(shù): 無
  101. * 出口參數(shù):無
  102. * 說    明:                                          
  103. **********************************************************/
  104. void Led_test(void)
  105. {
  106.         LED=~ LED;
  107.         Delay200ms();
  108.         LED=~ LED;
  109.         Delay200ms();
  110.         LED=~ LED;
  111.         Delay200ms();
  112.         LED=~ LED;
  113.         Delay200ms();
  114.         LED=~ LED;
  115.         Delay200ms();
  116.         LED=~ LED;
  117. }
  118. /***********************************************************
  119. * 名    稱: void MCU_init()
  120. * 功    能: 單片機(jī)初始化
  121. * 入口參數(shù):  
  122. * 出口參數(shù):
  123. * 說    明:                                          
  124. * 調(diào)用方法:
  125. **********************************************************/
  126. void MCU_init()
  127. {
  128.         P0 = 0xff;
  129.         P1 = 0xff;
  130.         P2 = 0xff;
  131.         P3 = 0xff;
  132.         P4 = 0xff;
  133.         LD_MODE = 0;                //        設(shè)置MD管腳為低,并行模式讀寫
  134.         IE0=1;
  135.         EX0=1;
  136.         EA=1;
  137. }
  138. /***********************************************************
  139. * 名    稱:        延時函數(shù)
  140. * 功    能:
  141. * 入口參數(shù):  
  142. * 出口參數(shù):
  143. * 說    明:                                          
  144. * 調(diào)用方法:
  145. **********************************************************/
  146. void Delay200us()                //@22.1184MHz
  147. {
  148.         unsigned char i, j;
  149.         _nop_();
  150.         _nop_();
  151.         i = 5;
  152.         j = 73;
  153.         do
  154.         {
  155.                 while (--j);
  156.         } while (--i);
  157. }

  158. void  delay(unsigned long uldata)
  159. {
  160.         unsigned int j  =  0;
  161.         unsigned int g  =  0;
  162.         while(uldata--)
  163.         Delay200us();
  164. }

  165. void Delay200ms()                //@22.1184MHz
  166. {
  167.         unsigned char i, j, k;

  168.         i = 17;
  169.         j = 208;
  170.         k = 27;
  171.         do
  172.         {
  173.                 do
  174.                 {
  175.                         while (--k);
  176.                 } while (--j);
  177.         } while (--i);
  178. }

  179. /***********************************************************
  180. * 名    稱: 中斷處理函數(shù)
  181. * 功    能:
  182. * 入口參數(shù):  
  183. * 出口參數(shù):
  184. * 說    明:                                          
  185. * 調(diào)用方法:
  186. **********************************************************/
  187. void ExtInt0Handler(void) interrupt 0  
  188. {        
  189.         ProcessInt0();                                /*        LD3320 送出中斷信號,包括ASR和播放MP3的中斷,需要在中斷處理函數(shù)中分別處理*/
  190. }
  191. /***********************************************************
  192. * 名    稱:用戶執(zhí)行函數(shù)
  193. * 功    能:識別成功后,執(zhí)行動作可在此進(jìn)行修改
  194. * 入口參數(shù): 無
  195. * 出口參數(shù):無
  196. * 說    明: 通過控制PAx端口的高低電平,從而控制外部繼電器的通斷                                         
  197. **********************************************************/
  198. void         User_handle(uint8 dat)
  199. {
  200.      //UARTSendByte(dat);//串口識別碼(十六進(jìn)制)
  201.                  if(0==dat)
  202.                  {
  203.                           G0_flag=ENABLE;
  204.                                 LED=0;
  205.                  }
  206.                  else if(ENABLE==G0_flag)
  207.                  {       
  208.                                  G0_flag=DISABLE;
  209.                                 LED=1;
  210.                          switch(dat)                   /*對結(jié)果執(zhí)行相關(guān)操作,客戶修改*/
  211.                           {
  212.                                   case CODE_DMCS:                        /*命令“測試”*/
  213.                                                 PrintCom("“代碼測試”命令識別成功\r\n"); //串口輸出提示信息(可刪除)
  214.                                                 PA1=0;//讓PA1端口為低電平
  215.                                                                                                          break;
  216.                                         case CODE_KFBYZ:         /*命令“全開”*/
  217.                                                 PrintCom("“開發(fā)板驗證”命令識別成功\r\n");//串口輸出提示信息(可刪除)
  218.                                                 PA2=0;//讓PA2端口為低電平
  219.                                                                                                          break;
  220.                                         case CODE_KD:                /*命令“復(fù)位”*/                               
  221.                                                 PrintCom("“開燈”命令識別成功\r\n"); //串口輸出提示信息(可刪除)
  222.                                                 PA3=0;//讓PA3端口為低電平
  223.                                                                                                         break;
  224.                                         case CODE_GD:                /*命令“復(fù)位”*/                               
  225.                                                 PrintCom("“關(guān)燈”命令識別成功\r\n"); //串口輸出提示信息(可刪除)
  226.                                                 PA3=1;//讓PA3端口為高電平
  227.                                                                                                         break;
  228.                                         case CODE_BJ:                /*命令“復(fù)位”*/                               
  229.                                                 PrintCom("“北京”命令識別成功\r\n"); //串口輸出提示信息(可刪除)
  230.                                                 PA4=0;//讓PA4端口為低電平
  231.                                                                                                         break;
  232.                                         case CODE_SH:                /*命令“復(fù)位”*/                               
  233.                                                 PrintCom("“上!泵钭R別成功\r\n"); //串口輸出提示信息(可刪除)
  234.                                                 PA5=0;//讓PA5端口為低電平
  235.                                                                                                         break;
  236.                                         case CODE_GZ:                /*命令“復(fù)位”*/                               
  237.                                                 PrintCom("“廣州”命令識別成功\r\n"); //串口輸出提示信息(可刪除)
  238.                                                 PA6=0;//讓PA6端口為低電平
  239.                                                                                                         break;                                                                                                                                                                                                                       
  240.                                                         default:PrintCom("請重新識別發(fā)口令\r\n"); //串口輸出提示信息(可刪除)
  241.                                                                                                         break;
  242.                                 }       
  243.                         }       
  244.                         else        
  245.                         {
  246.                                 PrintCom("請說出一級口令\r\n"); //串口輸出提示信息(可刪除)       
  247.                         }
  248. }         
復(fù)制代碼
  1. /***************************飛音云電子****************************
  2. **  工程名稱:YS-V0.7語音識別模塊驅(qū)動程序
  3. **        CPU: STC11L08XE
  4. **        晶振:22.1184MHZ
  5. **        波特率:9600 bit/S
  6. **        配套產(chǎn)品信息:YS-V0.7語音識別開發(fā)板
  7. **  說明:口令模式: 即每次識別時都需要說“小杰”這個口令 ,才能夠進(jìn)行下一級的識別
  8. /***************************飛音云電子******************************/
  9. #include "config.h"

  10. extern void  delay(unsigned long uldata);

  11. uint8 idata ucRegVal;
  12. extern uint8 idata nAsrStatus;

  13. void ProcessInt0(void);

  14. /************************************************************************
  15. 功能描述:          復(fù)位LD模塊
  16. 入口參數(shù):         none
  17. 返 回 值:          none
  18. 其他說明:         none
  19. **************************************************************************/
  20. void LD_Reset()
  21. {
  22.         RSTB=1;
  23.         delay(1);
  24.         RSTB=0;
  25.         delay(1);
  26.         RSTB=1;

  27.         delay(1);
  28.         CSB=0;
  29.         delay(1);
  30.         CSB=1;
  31.         delay(1);
  32. }
  33. /************************************************************************
  34. 功能描述: LD模塊命令初始化
  35. 入口參數(shù): none
  36. 返 回 值: none
  37. 其他說明: 該函數(shù)為出廠配置,一般不需要修改;
  38.                                          有興趣的客戶可對照開發(fā)手冊根據(jù)需要自行修改。
  39. **************************************************************************/
  40. void LD_Init_Common()
  41. {
  42.         LD_ReadReg(0x06);  
  43.         LD_WriteReg(0x17, 0x35);
  44.         delay(10);
  45.         LD_ReadReg(0x06);  

  46.         LD_WriteReg(0x89, 0x03);  
  47.         delay(5);
  48.         LD_WriteReg(0xCF, 0x43);   
  49.         delay(5);
  50.         LD_WriteReg(0xCB, 0x02);
  51.        
  52.         /*PLL setting*/
  53.         LD_WriteReg(0x11, LD_PLL_11);      

  54.         LD_WriteReg(0x1E,0x00);
  55.         LD_WriteReg(0x19, LD_PLL_ASR_19);
  56.         LD_WriteReg(0x1B, LD_PLL_ASR_1B);               
  57.   LD_WriteReg(0x1D, LD_PLL_ASR_1D);
  58.         delay(10);
  59.        
  60.     LD_WriteReg(0xCD, 0x04);
  61. //        LD_WriteReg(0x17, 0x4c);
  62.         delay(5);
  63.         LD_WriteReg(0xB9, 0x00);
  64.         LD_WriteReg(0xCF, 0x4F);
  65.         LD_WriteReg(0x6F, 0xFF);
  66. }

  67. /************************************************************************
  68. 功能描述:          LD模塊 ASR功能初始化
  69. 入口參數(shù):         none
  70. 返 回 值:          none
  71. 其他說明:         該函數(shù)為出廠配置,一般不需要修改;
  72.                                          有興趣的客戶可對照開發(fā)手冊根據(jù)需要自行修改。
  73. **************************************************************************/
  74. void LD_Init_ASR()
  75. {
  76.         LD_Init_Common();
  77.         LD_WriteReg(0xBD, 0x00);
  78.         LD_WriteReg(0x17, 0x48);
  79.         delay( 10 );
  80.         LD_WriteReg(0x3C, 0x80);   
  81.         LD_WriteReg(0x3E, 0x07);
  82.         LD_WriteReg(0x38, 0xff);   
  83.         LD_WriteReg(0x3A, 0x07);
  84.   LD_WriteReg(0x40, 0);         
  85.         LD_WriteReg(0x42, 8);
  86.         LD_WriteReg(0x44, 0);   
  87.         LD_WriteReg(0x46, 8);
  88.         delay( 1 );
  89. }

  90. /************************************************************************
  91. 功能描述:         中斷處理函數(shù)
  92. 入口參數(shù):         none
  93. 返 回 值:          none
  94. 其他說明:        當(dāng)LD模塊接收到音頻信號時,將進(jìn)入該函數(shù),
  95.                                                 判斷識別是否有結(jié)果,如果沒有從新配置寄
  96.             存器準(zhǔn)備下一次的識別。
  97. **************************************************************************/
  98. void ProcessInt0(void)
  99. {
  100.         uint8 nAsrResCount=0;

  101.         EX0=0;
  102.         ucRegVal = LD_ReadReg(0x2B);
  103.         LD_WriteReg(0x29,0) ;
  104.         LD_WriteReg(0x02,0) ;
  105.         if((ucRegVal & 0x10) &&
  106.                 LD_ReadReg(0xb2)==0x21 &&
  107.                 LD_ReadReg(0xbf)==0x35)                        /*識別成功*/
  108.         {       
  109.                 nAsrResCount = LD_ReadReg(0xba);
  110.                 if(nAsrResCount>0 && nAsrResCount<=4)
  111.                 {
  112.                         nAsrStatus=LD_ASR_FOUNDOK;
  113.                 }
  114.                 else
  115.             {
  116.                         nAsrStatus=LD_ASR_FOUNDZERO;
  117.                 }       
  118.         }                                                                                                                         /*沒有識別結(jié)果*/
  119.         else
  120.         {         
  121.                 nAsrStatus=LD_ASR_FOUNDZERO;
  122.         }
  123.                
  124.   LD_WriteReg(0x2b, 0);
  125.   LD_WriteReg(0x1C,0);/*寫0:ADC不可用*/

  126.         LD_WriteReg(0x29,0) ;
  127.         LD_WriteReg(0x02,0) ;
  128.         LD_WriteReg(0x2B,  0);
  129.         LD_WriteReg(0xBA, 0);       
  130.         LD_WriteReg(0xBC,0);       
  131.         LD_WriteReg(0x08,1);         /*清除FIFO_DATA*/
  132.         LD_WriteReg(0x08,0);        /*清除FIFO_DATA后 再次寫0*/


  133.         EX0=1;
  134. }

  135. /************************************************************************
  136. 功能描述:         運(yùn)行ASR識別流程
  137. 入口參數(shù):        none
  138. 返 回 值:  asrflag:1->啟動成功, 0—>啟動失敗
  139. 其他說明:        識別順序如下:
  140.                                                 1、RunASR()函數(shù)實現(xiàn)了一次完整的ASR語音識別流程
  141.                                                 2、LD_AsrStart() 函數(shù)實現(xiàn)了ASR初始化
  142.                                                 3、LD_AsrAddFixed() 函數(shù)實現(xiàn)了添加關(guān)鍵詞語到LD3320芯片中
  143.                                                 4、LD_AsrRun()        函數(shù)啟動了一次ASR語音識別流程                                       
  144.                                                 任何一次ASR識別流程,都需要按照這個順序,從初始化開始
  145. **************************************************************************/
  146. uint8 RunASR(void)
  147. {
  148.         uint8 i=0;
  149.         uint8 asrflag=0;
  150.         for (i=0; i<5; i++)                        //        防止由于硬件原因?qū)е翷D3320芯片工作不正常,所以一共嘗試5次啟動ASR識別流程
  151.         {
  152.                 LD_AsrStart();
  153.                 delay(50);
  154.                 if (LD_AsrAddFixed()==0)
  155.                 {
  156.                         LD_Reset();                        //        LD3320芯片內(nèi)部出現(xiàn)不正常,立即重啟LD3320芯片
  157.                         delay(50);                        //        并從初始化開始重新ASR識別流程
  158.                         continue;
  159.                 }
  160.                 delay(10);
  161.                 if (LD_AsrRun() == 0)
  162.                 {
  163.                         LD_Reset();                        //        LD3320芯片內(nèi)部出現(xiàn)不正常,立即重啟LD3320芯片
  164.                         delay(50);                        //        并從初始化開始重新ASR識別流程
  165.                         continue;
  166.                 }
  167.                 asrflag=1;
  168.                 break;                                        //        ASR流程啟動成功,退出當(dāng)前for循環(huán)。開始等待LD3320送出的中斷信號
  169.         }

  170.         return asrflag;
  171. }
  172. /************************************************************************
  173. 功能描述:  檢測LD模塊是否空閑
  174. 入口參數(shù):        none
  175. 返 回 值:         flag:1-> 空閑
  176. 其他說明:        none
  177. **************************************************************************/
  178. uint8 LD_Check_ASRBusyFlag_b2()
  179. {
  180.         uint8 j;
  181.         uint8 flag = 0;
  182.         for (j=0; j<10; j++)
  183.         {
  184.                 if (LD_ReadReg(0xb2) == 0x21)
  185.                 {
  186.                         flag = 1;
  187.                         break;
  188.                 }
  189.                 delay(10);               
  190.         }
  191.         return flag;
  192. }
  193. /************************************************************************
  194. 功能描述:         啟動ASR
  195. 入口參數(shù):        none
  196. 返 回 值:         none
  197. 其他說明:        none
  198. **************************************************************************/
  199. void LD_AsrStart()
  200. {
  201.         LD_Init_ASR();
  202. }
  203. /************************************************************************
  204. 功能描述:         運(yùn)行ASR
  205. 入口參數(shù):        none
  206. 返 回 值:         1:啟動成功
  207. 其他說明:        none
  208. **************************************************************************/
  209. uint8 LD_AsrRun()
  210. {
  211.         EX0=0;
  212.         LD_WriteReg(0x35, MIC_VOL);
  213.         LD_WriteReg(0x1C, 0x09);
  214.         LD_WriteReg(0xBD, 0x20);
  215.         LD_WriteReg(0x08, 0x01);
  216.         delay( 1 );
  217.         LD_WriteReg(0x08, 0x00);
  218.         delay( 1 );

  219.         if(LD_Check_ASRBusyFlag_b2() == 0)
  220.         {
  221.                 return 0;
  222.         }
  223. //        LD_WriteReg(0xB6, 0xa); //識別時間         1S
  224. //        LD_WriteReg(0xB5, 0x1E); //背景音段時間 300ms
  225. //        LD_WriteReg(0xB8, 10); //結(jié)束時間

  226. //        LD_WriteReg(0x1C, 0x07); //配置雙通道音頻信號做為輸入信號
  227.         LD_WriteReg(0x1C, 0x0b); //配置麥克風(fēng)做為輸入信號


  228.         LD_WriteReg(0xB2, 0xff);
  229.         delay( 1);       
  230.         LD_WriteReg(0x37, 0x06);
  231.         delay( 1 );
  232.     LD_WriteReg(0x37, 0x06);
  233.                 delay( 5 );
  234.         LD_WriteReg(0x29, 0x10);
  235.        
  236.         LD_WriteReg(0xBD, 0x00);
  237.         EX0=1;
  238.         return 1;
  239. }
  240. /************************************************************************
  241. 功能描述: 向LD模塊添加關(guān)鍵詞
  242. 入口參數(shù): none
  243. 返 回 值: flag:1->添加成功
  244. 其他說明: 用戶修改.
  245.                                          1、根據(jù)如下格式添加拼音關(guān)鍵詞,同時注意修改sRecog 和pCode 數(shù)組的長度
  246.                                          和對應(yīng)變了k的循環(huán)置。拼音串和識別碼是一一對應(yīng)的。
  247.                                          2、開發(fā)者可以學(xué)習(xí)"語音識別芯片LD3320高階秘籍.pdf"中
  248.            關(guān)于垃圾詞語吸收錯誤的用法,來提供識別效果。
  249.                                          3、”xiao jie “ 為口令,故在每次識別時,必須先發(fā)一級口令“小捷”
  250. **************************************************************************/
  251. uint8 LD_AsrAddFixed()
  252. {
  253.         uint8 k, flag;
  254.         uint8 nAsrAddLength;
  255.         #define DATE_A 8   /*數(shù)組二維數(shù)值*/
  256.         #define DATE_B 20                /*數(shù)組一維數(shù)值*/
  257.         uint8 code sRecog[DATE_A][DATE_B] = {
  258.                                                                                                                                                                 "xiao jie",\               
  259.                                                                                                                                                                 "kai fa ban yan zheng",\
  260.                                                                                                                                                                  "dai ma ce shi",\
  261.                                                                                                                                                                  "kai deng",\
  262.                                                                                                                                                                  "guan deng",\
  263.                                                                                                                                                                  "bei jing",\
  264.                                                                                                                                                                  "shang hai",\
  265.                                                                                                                                                                  "guang zhou"
  266.                                                                                                                                                         };        /*添加關(guān)鍵詞,用戶修改*/
  267.         uint8 code pCode[DATE_A] = {
  268.                                                                                                                         CODE_CMD,\
  269.                                                                                                                         CODE_KFBYZ,\
  270.                                                                                                                         CODE_DMCS,\
  271.                                                                                                                         CODE_KD,\
  272.                                                                                                                         CODE_GD,\
  273.                                                                                                                         CODE_BJ,\
  274.                                                                                                                         CODE_SH,\
  275.                                                                                                                         CODE_GZ
  276.                                                                                                                  };        /*添加識別碼,用戶修改*/       
  277.         flag = 1;
  278.         for (k=0; k<DATE_A; k++)
  279. ……………………

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

所有資料51hei提供下載:
V0.7 語音識別程序:口令模式 IO口控制.rar (151.14 KB, 下載次數(shù): 150)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂3 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:517770 發(fā)表于 2019-4-21 14:10 | 只看該作者
非常好!
回復(fù)

使用道具 舉報

板凳
ID:642991 發(fā)表于 2019-11-16 08:28 | 只看該作者
what particular LD3320 development did you use?
回復(fù)

使用道具 舉報

地板
ID:562150 發(fā)表于 2019-11-18 12:31 來自觸屏版 | 只看該作者
51可以識別IO口不同的電平從而切換功能嗎,謝謝
回復(fù)

使用道具 舉報

5#
ID:649351 發(fā)表于 2019-11-26 20:47 | 只看該作者
請問下您這里一二級口令之間的銜接是怎么處理的呢?
回復(fù)

使用道具 舉報

6#
ID:638594 發(fā)表于 2020-1-24 17:25 | 只看該作者
我想問一下各位,為什么我顯示不出任何反應(yīng)呢,開機(jī)的時候閃燈幾下后,就一切不動,一級口令也呼喚了無數(shù)句,就差念經(jīng)給他聽了,還是識別不了,給大家看看我按程序接的線,電源,地線,CS,MO,RET。
就一共5根。請各位指教指教

d4e64e76a2705341fc48501a0c08dc1.jpg (264.57 KB, 下載次數(shù): 32)

d4e64e76a2705341fc48501a0c08dc1.jpg
回復(fù)

使用道具 舉報

7#
ID:869923 發(fā)表于 2020-12-29 01:57 | 只看該作者
請問樓主,成功了么,我的也是沒反應(yīng)
回復(fù)

使用道具 舉報

8#
ID:800086 發(fā)表于 2020-12-29 08:57 | 只看該作者
之前我也做過,對環(huán)境要求高,語音識別低。可以學(xué)習(xí)一下
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表