【问题标题】:AVAudioPlayer rate change introduces artifacts/distortionAVAudioPlayer 速率变化引入了伪影/失真
【发布时间】:2015-09-16 15:41:25
【问题描述】:

我正在尝试更改通过 AVAudioPlayer 播放的声音文件的速率。它有效,但有明显的伪影,尤其是当我放慢速度时。我很高兴速度变化保持相同的音高,但它似乎有问题,尤其是持续的音符。

在我尝试使用经过均衡、压缩和母带处理的更高质量的声音之前,似乎速率变化工作得很好。我担心 AVAudioPlayer 的速率变化无法处理更高的质量。

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

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

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

【问题讨论】:

  • 您是否尝试过使用其他格式。 PCM、MP3 等?您在问题中提到的文件是那些正在破坏的“高质量”文件吗?之前工作的声音质量如何?
  • “高质量”是否意味着更多的高频成分和/或更高频率的声音?你把声音放慢多少?您是否正在使用 LPCM,如果是,则动态范围相当有限。
  • 高品质,我的意思是音响工程师已经使用这些文件来带出声音的更多高音和/或低音成分(取决于乐器)。我发现高音/更高频率的声音正在失真。我没有尝试过使用 PCM,但我听说那是用于原始未压缩的声音。我将把文件导出为未压缩的 PCM,看看它是如何工作的。 MP3 不能与 AVAudioPlayer 一起使用。感谢您的建议!
  • WAV 不是 PCM 的一种吗?我会尝试 AIFF 或其他 PCM 格式。

标签: ios objective-c audio avaudioplayer


【解决方案1】:

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

此外,在不改变音高的情况下改变速度的过程是一项复杂的操作。声音越慢,引入的伪影就越多。注意:你还没有说明你要什么样的减速配给,90%、50%、10%?

如果减速量非常大,请使用更高的采样频率。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2012-11-11
    相关资源
    最近更新 更多