音頻開發應該知道的VOIP通話技術基礎

音頻開發應該知道的VOIP通話技術基礎

VOIP即Voice over Internet Protocol,用中文簡單描述就是將模擬信號(Voice)數字化,再進行前處理,編碼,以數據封包(Data Packet)的形式在IP網絡(IP Network)上做實時傳遞。

VOIP區別於傳統電話的最大變化就是不再獨佔信道,採用數據包發送至IP網絡。它的優點是成本低、信道利用率高,缺點也很明顯,就是網絡狀況的好壞直接影響通話的質量。VOIP的通話的首要目標是對抗網絡狀況實現語音的流暢、可理解、實時性,在很多子模塊設計也都是以這個為目標的。在VOIP框架下,聲音從一端到達另一端一般是要經過:採集,前處理,編碼,網絡傳輸,解碼,播放幾個模塊的。

音頻開發應該知道的VOIP通話技術基礎

為了達到流暢、可理解、實時性, VOIP的每個環節一般這麼做的:

  • 採集/播放模塊:由於一般的人聲都是中低頻為主,高頻的諧波不多。大部分採集模塊都選用性價比最高的16KHz採樣率,早期的採集模塊的採樣率則是更低的窄帶8KHz。16KHz採樣率不僅能保存絕大部分的人聲,也降低了後面模塊如前處理和編碼器的計算量,同時還大大減少了編碼的輸出碼率(相對於48Khz採樣率)。
  • 前處理:一般的音頻前處理主要有:回聲消除,噪聲抑制,自動增益控制等。任何的前處理都是希望保留或放大我們想要的聲音,消除或抑制不想要的聲音。所以處理一定是對本體聲音造成影響的。在一般的VOIP框架下,前處理算法不僅可以扔掉高頻信息來保證計算量,同時在算法的偏向性上也更偏向於去除掉不想要保留的聲音如噪音,回聲等。最大限度保證可理解即可。
  • 編解碼器:一般的VOIP系統除了會使用國際電信聯盟的711、722、G.723等編碼器(如:IP電話等),更多的即時通訊軟件則會使用針對網絡傳輸設計的Opus 等編碼器,Opus在人聲場景下,會使用口腔發音模型建模silk語音編碼器,可以實現高壓縮比,大大提升低帶寬下表現。
  • 網絡傳輸:在對抗網絡傳輸的不穩定,包括:隨機丟包,擁塞,抖動等,常見的對抗技術和策略有:FEC(Forward Error Correction)前向糾錯技術,PLC(Packet loss concealment)丟包隱藏技術,ARQ(Automatic Repeat Request)自動重傳機制,JitterBuffer 抖動緩存區策略,帶寬與冗餘包分配策略等等。一般VOIP在設計這些策略和方案的時候會最大限度的保留流暢性和實時性的同時,利用盡量少的帶寬來恢復更多的數據,滿足可理解性,同時也能兼顧低帶寬純音頻場景以及正常帶寬下的音視頻混合場景。

這些環節的設計,可以讓人聲場景下節約計算量的同時又比較高效的被壓縮最大限度的利益網絡帶寬,來達到最高的性價比的語音通話。

QttAudio是基於VOIP的音頻迴音消除軟件,支持各大平臺,是眾多物聯網廠家的性價比之選,http://www.qttaudio.com/document


分享到:


相關文章: