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。

 

后记:

    speex项目中各工程作用就简单分析到这了,真要使用speex的话,看manual文档是必不可少的。日后如果有时间继续学习speex,我会把笔记分享上来的。

目录
相关文章
|
容器
uniapp中制作侧边导航栏
uniapp中制作侧边导航栏
802 0
|
Web App开发 监控 JavaScript
1号防红网:什么是微信防红不死短链接?微信防红不死短链接代码示例
1号防红网:什么是微信防红不死短链接?微信防红不死短链接代码示例
396 0
|
Android开发
HBuilder X连接雷电模拟器(手机模拟器)
HBuilder X连接雷电模拟器(手机模拟器)
HBuilder X连接雷电模拟器(手机模拟器)
|
8月前
|
存储 人工智能 自然语言处理
NoteGen:看看使用DeepSeek能力的开源项目有多牛,平替TyporaAI笔记应用
NoteGen 是一款基于 Tauri 开发的跨端 AI 笔记应用,支持 Mac、Windows 和 Linux。它利用多种 AI 模型(如 ChatGPT、DeepSeek 等)帮助用户高效记录、整理和创作。核心功能包括截图识别、文本记录、插图插入、智能标签管理及剪贴板识别。NoteGen 还提供强大的 Markdown 编辑器、AI 辅助写作、文件同步与版本控制等功能,极大提升了知识管理效率。项目开源,平替 Typora AI 笔记应用。
775 11
|
调度 开发者 UED
Kotlin 中的协程是什么?
【8月更文挑战第31天】
1264 0
|
缓存 前端开发 API
探索PWA(Progressive Web Apps)的无限可能
探索PWA(Progressive Web Apps)的无限可能
566 8
|
12月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
1909 3
|
机器学习/深度学习 算法
【深度强化学习】DQN与倒立摆控制问题实战(图文解释 附源码)
【深度强化学习】DQN与倒立摆控制问题实战(图文解释 附源码)
853 1