FLAC 音频:无损音乐完全指南
关于 FLAC 你需要知道的一切——最流行的无损音频格式。了解 FLAC 的工作原理、为什么它比 MP3 音质更好,以及如何在任何设备上播放 FLAC 文件。
什么是 FLAC?
FLAC 是 Free Lossless Audio Codec(免费无损音频编解码器)的缩写,它的功能正如其名:在不丢失任何数据的情况下压缩音频。与 MP3 或 AAC 为缩小文件体积而永久丢弃部分音频信号不同,FLAC 在保留原始录音每一个采样的同时缩小文件大小。
它的工作原理很直观——FLAC 分析音频信号中的模式,对其进行数学建模,然后存储预测值与实际数据之间的差异。这个差异远小于原始数据,因此压缩效果很好。解压时,你得到的是与输入完全相同的音频数据。逐位、逐采样,分毫不差。没有丢失,没有近似。这就是”无损”的含义。
FLAC 创建于 2001 年,此后成为无损音乐分发的标准格式。Qobuz、Bandcamp 和 Tidal 都将其用于无损和高解析度音乐目录。它支持从 44.1 kHz 到 384 kHz 的采样率,以及从 16 位 CD 品质到 24 位甚至 32 位高解析度录音的位深度。
该格式完全开源且免版税,这意味着任何开发者都可以在其应用程序中构建 FLAC 支持而无需支付许可费用。这种开放性是它胜出的重要原因之一。
FLAC vs MP3 vs AAC:有什么区别?
音频格式的领域可能令人困惑,以下是你最常遇到的格式的直接对比。
| 格式 | 压缩类型 | 典型比特率 | 文件大小(4 分钟歌曲) | 品质 |
|---|---|---|---|---|
| FLAC | 无损 | 800 - 1,400 kbps | 30 - 50 MB | 完美还原源音频 |
| ALAC | 无损 | 800 - 1,400 kbps | 30 - 50 MB | 完美(Apple 生态系统) |
| WAV | 未压缩 | 1,411 kbps (CD) | ~40 MB | 完美,但无压缩 |
| MP3 320 | 有损 | 320 kbps | ~10 MB | 非常好,有少量损失 |
| MP3 128 | 有损 | 128 kbps | ~4 MB | 尚可,有明显损失 |
| AAC 256 | 有损 | 256 kbps | ~8 MB | 良好(比 MP3 更高效) |
| OGG Vorbis | 有损 | 160 - 320 kbps | 5 - 10 MB | 良好,开源替代方案 |
权衡很简单:文件大小与保真度。FLAC 文件大约是高品质 MP3 的三到五倍大,但它完美保留了原始音频。MP3 和 AAC 使用心理声学模型来丢弃大多数人不太可能注意到的声音——被更响声音掩盖的安静音调、处于听觉极端边缘的频率,以及复杂乐段中的细微细节。
AAC 值得一提,因为它在相同比特率下技术上比 MP3 更高效。256 kbps 的 AAC 文件通常听起来和 320 kbps 的 MP3 一样好。但两者仍然是有损的——它们永久地从音频信号中移除信息。
FLAC 不会做任何妥协,代价是更大的文件。如今存储空间既便宜又充裕,这是一个很容易做出的权衡。
你真的能听出区别吗?
每个人都会问这个问题,坦率的回答是:取决于情况。
在受控的双盲听力测试中,大多数人无法可靠地区分编码良好的 320 kbps MP3 和原始 CD 品质的 FLAC 源。这在通过典型消费级耳塞或蓝牙耳机在嘈杂环境中聆听时尤其如此。现代有损编码器使用的心理声学模型确实擅长隐藏它们所移除的内容。
但在某些场景下,差异变得更为明显:
- 高品质耳机或音箱——更好的设备能揭示更多细节,包括有损压缩引入的细微失真。
- 安静的、专注的聆听——在你积极专注于音乐的受控环境中,钹声、混响尾音和立体声成像中的压缩失真可能变得明显。
- 敏感的源素材——独奏原声乐器、动态范围宽广的古典录音,以及包含大量高频细节的曲目(爵士乐钹声、弦乐四重奏)往往更容易暴露有损压缩。
- 重复编码——如果文件被重新编码(从一种有损格式转码为另一种),品质会明显下降。FLAC 完全避免了这个问题,因为你始终拥有原始文件。
关于 FLAC,重要的一点是:它不仅关乎你当前在当前设备、当前聆听环境中能听到什么。它关乎保持你的选择开放。FLAC 文件是一份完美的存档。你以后总是可以将它转换为 MP3 或 AAC 以获得更小的文件,但你永远无法反向操作。一旦有损压缩丢弃了信息,它就永远消失了。你无法通过祈祷来恢复它。
对于 16 位/44.1 kHz 的 CD 品质标准,FLAC 保留了高达 22.05 kHz 的所有频率——舒适地超出了人类听觉约 20 kHz 的上限。24 位/96 kHz 的高解析度 FLAC 将其扩展到 48 kHz,并增加了更大的动态范围(理论上 144 dB 对比 16 位的 96 dB)。这额外的余量是否可听是无尽争论的主题,但作为存档格式,保留它没有任何坏处。
移动端的 FLAC:Android 和 iOS
这是事情偶尔让人沮丧的地方。
Android
Android 自 Android 3.1(Honeycomb,2011 年)起就原生支持 FLAC。Android 上的任何音乐播放器应用都可以解码和播放 FLAC 文件,无需特殊的编解码器或库。这是好消息。
问题在于:解码之后会发生什么。Android 的音频子系统——具体来说是系统混音器 AudioFlinger——以固定采样率运行,大多数设备上通常为 48 kHz。如果你的 FLAC 文件是 44.1 kHz(标准 CD 品质),AudioFlinger 会在将其发送到硬件之前将其重采样到 48 kHz。
这种重采样不是灾难性的。现代 Android 设备使用不错的基于 Speex 的重采样器,品质下降很小。但对于追求完美的用户来说,这是一个额外的转换步骤。要实现逐位精确播放,你需要一个能完全绕过 AudioFlinger 的应用——通常使用 AAudio 或 OpenSL ES API 直接与硬件通信。
当使用外部 USB DAC 时,情况变得更有趣,因为 USB DAC 可以接受多种采样率的音频。一个设计良好的播放器可以与 DAC 协商正确的采样率,完全避免重采样。
iOS
Apple 的生态系统在内置音乐应用中并不原生支持 FLAC。Apple 有自己的无损编解码器 ALAC(Apple Lossless Audio Codec),用途相同。Apple Music 的无损层使用 ALAC。
要在 iOS 上播放 FLAC 文件,你需要第三方应用,如 VLC、Foobar2000 或专用的发烧友播放器。这些应用在软件中解码 FLAC 并通过 Core Audio 路由音频。与 Android 类似,iOS 也有自己的音频混合层,可能会重采样你的音频,不过 Apple 在较新的硬件上对原生采样率的支持做得更好。
如果你深度投入 Apple 生态系统,将 FLAC 音乐库转换为 ALAC 是一个实用选择——它也是无损的,因此转换中不会丢失品质。
Echobox 如何处理 FLAC 播放
大多数播放器将音频交给操作系统,然后听天由命。我们不会这样做。Echobox 管理从解码到输出的整个播放流程,因为每一次交给操作系统都是出错的机会。
原生解码
我们使用 Symphonia 库解码 FLAC 文件,它处理 FLAC 的完整采样率范围——从标准的 44.1 kHz 到 384 kHz。解码器输出原始音频采样,然后将其转换为 32 位浮点数进行内部处理。这种 32 位浮点表示提供了大约 24 位的尾数精度(约 144 dB 的动态范围),超过了你可能遇到的任何源素材的精度。
保留采样率和位深度
Echobox 不是盲目地以操作系统默认的速率输出,而是查询设备的原生采样率并做出智能决策:
- 如果你的 FLAC 文件与设备采样率匹配(例如,48 kHz 文件在 48 kHz 设备上),音频以零重采样直通。这是理想场景。
- 如果采样率不同(例如,44.1 kHz 的 CD 翻录在典型的 48 kHz Android 设备上),我们使用带有 256 抽头 FIR 滤波器和 BlackmanHarris 窗函数的高品质 sinc 插值算法进行重采样。这比大多数操作系统内部使用的重采样器要好得多。
- 对于 96 kHz 或 192 kHz 的高解析度音频文件,同样的高品质重采样器将采样率降低以匹配设备,保留所有可听频率内容。
关键优势:通过自行处理重采样,我们避免了当应用以一种采样率输出而 Android 的 AudioFlinger 将其转换为另一种采样率时发生的隐蔽双重重采样。你得到的是一次干净的转换,而不是两次叠加的转换。
逐位精确输出
对于拥有外部 USB DAC 的听众,Echobox 提供逐位精确模式,完全改变了局面。在此模式下:
- 设备以曲目的原生采样率重新初始化——因此 44.1 kHz 的 FLAC 以精确的 44.1 kHz 播放,96 kHz 的高解析度文件以 96 kHz 播放。
- 整个 DSP 处理链(均衡器、音量、增益、限制器)被绕过。原始解码采样直接送至 DAC。
- 不进行任何重采样。艺术家和母带工程师审定的比特就是你的 DAC 接收到的比特。
这需要 DAC 支持目标采样率,但大多数现代 USB DAC 都能毫无问题地处理 44.1、48、88.2、96、176.4 和 192 kHz。
信号路径诊断
FLAC 播放最有用的功能之一是 Echobox 的信号路径显示。它向你展示音频在每个阶段的确切状态:源格式和采样率、重采样是否激活、应用了哪些 DSP 处理,以及到设备的最终输出采样率。
你永远不必怀疑你的 FLAC 文件是否被正确播放。你可以实时看到你的 44.1 kHz/24 位 FLAC 正在使用高品质 sinc 滤波器重采样到 48 kHz——或者你的 DAC 正在接收逐位精确的 96 kHz 输出且未应用任何处理。
如果你曾经质疑过你的”无损”音频是否真的完整地到达了你的耳朵,这种透明度就很重要了。
流式传输到网络设备
Echobox 在通过 UPnP/DLNA 流式传输到网络音箱和接收器时也能处理 FLAC。大多数现代网络接收器——包括 Chromecast、Denon 和 Yamaha AV 接收器——都原生支持 FLAC。Echobox 检测每个设备的功能,在可能的情况下直接发送 FLAC 文件,必要时自动转码为兼容格式。
想了解更多关于蓝牙音频编解码器如何影响无线连接聆听体验的信息,或者在选择发烧友音乐播放器时应关注什么,请参阅我们的专题指南。你还可以查看我们的路线图了解 Android 之外的平台可用性。
总结
FLAC 是一种做出最少承诺却全部兑现的格式。它不声称比源音频更好听——它声称听起来与源音频完全一样,而且确实如此。文件比 MP3 大 3-5 倍(一首典型的 4 分钟歌曲约 30-50 MB),大多数人在日常聆听中无法可靠地区分它与编码良好的 320 kbps MP3。对自己的设备和环境要诚实。但 FLAC 真正的意义不在于今天的聆听体验——而在于你永远不必因为选择了一种丢弃数据的格式而重新购买或重新翻录你的音乐。Android 原生支持它(尽管系统混音器可能会重采样你的音频),iOS 需要第三方应用或转换为 ALAC,而 Echobox 处理整个流程——原生解码、高品质重采样、USB DAC 的逐位精确输出,以及信号路径诊断,让你可以验证音频在每个阶段究竟发生了什么。