使用音频文件时遇到问题。我正在实现一种处理音频文件的算法,该算法要求输入为5 KHz单声道音频文件。

我拥有的大多数音频文件是PCM 44.1 KHz 16位立体声,所以我的问题是如何将44.1 KHz立体声文件转换为5 KHz单声道文件?

如果有人能提供解释该思想或任何JAVA库背后的DSP基础知识的教程,我将不胜感激。

最佳答案

只是为了增强Prasad已经说过的内容,您应该在下采样之前对2.5 kHz的信号进行低通滤波,以防止结果混叠。如果原始信号中有4 kHz音调,则不可能用5 kHz采样率来表示,它将在2.5 kHz奈奎斯特极限范围内折回,从而在1.5 kHz时产生假(“锯齿”)音调。

参见相关:How to implement low pass filter using java

另外,如果您将采样率从44100降为5000 Hz,则每8.82个原始采样将节省一个采样率。不是一个很好的整数除法。这意味着您还应该使用某种类型的插值,因为您将从原始信号中采样非整数值。

10-06 08:55