陳淑瑜
(棗莊學(xué)院 機電工程學(xué)院,山東 棗莊 277160)
隨著現(xiàn)場音樂與KTV等的發(fā)展,以及社交軟件如微信,skype等的普及,人們對于語音信號處理的需求日益提高.與此同時,利用數(shù)字系統(tǒng)實現(xiàn)語音信號的各種處理,如語音變調(diào),算法混響,語音識別,語音增強,語音合成等,比起曾經(jīng)的模擬系統(tǒng),數(shù)字系統(tǒng)對于信號的處理具有抗干擾能力強,實現(xiàn)簡單,效果好等優(yōu)勢.隨著數(shù)字信號處理技術(shù)與算法的發(fā)展[1,2],DSP數(shù)字信號處理專用芯片性能的提高[3],數(shù)字系統(tǒng)處理各種信號成為信號處理領(lǐng)域的首要選擇.結(jié)合對于語音信號處理的需求以及數(shù)字信號處理的優(yōu)點,本文使用數(shù)字信號處理技術(shù)實現(xiàn)了混響效果器,因為效果器對于實時性具有要求,所以采用了Ti的DSP芯片來作為系統(tǒng)的核心處理器.
AIC的管腳與內(nèi)部框圖如圖1所示.
該系統(tǒng)需要同時完成音頻的采集與播放的功能.為了采集音頻,需要使AIC23進入AD工作狀態(tài),這就需要設(shè)置AIC23對應(yīng)的內(nèi)部寄存器,之后AD開始工作,將AD轉(zhuǎn)換得到的數(shù)據(jù)傳入McBSP,通過讀取McBSP的數(shù)據(jù)就可以獲得PCM編碼的音頻采樣數(shù)據(jù),最后將該數(shù)據(jù)存入SDRAM就完成了音頻采集工作.
核心從SDRAM中讀取音頻數(shù)據(jù),并且實現(xiàn)混響算法,并將處理后的數(shù)據(jù)寫入McBSP.將AIC23對應(yīng)的寄存器進行設(shè)置,就可以使其內(nèi)部的DA開始工作.AIC23將McBSP中的數(shù)據(jù)讀入DA轉(zhuǎn)換得到模擬信號后經(jīng)過功放完成音頻的播放.
因為McBSP為多通道緩沖串口,所以數(shù)據(jù)之間是以流的形式傳遞.同時AIC23的AD與DA可以并行工作,結(jié)合這兩種特性,系統(tǒng)可以在人耳難以察覺的時延(毫秒級)內(nèi)完成對新輸入音頻數(shù)據(jù)的處理以及播放,因此可以稱本系統(tǒng)為實時效果器.
圖1 系統(tǒng)硬件框
當(dāng)聲波在一個相對狹小的空間內(nèi)傳播時,在碰到如墻壁,天花板,地板的障礙物時會發(fā)生反射,同時,聲波也會被這些障礙物所吸收.所以,一個聲源所發(fā)出的聲音后,這些聲音會在數(shù)次的反射與吸收后才會消失.對于室內(nèi)的人來說,所有的聲音會先后傳入耳中,這種聲學(xué)現(xiàn)象被稱作混響.
在錄音棚中,為了保持聲音最原始的效果,會采用吸音材料來保證沒有混響的產(chǎn)生,在錄音結(jié)束后,通過軟件來人為添加與調(diào)整混響效果.沒有混響的聲音被稱作干音,添加混響后聲音的音色會有大幅度的改善[4].
現(xiàn)在的軟件混響的實現(xiàn)主要有兩種.一種是卷積混響.該類混響通過在自然的建筑中播放掃頻信號進行采樣,然后將采樣所得信號與音頻信號進行卷積來達到混響的效果.該類混響效果的實現(xiàn)具有自然的優(yōu)點,但是對于采樣的要求較高且無法根據(jù)需要進行調(diào)整.
另一種是算法混響.該效果通過模擬聲波的反射與吸收來實現(xiàn).該實現(xiàn)方法實現(xiàn)簡單且效果可調(diào)和成本較低等優(yōu)點[5].
2.2.1 算法介紹
本文選擇使用算法混響的方法來實現(xiàn)混響效果器.自然界的混響效果主要由反射物的材質(zhì)和聲源與反射物之間的距離來決定.在數(shù)學(xué)意義上,這兩點決定了聲音的時延時間與吸收系數(shù).
其中n決定了反射面的個數(shù),時延參數(shù)決定了反射面與聲源的距離,m決定了反射次數(shù),決定了材料對于聲音的吸收.
通過調(diào)整以上三個參數(shù),可以改變卷積效果,可以調(diào)整空間的大小,改變可以改變混響的材料.通過以上參數(shù)的共同作用可以實現(xiàn)諸如在水中,浴室內(nèi),音樂廳,報告廳等不同場景的混響效果.
圖2 算法實現(xiàn)框圖
2.2.2 算法仿真
圖3 延時器仿真波形
假設(shè)輸入函數(shù)為
圖4 輸入函數(shù)圖
設(shè)置n為2,m為3,t0=1,t1=0.5則輸出波形為
該部分主要需要設(shè)置AIC23的狀態(tài)即其內(nèi)部的寄存器.在初始化中需要關(guān)注的寄存器是5號寄存器與9號寄存器.因為本設(shè)計是從mac口采集數(shù)據(jù),所以要將5號寄存器的值設(shè)置為0x0015采樣率選擇使用32kHZ,所以9號寄存器設(shè)置為0x0019;所以config結(jié)構(gòu)體的最終參數(shù)為
圖5 輸入波形圖
#define DSK6416_AIC23_DEFAULTCONFIG {
0x0017, 0x0017,
0x00d8,
0x00d8, 0x0015,
0x0000,
0x0000,
0x0043,
0x0019,
0x0001
}
MCBSP_config(DSK6416_AIC23_DATAHANDLE,&AIC23CfgData); MCBSP_start(DSK6416_AIC23_DATAHANDLE, MCBSP_XMIT_START | MCBSP_RCV_START |
MCBSP_SRGR_START | MCBSP_SRGR_FRAMESYNC, 220);
之后調(diào)用的三個庫函數(shù)是初始化DSP與AIC23傳遞數(shù)據(jù)的通道McBSP.至此初始化工作完畢.
主要通過一下兩個庫函數(shù)來實現(xiàn)
MCBSP_write(DSK6416_AIC23_DATAHANDLE,AIC_data.uint)
MCBSP_read(DSK6416_AIC23_DATAHANDLE)
AIC_data結(jié)構(gòu)體的定義為
union {
Uint32 uint;
short channel[2];
} AIC_data;
左聲道占用前16位,右聲道占用后16位,所以采用一個聯(lián)合體共用一個內(nèi)存空間來實現(xiàn).MCBSP_write的功能是向MCBSP寫入數(shù)據(jù)也就是向AIC23的DA轉(zhuǎn)換器寫入數(shù)據(jù)來達到輸出的目的.MCBSP_read的功能是讀入MCBSP的數(shù)據(jù),也就是讀AIC23的AD轉(zhuǎn)換器獲得的采樣值,該函數(shù)返回一個無符號32位整型數(shù)據(jù).將這兩個函數(shù)進行封裝使數(shù)據(jù)分別寫入前16位或者后16位或者整個32位,來實現(xiàn)左聲道輸入輸出,右聲道輸入輸出,和雙聲道輸入輸出.封裝后的函數(shù)為
void output_sample(Uint32);
void output_left_sample(short);
void output_right_sample(short);
Uint32 input_sample();
short input_left_sample();
short input_right_sample();
所以錄音的實現(xiàn)為:
while(設(shè)置條件)
{
buffer[i++]=input_sample();
}
播放的實現(xiàn)為:
while(設(shè)置條件)
{
output_sample(buffer[i++]);
}
本文從混響的原理出發(fā),重點對混響算法的設(shè)計進行了闡述并在matlab上對多種語音信號進行了仿真與實驗.并且在TMS320C6416上搭建了相關(guān)電路與程序編寫,完成了整機的測試與設(shè)計.通過測試可以實現(xiàn)實時的混響效果且聲音清晰,并且可以通過改變參數(shù)完成不同材質(zhì)不同空間的混響效果.其在演唱會現(xiàn)場或者報告廳具有實用意義.
[1]段文斌.對數(shù)字信號處理技術(shù)的應(yīng)用和發(fā)展的探討[J].電子測試,2017(6).
[2]陳文靈.數(shù)字信號處理技術(shù)的發(fā)展及其思考[J].電子技術(shù)與軟件工程沒,2015(1).
[3]李鑫.淺談數(shù)字信號處理器DSP的發(fā)展和應(yīng)用[J].硅谷,2008(14).
[4]楊曉曄.淺談人工延時和人工混響在錄音中的作用[J].內(nèi)蒙古廣播與電視技術(shù),1998(2).
[5]陳偉,湯樂民,王偉,等.基于數(shù)字信號處理技術(shù)的人工混響模型設(shè)計和研究[J].廣西師范大學(xué)學(xué)報(自然科學(xué)版).2015(3).