南京創維信息技術研究院有限公司 李雪松
一種提升VOIP語音質量的方案
南京創維信息技術研究院有限公司 李雪松
電視VOIP中語音的處理受到很多因素的影響,比如網絡帶寬、網絡延時、抖動、丟包以及環境噪聲、回聲等。而這其中每一個問題若不能很好的解決,都會影響到通話的效果及質量。針對電視視頻聊天中語音存在的這些問題,本文從硬件資源換取軟件算法的思路出發,利用同一局域網內智能手機作為輔助,來充當電視的無線智能麥克風,從而有效地提升了通話的語音質量。
VOIP;SIP;RTP;IP偽裝
隨著網絡設施的提升及智能電視的普及,電視遠程視頻通話迎來了蓬勃的發展期,且逐漸受大眾所青睞。對于視頻聊天,音頻通話的功能及質量無疑左右著用戶對產品的評判。
視頻聊天中語音的處理流程主要有音頻原始數據(PCM流)采集、數據壓縮編碼(比如G729、iLBC、AAC、SPEEX等等)、數據打包(RTP/RTCP)傳輸、數據解碼及輸出到音頻驅動進行播放。以上只是音頻通話的基本流程,但要達到良好的通話效果乃至商用級別的軟件,還有很多路要走。良好的音頻效果要求,實時性高,低延遲,背景噪音小,無回聲嘯叫,聲音流程、沒有卡頓感覺等。在實際應用中,我們主要遇到兩大類問題,在信源方面,采集的聲音會存在雜音、低噪聲、回聲等聲源性問題;在信道方面,網絡的抖動、延時以及丟包也會影響到聲音的傳輸,從而使聲音失真。針對這些問題,我們可以從軟件層面做噪音抑制(NS)、回聲消除(AEC)、自動增益控制(AGC)、Jitter buffer緩沖處理等。但實現這些特性要求有很高的算法復雜度及技術難度,對研發人員技能水平有較高要求并且會依賴相關的終端設備。

圖1 原理圖
針對前面分析的視頻聊天中語音存在的諸多問題,我們提出了一種基于局域網內智能手機輔助電視進行視頻聊天的方案,它利用同一局域網內的智能手機做輔助來協助電視進行音頻數據的采集、壓縮編碼及RTP打包發送,這樣就大大降低了采集到的聲音對周圍環境尤其是電視播放出來的聲音依賴,提高采集聲音的純度,同時讓用戶可以不受和攝像頭距離的限制,不再用嘴巴對著攝像頭狂吼了,可以很舒適的進行高質量的語音聊天。一句話概括,本方案中智能手機充當了電視視頻聊天中電視機的“麥克風”的作用,我們簡稱它為“手機麥”。
視頻聊天采用的是基于SIP協議的通信技術,通過SIP協議協商,在回話前首先建立起音視頻傳輸的通道,這樣本端采集編碼好的數據就可以通過這種通道(RTP)進行實時傳輸,具體到傳輸層,這種通道對應就是由源IP地址、源端口、目的IP地址、目的端口及傳輸協議類型這個五元組所確定的一個套接字。無論是P2P還是RELAY的場景,這種通道對于一次回話來說都是固定不變的。這樣我們就可以在通道確立前的協商階段,在一段同時啟動兩臺設備上的通道,在輔助的一臺設備上模擬主設備上一模一樣的傳輸通道,而實際上對于路由器對外可感知到的卻是同一臺設備在通信。
實現的原理如圖1所示,終端Alice和終端Bob在視頻聊天時,他們首先要進行基于STUN的NAT穿透及SIP協商,來確定雙方的音視頻編解碼參數并建立傳輸通道,同時需要語音輔助的一端(比如Alice)通過廣播建立與輔助設備(智能手機)通信機制,將自己SIP協商的傳輸通道信息及當前音頻編解碼參數廣播到輔助終端上,輔助設備在收到這些信息后,給予用戶相應提示,用戶可以選擇接受或拒絕這種通道切換請求,若接受切換請求,則解析收到的消息,啟動語音數據的采集、進行壓縮編碼,在進行打包傳輸時構造偽裝的IP頭、UDP頭基本信息,對數據進行組包后傳輸到對端Bob處。
本方案一方面可以提升語音通話的質量和用戶交互的舒適度,同時將本端數據的處理遷移至輔助設備也緩解了主設備的性能壓力。同時,這種語音的處理也可以擴展到視頻,這樣就可以做到同一主終端多個備終端的應用場景,實現攝像頭的多角度實時監控。
本方案是基于輔助終端設備支持原始套接字編程的情況下,這種情況就要求這些終端設備的系統可深度定制。
[1]S.Raghavendran, “Implementation of an Acoustic EchoCanceller Using MATLAB,” Master Thesis, Department of Electrical Engineering,College of Engineering,Universityof South Florida, October 2003.
[2]Xinyi Wang,Tingzhi Shen, and Weijang Wang, “An approach for echo cancellation system based onimproved NLMS algorithm,”IEEE WiCom2007, pp. 2853-2856, 2007.