Speex
编码类型:CELP
编码速率:2.5 – 24.6kbps(NB模式) ;4 – 44.2kbps(WB模式)
理论延时:30ms(NB模式)/34ms(WB模式)
采样率:8 /16/32kHz
音质:长途质量 – 近CD;
优点:解决方案全面,已被大量互联网软件采用;
缺点:已被赶超;
应用领域:VOIP;
版税方式:免费
Speex是一套主要针对互联网语音的开源免费,无专利保护的音频编码器,是基于CELP并且专门为码率在2-44kbps的语音压缩而设计的。相对于其它编解码器,speex在网络应用上有着自己独特的优势。Speex是GNU工程的一部分,在改版的BSD协议中得到了很好的支持。
Speex不仅仅是个编码器,它还包含很多音频处理,网络处理等的开源模块。
Speex的特点如下:
l 全开源,免费。
l 码率支持2.25 - 44kbps
l 支持VBR(Variable Bit-Rate)动态码率调整。
l 支持VAD(Voice Activity Detection)语音检测。
l 支持DTX(discontinuous transmission)非连续传输。
l 支持立体声。
l 支持去噪。
l 支持AGC(automatic gain control)自动语音增益。
l 支持AEC(Acoustic Echo Canceller)回声消除。
l 支持音频的升降采样。
l 支持自适应网络抖动缓冲,Adaptive Jitter Buffer。
l 支持PLC(Packet loss concealment)网络丢包消隐。
l 支持语音增强。
因为Speex开源较早(2003-2008),并且对互联网音频解决方案较全面,所以早期被大量针对低带宽的VOIP产品选用。但英雄迟暮,目前其官网(http://www.speex.org)是承认speex编解码器已被opus全面超越,建议用户用opus替代speex。
根据评测,Speex与 iLBC当二者的编码速率差不多时,iLBC的质量要好于Speex。
iLBC
编码类型:Block independent LPC
编码速率:13.33/15.20kbps;
理论延时:30ms/20ms
采样率:8 kHz
音质:长途质量;
算法复杂度:11 MIPS
优点:应用广泛,低码率,抗丢包;
缺点:音质一般;
应用领域:VOIP;
版税方式:免费
iLBC (internet Low Bitrate Codec)是由GIPS开发的基于低带宽的语音编码(speech),现有GOOGLE买下并免费开源到WEBRTC项目中。2006年前的skype产品在低带宽下使用iLBC编解码器。YAHOO message, google talk, polycom IP phone, iphone都支持iLBC。
iLBC的特点就是抗丢包。解码算法支持PLC(Packet loss concealment)网络丢包消隐。
在网络正常情况下,iLBC会记录下当前数据的相关参数和激励信号,以便在之后的数据丢失的情况下进行处理;在当前数据接收正常而之前数据包丢失的情况下,iLBC会对当前解码出的语音和之前模拟生成的语音进行平滑处理,以消除不连贯的感觉;在当前数据包丢失的情况下,iLBC会对之前记录下来的激励信号作相关处理并与随机信号进行混合,以得到模拟的激励信号,从而得到替代丢失语音的模拟语音。总的来说,和标准的低位速率编解码相比,iLBC使用更多自然、清晰的元素,精确的模仿出原始语音信号,这样更适合包交换网络使用的高语音质量的编解码。iLBC 的码率,13.3 kb/s (每帧30ms)和15.2 kb/s (每帧20ms), 8K采样。
iLBC的语音质量效果比G.711、G.729、G.723.1更好,声音更加圆润饱满,丢包率越高,iLBC在语音质量上的优势就越明显。据称在算法上可忍受15%的丢包损失。
iLBC用的比较多,关于iLBC有另外一段描述:
iLBC是一种专为包交换网络通信设计的编解码,优于目前流行的G.729、G.723.1,对丢包进行了特有处理,既使在丢包率 相当高的网络环境下,仍可获得非常清晰的语音效果。
iLBC所占用带宽?
30ms ptime的iLBC所占用的总通信带宽比通常采用的ptime 20ms的G.729的带宽还要小,以下是iLBC与传统编解码占用带宽列表:
iLBC——语音质量的飞跃
语音质量一直是VoIP应用的主要难点,如何保证和提高IP网络传输语音的通话效果,是VoIP应用迫切需要解决的问题。“iLBC”编解码的出现,解决了在包交换的IP网络中,传输语音所遇到的网络丢包严重影响通话质量等实际问题,实现了“语音质量的飞跃”。
无论在高丢包率条件下还是在没有丢包的条件下,iLBC的语音质量都优于目前流行的G.723.1, G.729A等标准编解码;而且丢包率越大,使用iLBC的语音质量优势越明显。通常情况下,为了衡量IP网络语音质量,将≥5%丢包率的网络情况定义为VoIP的极限网络条件。经过语音质量测试,即使在5%丢包率的情况下,iLBC仍然能够提供相当于GSM手机的语音质量。
Opus
Opus 可以处理很大范围的音频应用,包括网络电话,游戏语音聊天室,视频会议,甚至是远程在线音乐会。它可以把低码率
窄带语音变成高质量的立体语音。
Opus目前正在被广泛的使用,美国的电信公司和科技巨头都开始使用Opus音频编码,其中最有名的就是谷歌公司将Opus引入到其Web项目中,相信大家对Webrtc还是有一些了解的,Speex则被Adobe公司广泛使用,搭着flash的顺风车,占有了广大的市场。但是随着flash的没落,Speex也开始渐渐淡出人们的视野。
6 kb/秒到510 kb/秒的比特率;单一频道最高256 kb/秒
采样率从8 kHz(窄带)到48 kHz(全频)
帧大小从2.5毫秒到60毫秒
支持恒定比特率(CBR)、受约束比特率(CVBR)和可变比特率(VBR)
支持语音(SILK层)和音乐(CELT层)的单独或混合模式
支持单声道和立体声;支持多达255个音轨(多数据流的帧)
可动态调节比特率,音频带宽和帧大小
良好的鲁棒性丢失率和数据包丢失隐藏(PLC)
浮点和定点实现