在 C++ 程序中,我试图对 8192 个音频样本(-32768...32767)的块进行下采样。原始采样率为 48kHz,我想要 16kHz。
如果原始样本数为 8192,则比率 16/48 应产生大约 2731 个样本。
我尝试为此使用 libav,对 8192 个输入样本的每个块使用此代码:
struct AVResampleContext* ctx = av_resample_init(16000,48000,16,10,1,1.0)
av_resample(ctx,dataIn,dataOut,&samplesConsumed,8192,2731,0)
然而,这似乎在一定程度上起作用 - 最后 30 个左右的样本在 2731 个样本的每个输出块中都是零,所以在这里总是可以听到“咔哒声”
我在这里做错了什么?
非常感谢您的帮助!