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

时间:2015-06-30 01:36:47

标签: ios objective-c audio avaudioplayer

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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