在处理音频时候会碰见不同采样率的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>