?

基于DSP的多方會議系統的混音方案

2011-03-06 09:17陳鳳偉
通信技術 2011年3期
關鍵詞:混音與會者音頻

陳鳳偉,陳 光,陶 翠,靳 超

(東華大學 信息科學與技術學院,上海 201620)

0 引言

近年來,隨著信號處理算法、網絡結構優化、硬件處理能力方面的不斷發展,多媒體語音通信已經迅速普及。多方音頻電話會議產品是多媒體通信系統的基本模塊,作為有多個終端參與的音頻電話會議,可以采取令牌控制或輪詢控制下的互斥模式,即只有擁有發言權的那個與會者才可以講話,這樣每個與會者某一時刻只能聽到一路音頻信號,顯然這種半雙工情況是不方便和不實用的。更多的時候,需要采用自由參與的討論方式,為了能夠在每個終端同時接收多個與會者的聲音,必須采取多路音頻混音與交換技術,而音頻混音算法則是其中的關鍵技術[1-2]。隨著DSP技術的不斷發展和進步,由于其具有容量大、成本低、升級靈活等優點,采用通用DSP實現多方電話會議的混音,逐漸成為首選方案。

1 混音算法的原理及實現

1.1 混音的理論依據

聲音是由于物體振動對周圍的空氣產生壓力而傳播的一種壓力波,轉換成電信號后,再經過抽樣、量化,量化后的語音信號的頻率與聲音的頻率對應,振幅與聲音的音量對應,所以當各信號的抽樣頻率一致時,混音可以實現將各信號的采樣數據進行線性疊加[1]。在時域上,語音是短時平穩信號,對語音信號進行處理的一個基本概念就是對語音樣本以緩沖區為單位處理,即對輸入的語音樣本分幀。當多個音頻同時播放時,人耳聽到的聲波就是各個聲源的波形的線性疊加,這正是模擬混音的基礎。這個事實說明數字音頻的混合也應該是音頻的線性疊加。而線性相加又可能產生溢出,溢出現象是由于受到語音數據表示精度(8 bit或16 bit)的限制而產生的,而精度是由相應編碼器的硬件特性所決定的。對溢出的語音波形進行平滑處理不會改變語音的音質和內容,因為語音信號具有短時相關性(10~30 ms)[3]。

1.2 現有混音算法分析與比較

現有混音算法的方案有很多,但是基本思想都是一致的?;旌纤惴ǖ幕舅枷胧牵菏紫葘⒔獯a后的多路語音數據進行線性疊加,然后對疊加后的語音數據進行溢出檢查,并對含有溢出數據的混合語音包的語音樣本進行濾波處理,采用平滑技術消除疊加溢出所引入的噪聲[4]。具體的說,混音算法主要完成以下功能:

(1)線性疊加

若有N路音頻數據需要進行混音處理,混音的時候,需要屏蔽某一路自己的本地音頻數據,這樣就不會聽到本地的自己的聲音,只能聽到其他N-1路的聲音,也就是說,對于第t路音頻,要發送給這個終端t的混音后的數據如公式(1)所示:

其中mixing[i]為混合后一幀中的第i個樣本,input[j, i]為j個用戶幀的第i個樣本,n為一幀的樣本數目,N為會議的與會者個數[3-4]。

(2)溢出判斷與平滑處理

將混音后的話音數據與硬件設備允許的極限范圍的最大與最小值相比較,若存在超出此范圍的數據,表示該混合語音包有溢出,則需要進行平滑處理來消除因溢出所引入的噪聲?,F有的混音算法如均值混音算法、對齊混音算法、箝位混音算法等都是根據選擇不同的權重來防止輸出的結果發生溢出,但是這些現有的混音算法都有其不可避免的缺點[1]。其中,均值算法的權重是將采樣數據線性疊加后取平均值,但是隨著混音的路數的增加,各路語音的衰減將愈加嚴重,最終導致語音細不可聞。對齊算法的權重是各路音頻流中當前幀中采樣值的最大值與累加結果中采樣值的絕對值的最大值的比值,但是這種算法沒有考慮到累加結果的絕對值可能超出硬件所允許的極限范圍,從而導致溢出[1,5]。箝位算法實現簡單,當發生上溢時,箝位以后的值為其所能表示的最大值,當發生下溢時,箝位后的值為其所能表示的最小值,如式(2)所示:

但是,如果在混音路數較多時,溢出的概率就會較大,隨著混音路數的增多,導致音量的變化十分明顯,此算法適用于小規模、混音路數變化不大的會議中?,F在很多現有的論文和系統都是采用箝位方法,因為實現簡單,快速,效率很高。但是可以看出,這種箝位方法相當于在最大和最小的臨界處切了一刀,非常生硬,會造成較大的波形失真,引入了噪聲[3]。

1.3 改進后的混音算法

通過對現有混音算法的分析可以看出,變化的混音權重是導致混音后音量不穩的主要原因,在此基礎上,這里提出了一種采用與混音輸入路數無關的恒定混音權重的混音算法。

