我可以无损地增加 MP3 文件的音量吗?

use*_*675 57 audio windows mp3

我想增加一些我拥有的 MP3 文件的音量。有没有办法以无损方式执行此操作(无需重新压缩 MP3 文件并因此降低其质量)?

Mok*_*bai 56

是的。你可以这样做。该技术被许多程序使用,级别由称为 ReplayGain 的算法计算。Mp3音量级别数据可以无损调整,就像 JPEG 图片可以无损旋转一样。

有两种方法

  1. 计算文件的音量级别并添加新标签,让兼容程序即时调整音量
  2. 计算音量级别并调整 mp3 数据中的乘数级别。

来自HydrogenAudio: 实现

在元数据方法中,可以存储关于两种类型的 ReplayGain(曲目增益和专辑增益)的信息。体积变化信息可以非常精确。如果音频数据也被更改,元数据可以包含“撤消”信息。并非所有音频播放器/解码器都知道如何读取和使用存储在元数据中的 ReplayGain 信息。ReplayGain 信息的存储位置和方式没有标准;每个实现使用不同的格式并将信息放在不同的位置。

在音频数据方法中,文件的实际音频数据被修改,使其自然/默认播放音量处于目标级别。在这种情况下,只能应用一种类型的 ReplayGain(轨道增益或专辑增益)。如果某处未保存“撤消”信息,则可能无法恢复原始音频数据。音频文件格式的限制可能会阻止使用此方法进行精确(微调)的增益调整。例如,MP3 和 AAC 文件只能以 1.5 dB 的步长进行无损修改。根据音频文件格式,该过程也可能是有损的,因为它可能会不可逆转地将信号推到格式的最大振幅之上(导致削波)或低于最小值(导致静音)。

第二种方法确实会更改您的文件,但由于未修改基础数据,因此不会丢失任何质量,因此可以无损地进行调整。通常不建议将它用于您的主要收藏,因为它会修改文件的原始状态,但它对于便携式媒体播放器非常有用。

一个叫做mp3gain的程序可以做第二个选项,可逆地调整mp3的音量。它绝对不会重新编码,只需调整 mp3 文件本身的幅度值即可更改音量。来自HydrogenAudio:ReplayGain

如果修改增益,它总是修改MP3 音频数据中的全局增益字段。它可以添加一些精确的元数据,包括撤消信息

由于 mp3 文件的编码方式,调整限制为 1.5dB 步长,这通常足以接近。

Foobar2k 也包含此功能,可以将更改应用于文件。

  • @kasperd 很有趣,因为它表明在旋转中实际编码的图像 *data* 被 100% 保留,否则继续旋转将永远不会产生相同的文件,但是在图像重建中有一个后续过程对数据旋转敏感。鉴于所涉及的计算,这并不完全令人惊讶,但您的原始压缩数据实际上并未受到该过程的损害并且可以恢复。因此,旋转本身不会丢失任何数据,因此是无损的。在这种情况下,解码器对旋转后的数据有不同的反应。 (7认同)
  • 在过去,我测试了一个声称可以无损旋转 JPEG 文件的程序。解压缩已旋转 90 度 4 次的版本产生与解压缩原始版本相同的输出。然而,对仅旋转 90 度的版本进行解压缩并不会产生与解压缩原始版本并旋转 90 度的结果相同的结果。所以 JPEG 文件的 90 度旋转并不是完全无损的,根本原因是 JPEG 规范本身的某些不对称性。 (2认同)
  • (我*认为* jpeg 旋转只有在任一方向的图像大小是 8 像素的倍数时才是无损的) (2认同)