你好,我需要将一个wav音频文件的采样率从44.1kHz降低到8kHz。我必须手动通过一个字节数组来完成所有的工作...这是为了学术目的。
我目前正在使用Sink和Source两个类来弹出和推送字节数组。一切都很顺利,直到我需要使用线性插值来降低数据块的采样率时。
由于我要将采样率从44100降低到8000赫兹,那么如何对包含128000000个字节的字节数组进行插值呢?现在我根据i%2 == 0、i%2 == 1和i%80 == 0来弹出5、6或7个字节,并将这些5、6或7个字节的平均值推入新文件中。
结果确实比原始文件要小,但不能在Windows Media Player上播放(提示读取文件时发生错误),并且有很多噪音,尽管我能听到正确的声音轨道在噪音背后。
因此,总之,我需要关于线性插值部分的帮助。谢谢。