欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5182|回復: 3
收起左側

LD3320語音識別與控制單片機源碼參考文獻及文檔手冊下載

[復制鏈接]
ID:256862 發表于 2018-5-9 21:29 | 顯示全部樓層 |閱讀模式
0.png

所有資料51hei提供下載:
LD3320參考文獻及文檔手冊.zip (9.93 MB, 下載次數: 92)



其他共享配套參考程序\
官方開發板配套程序\
MSP430 源程序.zip
凌陽單片機部分程序.c
基于STM32 的 LD3320基本驅動程序.zip
官方開發板配套程序.zip
語音識別 AVR參考.zip
語音識別模塊 STM32+SD卡+LD3320工程.zip


模塊介紹、應用提高\
LD3320 語音識別芯片應用場景.pdf
可編輯語音識別芯片LD3320.pdf
語音識別芯片LD3320高階秘籍.pdf


語音識別技術論文資料\
LD3320的嵌入式語音識別系統的應用.pdf
基于AVR單片機的語音識別系統設計.pdf
基于AVR和51單片機的機器魚語音控制系統設計與實現.pdf
基于LD3320的語音控制系統設計實現.pdf
基于STM32的嵌入式語音識別模塊設計.pdf
畢業論文.doc
玩具娃娃語音識別系統.pdf
車載自動語音識別系統設計.pdf



LD3320并行串行讀寫輔助說明.pdf
LD3320開發手冊.pdf
LD3320數據手冊.pdf


