深入解析现代音频编解码器 (Codec Explainer) The Kyutai Team 2025-10-31 0 浏览 0 点赞 长文 “Codec”是“Coder-Decoder”(编码器-解码器)的缩写,其核心任务是 **压缩** 数据。对于音频来说,一个未经压缩的CD质量立体声音频文件每秒需要约1.4兆比特(Mbps)的带宽。为了使其能够在互联网上高效传输,我们必须将其压缩,这个过程由音频编解码器完成。 ## 传统编解码器 vs. 神经编解码器 * **传统编解码器 (MP3, AAC)**: 它们主要依赖于 **心理声学模型(Psychoacoustic Model)**。这个模型利用了人类听觉系统的“缺陷”,例如,我们听不到某些频率的声音,或者一个响亮的声音会“掩蔽”掉旁边一个微弱的声音。通过丢弃这些人耳感知不到的信息,传统编解码器实现了有损压缩。 * **神经编解码器 (EnCodec, Lyra)**: 现代编解码器则采用一种更强大的方法。它们使用 **神经网络** 来学习音频本身的内在结构和规律。它们的目标不是简单地模仿人类听觉,而是去学习一个“世界模型”——理解声音是如何构成的(例如,识别出这是言语、音乐还是背景噪音),并找到表示这些声音的最高效方式。 ## 核心技术:矢量量化 (Vector Quantization - VQ) 量化是压缩的核心,它减少了表示数据所需的比特数。 * **标量量化**: 想象将-1到1之间的所有浮点数映射到-128到127之间的整数。这是对单个数字进行量化。 * **矢量量化 (VQ)**: VQ 更进一步,它不是对单个数字进行量化,而是对一组数字(即一个 **矢量**)进行量化。 其工作原理如下: 1. **码本 (Codebook)**: 首先,我们有一个预先训练好的“码本”,它包含了大量具有代表性的“原型”矢量(比如1024个)。 2. **编码**: 当需要编码一段音频时,我们将其分割成许多小的数据矢量。对于每一个矢量,我们在码本中寻找与它最相似的那个原型矢量。 3. **传输**: 我们不传输原始的、复杂的矢量,而是只传输那个最相似原型矢量在码本中的 **索引**(比如,第521号矢量)。因为1024个索引只需要10个比特就可以表示,这极大地压缩了数据。 4. **解码**: 解码器也拥有同一个码本。当它收到索引“521”时,它只需去码本中查找第521号原型矢量,并用它来重建音频。 ## 进阶技术:残差矢量量化 (Residual Vector Quantization - RVQ) RVQ 是使现代神经编解码器如此强大的关键。它通过 **分层** 的方式来逐步逼近原始信号,从而实现了可伸缩的比特率和更高的质量。 其工作流程如下: 1. **第一层 (Quantizer 1)**: 使用第一个码本对原始音频矢量进行量化,得到一个初步的近似结果。然后,计算出原始矢量与这个近似结果之间的 **误差**(或称为 **残差**)。 2. **第二层 (Quantizer 2)**: 我们 **只对第一层的误差** 进行量化。使用第二个码本,找到与这个误差矢量最接近的原型,得到对误差的近似。然后,再计算出新的、更小的误差。 3. **后续层次**: 重复这个过程。每一层都致力于对前一层的残差进行编码。 **优势**: * **可伸缩比特率**: 这种分层结构非常灵活。如果我们想要一个较低的比特率(文件更小),我们可能只使用前两层的量化器。如果我们想要更高的音质,我们可以使用更多层次(比如8层或12层),每一层都会在前一层的基础上增加更多细节。 * **效率**: 每一层都专注于一个更小范围的“误差”信号,这使得神经网络可以更高效地学习和编码。 ## 结论 现代神经编解码器通过结合神经网络和残差矢量量化(RVQ)技术,已经超越了传统依赖心理声学模型的编解码器。它们通过学习声音的内在结构,并以一种分层、可伸缩的方式对其进行高效编码,为我们在低比特率下实现高质量音频传输开辟了新的可能性。 阅读 Kyutai 原文 本文的原始来源。 #矢量量化 #编解码器 #音频压缩 #音频编解码器