<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于SPCE061A單片機的語(yǔ)音信號實(shí)時(shí)采集

基于SPCE061A單片機的語(yǔ)音信號實(shí)時(shí)采集

作者: 時(shí)間:2011-12-28 來(lái)源:網(wǎng)絡(luò ) 收藏

引言

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

1 硬件系統結構

1.1 SPCE061A結構

SPCE061A的內部結構如圖1,其特點(diǎn)如下:

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

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

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

*內置存儲器:SRAM為2KB,內存Flash為32KB;

*可編程音頻處理;

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

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

*2個(gè)10位DAC;

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

*串行輸入輸出接口;

*低電壓監測/低電壓復位功能;

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

*內置在線(xiàn)仿真電路ICE。

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

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

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

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

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

2 軟件設計與實(shí)現

2.1 語(yǔ)音信號的采集壓縮與數據傳輸

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

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

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; //設置AGC功能

R1=0x00A8;

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

R1=0x1000;

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

INT IRQ;



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

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

*參數編碼是基于某種語(yǔ)音產(chǎn)生模型,在編程端分析出該模型參數選擇適當的方式進(jìn)行編碼;特點(diǎn)是語(yǔ)音質(zhì)量差、抗噪抗弱和編碼率低。

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

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

表1 SACM-LIB庫中模塊及其算法

模塊名稱(chēng)壓縮算法采樣率/kHz語(yǔ)音壓縮編碼率/Kb/s用 途
SACM_A2000子帶編碼1616、20、24播放語(yǔ)音及高保真音樂(lè )
SACM_S480/S720CELP混合編碼164.8、7.2播音
SACM_S240參數編碼242.4播音
SACM_MS01FM音樂(lè )合成1616、20、24音樂(lè )合成
SACM_DVR子帶編碼1616Kb/s的傳輸率,8Ksps的采樣率ADC信道錄音和DAC放音

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

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

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

2.2 上位機控制和存儲模塊

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

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

*使用VC++的標準通信函數_inp和_outp來(lái)實(shí)現串口通信;

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

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

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

結語(yǔ)

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

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

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

*軟件編程容易,有相應的API函數,可直接調用。

*用ICE和圖形界面編譯軟件,調試方便。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>