我正在尝试更改通过AVAudioPlayer播放的声音文件的速率。它可以工作,但是有很多伪像,尤其是当我放慢速度时。我很高兴速率变化保持相同的音调,但是似乎有麻烦,尤其是持续的音符。
直到我用均衡,压缩和掌握的更高质量的声音进行尝试之前,速率变化似乎都工作得很好。我担心AVAudioPlayer速率更改无法处理更高的质量。
我正在使用.wav文件,采样率为48kHz,每个采样16位。
我还研究了ZTX Time Stretching和Pitch Shifting(以前称为Dirac LE),但尚未获得该软件的许可证。但是,我确实尝试将文件加载到使用ZTX技术的iPhone应用程序中,并且存在类似问题。
任何帮助或建议,将不胜感激!
最佳答案
在较高频率下,每个周期的数据点较少,在20 kHz时,每个周期的数据点接近两个。以相同的音调降低音频速度会涉及添加更多的数据点,并且由于原始信息中不存在该信息而无法完全准确。
此外,在不改变螺距的情况下改变速度的过程是复杂的操作。声音减慢的越多,将引入的伪影越多。注意:您仍然没有说明要使用哪种减慢口粮,分别是90%,50%和10%?
如果减慢幅度过大,请使用较高的采样频率。
关于ios - AVAudioPlayer速率变化会引入失真/失真,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31128172/