http://blog.chinaunix.net/u/26691/showart_331169.html

speex是一个开源的基于CELP算法的音频编解码器。这个算法早在1985年就已经公开了,应该不会遇到什么licence的问题了。相信做音频和voip的朋友对它一定都非常熟悉。
speex的主要特点如下:
(1)开源的软件,而且完全免费———如果你愿意赞助的话,可以通过www.speex.org与他们取得联系
(2)使用嵌入式比特流,使编解码器可以适应高带宽和低带宽的不用应用场合
(3)支持各种不同的比特率情况下的编解码(从2.15kbps到44kbps)
(4)支持动态比特率切换(AMR)和变比特率操作(VBR)
(5)在VBR中集成了语音活跃检测(VAD),支持不连续传输(DTX)
(6)支持混音(Variable complexity)
(7)嵌入宽带结构(支持可缩放的采样率)
(8)支持32KHz极端的宽频模式(Utra-wideband mode)
(9)支持增强双声道编码
(10)采用Fix-point实现方式,加快运行速度
不光如此,它还可以支持AEC,基于声学的回音消除功能。
那么这个东西如何在win32环境下面编译呢?我以我能拿到的最新版本speex-1.2beta2在vs2003环境下面的编译为例来说明一下:

(1)首先编译libspeex
这个库分为静态(lib)和动态(dll)两个版本,可以依照需要分别编译使用。
从他们的maillist可以看出,他们对于linux环境下面的speex还是比较放心的,但是没有更新win32下面的这些工程文件。这样势必导致我们编译的时候会遇到一些问题。
 
首先的问题就是#include <ogg/ogg.h>这个文件打不开,可以到 http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz这里下载libogg,解压然后编译它的win32版本,这个还是没问题的。编译完毕后,会生成一个libogg_static_d.lib,我们把libogg的include路径和lib路径以及链接中需要添加的lib加到当前的libspeex工程中,这样第一步就差不多了。
 
编译还会提示没有找到medfilter.c这个文件,通过查看它的changelog就知道已经没用了,所以直接从解决方案管理器里面删除掉这个.c文件即可。
 
然后可以顺利编译了,但是要注意这些还没完根据change log,我们可以看到它还少了一个window.c这个文件,你可以从libspeex目录中找到,把它加入到当前的项目中即可(这个问题让我都要疯狂了,明明编译出来了lib但是在程序中总是提示什么unsolved external _lpc_window之类的云云)。原来问题在这里。

(2)然后编译几个自带的enc和dec程序
这里需要说明的是,在enc和dec工程中需要添加libogg_static_d.lib,libspeex.lib以及各自的include和lib的路径。然后,需要把src目录下面的skeleton.c和skeleton.h都添加到当前的enc或者dec项目中才有可能真正生成可以使用的exe程序。

这个东西总算可以用了,心情舒畅中!!但愿它能够帮助我解决voip中的回音问题。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yfqvip/archive/2009/11/06/4776186.aspx

speex 编译(转)相关推荐

  1. 编译-speex For iOS静态库

    这篇文章只为记录,学习编译C++静态库的文章.对编译结果不做追究. 最新的Demo 这两天在折腾语音的东西,实现类似微信上对讲机的功能,做了两个Demo,一种使用lib-amr库用amr格式实现的,这 ...

  2. (转)speex详细介绍--概念、移植、编译、命令行等

    Speex之一-介紹Speex 介紹Speex Speex編解碼器(www.speex.org)存在是因為有這麼一個需求,即是開源同時專利版權也是免費的.這應該也是各開源軟體的必要條件.本質上講,Sp ...

  3. Android 基于 Speex 的高度封装语音库,0 耦合,没三方jar包

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  4. vc6可编译的 linux 源码,Linux 下源码编译FFMEG

    1. 安装依赖关系 $ sudo apt-get update $ sudo apt-get -y install autoconf automake build-essential libass-d ...

  5. speex在stm32f407单片机上的移植

    最近做的网络语音的项目需要用到speex中的一些功能,查了一下资料发现移植给mcu的经验大多零零碎碎,自己捣鼓了一晚上总算是移植好了,写个博客记录一下. 1.获取speex源码 官方下载: 官方地址 ...

  6. 编译mediastreamer2/ffmpeg/linphone(x86平台)

    --------------------------在x86环境下编译mediastreamer2的步骤-------------------------------------- 1)编译OGG库 ...

  7. tcpmp 编译 源代码分析

    TCPMP源代码分析 TCPMP源代码分析 播放器主要由核心框架模块(common工程)和解码器.分离器插件组成.TCPMP的插件非常多,其中主要的插件有:interface插件实现了TCPMP的界面 ...

  8. windows系统下_ffmpeg编译_2011年

    ffmpeg开源库在linux系统下弄的,是一个很全的音频和视频的编解码库要在windows下编译出用于开发的lib库确实比linux下要麻烦,百度了很久,参照别人的见解终于成功编译出自己需要的可以用 ...

  9. TCPMP0.72RC1的编译与移植以及自己另外做UI完整方法

    我叫张挺,虽然开博,除了转了一篇黄色文章以外,技术文章从来没有写,所以呢,感到很不好意思!于是决定还写一篇在网上也留点痕迹.我这里主要是介绍TCPMP的移植以及如何把这个鸟鸟整到自己的界面中来.网上关 ...

最新文章

  1. 公司成立两周年感言_对我的副项目成立一周年的一些反思
  2. html5 php服务器搭建,使用Apache 搭建web 网站服务器
  3. redis设置密码和启动 redis数据类型
  4. linux 修复图形界面,图形界面操作的备份和恢复Linux发行版
  5. CCIE-LAB-第一篇-教学导入环境
  6. ICCV 2019 | 旷视研究院提出行人搜索当前最佳新方法
  7. 滴滴回应司机冲撞路人:将积极配合警方调查
  8. cpython是什么_CPython是什么?PyPy是什么?Python和这两个东西有什么关系?
  9. Java操作DB2 XML数据实践
  10. 中间件——activityMQ
  11. 那些年我们一起错过赚钱时光 10年机会逐个数
  12. java else 语法错误_在else处语法错误,删除此令牌
  13. CIFAR-10数据集目录结构以及数据组织格式
  14. 使用Overleaf写作是参考文献引用没按顺序
  15. 5:实战2:微信自动加好友 JavaAppium
  16. 如何从GitHub上面下载Java项目,并用IDEA导入该项目跑起来?
  17. 工具 | Charles对Chrome浏览器抓包
  18. MATLAB学习笔记(五)——MATLAB绘图
  19. VPB安装过程记录-20200310
  20. 灯泡(信息学奥赛一本通 1438)

热门文章

  1. 20211006 线性变换
  2. CentOS7 firewalld防火墙配置
  3. Visual Studio解决freopen等函数报错函数安全问题
  4. CXF 入门:创建一个基于SOAPHeader的安全验证(CXF拦截器使用)
  5. python list操作说明
  6. 【腾讯Bugly干货分享】Android Linker 与 SO 加壳技术
  7. 使界面里的组件更圆滑
  8. js获取iframe里的元素
  9. Salesforce中所有常用类型字段的取值与赋值
  10. 接口,抽象类与内部类