摘要:在多線接入電話終端項目中,對語音進行處理是一個非常重要的部分。語音的處理包括靜噪,回聲消除和混音幾個部分。其中混音技術,關系到在電話終端的語音質量,在應用中尤為重要。在系統中,需要使用SEP4020對多路的語音進行混音合成。該文對混音算法及其在SEP4020上的應用做了討論。
關鍵詞:混音;權重法;SEP4020
中圖分類號:TP334文獻標識碼:A文章編號:1009-3044(2008)23-1035-03
Implementation of Multi-voice Processing Algorithm for Embedded System on SEP4020
CAI Juan, KONG Jian-yun, ZHONG Rui
(National ASIC System Engineering Center, Southeast University, Nanjing 210096, China)
Abstract: In the multi-access telephone terminal project, voice processing is a very important part. Voice processing Includes echo cancellation and voice mixing.However, mixing technology, which is related to voice quality of the telephone terminal, is very important in the application. In the system, the use of SEP4020 to mix multi-voice is required. This paper will discussion the mixing algorithm and the application of SEP4020.
Key words: voice mixing; weighted algorithm; SEP4020
自電話系統出現以來,回聲消除和混音是通信研究的重要領域[1]?;芈暱梢苑譃槁晫W回聲和電學回聲[5],分別由通信網絡中的阻抗不匹配和聲波反饋引起?;芈晻惯h端用戶感到不適,從而使通話質量受到影響。而對多路語音信號進行混合,一般會因為多路語音信號采樣量化數據疊加后超出量化上限,而導致不得不采用飽和運算將其變更為量化上限。本文則有針對性地提出了一系列方案。
1 語音混合
1.1 混音的原理
混音器是音頻混合的核心模塊,一般的混音都會采用時域疊加作為基本的處理手段,但是數字音頻信號存在量化上限和下限的問題,則疊加運算肯定會造成結果溢出。為了解決上述問題,我們引入實時自適應音頻混合方案(real-time adaptive audio mixing scheme)。
1.2 算法選擇[3]
在實際的應用中,我們有4種基本方案可以使用,它們是平均調整權重法、強對齊權重法、弱對齊權重法和自對齊權重法.這4種方法都是采用加權平均的方式來進行處理的,一般地,我們定義aij(t)對應的權重為wij(t),則我們可以得到一般的加權計算方法:
平均調整權重法顧名思義,我們知道,只需要將權重取用相同的值即可,所以我們取wij(t)=1/Mi,則根據式(1),我們有如下結果:
這種方法雖然不引入噪聲,但是由于對各個分量都進行了衰減,所以在與會數量上升時,混音合成的輸出音量也隨之下降。如果在參與合成的輸入中有某一路或幾路音量特別小,那么整個混音結果的音量會被拉低,一般來說,在4點以上的多點會議中使用這種方法,與會者都會感到合成后傳回的聲音較小,很多語音細節不能分辨。所以這種方法的實際應用也受到比較多的限制。
強對齊權重法是以參與的混音的輸入按照其信號幅度值為依據來設計權重。定義參與混音的所有Buffer塊中數據 弱對齊權重法則與上面所提方法相反,放大的依據主要是參與混音中的音量最弱項和采用某種特定方法合成輸出的最弱項。這種方法的主要好處是能夠將參與會議的聲音較弱端點的聲音放大,使得其語音細節可以被辨識。但是這種方法和強對齊權重法一樣,存在著溢出檢測和飽和處理的問題.。
自對齊權重法則是考慮參與混音的多路音頻信號自身的特點,以它們自身的比例作為權重,從而決定它們在合成后的輸出中所占的比重。我們定義:
并且我們約定參與混音的輸入能量之和不為0,這就保證了上式分母不可能為0。如果參與混音的各路輸入的能量之和為0,就說明各路輸入的幅值為0,也就不需要進行混音了。
圖2所示的結構具有良好的并行處理特點,根據這個處理模型,我們可以很容易地使用SEP4020等硬件來實現其功能,可以獲得更高的計算效率,從而進一步提高會議的并發處理能力和實時性。
2 硬件設計
SEP4020由東南大學國家專用成電路系統工程技術研究中心設計。使用0.18um標準CMOS的工藝設計,內嵌32位RISC內核,帶8KB指令數據Cache,SEP4020芯片中集成各種功能包括:8/16位SRAM/NOR FALSH接口,16位SDRAM接口64K Byte高速片上SRAM,USB1.1 Device,全速11Mbps,支持I2S音頻接口,LCD控制器,支持TFT彩屏和STN黑白、灰度屏等。
3 軟件設計
Nucleus PLUS 是為實時嵌入式應用而設計的一個搶先式多任務操作系統內核,其95%的代碼是用ANSIC 寫成的,因此非常便于移植并能夠支持大多數類型的處理器。從實現角度來看,Nucleus ADS ADS1.2是為嵌入式ARM設計的一整套軟件開發工具從最初的軟件
原型到最終優化的ROM代碼。支持最新的ARM[1]內核ARM926EJ-S, ARM9EJ-S, VFPv2,支持V5TEJ體系結構。PLUS 是一組C[8]函數庫,應用程序代碼與核心函數庫連接在一起,生成一個目標代碼,下載到目標板的 RAM 中或直接燒錄到目標板的ROM 中執行。在典型的目標環境中,Nucleus PLUS 核心代碼區一般不超過20K字節大小。
代碼如下:
S16 mixer(S16 chin[CHANNELS])
{
for(i=0;i { chin32[i]=(S32)chin[i]; abs_chin2x[i]=abs(chin32[i])<<(16-COFF_ADPTE); abs_chin32[i]=abs_chin2x[i]< } if(resetmixer==1) { totalweight=0x7fffffff; platechin=0; for(i=0;i { evenweight[i]=(totalweight/CHANNELS)>>16; for(j=0;j preweight[i][j]=(totalweight/CHANNELS)>>COFF_ADPTE; } } for(i=0;i { S32 tmp; tmp=(abs_chin2x[i]- preweight[i][platechin] ); tmp=tmp>>16; evenweight[i]=evenweight[i] + tmp; if(evenweight[i]==0) evenweight[i]=1; preweight[i][platechin]=abs_chin2x[i]; } platechin++; if(platechin==BALANCESIZE) platechin=0; totalweight=0; for(i=0;i { weight[i]=abs_chin2x[i]/evenweight[i]; } for(i=0;i S32 chvaule,preoutvaule,a,b,c; preoutvaule=outvaule; chvaule=chin32[i]*weight[i]; chvaule/=totalweight; outvaule += chvaule; } chout=(S16)outvaule; return chout; } 4 總結 對于本系統而言,語音混合的主要目標是能夠模擬會議電話的場景而盡量減少噪聲。經過測試語音混合的效果非常好,完全能夠模擬出多方通話的場景。而且對于噪聲消除的效果也相當出色,能夠完全消除溢出噪聲,也能夠減少疊加噪聲的干擾。 參考文獻: [1] 杜春雷.ARM體系結構與編程[M].北京:清華大學出版社,2003. [2] 馬忠梅.ARM嵌入式處理器結構與應用基礎[M].北京:北京航空航天大學出版社,2003. [3] ChildersG.Matlab之語音處理與合成工具箱[M].影印版.北京:清華大學出版社,2003. [4] Quatieri T.離散時間語音信號處理——原理與應用[M].北京:電子工業出版社,2003. [5] 楊樹堂,韓琪,余勝生,等.電視會議系統中的消回聲處理研究[J].電子計算機與外部設備,1998,22(1):55-58 [6] Stokes W,Steven G.Normalized Double-talk Detective Based on Microphone[A].IEEE ICEN,2007:360-363. [8] 胡慶鐘,李小剛,吳鈺淳,等.C/C++語言硬件程序設計——基于TMS320C5000系列DSP[M]. 西安:西安電子科技大學出版,2003. [9] ARM Limited, ARM Architecture Reference Manual[S], 2000. [10] ARM Limited, ARM7TDMI Technical Reference Manual[S], 2001.