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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機在人際語言互動方面的開發(fā)利用

          單片機在人際語言互動方面的開發(fā)利用

          作者: 時間:2014-01-13 來源:網(wǎng)絡(luò) 收藏

          (1)設(shè)計初衷。語言是人類特有的,在漫長的人類社會發(fā)展過程中發(fā)揮著無可比擬的作用。讓機器“說話”一直是電子技術(shù)不斷努力的方向,語言合成是人機語聲通信的一個重要組成部分。近年來,隨著大規(guī)模集成電路的發(fā)展,多種外圍電路簡單性價比高專用語音處理芯片相繼問世,如uM6101、8P101 等。但這些芯片多缺乏“智能”組合合成的能力,有的甚至只能實現(xiàn)簡單的語音錄放功能,因此,應(yīng)用范圍受到一定的限制。最近一些研發(fā)人員利用改造電子鬧鐘的語音自動報時功能在的智能化應(yīng)用方面邁出了建設(shè)性的步伐。

          (2)軟件設(shè)計原理。波形編碼技術(shù)在眾多語音合成編碼方案脫穎而出,讓工作在定時計數(shù)方式,當(dāng)單片機接收到需報時(或整點自動報時,或定鬧時間到) 的請求時,壓縮固化在EPROM中的語音數(shù)據(jù)編碼,單片機就能根據(jù)不同應(yīng)用場合的實際情況,自動組合,調(diào)用不同的編碼語音數(shù)據(jù),實現(xiàn)語音的“智能”組合合成。電路的工作原理是:根據(jù)當(dāng)前計時值,取出事前經(jīng)編碼壓縮固化在EPROM中的相應(yīng)語音數(shù)字信號,經(jīng)解碼組合,送至單片機Pl口作D/A變換,然后經(jīng)平滑濾波和功放,還原成報時語音。鑒于語音報時電子鬧鐘的詞匯量不大,要求注重語音的合成質(zhì)量。本系統(tǒng)EPROM中所存貯的語音數(shù)據(jù)和常用數(shù)字聲等音節(jié)。獲得相應(yīng)的語音報時信號,分時調(diào)用對應(yīng)的語音數(shù)據(jù)。當(dāng)接收到外部請求脈沖時,單片機按“點”+“分”的組合方式,經(jīng)解碼送往單片機P,口作D/A變換。

          (3)硬件設(shè)計原則。降低功耗和降低制作成本節(jié)約有限空間、有效布局是總體設(shè)計原則,根本出發(fā)點是盡量縮短CPU的運行時間,延長待機時間。具體設(shè)計時鑒于袖珍型便攜需用干電池供電的特點盡可能多使用80C31和27C256等低功耗CMOS芯片,只在需要報時時才接通功放和DZA等支路的電源,從而使整機靜態(tài)工作電源下降到0.6mA,即使兩節(jié)普通5號電池,也能滿足將近一個月的供電要求,達到降低功耗的目的。其次是,減少芯片數(shù)量,如采用數(shù)據(jù)和程序存貯器多合為一,實現(xiàn)一芯多用。在此時是將單片機設(shè)置成空閑節(jié)電運行方式,同時在硬件上采用電子開關(guān)。具體措施是:1.將單片機設(shè)置成空閑節(jié)電運行方式。 2.多用中斷方式,少用軟件查詢。3.采用并聯(lián)結(jié)構(gòu)的程序散轉(zhuǎn)方法,減少程序的執(zhí)行時間。4.充分利用CPU內(nèi)部的定時/計數(shù)器,少用軟件定時、計數(shù)。



          評論


          相關(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); })();