音频编解码器用于有效压缩音频以减少存储要求或网络带宽。理想情况下,音频编解码器应该对最终用户透明,以便解码后的音频与原始音频在感知上无法区分,并且编码/解码过程不会引入可感知的延迟。

今年早些时候,我们发布了Lyra,这是一种用于低比特率语音的神经音频编解码器。在“SoundStream:端到端神经音频编解码器”中,我们介绍了一种新颖的神经音频编解码器,通过提供更高质量的音频并扩展到编码不同的声音类型,包括干净的语音、嘈杂和混响语音、音乐,和环境声音。SoundStream是第一个处理语音和音乐的神经网络编解码器,同时能够在智能手机CPU上实时运行。它能够使用单一训练模型在广泛的比特率范围内提供最先进的质量,这代表了可学习编解码器的重大进步。

从数据中学习音频编解码器
SoundStream的主要技术成分是一个神经网络,由编码器、解码器和量化器组成,所有这些都经过端到端的训练。编码器将输入的音频流转换为编码信号,使用量化器对其进行压缩,然后使用解码器将其转换回音频。SoundStream利用神经音频合成领域最先进的解决方案,通过训练鉴别器,计算对抗性和重建损失函数的组合,使重建的音频听起来像未压缩的原始音频,从而提供高感知质量的音频输入。经过训练后,编码器和解码器可以在单独的客户端上运行,以通过网络高效传输高质量的音频。


SoundStream训练和推理。在训练期间,编码器、量化器和解码器参数使用重建和对抗性损失的组合进行优化,由鉴别器计算,经过训练以区分原始输入音频和重建音频。在推理期间,发送器客户端上的编码器和量化器将压缩的比特流发送到接收器客户端,然后接收器客户端可以对音频信号进行解码。

使用残差矢量量化学习可扩展的编解码
器SoundStream的编码器生成可以采用无限数量值的矢量。为了使用有限数量的比特将它们传输到接收器,必须用来自有限集合(称为码本)的接近向量替换它们,这一过程称为向量量化。这种方法适用于大约1kbps或更低的比特率,但在使用更高的比特率时很快就会达到其极限。例如,即使比特率低至3kbps,假设编码器每秒产生100个向量,也需要存储超过10亿个向量的码本,这在实践中是不可行的。

在SoundStream中,我们通过提出一种新的残差矢量量化器(RVQ)来解决这个问题,该量化器由多个层组成(在我们的实验中多达80个)。第一层以中等分辨率量化码向量,接下来的每一层都处理前一层的残差。通过将量化过程分成几层,可以大大减少码本大小。例如,每秒100个向量,速度为3kbps,使用5个量化层,码本大小从10亿增加到320。此外,我们可以分别通过添加或删除量化层来轻松增加或减少比特率。

由于传输音频时网络条件可能会发生变化,理想情况下,编解码器应该是“可扩展的”,以便它可以根据网络状态将其比特率从低变为高。虽然大多数传统编解码器都是可扩展的,但以前的可学习编解码器需要专门针对每个比特率进行训练和部署。

为了规避这个限制,我们利用SoundStream中量化层数控制比特率的事实,并提出了一种称为“量化器丢失”的新方法。在训练期间,我们随机删除一些量化层来模拟不同的比特率。这促使解码器在传入音频流的任何比特率下表现良好,从而帮助SoundStream变得“可扩展”,以便单个训练模型可以在任何比特率下运行,表现与专门针对这些比特率训练的模型一样好。


SoundStream模型的比较(越高越好),在18kbps下训练有量化器丢失(比特率可扩展),没有量化器丢失(比特率不可扩展)并使用可变数量的量化器进行评估,或以固定比特率(比特率)进行训练和评估具体的)。由于量化器丢失,与特定于比特率的模型(每个比特率的不同模型)相比,比特率可扩展模型(所有比特率的单一模型)不会损失任何质量。


3kbps的最先进音频编解码器SoundStream的性能优于12kbps的Opus,并接近9.6kbps的EVS质量,同时使用的比特数减少了3.2至4倍。这意味着使用SoundStream编码音频可以提供类似的质量,同时使用的带宽量要低得多。此外,在相同的比特率下,SoundStream的性能优于基于自回归网络的当前版本的Lyra。与已经针对生产用途进行部署和优化的Lyra不同,SoundStream仍处于试验阶段。未来,Lyra将整合SoundStream的组件,以提供更高的音频质量并降低复杂性。


3kbps的SoundStream与最先进的编解码器。MUSHRA分数是主观质量的指标(越高越好)。

这些音频示例中展示了SoundStream与Opus、EVS和原始Lyra编解码器相比的性能,下面提供了其中的一些示例。

联合音频压缩和增强
在传统的音频处理管道中,压缩和增强(去除背景噪声)通常由不同的模块执行。例如,可以在发送端应用音频增强算法,在压缩音频之前,或在接收端,在音频解码之后。在这样的设置中,每个处理步骤都会导致端到端延迟。相反,我们设计SoundStream的方式是压缩和增强可以由同一模型联合执行,而不会增加整体延迟。在以下示例中,我们展示了可以通过动态激活和停用去噪(5秒不去噪、5秒去噪、5秒不去噪等)将压缩与背景噪声抑制相结合。

结论

SoundStream将作为Lyra下一个改进版本的一部分发布。通过将SoundStream与Lyra集成,开发人员可以在他们的工作中利用现有的LyraAPI和工具,从而提供灵活性和更好的音质。我们还将发布它作为单独的TensorFlow模型进行实验。