<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于AVR單片機的語音識別系統(tǒng)設(shè)計

          基于AVR單片機的語音識別系統(tǒng)設(shè)計

          作者: 時間:2012-08-08 來源:網(wǎng)絡(luò) 收藏

          0 引言
          傳統(tǒng)的人機交互依靠復雜的鍵盤或按鈕來實現(xiàn),隨著科技的發(fā)展,一些新型的人機交互方式也隨之誕生,帶給人們?nèi)碌捏w驗?;谡Z音識別的人機交互方式是目前熱門的技術(shù)之一。但是語音識別功能算法復雜、計算量大,一般在計算機上實現(xiàn),即使是嵌入式方面,多數(shù)方案也需要運算能力強的ARM或DSP,并且外擴RAM、FLASH等資源,增加了硬件成本,這些特點無疑限制了語音識別技術(shù)的應(yīng)用,尤其是嵌入式領(lǐng)域。
          本系統(tǒng)采用的主控MCU為Atmel公司的ATMEGA128,語音識別功能則采用ICRoute公司的單芯片內(nèi)部集成優(yōu)化過的語音識別算法,無需外部FLASH,RAM資源,可以很好地完成非特定人的語音識別任務(wù)。

          1 整體方案設(shè)計
          1.1 語音識別原理
          在計算機系統(tǒng)中,語音信號本身的不確定性、動態(tài)性和連續(xù)性是語音識別的難點。主流的語音識別技術(shù)是基于統(tǒng)計模式識別的基本理論,原理如圖1所示。

          a.JPG

          語音識別通常需要兩個階段完成。第一階段是訓練,主要是提取語音特征,用戶往往需要進行幾次語音訓練,經(jīng)過預處理和特征提取后獲得相應(yīng)特征參數(shù)。第二階段是識別,識別過程就是將輸入的語音特征參數(shù)和模型庫中的參數(shù)進行相似性比較,最后輸出匹配度最高的特征參數(shù)完成識別過程。

          2 硬件電路設(shè)計
          硬件框架如圖2所示,電路主要由主控制器電路和語音識別電路組成。ATMEGA128控制語音識別電路,輸出結(jié)果由ATMEGA128處理,然后通過總線來控制不同的設(shè)備。

          b.JPG

          2.1 控制器電路
          控制器選用Atmel公司生產(chǎn)的ATMEGA128芯片,采用先進的RISC結(jié)構(gòu),內(nèi)置128 KB FLASH,4 KB SRAM,4 KB E2PROM等豐富資源。該芯片
          是業(yè)界高性能、低功耗的8位微處理器,并在8位單片機市場有著廣泛應(yīng)用。
          2.2 LD3320語音識別電路
          LD3320芯片是一款“語音識別”專用芯片。該芯片集成了語音識別處理器和一些外部電路,包括A/D、D/A轉(zhuǎn)換器、麥克風接口、聲音輸出接口等,而且可以播放MP3。不需要外接任何的輔助芯片如FLASH,RAM等,直接集成到產(chǎn)品中即可以實現(xiàn)語音識別、聲控、人機對話功能。
          圖3為LD3320電路原理圖,與MCU通信采用SPI總線方式,時鐘不能超過1.5MHz。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();