音頻格式Opus和Speex對比分析

1. Opus

??Opus編碼器 是一個有損聲音編碼的格式,由IETF的編解碼器工作組設(shè)計的,合并了Skype的SILK和Xiph. Org的CELT技術(shù)。
??opus是一個低延時、高保真的適合在網(wǎng)絡(luò)中傳輸?shù)拈_源的語音編碼格式,相對于其他編碼格式來講,保真性更好,但體積會稍微大一些。Opus 格式是一個開放格式,使用上沒有任何專利或限制。通過諸多的對比測試,低碼率下Opsu完勝曾經(jīng)優(yōu)勢明顯的HE AAC,中碼率就已經(jīng)可以媲敵碼率高出30%左右的AAC格式,而高碼率下更接近原始音頻,它可以適用于從低碼率窄帶語音到非常高質(zhì)量的立體聲音樂。

標(biāo)準(zhǔn)格式可參考: RFC 6716

官網(wǎng)地址:http://www.opus-codec.org/

它的主要特點是:
  ? 采樣率從8至48 kHz
  ? 比特率從6kb/s到510kb/s
  ? 對固定碼率(CBR)和可變碼率(VBR)都能支持
  ? 從窄帶到寬帶的音頻帶寬
  ? 支持語音和音樂
  ? 支持單聲道和立體聲
  ? 支持多通道(最多255通道)
  ? 幀規(guī)格從2.5毫秒到60毫秒
  ? 良好的損失魯棒性和包丟失隱藏性(PLC)(注:應(yīng)是指丟包也不容易被發(fā)現(xiàn))
  ? 浮點和定點執(zhí)行
接口調(diào)用可參考博文 https://blog.csdn.net/liuhongxiangm/article/details/52919951

2. Speex

??Speex是一套主要針對語音的開源免費、無專利保護的音頻壓縮格式,是基于CELP并且專門為碼率在2-44kbps的語音壓縮而設(shè)計的。
??Speex工程著力于通過提供一個可以替代高性能語音編解碼來降低語音應(yīng)用輸入門檻 。另外,相對于其它編解碼器,Speex也很適合網(wǎng)絡(luò)應(yīng)用,在網(wǎng)絡(luò)應(yīng)用上有著自己獨特的優(yōu)勢。同時,Speex還是GNU工程的一部分,在改版的BSD協(xié)議中得到了很好的支持。
它的主要特點是:
  ? 窄帶(8kHz),寬帶(16kHz)和超寬帶(32kHz)壓縮于同一位流
  ? 強化立體編碼
  ? 數(shù)據(jù)包丟失隱蔽
  ? 可變比特率(VBR)
  ? 語音捕捉(VAD)
  ? 非連續(xù)傳輸(DTX)
  ? 定點運算
  ? 感官回聲消除(AEC)
  ? 噪音屏蔽

3. Slik

??SILK Codec是一個語音和音頻編解碼算法, 對于音頻帶寬、網(wǎng)絡(luò)帶寬和算法復(fù)雜度都具有很好的彈性。
它的主要特點:
  ? 支持4種采樣率:8KHz、12KHz、16KHz、24KHz;三種復(fù)雜度:低、中、高;
  ? 編碼碼率在 6~40kbps(不同采樣率具有不同的碼率范圍),即使丟包水平達到10%依然可以穩(wěn)定維持24KHz采樣的通話音質(zhì).;
  ? 支持VAD、DTX、FEC等模塊;
  ? 強化立體編碼
  ? 強化立體編碼

最重要的一點是提供了定點C代碼,非常有利于向ARM、DSP移植和優(yōu)化。Skype投入了數(shù)百萬美元,耗時三年多開發(fā)了Silk,他們表示Silk可以使VoIP通話聽起來好像你和對話的人在同一間房子里一樣。大部分電話只能傳輸3.4kHz(碼率)的信號,而Silk可以讓Skype傳輸高達12kHz的信號,,現(xiàn)已開源。

源碼地址: http://developer.skype.com/silk。
應(yīng)用參考地址: https://blog.csdn.net/xyz_lmn/article/details/8015619
標(biāo)準(zhǔn)地址:http://tools.ietf.org/html/draft-vos-silk-01

4. 篇外話

為什么要進行編碼?我們通過一個案例來說明。

錄制音頻屬性:
采樣頻率: fm = 44.1KHz
量化位數(shù):16bit ????????//可以較為詳細的表示聲音的幅度
聲道配置:2(雙聲道)

??如果直接使用錄制音頻流并發(fā)送到另一端進行播放,則有碼率 V = 44.1K * 16 *2 = 1411.2 Kbps = 176.4KBps,即每秒需要傳輸速率大概176.4KB。
一個音頻幀時長為20ms,每個音頻數(shù)據(jù)包大小為 size = 176.4KBps * 0.02s = 3.528KB,可以取整為3600Byte。
??那么,每秒大概發(fā)送 176.4/3.6=49 個數(shù)據(jù)包,每個數(shù)據(jù)包大小為3.6KB。
??如果再考慮到數(shù)據(jù)報頭,實測每秒發(fā)送約45個數(shù)據(jù)包,每秒傳輸速率大概180KB。這就要求網(wǎng)絡(luò)質(zhì)量和硬件設(shè)備必須很好,而且信道干擾較弱,并且鏈接的設(shè)備不能過多。只要稍微信號不好,就會導(dǎo)致丟包率特別高,而且延時十分大,根本無法滿足通信的需要。
所以需要進行語音壓縮、降噪等處理。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容