單片機源程序如下:
  1. /************************************************************************************/
  2. //        版權所有:Copyright (c) 2005 - 2010 ICRoute INC.
  3. /************************************************************************************/

  4. #include "STC10F08XE.H"
  5. #include "LDchip.h"
  6. #include "Reg_RW.h"
  7. #include "FlashDef.h"

  8. sbit LED1=P3^4;
  9. sbit LED2=P3^5;

  10. /************************************************************************************/
  11. //        nAsrStatus 用來在main主程序中表示程序運行的狀態,不是LD3320芯片內部的狀態寄存器
  12. //        LD_ASR_NONE:                表示沒有在作ASR識別
  13. //        LD_ASR_RUNING:                表示LD3320正在作ASR識別中
  14. //        LD_ASR_FOUNDOK:                表示一次識別流程結束后,有一個識別結果
  15. //        LD_ASR_FOUNDZERO:        表示一次識別流程結束后,沒有識別結果
  16. //        LD_ASR_ERROR:                表示一次識別流程中LD3320芯片內部出現不正確的狀態
  17. /***********************************************************************************/
  18. uint8 idata nAsrStatus=0;        


  19. /************************************************************************************/
  20. //        以下定義是在示范程序中,用來播放的聲音數據的起始位置和長度
  21. //        這些聲音是事先在PC機上錄制好的MP3文件,在PC機上合成到一個文件 voice.dat中
  22. //        可以把這個voide.dat存儲到用戶系統中的存儲芯片中,諸如 spi-flash中
  23. //        在需要播放時,用戶的主控MCU可以到spi-flash中根據要播放文件的起始地址無讀取MP3數據
  24. //        并送入LD3320進行播放
  25. /************************************************************************************/
  26. #define MP3_BEIJING_START        0x0000;
  27. #define MP3_BEIJING_SIZE        0x08b8;
  28. #define MP3_SHANGHAI_START        0x1000;
  29. #define MP3_SHANGHAI_SIZE        0x0ab0;
  30. #define MP3_TIANJIN_START        0x2000;
  31. #define MP3_TIANJIN_SIZE        0x0a20;
  32. #define MP3_CHONGQING_START        0x3000;
  33. #define MP3_CHONGQING_SIZE        0x0990;
  34. #define MP3_DING_START        0x4000;
  35. #define MP3_DING_SIZE        0x0828;
  36. #define MP3_NIHAO_START        0x5000;
  37. #define MP3_NIHAO_SIZE        0x1170;


  38. extern void          _nop_     (void);

  39. void MCU_init();
  40. void FlashLED(uint8 nTimes);
  41. void PlaySound(uint8 nCode);
  42. uint8 RunASR();
  43. void ProcessInt0();


  44. /************************************************************************************/
  45. //        這個示范程序是基于STC10L08XE編譯的完整地,可以執行的程序
  46. //        事先了識別和播放的功能
  47. //        根據用戶說出不同的關鍵詞語,識別后播放對應的mp3聲音
  48. //
  49. //        與LD3320芯片有關的函數功能,都在"開發手冊.pdf"中有詳細說明
  50. //        請開發者對照"開發手冊.pdf“閱讀
  51. //        
  52. //        開發者在學習LD3320開始時,可以直接把在這個main函數拷貝到自己單片機中編譯運行
  53. //        如果只實現ASR語音識別功能,可以把程序中PlaySound()函數的調用注釋掉就可以
  54. //        
  55. //        當然,用戶要根據自己實際的單片機去修改 mcu_init ,以及對應的管腳連接的定義,中斷定義
  56. /************************************************************************************/

  57. void  main()
  58. {
  59.         uint8 idata nAsrRes;

  60.         FlashLED(3);

  61.         MCU_init();
  62.         LD_reset();

  63.         nAsrStatus = LD_ASR_NONE;                //        初始狀態:沒有在作ASR
  64.         PlaySound(CODE_DEFAULT);                //        播放提示音
  65.         while(1)
  66.         {
  67.                 if (bMp3Play!=0)                        //        如果還在播放MP3中,則等待,直到MP3播放完畢 即bMp3Play==0
  68.                         continue;                                //        bMp3Play 是定義的一個全局變量用來記錄MP3播放的狀態,不是LD3320芯片內部的寄存器

  69.                 switch(nAsrStatus)
  70.                 {
  71.                         case LD_ASR_RUNING:
  72.                         case LD_ASR_ERROR:               
  73.                                 break;
  74.                         case LD_ASR_NONE:
  75.                         {
  76.                                 FlashLED(4);
  77.                                 nAsrStatus=LD_ASR_RUNING;
  78.                                 if (RunASR()==0)        //        啟動一次ASR識別流程:ASR初始化,ASR添加關鍵詞語,啟動ASR運算
  79.                                 {
  80.                                         nAsrStatus = LD_ASR_ERROR;
  81.                                         LED1=0;
  82.                                         LED2=0;
  83.                                 }
  84.                                 break;
  85.                         }
  86.                         case LD_ASR_FOUNDOK:
  87.                         {
  88.                                 FlashLED(2);
  89.                                 nAsrRes = LD_GetResult();        //        一次ASR識別流程結束,去取ASR識別結果
  90.                                 PlaySound(nAsrRes);
  91.                                 nAsrStatus = LD_ASR_NONE;
  92.                                 break;
  93.                         }
  94.                         case LD_ASR_FOUNDZERO:
  95.                         default:
  96.                         {
  97.                                 FlashLED(1);
  98.                                 PlaySound(CODE_DEFAULT);
  99.                                 nAsrStatus = LD_ASR_NONE;
  100.                                 break;
  101.                         }
  102.                 }// switch
  103.         }// while

  104. }

  105. void MCU_init()
  106. {
  107.         P1M0 |= 1;
  108.         P3M0 |= 8;

  109.         LED1=0;
  110.         LED2=0;
  111.         P0 = 0xff;
  112.         P1 = 0xff;
  113.         P2 = 0xff;
  114.         P3 = 0xf7;
  115.         P4 = 0x0f;

  116. #if defined (SOFT_SPI_PORT)                //        軟件模擬SPI讀寫
  117.         LD_MODE = 1;                                //        設置MD管腳為高
  118. #elif defined (HARD_SPI_PORT)        //        硬件實現SPI讀寫
  119.         LD_MODE = 1;                                //        設置MD管腳為高
  120. #else                                                        //        并行讀寫 (硬件實現或者軟件模擬)
  121.         LD_MODE = 0;                                //        設置MD管腳為低
  122. #endif


  123.         IP=0;
  124.         IPH=0;

  125.         PX0=1;
  126.         PT0=1;
  127.         PS=1;
  128.         IPH |= 1;        
  129.         
  130.         EX0=0;
  131.         EX1=0;
  132.         EA=1;
  133. }

  134. void  delay(unsigned long uldata)
  135. {
  136.         unsigned int j  =  0;
  137.         unsigned int g  =  0;
  138.         for (j=0;j<5;j++)
  139.         {
  140.                 for (g=0;g<uldata;g++)
  141.                 {
  142.                         _nop_();
  143.                         _nop_();
  144.                         _nop_();
  145.                 }
  146.         }
  147. }

  148. /*********************************************************************
  149. //為了消除編譯時的 警告 *** WARNING L15: MULTIPLE CALL TO SEGMENT
  150. //把在中斷函數中需要調用的函數重新復制并命名
  151. //消除警告 Warning L15,并且避免由于函數重入可能帶來的隱藏Bug
  152. /*********************************************************************/
  153. void  delay_2(unsigned long uldata)
  154. {
  155.         unsigned int j  =  0;
  156.         unsigned int g  =  0;
  157.         for (j=0;j<5;j++)
  158.         {
  159.                 for (g=0;g<uldata;g++)
  160.                 {
  161.                         _nop_();
  162.                         _nop_();
  163.                         _nop_();
  164.                 }
  165.         }
  166. }

  167. void FlashLED(uint8 nTimes)
  168. {
  169.         uint8 k;
  170.         for (k=0; k<nTimes; k++)
  171.         {
  172.                 LED1=0;
  173.                 LED2=0;
  174.                 delay(15000);
  175.                 LED1=1;
  176.                 LED2=1;
  177.                 delay(15000);
  178.         }
  179. }

  180. void PlaySound(uint8 nCode)
  181. {
  182.         switch(nCode)
  183.         {
  184.         case CODE_BEIJING:
  185.                 nMp3StartPos = MP3_BEIJING_START;
  186.                 nMp3Size = MP3_BEIJING_SIZE;
  187.                 break;
  188.         case CODE_SHANGHAI:
  189.                 nMp3StartPos = MP3_SHANGHAI_START;
  190.                 nMp3Size = MP3_SHANGHAI_SIZE;
  191.                 break;
  192.         case CODE_TIANJIN:
  193.                 nMp3StartPos = MP3_TIANJIN_START;
  194.                 nMp3Size = MP3_TIANJIN_SIZE;
  195.                 break;
  196.         case CODE_CHONGQING:
  197.                 nMp3StartPos = MP3_CHONGQING_START;
  198.                 nMp3Size = MP3_CHONGQING_SIZE;
  199.                 break;
  200.         default:
  201.                 nMp3StartPos = MP3_NIHAO_START;
  202.                 nMp3Size = MP3_NIHAO_SIZE;
  203.                 break;               
  204.         }

  205.         LD_Init_MP3();
  206.         LD_AdjustMIX2SPVolume(15);
  207.         LD_play();
  208. }


  209. /************************************************************************************/
  210. //        IO_Send_Byte()是主控MCU向spi-flash (型號為華邦的 W25X40)發送指令
  211. //        開發者應該根據自己使用的存儲芯片去寫具體的函數
  212. //
  213. //        ICroute公司無法對存儲芯片的讀寫提供技術支持,
  214. //        開發者需要自己向自己使用的存儲芯片的廠商獲得技術支持
  215. //        或者在網絡上搜索相關代碼和文檔
  216. /************************************************************************************/

  217. void IO_Send_Byte(uint8 dataout)
  218. {
  219.          uint8 i = 0;
  220.          FLASH_CS = 0;
  221.          for (i=0; i<8; i++)
  222.          {
  223.                   if ((dataout & 0x80) == 0x80)
  224.                            FLASH_DIO = 1;
  225.                   else
  226.                            FLASH_DIO = 0;
  227.                   FLASH_CLK = 1;
  228.                   dataout = (dataout << 1);
  229.                   FLASH_CLK = 0;   
  230.          }
  231. }


  232. /************************************************************************************/
  233. //        RunASR()函數實現了一次完整的ASR語音識別流程
  234. //        LD_AsrStart() 函數實現了ASR初始化
  235. //        LD_AsrAddFixed() 函數實現了添加關鍵詞語到LD3320芯片中
  236. //        LD_AsrRun()        函數啟動了一次ASR語音識別流程
  237. //
  238. //        任何一次ASR識別流程,都需要按照這個順序,從初始化開始進行
  239. /************************************************************************************/

  240. uint8 RunASR()
  241. {
  242.         uint8 i=0;
  243. ……………………

  244. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

回復

使用道具 舉報

ID:79544 發表于 2018-5-11 10:43 | 顯示全部樓層
好資料謝謝分享!!
回復

使用道具 舉報

ID:406283 發表于 2019-1-11 19:27 | 顯示全部樓層
坐等到明早有黑幣了,再進一步學習程序。
回復

使用道具 舉報

ID:374552 發表于 2019-1-12 11:14 | 顯示全部樓層
可以,好東西,也收藏了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表