Speex 语音编解码算法概述

一、Speex是什么?

      Speex工程是由Jean-Marc Valin 在2002年启动的一个项目,这个项目满足了当时缺少开源的、自由版权的语音编解码器的需求。因为当时大概只有G.711 等极少的语音编解码器可以自由使用,这种情形大大限制了VOIP在Linux以及其它自由操作系统上的发展,所以Speex Codec应运而生,可见它是针对VOIP应用而开发的,当然也可以用于一般语音资料的存储,但并不适合应用在无线通信和移动通信领域。因此,Speex Codec 具有低延时,对网络丢包也有较好的补偿等特点,可以用在多种嵌入式设备上。

       具体相关信息可以参考 http://www.speex.org/  

 

二、Speex Codec 的特点

1、开源软件,版权自由;

2、集成了窄带和宽带两种模式;

3、非常宽的码率范围:2.15kbps~44kbps;

4、实现动态码率切换和变速率操作;

5、具有VAD和DTX模块,集成在VBR模块中;

6、算法复杂度可以调配;

7、嵌入的宽带结构(可分级设置采样率8KHZ、16KHZ);

8、具有超宽带采样率32KHZ;

9、具有增强立体声编码选项;

10、已经定点实现;

 

我个人对2~7、9、10都很感兴趣,接下来会去好好研究一下。

 

三、Speex Codec的算法模型

      Speex Codec 是基于CELP算法模型开发的,毕竟CELP模型在中低速率的语音编解码器中已经成为了主流,音质可以得到保证。但是我比较好奇的是Speex Codec怎么去避开一些具体技术的专利限制,例如就激励信号的量化技术来说,美国电信工业协会(TIA)有VSELP专利标准,日本的JDC有PSI-CELP标准,ITU有CS-ACELP标准,3GPP的AMR有ACELP方法,美国高通有QCELP专利。对于激励信号的描述好坏以及量化质量高低对重建语音的音质质量有着重要的影响,Speex既要设法避免以上的专利限制,还有保持重建语音信号质量,它真的能做到吗,让我们在接下来的学习中验证吧。

 

四、Speex Codec 的应用平台

      因为是针对嵌入式设备,所以代码对某些平台和操作系统也做了相应的调整,便于移植和进一步的优化。

 

平台有:

1、x86 & x86-64

2、Power

3、SPARC

4、ARM

5、Blackfin

6、Coldfire(68k family)

7、TI C54xx & C55xx

8、TI C6xxx

9、TriMedia(experimental)

 

操作系统有:

1、Linux

2、uClinux

3、MacOS X

4、BSD

5、Other UNIX/POSIX variants

6、Symbian

 

 

参考资料

1、The Speex Codec manual Version 1.2 Beta 3

你可能感兴趣的:(语音编码相关)