在網(wǎng)絡(luò)視頻會議開發(fā)領(lǐng)域,我們有許多開源的音頻編碼庫可以供選擇,如G.7x系列、ACC、AC3、Speex等音頻編碼庫,但由于網(wǎng)絡(luò)視頻會議可能會在無QOS保證的網(wǎng)絡(luò)中傳輸數(shù)據(jù),所以不僅要求音頻編碼器可以傳輸實時的高質(zhì)量的音頻數(shù)據(jù),還需要保證帶寬足夠小,滿足不同帶寬的需求。因此一些寬帶的編碼器,如ACC、AC3等,其傳輸需要較大的帶寬,就很難適應(yīng)網(wǎng)絡(luò)視頻會議的低帶寬傳輸要求。Speex是一個基于CELP算法的開源編碼器,其可以支持從窄帶(2kb)到寬帶(44kbs)的音頻傳輸,最少的音頻傳輸帶寬可以達到500字節(jié)每秒,是目前壓縮率最高的音頻編碼器之一。Speex除了以上的特點外,還具有一些可供網(wǎng)絡(luò)會議使用的特性。
1、 數(shù)據(jù)丟包掩飾
在網(wǎng)絡(luò)視頻會議的傳輸過程中,由于網(wǎng)絡(luò)的帶寬存在著波動性,因此有時候我們傳輸?shù)臄?shù)據(jù)會在網(wǎng)絡(luò)中出現(xiàn)延遲甚至?xí)a(chǎn)生丟包現(xiàn)象,大部分的音頻編碼器,當(dāng)其接收的數(shù)據(jù)出現(xiàn)丟包,可能聲音就會出現(xiàn)不連續(xù)的情況。而Speex的丟包掩飾功能可以使局部丟包不影響整體的音頻質(zhì)量。經(jīng)測試當(dāng)超過5%的丟包的時候,GSM、G.72x的語音質(zhì)量會嚴重下降,而當(dāng)我們采用Speex進行傳輸?shù)臅r候,其語音質(zhì)量沒有出現(xiàn)較大變化,這證明Speex的丟包掩飾確實能解決局部丟包的問題。由于網(wǎng)絡(luò)視頻會議有時候會出現(xiàn)網(wǎng)絡(luò)堵塞的情況,從而出現(xiàn)數(shù)據(jù)丟包現(xiàn)象,因此Speex的數(shù)據(jù)丟包掩飾對網(wǎng)絡(luò)視頻會議克服丟包的影響非常有作用。
2、 可變數(shù)據(jù)流
Speex具有先進的可變數(shù)據(jù)流傳輸方式,其通過音頻靜音檢測,Speex可以在靜音的情況不發(fā)送任何數(shù)據(jù);而通過調(diào)整語音的傳輸質(zhì)量,動態(tài)改變語音的傳輸帶寬,使語音在主觀上更為出色。
3、 回聲抑制
網(wǎng)絡(luò)視頻會議系統(tǒng)的語音一般都是雙向的,如果其中一方把外置的聲音傳輸?shù)狡潲溈孙L(fēng)上,就很容易出現(xiàn)回聲的現(xiàn)象。Speex編碼庫提供回聲消除功能,可以通過近端和遠端的數(shù)據(jù)包進行疊加,從而消除靜音,但由于網(wǎng)絡(luò)視頻會議的語音接收和發(fā)送線程都是分開,因此需要對兩個線程進行同步才能進行回聲消除。
4、 自動增益控制
網(wǎng)絡(luò)視頻會議系統(tǒng)的聲音采集通常可以為耳麥、鵝頸麥克風(fēng)等,不同的麥克風(fēng)的其拾音半徑都不一樣,而且有時候我們會議發(fā)言者的位置可能會移動,如采集同樣的聲音大小,其聲音就會有時大、有時小,通過語音自動增益控制,通過放大或者降低聲強,我們可以獲得大致一直的聲音強度,避免了語音跳躍的情況。
5、 噪聲消除
在會議中可能會遇到對方的環(huán)境噪聲造成語音質(zhì)量下降的情況,Speex可以對環(huán)境噪聲進行判斷,并消除這些噪聲,提高了語音的質(zhì)量。
6、 強化的立體聲編碼
Speex除了能壓縮一般語音數(shù)據(jù),還可以對立體聲數(shù)據(jù)進行編碼。
7、 跨平臺
Speex可以在不同的平臺上編譯,如Android、IOS系統(tǒng),因此非常適合我們的視頻會議系統(tǒng)的移動終端的音頻壓縮庫。
總結(jié),通過Speex的多項特性證明,Speex是目前最佳的開源網(wǎng)絡(luò)視頻會議音頻編碼庫,Speex編碼不僅僅是一個開源的編碼器,其還具有網(wǎng)絡(luò)視頻會議音頻處理所需要的一些重要的功能。