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)致丟包率特別高,而且延時十分大,根本無法滿足通信的需要。
所以需要進行語音壓縮、降噪等處理。