快速的音量变化会导致AVAudioPlayer中出现伪影

时间:2014-07-14 17:59:32

标签: ios audio signal-processing

我有一些纯音(正弦波),我需要淡入淡出,并通过指轮任意调整音量。我生成PCM数据和WAV标头,然后将其封装在AVAudioPlayer中,AVAudioPlayer以恒定音量播放。

现在,尽管听起来微不足道,但我发现在iOS 7上迅速改变音量会导致一些非常令人讨厌的假象。想象一下使用滑块控制它的音量。快速移动滑块会导致我所描述的噪音。它特别明显,因为源信号只是一个音调。如果是音乐,事情可能会在相对噪音中迷失。奇怪的是,如果我通过MPMusicPlayerController直接检测设备音量而不是通过AVAudioPlayer的音量甚至在字节级别来控制事物,我会得到更平滑的结果并且没有人工制品。我怀疑该设备在调整音量时正在做某事我不是。我知道这种量化噪音是音频处理中的一个问题,我想知道是否有人可能会有一些建议。

我还通过Novocaine使用样本级别播放重现了这个问题。无论我做什么,我似乎都无法获得平滑,无噪音的淡入/淡出特性。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

你签出了AVAudioMix吗?我使用它来增加AVPlayer的音量,并且效果非常好。在特定时间内function to ramp volume对淡入/淡出效果特别有用。

答案 1 :(得分:0)

如果在样本级别修改音量,请确保平滑地改变音量,从不会突然从一个样本到下一个样本,否则结果会产生不连续性,这可能会非常嘈杂。例如在水平设置之间使用线性斜坡或易于放松的半余弦曲线,逐渐淡化任何体积变化,超过许多(可能是几十)毫秒的样本。也许一个控制器自动执行此操作,但另一个不是。