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

          新聞中心

          EEPW首頁(yè) > 消費(fèi)電子 > 基于凌陽(yáng)單片機(jī)的語(yǔ)音信號(hào)實(shí)時(shí)采集

          基于凌陽(yáng)單片機(jī)的語(yǔ)音信號(hào)實(shí)時(shí)采集

          ——
          作者:胡峻輝 王蓓蕾 李晶皎 時(shí)間:2007-08-29 來(lái)源:?jiǎn)纹瑱C(jī)及嵌入式系統(tǒng)應(yīng)用 收藏

            摘要:語(yǔ)音信號(hào)采集是的基礎(chǔ)。本文利用凌陽(yáng)公司16位單片機(jī)——SPCE061A所具有的數(shù)字信號(hào)處理(DSP)功能及其所提供的音頻壓縮函數(shù)庫(kù)來(lái)實(shí)現(xiàn)語(yǔ)音信號(hào)的實(shí)時(shí)采樣與壓縮;通過(guò)接口,將采集到的語(yǔ)音信號(hào)實(shí)時(shí)上傳到PC機(jī)中存儲(chǔ)。

              關(guān)鍵詞:

          引言

            隨著單片機(jī)集成化程度的不斷提高,現(xiàn)代單片機(jī)已經(jīng)具備了數(shù)字信號(hào)處理功能,使用單片機(jī)實(shí)現(xiàn)成為可能。臺(tái)灣凌陽(yáng)科技公司(SunPlus)推出的一款SPCE061A就是這樣的產(chǎn)品。SPCE061A是以μ'nSP TM16位微控制器及信號(hào)處理器芯片為內(nèi)核的16位單片機(jī),采用模塊式集成結(jié)構(gòu),片內(nèi)集成了2KB RAM、32KB Flash、ADC、DAC、并行I/O等,特別適合語(yǔ)音信號(hào)處理。本文介紹如何實(shí)現(xiàn)用SPCE061A單片機(jī)采集語(yǔ)音信號(hào),并傳送到PC機(jī)中的方法。

          1 硬件系統(tǒng)結(jié)構(gòu)

          1.1 SPCE061A結(jié)構(gòu)

          SPCE061A的內(nèi)部結(jié)構(gòu)如圖1,其特點(diǎn)如下:

            *16位μ'nSP TM微控制器;

            *工作電壓:VDD為2.6~3.6V(CPU),VDDH為VDD~5.5V(I/O);

            *CPU時(shí)鐘為0.32~49.152MHz;

            *內(nèi)置存儲(chǔ)器:SRAM為2KB,內(nèi)存Flash為32KB;

            *可編程音頻處理;

            *2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器;

            *7通道10位ADC(內(nèi)置麥克風(fēng)放大和自動(dòng)增益控制功能);

            *2個(gè)10位DAC;

            *32路可編程通用輸入輸出端口;

            *串行輸入輸出接口;

            *低電壓監(jiān)測(cè)/低電壓復(fù)位功能;

            *14個(gè)中斷源可來(lái)自定時(shí)器、外部時(shí)鐘輸入、鍵喚醒等;

            *內(nèi)置在線仿真電路ICE。

          1.2 SPCE061A開(kāi)發(fā)方法

            SPCE061A的開(kāi)發(fā)是通過(guò)在線調(diào)試器PROBE實(shí)現(xiàn)的,如圖2所示。它利用了SPCE061A內(nèi)置的在線仿真電路ICE和凌陽(yáng)公司的在線串行編程技術(shù)。如果讀者想要使用該芯片及開(kāi)發(fā)系統(tǒng),可上網(wǎng)www.unsp.com.cn查詢,并尋求大學(xué)計(jì)劃的免費(fèi)支持。

          1.3 語(yǔ)音采集的硬件電路

            語(yǔ)音采集的硬件電路如圖3所示。MIC采用駐極體電容話筒,這種話筒具有靈敏度高、無(wú)方向性、重量輕、體積小、頻率響應(yīng)寬、保真度好等優(yōu)點(diǎn)。

            與PC機(jī)的串行通信用SPCE061A的UART接口,用MAX232芯片進(jìn)行電平轉(zhuǎn)換,即可實(shí)現(xiàn)通信。

          2 軟件設(shè)計(jì)與實(shí)現(xiàn)

          2.1 語(yǔ)音信號(hào)的采集壓縮與數(shù)據(jù)傳輸

          (1)語(yǔ)音信號(hào)的采集壓縮

            語(yǔ)音信號(hào)處理的基礎(chǔ)是對(duì)語(yǔ)音信號(hào)進(jìn)行數(shù)字化,并采樣存儲(chǔ)。SRCE061A內(nèi)置專門(mén)用于語(yǔ)音信號(hào)采集的自動(dòng)增益控制放大器(AGC)的麥克風(fēng)輸入通道(MIC_IN)。語(yǔ)音信號(hào)經(jīng)麥克轉(zhuǎn)換成電信號(hào),由隔離電容隔掉直流成分,然后輸入至內(nèi)部前置放大器。SPCE061A內(nèi)部自動(dòng)增益控制電路AGC能隨時(shí)跟蹤、監(jiān)視前置放大器輸出的音頻信號(hào)電平,當(dāng)輸入信號(hào)增器時(shí),AGC電路自動(dòng)減小放大器的增益;當(dāng)輸入信號(hào)減小時(shí),AGC電路自動(dòng)增大放大器的增益,以便使進(jìn)入A/D的信號(hào)保持在最佳電平,又可使諧波減至最小。

          ADC初始化程序如下:

          INT OFF;

          R1=0x0030;

          [P_TimerA_Ctrl]=R1;

          //時(shí)鐘頻率為CLKA的fosc/2

          R1=0xfa00;

          [P_TimerA_Data]=R1;

          //采樣率為16kHz

          R1=0x003d;

          [P_ADC_Ctrl]=R1; //設(shè)置AGC功能

          R1=0x00A8;

          [P_DAC_Ctrl]=R1; //采用自動(dòng)方式且通過(guò)MIC_IN通道輸入,通過(guò)定時(shí)器A的溢出鎖存數(shù)據(jù),ADC為自動(dòng)方式

          R1=0x1000;

          [P_INT_Ctrl]=R1; //開(kāi)中斷IRQ1_TM

          INT IRQ;

            采樣后的數(shù)字語(yǔ)音信號(hào)數(shù)據(jù)量非常大,且由于語(yǔ)音信號(hào)采樣點(diǎn)幅度分布的非均勻性和樣本間的相關(guān)性等原因,使語(yǔ)音信號(hào)中含有大量的冗余信息。因此,在實(shí)際應(yīng)用中采用各種信源編碼技術(shù)來(lái)消除語(yǔ)音信號(hào)的冗余度。語(yǔ)音編碼方法主要有波形編碼、參數(shù)編碼和混合編碼。

            *波形編碼的基本原理是以波形逼近為原則,在時(shí)域上把幅度樣本分層量化并用代碼表示;特點(diǎn)是語(yǔ)音質(zhì)量高、抗噪性強(qiáng)編碼率高,適于語(yǔ)音及高保真音樂(lè)。

            *參數(shù)編碼是基于某種語(yǔ)音產(chǎn)生模型,在編程端分析出該模型參數(shù)選擇適當(dāng)?shù)姆绞竭M(jìn)行編碼;特點(diǎn)是語(yǔ)音質(zhì)量差、抗噪抗弱和編碼率低。

            *混合編碼綜合了波形和參數(shù)編碼之優(yōu)點(diǎn)。

            凌陽(yáng)SPCE061A提供了壓縮算法庫(kù)——SACMLIB(見(jiàn)表1),其處理的語(yǔ)音信號(hào)范圍是200Hz~3.4kHz的電話語(yǔ)音,并將A/D、編/解碼、存儲(chǔ)及D/A做成相應(yīng)的模塊,對(duì)于每個(gè)模塊都有其應(yīng)用程序接口API。

          表1 SACM-LIB庫(kù)中模塊及其算法

          模塊名稱 壓縮算法 采樣率/kHz 編碼率/Kb/s 用   途
          SACM_A2000 子帶編碼 16 16、20、24 播放語(yǔ)音及高保真音樂(lè)
          SACM_S480/S720 CELP混合編碼 16 4.8、7.2 播音
          SACM_S240 參數(shù)編碼 24 2.4 播音
          SACM_MS01 FM音樂(lè)合成 16 16、20、24 音樂(lè)合成
          SACM_DVR 子帶編碼 16 16Kb/s的傳輸率,8Ksps的采樣率 ADC信道錄音和DAC放音

          (2)語(yǔ)音數(shù)據(jù)的傳輸

            SPCE061A的通用異步串口(UART)提供了一個(gè)8位全雙工標(biāo)準(zhǔn)接口,用于完成SPCE061A與外設(shè)之間的串行通信。借助于IOB口的特殊功能和UART IRQ中斷,可以同時(shí)完成UART接口的接收與發(fā)送數(shù)據(jù)的過(guò)程。根據(jù)應(yīng)用需求,把UART設(shè)置為中斷方式接收數(shù)據(jù),以查詢方式發(fā)送數(shù)據(jù)。

            UART初始化程序InitUART()見(jiàn)網(wǎng)絡(luò)補(bǔ)充版(http://www.dpj.com.cn)。

          2.2 上位機(jī)控制和存儲(chǔ)模塊

            目前,Mircosoft公司的VC++6.0是基于Windows程序設(shè)計(jì)的主流開(kāi)發(fā)工具之一。VC++不僅秉承了C++簡(jiǎn)便、靈活及面向?qū)ο蟮葍?yōu)點(diǎn),而且提供了功能強(qiáng)大的MFC類庫(kù),并能自動(dòng)生成應(yīng)用程序框架,提供標(biāo)準(zhǔn)化的程序結(jié)構(gòu)和用戶接口。特別需要指出的是,為了今后調(diào)用低層的音頻處理API函數(shù),對(duì)由下位上傳的音頻數(shù)據(jù)進(jìn)一步進(jìn)行語(yǔ)音識(shí)別方面的處理,我們使用VC來(lái)編寫(xiě)上位機(jī)的控制及存儲(chǔ)程序。

            在實(shí)驗(yàn)室和工業(yè)應(yīng)用中,RS232串口是常用的計(jì)算機(jī)與外部串行設(shè)備(單片機(jī))之間的數(shù)據(jù)傳輸通道,由于串行通信簡(jiǎn)單易用,所以應(yīng)用廣泛。通常在VC++中有三種方法可以實(shí)現(xiàn)串行通信:

            *使用VC++的標(biāo)準(zhǔn)通信函數(shù)_inp和_outp來(lái)實(shí)現(xiàn);

            *把串口看成是一個(gè)特殊的設(shè)備文件,使用有關(guān)文件處理的API函數(shù)來(lái)實(shí)現(xiàn);

            *使用ActiveX的串行通信控件MSComm來(lái)實(shí)現(xiàn)串口通信。

            對(duì)于本實(shí)例來(lái)說(shuō),主要考慮的因素是實(shí)時(shí)語(yǔ)音數(shù)據(jù)存取,以及位機(jī)與下位機(jī)的配合。因此,采用了串行通信MSComm控件方法來(lái)實(shí)現(xiàn)串口通信。另外,可以采用二進(jìn)制流文件Cfile類來(lái)存儲(chǔ)聲音文件。具體步驟見(jiàn)網(wǎng)絡(luò)補(bǔ)充版。

          結(jié)語(yǔ)

            通過(guò)以上實(shí)例錄制的語(yǔ)音數(shù)據(jù),可以從PC機(jī)下載到SPCE061A中(或者作為資源文件放入工程中),使用SACM_A2000模塊的函數(shù)播放驗(yàn)證,效果能夠滿足進(jìn)一步語(yǔ)音信號(hào)處理需要。

            用凌陽(yáng)SPCE061A處理語(yǔ)音信號(hào)有如下獨(dú)特之處:

            *硬件電路簡(jiǎn)單,因SPCE061A是一款專門(mén)為語(yǔ)音信號(hào)處理設(shè)計(jì)的,麥克和喇叭可直接接入,用戶不必外接放大電路等;

            *軟件編程容易,有相應(yīng)的API函數(shù),可直接調(diào)用。

            *用ICE和圖形界面編譯軟件,調(diào)試方便。

           



          評(píng)論


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