視頻會(huì)議音頻混音算法及其實(shí)現(xiàn)
隨著互聯(lián)嗍技術(shù)的快步旋展,在互聯(lián)削上傳播的數(shù)據(jù)類犁逐漸增多。視頻會(huì)議系統(tǒng)應(yīng)運(yùn)而生,^婁的溝通和交流,土蔓采用聽和髓曲種方式,語音的傳輸成為衡最視頻會(huì)議系統(tǒng)性能最重要的項(xiàng)指標(biāo)。同此,對(duì)視頻會(huì)議系統(tǒng)中的混音算法進(jìn)1717『究具有重要意義。
終端對(duì)卅音信號(hào)的處理必須解決的問題是多路的酐首數(shù)據(jù)怎樣在本地進(jìn)行混音以及播放。它會(huì)受到自身同步。延時(shí),與視頻同步等多方的影響,在實(shí)際的應(yīng)用中,語音經(jīng)混合后對(duì)聲卡緩沖區(qū)的溢出是其最大的問題。
這里介紹種混音結(jié)構(gòu),/A~ WJ改進(jìn)的混音算法。在混音的質(zhì)最、艘卓、滯山率、叫延及擴(kuò)展性方而和現(xiàn)有的混音算法進(jìn)行J比較。實(shí)驗(yàn)結(jié)果表明,該算法結(jié)音TA婁語音的特性,揪據(jù)小同場(chǎng)景的需求,在抑制混音溢IⅡ的同時(shí),捉苛混音的質(zhì)最,降低時(shí)延,具有很好的實(shí)用潛力。
1、混音算法分析聲音足由物體振動(dòng)所產(chǎn)生的一種壓力波。響度、音調(diào)和音色是聲音的三個(gè)上要特征。在自然界中,人耳聽見的語音來自四而八方聲音的疊加。對(duì)于視頻會(huì)議系統(tǒng)來說,需要將來自再處的語首數(shù)據(jù)在時(shí)域進(jìn)行混合。語音信號(hào)的抽樣及量化都放在聲卡芯片上。常用的聲卡為16位,帚化粘度多為16 bit.在眾多操作系統(tǒng)如Linux中,聲卡緩沖區(qū)的數(shù)據(jù)類掣通常為.iLmed short,范圍在-32768-32767。多路混音后,幅值有可能超小聲卡可接受的范罔而造成聲音的失真。以上幾種常見的解決辦法。
?。?)直接箝位法
混合后語音強(qiáng)度超出緩沖區(qū)數(shù)據(jù)類犁范同時(shí),以最大情值來替代。這樣阿接筘位會(huì)造成訊音波形的人為削峰,在破壞語音信號(hào)特性的同叫會(huì)促使噪音的產(chǎn)生。
?。?)均佰化混音
均值化混音在將異路講肯進(jìn)行疊加之后,并除以棍音的路數(shù)來保證混音后小溢出。但隨著混音路數(shù)的增加,在多個(gè)混音嫦小在同一時(shí)同發(fā)聲的情景時(shí),來自任一方的講音信號(hào)將被多路均分,造成音最較小而小能辨識(shí)。
?。?)對(duì)齊混音
可以說足均值混肯的孌型,這里上安分J強(qiáng)對(duì)齊和弱對(duì)齊。在強(qiáng)對(duì)齊中,對(duì)聲強(qiáng)較大的混音路給予較大的混音權(quán)重,原話音較大的滸音路得劃增蝎,缺點(diǎn)足淹沒r脯較小的H}音。弱對(duì)齊對(duì)聲強(qiáng)較小的混音路給予較大的混音權(quán)重。這樣首最較小的混音路酣得到放大,跳點(diǎn)足同時(shí)也放大Jr背景噪音。
以上算法雖然簡(jiǎn)單,但都存在鎰出榆刪及混音質(zhì)最方而的問題。下而介紹一種新掣改進(jìn)的混音方案及算法。
2、改進(jìn)的混音算法在基于SIP的視頻會(huì)議系統(tǒng)中,根據(jù)信令分旋和媒體混合的小同,有多樣的構(gòu)成方式”2]。就媒體流混合方式來說,有集中式混合與終端混音之分。
這里設(shè)計(jì)如圖1的分布式混音模型,相比集中式混音,服務(wù)器端不進(jìn)行媒體流的處理,而只執(zhí)行會(huì)議系統(tǒng)的管理策略。終端接到分發(fā)過來的湃音數(shù)據(jù),進(jìn)行解碼處理后,即開始混音。這種模式小混入終端自身出菠的湃首包,小受回聲的影l(fā)~。綜合來看,這樣的棍音系統(tǒng)復(fù)雜度適中,可減輕會(huì)議服務(wù)器的壓力。延時(shí)較集中式混音有減少,對(duì)于實(shí)時(shí)應(yīng)用的系統(tǒng)來說,性能的提升壓力很大。
圖1分布式混音模型
這里設(shè)計(jì)為面向中小企業(yè)及學(xué)校教學(xué)用視頻會(huì)議系統(tǒng),參與人數(shù)在5 人以下。會(huì)議參與者共同發(fā)聲的可能性較小,強(qiáng)烈溢出的兒率也比較小。因?yàn)檎Z音信號(hào)具有短時(shí)的相關(guān)性,即這里所說的一個(gè)幀。這時(shí)間通常在10 ms 到30ms,里在設(shè)計(jì)混音算法時(shí)兼顧溢出及平滑處理,并且以語音幀為單位,算法流程如下
①初始化衰減因子f _see 為1;
?、诮y(tǒng)一數(shù)據(jù)內(nèi)的信皂,包括最大峰值的絕對(duì)值,一幀內(nèi)的短時(shí)能最放過零率,
?、蹖⒆畲蠼^對(duì)峰值與i6 bin數(shù)揮寬度做比較,判斷是舌溢山。如果y她求出臺(tái)適的衰減罔r并更新(f see-Ma/sos,Max為最大喃值絕對(duì)值一s為最大絕對(duì)峰佰與日f一幀衰減田f的乘積),并鄺最新的最減岡r與本幀數(shù)據(jù)相乘,輸出劍聲卡緩沖,
?、苋绻麤]有鎰帆,則根據(jù)短時(shí)能最和過零率的訓(xùn)算來動(dòng)態(tài)改變衰減因子。并用最新的衰減因子來輸出本幀數(shù)據(jù)到聲卡緩沖;
?、葑x取下一幀,再次執(zhí)行第2步。
對(duì)溢出的判定,文獻(xiàn)【4]中所采用的衰減阿n±,對(duì)每幀的每個(gè)樣本和衰減岡J相乘。在常用的定點(diǎn)處理器中,較多的乘除法將會(huì)大吊消耗CPU的資源,帶來時(shí)延。隨意更改樣本問相對(duì)大小會(huì)導(dǎo)致混厶J語音的失真。這ltrXil按幀對(duì)研音信號(hào)進(jìn)行時(shí)城平}目處理,它小會(huì)d業(yè)語音的內(nèi)容。通過平滑處理, 幀的滑音信息按照比側(cè)縮小,語音特征參數(shù)
在樣本溢出并進(jìn)行衰減處理后,需要個(gè)機(jī)制來進(jìn)行有效補(bǔ)償。這里十^先衰減岡r進(jìn)行iH-化業(yè)理,將衰減岡ff see映射成320等分進(jìn)行運(yùn)算,用牲顰最ppp來表達(dá),即f_se e-Tppn 20,ppp為320與f see相乘后鞭粘。由于在語音編解碼上采用r C17ci ~i女,A律抓擴(kuò),增強(qiáng)對(duì)小信號(hào)的訛精度,對(duì)小信號(hào)的訓(xùn)節(jié)較J半富州。這里設(shè)置ppp的增減上下限為160到320。在睦剝混音的過程中,使卅肯處于小信號(hào)敏培的部位,避丌粗糙的大信號(hào),調(diào)節(jié)至人耳舒適的范同。
歸一化的衰減岡r ppp的增減依押語音信號(hào)過零率的判斷,蚍及相鄰曲楨短時(shí)能最的比較。在第4步進(jìn)行動(dòng)忐衰減罔r的訓(xùn)算叫,參考第2步對(duì)語音人聲的短日-能最放過零率的榆刪。根杯文獻(xiàn)『7]中的經(jīng)驗(yàn)佰,取iO ms幀的語音過零率閩值為4。“i儐際榆刪的過零率莊4蚍E時(shí),粗略判定其為許音信號(hào)幀,之后對(duì)相鄰語音信號(hào)幀進(jìn)行短叫能最的比較,”1卅H的短時(shí)能景縮小叫逐步增大衰減網(wǎng)f,”語音的短叫能帚增大叫逐步縮小衰減田Jf-,這種對(duì)衰減田j’的動(dòng)忐廢復(fù),將增慢棍音后信號(hào)的收斂性及健壯性。
這里設(shè)計(jì)為而向中小企業(yè)及學(xué)校教學(xué)用視頻會(huì)議系統(tǒng),參與人數(shù)在5人以下。會(huì)議參與青共同技聲的可能性較小,強(qiáng)烈滯出的兒率也比較小。岡為語音信號(hào)具有短時(shí)的相關(guān)性,時(shí)問通常在io ms到30 ms,即這里所隨的個(gè)幀。這里在設(shè)討混音算法叫兼顧鎰出發(fā)平柑處理,并且以語音幀為單位,算法‘流程如下:
3、嵌入式實(shí)現(xiàn)及結(jié)果分析為了對(duì)比改進(jìn)的混音算法的性能,將寫好的混音算法放在視頻會(huì)議系統(tǒng)實(shí)際運(yùn)行的嵌入式環(huán)境下來測(cè)試。該款處理器為TI 公司的DaVinci 系列片上系統(tǒng)DM6446-594 異構(gòu)雙核處理器。其中混音算法放在ARM 端運(yùn)行,該ARM 核為ARM9 系列,運(yùn)行頻率為297M。這里共采集3 路語音,一路為純背景噪音,一路為人聲,聲強(qiáng)靠近溢出位置,另一路為人聲,聲強(qiáng)適中。兩路人聲均采用較難區(qū)分的男聲。測(cè)試結(jié)果如圖2、圖3和圖4所示。
由混音后時(shí)域波形圖可見,圖2 為采用單純溢出衰減算法的混音過程。隨著混音過程的推進(jìn)音量逐漸減小。當(dāng)某一刻出現(xiàn)混音高峰時(shí),造成極小的哀減因子,音量變得很小而不可恢復(fù)。圖3 為參考文獻(xiàn)[5]中采用的定步長(zhǎng)單增恢復(fù)衰減因子的方法,這種混音方式會(huì)使得音量一直維持在最大值附近,聲音刺耳,噪音強(qiáng)烈。它增加了下次混音的溢出兒率,增加了溢出檢測(cè)和新的哀減因子計(jì)算,消耗資源,帶來時(shí)延。圖4 為這里改進(jìn)的算法,采用按幀衰減,區(qū)別于文獻(xiàn)[5]的按樣本處理,減少了定點(diǎn)處理器的乘除法操作,提升了計(jì)算性能。其哀減因子采用歸一化細(xì)分,并設(shè)置上下限。采用短時(shí)能量及過零率來對(duì)人聲識(shí)別并動(dòng)態(tài)更新衰減因子。該混音效果聽起來平滑,噪音很小、無爆破音,混音后完全沒有溢出現(xiàn)象發(fā)生。
4、結(jié)語這里提出了按語音信號(hào)特征,以語音幀為單位的衰減因子法解決混音溢出問題,在算法上進(jìn)行改進(jìn),提升了溢出處理的性能。并且提出了用短時(shí)能量及短時(shí)過零率來對(duì)人聲語音進(jìn)行粗檢測(cè)及衰減后的補(bǔ)償恢復(fù),提升了混音質(zhì)量。用戶可依據(jù)網(wǎng)絡(luò)環(huán)境對(duì)兩種算法進(jìn)行搭配選擇。通過在定點(diǎn)處理器ARM9上的實(shí)現(xiàn)以及結(jié)果分析證明,該算法的性能及效果較好。