在处理音频时候会碰见不同采样率的PCM数据转换问题,如44.1k hz采样率的数据需要转换为16k hz或8k hz采样率的PCM数据,这时候涉及到音频重采样问题。现将解决方法、碰到的问题和Demo贴出来,以便做同样工作的人解决这个问题更顺利快捷。
经测试,使用DarkIce中的aflibConverter可以实现上述功能,代码抽取量少,便于集成,接口使用简单,采样效果不错。DarkIce是一个开源音频流引擎,它可以从音频源(如声卡等)采集音频、音频编码、发送至流媒体服务器。 http://code.google.com/p/darkice/downloads/list 和http://darkice.org/ 有DarkIce的详细介绍和开源代码。使用到的文件有 aflibConverter.h, aflibConverter.cpp ,aflibConverterLargeFilter.h,aflibConverterSmallFilter.h,调用接口在aflibConverter.h中提供,使用方法:
include "aflibConverter.h"
#include <iostream>
#include <fstream>
using namespace std;
void main(int argc, char* argv[])
{
用DarkIce的aflibConverter进行音频重采样

本文介绍了在处理音频时如何使用aflibConverter进行音频重采样,特别是从44.1kHz到16kHz或8kHz的转换。在使用过程中,需要注意输入样本数乘以目标采样率必须能被原始采样率整除,以避免报错。提供了解决问题的方法和相关示例。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



