安徽四創(chuàng)電子股份有限公司 胡 斌
一種多路音頻混音算法的實(shí)現(xiàn)與應(yīng)用
安徽四創(chuàng)電子股份有限公司 胡 斌
在音頻混音技術(shù)中,混音算法決定了其混音路數(shù)及輸出的混音質(zhì)量,而現(xiàn)有的大多數(shù)混音算法混音效果不理想,混音路數(shù)過少,音頻質(zhì)量差。該文介紹并設(shè)計(jì)實(shí)現(xiàn)了一種基于分段量化規(guī)則的音頻混音方法,提高了混音路數(shù)及輸出的混音質(zhì)量,降低了噪音,具有良好的聽覺舒適感。該方法的應(yīng)用,對(duì)于支持音頻交互工作、改善用戶體驗(yàn)具有重要意義。
音頻交互;混音路數(shù);混音質(zhì)量;用戶體驗(yàn)
語音互動(dòng)的重要性要求遠(yuǎn)遠(yuǎn)高于多媒體通信中的其他元素,如視頻或其他數(shù)據(jù)。因?yàn)橐曨l或其他數(shù)據(jù)在相對(duì)較長(zhǎng)的時(shí)延內(nèi)的抖動(dòng)都是可以被用戶接受的,而音頻部分如果時(shí)間稍長(zhǎng),就會(huì)產(chǎn)生很明顯的斷續(xù)感,以致用戶根本無法分辨語音所承載的語義從而嚴(yán)重影響溝通。多路音頻交互的核心問題就是混音,而提供資源使用率相對(duì)低且音頻交互質(zhì)量更高的混音方法,以提升用戶的實(shí)際體驗(yàn)效果,已成為本領(lǐng)域技術(shù)人員需要解決的技術(shù)難題。
對(duì)于多路音頻混音系統(tǒng)來說,需要將各處的音頻數(shù)據(jù)在時(shí)域進(jìn)行混合。
當(dāng)各信號(hào)的抽樣率一致時(shí),混音可以實(shí)現(xiàn)為將各信號(hào)的采樣數(shù)據(jù)線性疊加,然后將混音后語音流發(fā)送到播放設(shè)備驅(qū)動(dòng)緩沖區(qū)進(jìn)行播放。由于混音后的音頻數(shù)據(jù)是每路輸入音頻的線性疊加,因此可以用data[j,i]表示第j個(gè)連續(xù)音頻流亦即聲源j的第i個(gè)線性樣本值(聲強(qiáng))[6],則混音后的音頻流的第i線性樣本值應(yīng)為:
該計(jì)算式是所有混音算法的基礎(chǔ)。由于參與混音的音頻流的數(shù)目是隨著音頻路數(shù)動(dòng)態(tài)變化的,這就需要考慮混音后所得音頻流的線性樣本myData[i]的取值范圍問題。由于數(shù)字音頻信號(hào)存在量化上限和下限的問題,疊加運(yùn)算可能會(huì)導(dǎo)致結(jié)果溢出。由此可以看出混音算法的難點(diǎn)在于如何處理好混音后采樣值溢出問題。
2.1 加和并箝位方法
當(dāng)混合后音頻強(qiáng)度超出緩沖區(qū)數(shù)據(jù)類型范圍時(shí),以最大值來代替,該算法會(huì)造成語音波形的人為削峰,在破壞音頻信號(hào)的同時(shí)產(chǎn)生噪聲。
2.2 平均化時(shí)域線性疊加的方法
就是將采樣數(shù)據(jù)線性疊加后取平均值,該算法的實(shí)質(zhì)是將各路音頻的音量減小,隨著音頻路數(shù)的增加或減少,會(huì)導(dǎo)致音量忽大忽小甚至聲音斷續(xù),影響聲音效果[3]。
此法最為簡(jiǎn)單,但是混音效果很不好,存在混音后各路的音頻衰減太多,音量偏小,不利于實(shí)時(shí)的溝通。
2.3 自對(duì)齊權(quán)重混音算法
自對(duì)齊法則是考慮參與混音的音頻通道自身特性,以它們自身的比例作為權(quán)重,從而決定他們?cè)诤铣珊蟮妮敵鏊急戎?,其特點(diǎn)是相對(duì)平滑的使關(guān)鍵通道音頻更加清晰易分辨,能量小的通道混音后聲音變小難分辨[5]。
上述幾個(gè)算法各有特點(diǎn),但都有明顯的缺陷,隨著混音路數(shù)的變化,則會(huì)導(dǎo)致各音頻流的音量因權(quán)重的變化受到不同程度的縮放,從而造成混音后音量大小變化不定。而解決這個(gè)問題的關(guān)鍵,就是找到一個(gè)與音頻路數(shù)無關(guān)的權(quán)重。本文提出的改進(jìn)混音算法從這一關(guān)鍵問題著手,嘗試解決上述缺陷。
(1)算法的基本思想
G.711規(guī)范中采用分段量化規(guī)則是基于在音頻信號(hào)中低強(qiáng)度信號(hào)比高強(qiáng)度信號(hào)出現(xiàn)的幾率更高的事實(shí),本文改進(jìn)算法同樣基于這一事實(shí),其基本思想與其類似,采用分段收縮規(guī)則,對(duì)線性疊加后的采樣數(shù)值進(jìn)行收縮來保證不出現(xiàn)溢出,低強(qiáng)度信號(hào)采用較大的權(quán)重以確保信號(hào)的可識(shí)別性的同時(shí)獲得一定收縮比例,而高強(qiáng)度信號(hào)采用較小的權(quán)重以確保得到相應(yīng)的收縮比例,同時(shí)保證一定的可識(shí)別性[5]。
其次,確定各區(qū)間的收縮因子。引入基本收縮因子k(k>1),且遵循如下規(guī)定:
根據(jù)上述討論,為式(1)加上權(quán)重,得出式(3):
(2)算法實(shí)現(xiàn)與優(yōu)化
在本算法的實(shí)際應(yīng)用中,首先考慮基本收縮因子k的取值問題。為了運(yùn)算方便,k一般取2的整數(shù)次冪。根據(jù)算法的特點(diǎn),k值太小會(huì)對(duì)較大的收縮波形造成整體失真,太大則會(huì)導(dǎo)致高強(qiáng)度信號(hào)嚴(yán)重失真。所有取k=8或16較好,以下敘述中以k=8為例。同時(shí)根據(jù)G.7xx系列規(guī)范,取Q=16[5]。
表1
由混音算法的計(jì)算式可知,只要計(jì)算出之后,根據(jù)表1所示,就可以求得混音結(jié)果。
4.1 模擬過程
改進(jìn)算法的模擬流程圖如圖1所示:
圖1 改進(jìn)算法模擬流程圖
在測(cè)試中,使用Cooledit軟件錄入音頻信號(hào)時(shí),選取的采樣頻率為16000Hz,采樣精度為16bit,編碼格式為PCM,選取單聲道,錄音時(shí)長(zhǎng)為1分鐘。
將采集好的音頻數(shù)據(jù)利用FileInputStream函數(shù)將其讀入byte數(shù)組,選擇需要的算法并使用Java語言編程實(shí)現(xiàn)然后進(jìn)行混音處理,再將結(jié)果用FileOutputStream函數(shù)輸出,最后保存成pcm格式,并進(jìn)行試聽并觀察波形。
4.2 結(jié)果分析
因?yàn)樽詫?duì)齊算法明顯優(yōu)于強(qiáng)/弱對(duì)齊算法,所以只選取加和并箝位、平均算法、自對(duì)齊算法以及本文敘述的改進(jìn)算法。
圖2 第1路音頻輸入
圖3 第2路音頻輸入
圖4 第3路音頻輸入
圖5 第4路音頻輸入
圖6 加和并箝位算法處理后的結(jié)果
圖7 平均混音算法后的處理結(jié)果
圖8 自對(duì)齊混音算法處理后的結(jié)果
圖9 改進(jìn)算法處理后的結(jié)果
從上述結(jié)果可以看出,加和算法輸出波形比較符合原有波形,但每次振幅溢出后,波形會(huì)收縮,然后慢慢擴(kuò)大;平均算法雖然未改變?cè)胁ㄐ危敵龅牟ㄐ味际湛s了4倍,即音量降低了四分之一;自對(duì)齊算法輸出波形失真較大,所有波形尖峰明顯被削弱甚至消失;改進(jìn)算法結(jié)果偏離最少,主要是因?yàn)樵撍惴ú捎梅蔷鶆蚴湛s法,增加了高強(qiáng)度信號(hào)的收縮比例。
從主觀聽覺感受來看,加和算法聽覺效果較好,但對(duì)聲音強(qiáng)度較低的那路音頻無法識(shí)別;平均算法聲音很小,而且隨著混音路數(shù)增加,聲音越來越小,而且有明顯噪音;自對(duì)齊算法輸出語音不太自然,而且有明顯噪音;改進(jìn)算法處理的結(jié)果不影響聲音辨認(rèn),低強(qiáng)度語音信號(hào)也能輕易識(shí)別,即時(shí)混音路數(shù)增加到12路,輸出的音頻一樣自然流暢,幾乎無可覺察噪音。
改進(jìn)的混音方法通過對(duì)線性疊加后的混音數(shù)據(jù)進(jìn)行溢出判斷,當(dāng)溢出時(shí),對(duì)當(dāng)前幀增益因子做一定的調(diào)整和計(jì)算,然后通過對(duì)混音后每幀數(shù)據(jù)進(jìn)行對(duì)比分析,根據(jù)對(duì)比前后幀的相關(guān)參數(shù)來不斷調(diào)整增益調(diào)節(jié)因子,并當(dāng)混音出現(xiàn)溢出的時(shí)候自動(dòng)將當(dāng)前幀做飽和處理,能夠避免混音后產(chǎn)生的溢出的噪音,并保持原始波形基本不變,音量大小基本不會(huì)受影響。
綜上所述,及對(duì)比可知,現(xiàn)有直接疊加混音方法在超過6路的音頻輸入后,不能保持波形的原始形態(tài),且出現(xiàn)采樣過載和溢出等問題,導(dǎo)致聲音不能完全再現(xiàn)其原始的效果。改進(jìn)的混音方法在超過6路音頻輸入后,可以保持波形的原始形態(tài),明顯改善了多路混音后存在的采樣疊加溢出的問題,使溝通更加順暢。
[1]Venkat R P,Harrick M V,and Srinivas R.Communication architectures and algorithms for media mixing in multimedia conferences.IEEE/ACM Trans.on Networking,1993,1(1):20-30.
[2]張雄偉,等.現(xiàn)代語言處理技術(shù)及應(yīng)用[M].機(jī)械工業(yè)出版社,2003.
[3]徐保民,王秀領(lǐng).一個(gè)改進(jìn)的混音算法[J].電子與信息學(xué)報(bào),2007,25(12): 1709-1713.
[4]涂衛(wèi)平,等.視頻會(huì)議中多點(diǎn)處理器的研究[J].武漢大學(xué)學(xué)報(bào),2002:98-106.
[5]王文林,廖建新,等.多媒體會(huì)議中新型快速實(shí)時(shí)混音算法[J].電子與信息學(xué)報(bào),2007(29):3.
[6]Hawwa S.Audio mixing for centralized conferences in a SIP environment.ICME’02 Proceedings,2002(2):269-272.
The implementation and application of a multi-channel audio mixing algorithm
HU bin
(Anhui Sun Create Electronics Co.,Ltd,AnHui 230037)
In the audio mixing technology,audio mixing algorithm determines the number and output mix voice quality,but most of the existing mixing algorithm mixing effect is not ideal,mixing road is too small,poor audio quality.This paper introduces the design and implementation of an audio mixing method based on piecewise quantization rules,improve the quality and output mix channel mix,reduce the noise,has good hearing comfort.The application of the method is of great signi fi cance to support the work of audio interaction and improve the user experience.
Audio interaction;Mix channel;Mix quality;User experience
胡斌(1972-),男,安徽合肥人,現(xiàn)供職于安徽四創(chuàng)電子股份有限公司。