天天看點

聊聊語音聊天室app源碼實時音視訊中的技術難點:回聲消除+噪聲消除

聊聊語音聊天室app源碼實時音視訊中的技術難點:回聲消除+噪聲消除

在聊聊語音聊天室app源碼各個實時音視訊互動場景中,回聲和噪聲對于影響使用者體驗而言都是很大的問題。音視訊正在發展成為網際網路線上溝通的必然趨勢,在自然的交流環境中,回聲和噪聲是非常影響溝通體驗的。不論是社交、教育、直播場景中的“疑難雜症”或是智能硬體通話中的“痛點問題”還是銀行視訊客服和企業視訊會議的“嚴格要求”,都與回聲噪音有關,因為人對音頻都很敏感,聲音一旦有任何瑕疵,人耳都會特别容易感覺到,而且難以忍受,這都會直接影響到使用者體驗及使用者留存率。而回聲消除與噪聲消除也一直是實時音視訊的技術難點。

聲學回聲消除AEC

聲學回聲是在麥克風采集了近端聲音的同時也采集了揚聲器發出來的聲音,如果沒有回聲消除子產品(Acoustic Echo Cancelation – AEC),對端将聽到自己的聲音又被傳了回來,這就是惱人的回聲産生的原理。容易了解,語音通話中,通常聲學回聲是在使用者打開了免提模式,即開啟揚聲器時産生的,不打開免提模式的情況下一般不需要啟用AEC。但是,有時候由于結構設計的問題,盡管沒有打開免提模式,聽筒上的聲音也可能作為回聲被麥克風采集到,此時也需要使用AEC。

聊聊語音聊天室app源碼實時音視訊中的技術難點:回聲消除+噪聲消除

消除回聲就像把紅墨水倒進藍墨水裡,混合在一起,然後要求把紅墨水從藍墨水中分離出來,這存在着很大的技術難度。對于采集端來說,無論是近端的聲音,還是揚聲器播放出來的聲音,都是從空氣中無差别地采集到的聲音。對機器來說,遠端信号播放出來的聲音和近端的聲音是沒有任何差別的,就像對水來說紅墨水和藍墨水沒有差別一樣。回聲消除的工作就是要把沒有任何差別的遠端回聲和近端聲音分離。AEC算法的基本思路是,參考遠端信号将混有回音的近端信号“減去”回聲。然而由于Speaker和MIC的模數轉換和回聲多途效應等因素,回聲和遠端參考信号具有非線性失真,無法做到完全消除回聲的同時確定近端信号品質不下降,是以可能有回聲殘留或近端信号品質下降或被抑制。

聊聊語音聊天室app源碼實時音視訊中的技術難點:回聲消除+噪聲消除

語音聊天室app源碼搭建過程中的自适應回聲消除技術,可自動适配市場上各類新舊機型,大規模節約調試和部署成本。實際測試表明,AEC能顯著改善雙端通話的品質,下圖是實測的回聲消除前和回聲消除後的語音品質的MOS(Mean Opinion Score)分的對比,Sig表示信号次元的品質,Echo表示回聲消除次元的品質,Ovrl表示總體品質。

聊聊語音聊天室app源碼實時音視訊中的技術難點:回聲消除+噪聲消除

噪聲消除

在語音聊天室app源碼搭建過程中除了回聲消除,噪聲消除也是實時音視訊中的必修課。噪聲消除是一個十分複雜的技術,不同的環境噪聲所需要的處理方法是不同的,純軟體的噪聲消除的能力也是有限的,有條件采用帶有消噪能力的雙麥克風的平台可以獲得更佳的消噪品質。

MME主要是通過軟體的方式對噪聲進行消除,它可以對輸出和輸入兩個方向的語音信号進行處理,即對近端信号和遠端信号處理,前者的調用接口為Mvc_DspSetAnrEnable(),後者調用接口為Mvc_DspSetRxAnrEnable()。如果兩個通信端都采用了菊風MME,隻要打開一個方向的噪聲消除功能即可,同時進行兩個處理過程跟一個過程相比不會提高信噪比(Signal-to-Noise Ratio : SNR),也不會提高語音品質。但如果另一個終端采用的是第三方媒體處理子產品,且傳過來的信号噪音比較大,則需要對遠端信号進行處理,是以預設兩個噪聲消除的接口都打開。從數字信号處理角度來說,對遠端信号和近端信号進行噪聲消除是沒有差別的,下圖對比了語音疊加噪音信号經MME處理前後的波形。

聊聊語音聊天室app源碼實時音視訊中的技術難點:回聲消除+噪聲消除

在語音聊天室app源碼的搭建過程中可以從三個方面考查噪聲消除子產品的性能:其一是信号的保真度,要做到有效的語音信号不損失或微損失;其二是噪聲消除了多少的考量,在信号不損失或微損失的情況下,做到盡可能的消除噪聲;其三是聲音給測試人員的整體感受,最終給測試人員的感受才是最有效的考量。下圖是基于ITU-T P.835标準,對疊加了噪音信号經過MME的處理後的MOS分對比。實驗表明,在平均-30dbov白噪音情況下,SNR上升12db,MOS上升1.13。

聊聊語音聊天室app源碼實時音視訊中的技術難點:回聲消除+噪聲消除

Sig - Speech signal rating scale

Bak - Background noise rating scale

繼續閱讀