将音频有效载荷(PCM 16位)从6 kHz转换为8 kHz的直接方式是什么?我知道这是一个插值问题。
我担心线性插值会引入太多噪音。如果是这样,那么更好的插值是什么?我看着Lanczos resampling,但我看到它只用于图像缩放,不确定它是否值得用于音频。
我正在使用Java。我找到了JSSRC library,但我更喜欢更轻量级的东西。此外,我不确定这对于低频音频(恰好是从ADPCM解码)确实是必要的。
顺便说一下,我对创建一个频率为6 kHz的WAV不感兴趣,我真的想重新采样。答案 0 :(得分:0)
线性插值实际上非常好。值得一试。如果您使用PCM(从AudioInputStream获取,然后将传入的字节转换为PCM)在Java中工作,那么保存,Java将处理wav格式标头详细信息。你看过这个教程吗? Using Files and Format Converters
在第一个代码示例中,特别注意评论出现的位置:" //在这里,做一些有用的事情......"
我认为,因为您将采用更高的采样率,插值过程可以正常工作。如果您的速率较低,则频率超过3 Hz(Nyquist为6 Hz采样率)会导致混叠,从而导致混叠。