AVAudioPlayer速率变化引入了伪像/失真

我试图改变通过AVAudioPlayer播放的声音文件的速率。 它有效,但有很多伪影,特别是当我放慢速度时。 我很高兴速度变化保持相同的音调,但似乎有麻烦,特别是持续音符。

似乎速率变化工作得很好,直到我尝试使用已经均衡,压缩和掌握的更高质量的声音。 我担心AVAudioPlayer的速率变化无法处理更高的质量。

我正在使用.wav文件,采样率为48kHz,每个样本16位。

我也研究过ZTX Time Stretching和Pitch Shifting,以前称为Dirac LE,但尚未获得该软件的许可证。 但是,我确实尝试将文件加载到使用ZTX技术的iPhone应用程序中,并且它有类似的问题。

任何帮助或建议将不胜感激!

在较高频率下,每个周期的数据点较少,在20 khz时每个周期接近两个。 以相同音高减慢音频涉及添加更多数据点并且不能完全准确,因为原始信息中不存在该信息。

此外,在不改变音调的情况下改变速度的过程是复杂的操作。 声音减慢越多,将引入的伪像越多。 注意:你还没有说明你想要什么样的减肥比例,90%,50%,10%?

如果减速量极端,则使用更高的采样频率。