如何自然淡出音量?

Posted

技术标签:

【中文标题】如何自然淡出音量?【英文标题】:How to fade out volume naturally? 【发布时间】:2008-10-16 00:29:49 【问题描述】:

我已经尝试在大约半秒的时间内使用 sigmoid 和对数淡出音量来缓冲暂停和停止,并防止我的音乐应用程序中出现爆音。

然而,这些听起来都不“自然”。我的意思是,他们听起来很糟糕。就像一个业余工程师负责录音机一样。

我知道耳朵在音量方面是对数的,或者至少两倍的功率并不意味着两倍的音量。音量衰减有什么神奇的公式吗?谢谢。

【问题讨论】:

【参考方案1】:

我在年轻时的许多年里都在为学校的广播电台混音、现场音乐会和 DJ,我可以告诉你的一件事是,你褪色的地方也很重要。

只要没有人声,在歌曲结尾时淡入或淡出听起来很自然,但其中一些计算机化广播电台会在一首歌中的任何位置淡入淡出,以进行下一个广告插播...我不要认为有办法让这听起来不错。

无论如何,我也会回答您提出的问题……用于调整音频电平的对数衰减通常称为“音频锥度”。这是一篇很好的文章,描述了与我们现在用于娱乐的电子设备相关的人类听觉生理学。请参阅:http://tangentsoft.net/audio/atten.html

【讨论】:

您特别说渐变听起来不自然,但 Troy 的帖子提出了一个很好的观点……您需要注意“干净”渐变的波形时序。【参考方案2】:

您需要确保淡出的末端位于波形中的“零交叉”处。

半秒是相当快的。您可能只想延长时间,除非它必须那么快。一般2、3秒比较自然。

更多关于时间安排,它应该与音乐的节拍率有关,并在节奏中的一个自然点结束。尝试获取歌曲的 BPM(可以粗略计算),并在该时间间隔内淡出等于全音符或半音符。

您也可以尝试在淡出时降低播放速度。这将提供更自然的黑胶唱片或磁带听起来停止/暂停。线性降低播放速度,同时在 1 秒内以对数方式降低音量。

【讨论】:

【参考方案3】:

如果您只是想在暂停或停止播放时获得干净的声音,那么根本不需要淡入淡出 - 只需找到一个零交叉点并停在那里(或者更实际地填充该决赛的其余部分)无声缓冲)。正如您所注意到的,当用户希望声音立即停止时淡出听起来不自然,因为结果与动作分离。

停在过零点的原因是,零是音频停止时的稳态值,所以两个状态之间的过渡是无缝的。如果您在最后一个样本的幅度较大时停止播放,那么从音频硬件的角度来看,当它重建模拟信号时,您实际上是在将瞬变引入音频,这将作为爆裂声和/或咔嗒声听到。

另一种方法是非常快地淡入零(~

【讨论】:

以上是关于如何自然淡出音量?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 5 上淡出 MPMusicPlayerController 上的播放音量

在 iOS 中获取 AVPlayer 的音量

淡入/淡出声音

iOS 4.0 音量衰减

初学者 python 编程帮助交叉淡入淡出声音

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