- 相關(guān)推薦
基于凌陽單片機(jī)的語音信號(hào)實(shí)時(shí)采集
摘要:語音信號(hào)采集是語音信號(hào)處理的基礎(chǔ)。本文利用凌陽公司16位單片機(jī)——SPCE061A所具有的數(shù)字信號(hào)處理(DSP)功能及其所提供的音頻壓縮函數(shù)庫來實(shí)現(xiàn)語音信號(hào)的實(shí)時(shí)采樣與壓縮;通過RS232接口,將采集到的語音信號(hào)實(shí)時(shí)上傳到PC機(jī)中存儲(chǔ)。引言
隨著單片機(jī)集成化程度的不斷提高,現(xiàn)代單片機(jī)已經(jīng)具備了數(shù)字信號(hào)處理功能,使語音信號(hào)處理用單片機(jī)實(shí)現(xiàn)成為可能。臺(tái)灣凌陽科技公司(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等,特別適合語音信號(hào)處理。本文介紹如何實(shí)現(xiàn)用SPCE061A單片機(jī)采集語音信號(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è)中斷源可來自定時(shí)器、外部時(shí)鐘輸入、鍵喚醒等;
*內(nèi)置在線仿真電路ICE。
1.2 SPCE061A開發(fā)方法
SPCE061A的開發(fā)是通過在線調(diào)試器PROBE實(shí)現(xiàn)的,如圖2所示。它利用了SPCE061A內(nèi)置的在線仿真電路ICE和凌陽公司的在線串行編程技術(shù)。如果讀者想要使用該芯片及開發(fā)系統(tǒng),可上網(wǎng).cn查詢,并尋求大學(xué)計(jì)劃的免費(fèi)支持。
1.3 語音采集的硬件電路
語音采集的硬件電路如圖3所示。MIC采用駐極體電容話筒,這種話筒具有靈敏度高、無方向性、重量輕、體積小、頻率響應(yīng)寬、保真度好等優(yōu)點(diǎn)。
與PC機(jī)的串行通信用SPCE061A的UART接口,用MAX232芯片進(jìn)行電平轉(zhuǎn)換,即可實(shí)現(xiàn)RS232通信。
2 軟件設(shè)計(jì)與實(shí)現(xiàn)
2.1 語音信號(hào)的采集壓縮與數(shù)據(jù)傳輸
(1)語音信號(hào)的采集壓縮
語音信號(hào)處理的基礎(chǔ)是對(duì)語音信號(hào)進(jìn)行數(shù)字化,并采樣存儲(chǔ)。SRCE061A內(nèi)置專門用于語音信號(hào)采集的自動(dòng)增益控制放大器(AGC)的麥克風(fēng)輸入通道(MIC_IN)。語音信號(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)方式且通過MIC_IN通道輸入,通過定時(shí)器A的溢出鎖存數(shù)據(jù),ADC為自動(dòng)方式
R1=0x1000;
[P_INT_Ctrl]=R1; //開中斷IRQ1_TM
INT IRQ;
圖3 語音采集的硬件連接圖
采樣后的數(shù)字語音信號(hào)數(shù)據(jù)量非常大,且由于語音信號(hào)采樣點(diǎn)幅度分布的非均勻性和樣本間的相關(guān)性等原因,使語音信號(hào)中含有大量的冗余信息。因此,在實(shí)際應(yīng)用中采用各種信源編碼技術(shù)來消除語音信號(hào)的冗余度。語音編碼方法主要有波形編碼、參數(shù)編碼和混合編碼。
*波形編碼的基本原理是以波形逼近為原則,在時(shí)域上把幅度樣本分層量化并用代碼表示;特點(diǎn)是語音質(zhì)量高、抗噪性強(qiáng)編碼率高,適于語音及高保真音樂。
*參數(shù)編碼是基于某種語音產(chǎn)生模型,在編程端分析出該模型參數(shù)選擇適當(dāng)?shù)姆绞竭M(jìn)行編碼;特點(diǎn)是語音質(zhì)量差、抗噪抗弱和編碼率低。
*混合編碼綜合了波形和參數(shù)編碼之優(yōu)點(diǎn)。
凌陽SPCE061A提供了壓縮算法庫——SACMLIB(見表1),其處理的語音信號(hào)范圍是200Hz~3.4kHz的電話語音,并將A/D、編/解碼、存儲(chǔ)及D/A做成相應(yīng)的模塊,對(duì)于每個(gè)模塊都有其應(yīng)用程序接口API。
表1 SACM-LIB庫中模塊及其算法
【基于凌陽單片機(jī)的語音信號(hào)實(shí)時(shí)采集】相關(guān)文章:
一種改進(jìn)的基于頻譜平移的語音信號(hào)實(shí)時(shí)變調(diào)算法03-07
基于單片機(jī)的實(shí)時(shí)傳真信息監(jiān)測(cè)系統(tǒng)03-18
基于USB總線的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)03-19
基于16位單片機(jī)的語音電子門鎖系統(tǒng)03-18
基于單片機(jī)的線陣CCD實(shí)時(shí)檢測(cè)系統(tǒng)的開發(fā)03-18
基于USB接口的心電信號(hào)數(shù)據(jù)采集系統(tǒng)03-19
基于VC.Net2003的聲音信號(hào)采集與分析處理03-30