1. 程式人生 > >音視訊通話:小議音訊處理與壓縮技術

音視訊通話:小議音訊處理與壓縮技術

在視訊或者音訊通話過程中,一方面為了減小原始聲音資料的傳輸位元速率,需要進行音訊壓縮,另一方面為了得到更高質量的音質,需要進行音訊處理。那麼,如何處理好這兩方面,保證聲音傳播的高真性?本篇文章將會結合網易雲信在音視訊技術方面的實戰和經驗,小議音訊處理與壓縮技術。

推薦閱讀:

音訊處理的方法主要包括:音訊降噪、自動增益控制、回聲抑制、靜音檢測和生成舒適噪聲,主要的應用場景是視訊或者音訊通話領域。音訊壓縮包括各種音訊編碼標準,涵蓋ITU制定的電信領域音訊壓縮標準(G.7xx系列)和微軟、Google、蘋果、杜比等公司制定的網際網路領域的音訊壓縮標準。(iLBC、SILK、OPUS、AAC、AC3等)。

音訊基礎概念

在進一步瞭解音訊處理和壓縮之前需要知道這些:

(1)音調:泛指聲音的頻率資訊,人耳的主觀感受為聲音的低沉(低音)或者尖銳(高音)。

(2)響度:聲音的強弱。

(3)取樣率:聲音資訊在由模擬訊號轉化為數字訊號過程中的精確程度,取樣率越高,聲音資訊保留的越多。

(4)取樣精度:聲音資訊在由模擬訊號轉化為數字訊號過程中,表示每一個取樣點所需要的位元組數,一般為16bit(雙位元組)表示一個取樣點。

(5)聲道數:相關的幾路聲音數量,常見的如單聲道、雙聲道、5.1聲道。

(6)音訊幀長:音訊處理或者壓縮所操作的一段音訊資訊,常見的是10ms,20ms,30ms。

音訊處理基礎

1. 噪聲抑制(Noise Suppression)

手機等裝置採集的原始聲音往往包含了背景噪聲,影響聽眾的主觀體驗,降低音訊壓縮效率。以Google著名的開源框架WebRTC為例,我們對其中的噪聲抑制演算法進行嚴謹的測試,發現該演算法可以對白噪聲和有色噪聲進行良好的抑制。滿足視訊或者語音通話的要求。

其他常見的噪聲抑制演算法如開源專案Speex包含的噪聲抑制演算法,也有較好的效果,該演算法適用範圍較WebRTC的噪聲抑制演算法更加廣泛,可以在任意取樣率下使用。

2. 回聲消除(Acoustic EchoCanceller)

在視訊或者音訊通話過程中,本地的聲音傳輸到對端播放之後,聲音會被對端的麥克風採集,混合著對端人聲一起傳輸到本地播放,這樣本地播放的聲音包含了本地原來採集的聲音,造成主觀感覺聽到了自己的回聲。

回聲產生的原理如下圖所示

以WebRTC為例,其中的回聲抑制模組建議移動裝置採用運算量較小的AECM演算法,該演算法的處理步驟如下圖所示。有興趣的讀者可以參考AECM的原始碼進行研究,這裡不展開介紹了。

3. 自動增益控制(Auto Gain Control)

手機等裝置採集的音訊資料往往有時候響度偏高,有時候響度偏低,造成聲音忽大忽小,影響聽眾的主觀感受。自動增益控制演算法根據預先配置的引數對輸入聲音進行正向/負向調節,使得輸出的聲音適宜人耳的主觀感受。

以WebRTC為例,它的自動增益控制演算法的基本流程圖如下所示。

4. 靜音檢測(Voice ActivityDetection)

靜音檢測的基本原理:計算音訊的功率譜密度,如果功率譜密度小於閾值則認為是靜音,否則認為是聲音。靜音檢測廣泛應用於音訊編碼、AGC、AECM等。

5. 舒適噪聲產生(ComfortableNoiseGeneration)

舒適噪聲產生的基本原理:根據噪聲的功率譜密度,人為構造噪聲。廣泛適用於音訊編解碼器。在編碼端計算靜音時的白噪聲功率譜密度,將靜音時段和功率譜密度資訊編碼。在解碼端,根據時間資訊和功率譜密度資訊,重建隨機白噪聲。

它的應用場景:完全靜音時,為了創造舒適的通話體驗,在音訊後處理階段新增隨機白噪聲。

音訊編碼基礎

音訊的另一個廣泛應用的領域:音訊編碼。

首先看一下當前應用最廣泛的一些音訊編碼標準,如下圖所示。

圖中橫軸是音訊編碼位元速率,縱軸是音訊頻帶資訊。從圖中我們可以獲得如下幾方面資訊。

(1)對於固定位元速率的編碼標準,如G.711或者G.722,圖中採用單點表示,說明這兩個編碼標準是固定位元速率編碼標準。其他如Opus、Speex,它們的曲線是連續的,說明這類編碼標準是可變位元速率的編碼標準。

(2)從頻帶方面看,G.711、G.722、AMR和iLBC等標準適用於narrowband(8khz取樣率)和wideband(16khz取樣率)範圍,針對普通的語音通話場景。AAC和MP3適用於fullband(48khz取樣率)範圍,針對特殊的音樂場景。而Opus適用於整個頻帶,可以進行最大範圍的動態調節,適用範圍最廣。

(3)從標準的收費情況看,適用於網際網路傳輸的iLBC、Speex和Opus都是免費且開源的;適用於音樂場景的MP3和AAC,需要license授權,而且不開源。

隨著音訊處理和壓縮技術的不斷髮展,效果更好、適用範圍更廣、效能更高的演算法和新的技術必將不斷湧現,如果你有好的技術或者分享,歡迎留言,我們一起探討。

想要獲取更多產品乾貨、技術乾貨,歡迎關注網易雲信部落格

雲信介紹參考:

網易雲信(NeteaseYunXin)是集網易18年IM以及音視訊技術打造的PaaS服務產品,來自網易核心技術架構的通訊與視訊雲服務,穩定易用且功能全面,致力於提供全球領先的技術能力和場景化解決方案。開發者通過整合客戶端SDK和雲端OPEN API,即可快速實現包含IM、音視訊通話、直播、點播、互動白板、簡訊等功能。