ios - AVAudioPlayer速率变化会引入失真/失真

标签 ios objective-c audio avaudioplayer

我正在尝试更改通过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/

相关文章:

iphone - 使用 NSLocaleCountryCode 的国家列表

ios - iPhone 使用 AFNetworking 上传多部分文件

silverlight - 在 silverlight 3 中从用户的麦克风录制音频

ios - SKAction.playSoundFileNamed -- 如何将音量设置在 0.0 - 1.0 之间

ios - 显示游戏中心排行榜无法快速工作

ios - reloadRows 将创建新单元格

objective-c - 使用 QTMovie 确定流的实际帧速率

audio - 使用ffmpeg提取视频文件的英语音频

iphone - 从 ViewController 中移除 UIView

ios - admob interstitial presentFromRootViewController 不显示广告