算法的基本思想是:先將所有與會者的語音信號進行混合,變成一路混音信號;再用混音信號與所對應用戶的語音信號分別相減,得到除該用戶自己以外的所有其他用戶的混音信號,然后將此混音信號轉發給該用戶,這樣就實現了所有參會者之間的語音交換。假設某一多方會議系統有k個與會者,即有k路音頻輸入,一般地,定義第i路輸入為 input(i),其在所有路的輸入中對應的權重為 w(i),這樣經過混音后,總的輸出output如下式(3)所示:

第 i個與會者所能接收到其他與會者的音頻輸出輸出output(i)如式(4)所示:

點混音時的高性能、高實時性,同時也保證了參與混音的各路輸入的時域細節特征,因此具有很好的聽覺舒適感和連續感[1,6]。

2 用DSP實現混音算法

選擇通用的16 bit定點DSP TMS320VC5402來完成多路音頻流的混音,最多可以實現 64路音頻流的混音。由于該算法的數據來自ST-BUS鏈路送來的某一用戶時隙的8 bit A律PCM話音數據,因此需要先將其變為線性碼,然后才能進行混音,DSP輸出時再變回A律的PCM碼流發送出去。DSP數據處理流程圖如圖1所示。

圖1 DSP處理數據流程

基本原理是 DSP同時啟動 McBSP的收發端口,當McBSP的接收端口收到ST-BUS鏈路送來的第M幀對應于某一用戶時隙的8 bitA律PCM話音數據后,然后在線性碼的右端補上 3 bit的 0送給接收寄存器 DRR1,這是因為TMS320VC5410是16位的,只能對片上RAM按16 bit訪問,線性碼轉換完后McBSP通知分配給它的接收DMA控制器,此時,DRR1的數據已就緒,接收DMA控制器立即將此16 bit數據按照其對應的地址寫入接收緩沖區中。在配置DMA時,在分配給它的數據緩沖區達到半滿和全滿時,向 DSP內的CPU發送中斷,因此DMA接收完第M幀話音數據后向CPU發送中斷。當CPU收到DMA中斷時,表明DMA已經接收到了第M幀所有時隙的數據,CPU在第M+1幀的期間依據這里提出的算法對接收到的數據進行處理,然后在第 M+2幀時發送DMA控制器從它的數據緩沖區內依次讀出相應的數據送給 McBSP的發送端口,發送端口首先將此線性碼語音數據轉成A律語音數據,然后完成PCM話音數據發送[6-7]。

3 實驗結果

現對這種算法進行了實際試驗,圖2為1路解碼后的語音輸入,圖3為另一路解碼后的語音輸入,圖3為采用這里提出的混音算法得出的1路混音輸出。

根據與現有的混音算法比較,混音后的音頻流自然、連續,也沒有溢出所導致的爆破噪聲,在測試中,隨著混音音頻流的增加,改進的混音算法的性能改善也越發明顯,說明該混音方案完全可以適用于人數較多的混音環境。

圖2 解碼后的語音輸入1

圖3 解碼后的語音輸入2

圖4 改進混音算法的輸出

4 結語

這里所提出的算法,采用了與混音路數無關的恒定的混音權重,混音效果理想,并且不會發生溢出現象,通過用DSP實現驗證,混音后語音自然流暢,沒有噪音,具有良好的主觀聽覺感受,而且該算法簡單、實時、快速,能夠滿足多方會議中高性能、高并發的混音要求,能支持大規模的混音應用,容易采用硬件實現。這種混音方案不僅能夠滿足一般應用場合的實際要求,而且在具有高并發量要求的混音時應用該算法也能獲得高質量的實時混音結果。它不僅保證了在多路混音時的高性能,而且具有很高的實時性。

[1] 王文林,廖建新,朱曉民,沈奇威.多媒體會議中新型快速實時混音算法[J].電子與信息學報, 2007,29(03):90-695.

[2] 王崇,周淵平,王維果.基于DSP的語音時延估計實現[J].通信技術,2010,43(11):61-63.

[3] 張微,毛敏.多方電話會議系統中混音溢出問題的一種改進算法[J].電子器件,2007,30(01):294-296.

[4] 趙代強.基于數字語音交換技術的多方會議系統[J].網絡與通信,2004,30(13):87-88.

[5] 熊堃,陳向東,葛林,等.針對無線語音通信的G.729算法的改進及DSP實現[J].通信技術,2010,43(06):219-223.

[6] FAN Xing, GU Weikang, YE Xiuqing.Research on Fast Real-time Adaptive Audio Mixing in Multimedia Conference[J].Journal of Zhejiang University-Science A.2005,6(06): 507-512.

[7] 張玉業,鄧勇全,李玲遠.語音編解碼算法 G.729的軟件實現[J].通信技術,2002(02):4-6.

猜你喜歡
混音與會者音頻
必須了解的音頻基礎知識 家庭影院入門攻略:音頻認證與推薦標準篇
第十五屆錄音藝術大師班在京舉辦
基于Daubechies(dbN)的飛行器音頻特征提取
音頻分析儀中低失真音頻信號的發生方法
Allen&Heath dLive數字調音臺新成員C Class
Pro Tools音頻剪輯及修正
激光唱片中的代號
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合