我正在尝试更改音频文件的速度,如果我使用无符号值一切都可以,但是一旦我开始使用双值,事情会变得混乱,例如,我的代码适用于所有“x。 5“数字,但它没有任何其他带小数的数字,在我的情况下,我想将速度提高1.3点。但是当我这样做时,我可以听到这首歌,但有时我会听到一些令人不安的声音。
{{1}}
答案 0 :(得分:2)
略读代码,您似乎只是通过选择原始的某些PCM值来尝试更快地播放音频。这相当于down-sampling (decimating)原始音频。
该方法的问题在于处理音频的高频分量。实际上,您的下采样将包含高频分量的任意部分:混叠效果。您需要在下采样之前(或同时)对音频进行低通滤波。
解释 你是如何进行低通滤波的,因为所涉及的数学很复杂,正如你可以从链接的维基百科文章中看到的那样,因此不适合这个答案。我只想说你选择的简单方法是不合适的。