WAV 与 MP3:音频压缩的真正区别在哪里
一种格式保存您录下的每一个采样,另一种则故意丢掉其中的大部分。这个差别实际让您付出了什么,请看下文。
WAV 里存的是什么
WAV 只是在原始数值外面包了薄薄一层。一个简短的 RIFF 文件头写明采样的速度、每个采样占多少位,以及有几个声道。在那之后,文件里就只剩采样,按顺序一直排到结尾。
所以文件大小纯粹是乘法。CD 音频每秒 44100 个采样,每个 16 位,共两个声道:每秒略多于 140 万比特,折合每分钟约 10 MB。一首三分钟的歌大约 30 MB。内容是什么都改变不了这一点。静音和整支管弦乐队占用的空间完全一样,因为文件存储数字零的速率与存储其他任何内容的速率相同。
这里不做任何分析,而这正是关键所在。音频接口录出来的就是 WAV,各种编辑软件想要处理的也是 WAV。
MP3 换了一种做法
MP3 是一种感知编解码器。它把信号分成若干频带,再用心理声学模型逐一分析,问的不是信号里有什么,而是人实际能听到什么。人耳有一些已知的盲区:响亮的声音会掩蔽频率相近的较弱声音,而且在它停止后的短暂时间里仍会继续掩蔽。编码器会找出这些被掩蔽的区域,对藏在其中的内容只分配极少的比特,甚至完全不分配。
被丢掉的内容就永久丢掉了。解码 MP3 并不能还原原始采样,只能根据保留下来的部分重建出一个近似结果。这就是“有损”的含义,也是为什么由 MP3 转成的 WAV 什么也找不回来。它只是受损版本的一个体积庞大、未经压缩的副本。
这也正是 MP3 效果如此好的原因。它并不像 zip 文件那样巧妙地压缩数据,而是干脆拒绝存储其中的大部分。
码率降低时会发生什么
降低码率后,编码器能用的比特变少,它的模型在判断什么算听不见时就必须更激进。结果与其说是文件变得更小声或更发闷,不如说是出现了具体的、可以辨认的瑕疵。
镲片和踩镲最先遭殃,因为类似噪声的高频内容编码代价高,又很容易被近似得很糟,听起来往往会出现水声或嘶嘶声。尖锐的瞬态会出现预回声,也就是在引发它的那一下敲击之前就出现的一层模糊声音,在响板、近距离拾音的打击乐和钢琴独奏中都听得出来。大多数编码器在低码率下还会加上低通滤波器,把频谱顶端整段切掉,而不在那里花任何比特。
这条界线落在哪里,取决于音乐本身、编码器,以及您用什么设备听。别轻信任何人给出的数字,包括我的。把同一首曲子用几种不同的方式编码,再用您手上实际有的那副耳机去听。
反复编码才是真正的敌人
一次高质量的 MP3 编码通常没什么问题,层层叠加就不行了。有损文件每经历一次解码、编辑、再编码,第二个编码器都会把第一个编码器留下的瑕疵当作信号,花比特去保留它们,同时又做出自己新的取舍。损伤就这样不断累积,而任何单独一次处理都看不出来。
这正是保留无损母版的实际理由。用 WAV 或 FLAC 编辑,最后从未压缩的源文件只编码一次 MP3。需要修改时,回到母版上改,而不是去改已经发布的那个 MP3。
该保留哪一个
保留 FLAC。它是无损格式,压缩文件时不会改动任何一个采样。既然 FLAC 能用更少的空间完成同样的事,就很少有理由去归档原始 WAV。WAV 只需在您处理它的那段时间里保留。
分发用 AAC;如果最看重兼容性,就用 MP3。较新的编解码器用同样的比特数能比 MP3 做得更多,而本世纪生产的任何设备都能播放它们。MP3 之所以还没被淘汰,是因为它在任何设备上都能播放,包括那些老得已经到了投票年龄的硬件,这一点仍然有它的价值。
要避免的错误是:对自己录制的内容只保留有损副本。编码器丢掉的东西,再也找不回来。
浏览器在这里能做什么,不能做什么
本站的转换器可以双向转换。它把 MP3 解码为 16 位 PCM WAV,并在后台 Worker 中用 LAME 以固定的 192 kbps 把 WAV 编码为 MP3。对音乐和语音来说,这是一个合理的统一设置,但也只有这一个设置:没有可变码率模式,也无法选择更低或更高的码率。
还有两个相关细节。音频以 44.1 kHz 解码,所以 48 kHz 的文件会在转换过程中被重新采样。另外,标签会丢失,因为解码器只交出采样,别的什么都不给。
需要这些控制时,请直接使用 LAME。ffmpeg 和大多数桌面音频软件都内置了它,一行命令或点几下鼠标,就能得到可变码率编码,以及浏览器写不了的标签。
什么都不会离开您的电脑
解码和编码都在您打开的页面中运行,所以未发布的作品和私人录音都留在您自己的硬盘上,而不会经过别人的服务器。打开浏览器的开发者工具,查看网络面板,然后转换一个文件。第一次编码 MP3 时会下载编码器库。没有任何请求携带音频,因为根本不会发出这样的请求。