现在的位置: 首页 > 综合 > 正文

编译speex

2013年10月10日 ⁄ 综合 ⁄ 共 1272字 ⁄ 字号 评论关闭

1:VC2008 + speex-1.2rc1 + libogg;

2:编译libogg,因为speex编解码两个工程要用到libogg中的lib;

     speex-1.2rc1,相应的工程中已经配置了libogg头文件的相对路径,将speex-1.2rc1和libogg放在同一目录就可以了;

      不过要配置指定lib路径;

3:编译speex-1.2rc1就可以了;

 

 

下面转载一篇关于speex中的工程简介:

 

项目是用C写的。solution中包含了以下10个project:

1.libspeex

    speex动态库,核心project,用户使用的就是它,在solution中,接口头文件很贴心的放在了一个单独的文件夹中,名为Public Header Files。

2.libspeexdsp

    静态库,从头文件名称可以看出,功能应该是回音抑制、抗抖动等专业算法,本以为它是由libspeex抽离出来的一个下层库,咱上层用户跟它是非耦合的。仔细看了看,发现它们并没有从属关系。后面看到的project 4依赖于1、2,  7、8、9只依赖于1,说明2和1是平级的关系,2为1的补充,当需要使用speex的一些高级功能选项时,就需要使用到2了。

3.speexdec

    示例exe,功能比较全的speex解码控制台程序,输入是格式为raw PCM或者WAVE文件,输出是speex编码文件,我尝试了一下,VLC可以播放。搜索到main函数,可以看到一堆控制台参数提示信息。

4.speexenc

    同上,只是编码换成解码了。

5.testdenoise

    测试libspeexdsp中的噪音消除功能。

6.testecho

    测试libspeexdsp中的AEC即回音抑制功能。

7.testenc

    测试窄带编码。

8.testenc_uwb

    使用SPEEX_MODEID_UWB初始化编码。

9.testenc_wb

    测试宽带编码。

7、8、9的区别

    speex三种主要的采样率8kHz、16kHz、32kHz,它们分别对应 narrowband、wideband、ultra-wideband(即7、9、8)。

   

那么7、8、9和4有什么区别呢?

    其实它们都是很小的测试或示例程序,3可以通过控制台参数来控制编码选项(即上面所说的,使用了project 2)。个人感觉,看看9就可以动手写自己的代码了,日后需要用到一些选项时(应该是做优化工作)再去看manual手册+project 4。

10.testresample

    这个工程有点搞,里面就一个名为testresample.c的文件,可是竟然不存在!这个工程依赖于libspeexdsp,个人感觉(我又开始猜了)应该是测试resample功能的。

manual手册关于resamper的说明:

    在一些情况下,把音频从一种抽样率(sampling rate)转化成另一种是很有用的。比如说以下场景:混合不同抽样率的流,有的抽样率声卡不支持,转码等等。所以我们需要resampler。

 

抱歉!评论已关闭.