天天看點

最佳的開源網絡視訊會議音頻編碼庫:Speex

在網絡視訊會議開發領域,我們有許多開源的音頻編碼庫可以供選擇,如g.7x系列、acc、ac3、speex等音頻編碼庫,但由于網絡視訊會議可能會在無qos保證的網絡中傳輸資料,是以不僅要求音頻編碼器可以傳輸實時的高品質的音頻資料,還需要保證帶寬足夠小,滿足不同帶寬的需求。是以一些寬帶的編碼器,如acc、ac3等,其傳輸需要較大的帶寬,就很難适應網絡視訊會議的低帶寬傳輸要求。speex是一個基于celp算法的開源編碼器,其可以支援從窄帶(2kb)到寬帶(44kbs)的音頻傳輸,最少的音頻傳輸帶寬可以達到500位元組每秒,是目前壓縮率最高的音頻編碼器之一。speex除了以上的特點外,還具有一些可供網絡會議使用的特性。

1、 資料丢包掩飾

在網絡視訊會議的傳輸過程中,由于網絡的帶寬存在着波動性,是以有時候我們傳輸的資料會在網絡中出現延遲甚至會産生丢包現象,大部分的音頻編碼器,當其接收的資料出現丢包,可能聲音就會出現不連續的情況。而speex的丢包掩飾功能可以使局部丢包不影響整體的音頻品質。經測試當超過5%的丢包的時候,gsm、g.72x的語音品質會嚴重下降,而當我們采用speex進行傳輸的時候,其語音品質沒有出現較大變化,這證明speex的丢包掩飾确實能解決局部丢包的問題。由于網絡視訊會議有時候會出現網絡堵塞的情況,進而出現資料丢包現象,是以speex的資料丢包掩飾對網絡視訊會議克服丢包的影響非常有作用。

2、 可變資料流

speex具有先進的可變資料流傳輸方式,其通過音頻靜音檢測,speex可以在靜音的情況不發送任何資料;而通過調整語音的傳輸品質,動态改變語音的傳輸帶寬,使語音在主觀上更為出色。

3、 回聲抑制

網絡視訊會議系統的語音一般都是雙向的,如果其中一方把外置的聲音傳輸到其麥克風上,就很容易出現回聲的現象。speex編碼庫提供回聲消除功能,可以通過近端和遠端的資料包進行疊加,進而消除靜音,但由于網絡視訊會議的語音接收和發送線程都是分開,是以需要對兩個線程進行同步才能進行回聲消除。

4、 自動增益控制

網絡視訊會議系統的聲音采集通常可以為耳麥、鵝頸麥克風等,不同的麥克風的其拾音半徑都不一樣,而且有時候我們會議發言者的位置可能會移動,如采集同樣的聲音大小,其聲音就會有時大、有時小,通過語音自動增益控制,通過放大或者降低聲強,我們可以獲得大緻一直的聲音強度,避免了語音跳躍的情況。

5、 噪聲消除

在會議中可能會遇到對方的環境噪聲造成語音品質下降的情況,speex可以對環境噪聲進行判斷,并消除這些噪聲,提高了語音的品質。

6、 強化的立體聲編碼

speex除了能壓縮一般語音資料,還可以對立體聲資料進行編碼。

**

7、 跨平台**

speex可以在不同的平台上編譯,如android、ios系統,是以非常适合我們的視訊會議系統的移動終端的音頻壓縮庫。

總結,通過speex的多項特性證明,speex是目前最佳的開源網絡視訊會議音頻編碼庫,speex編碼不僅僅是一個開源的編碼器,其還具有網絡視訊會議音頻處理所需要的一些重要的功能。

本文轉自d1net(轉載)

繼續閱讀