这个是专注于音频编码的论文. 基于FSQ的codebook free的方法去模拟RVQ的残差建模, 利用Transformer强大的扩展性作为编码器

Preliminaries

: 当FSQ将一个连续数值映射到区间内个等距点上时(如, , ), 相当于是在上一层的两个相邻点之间插入一个新的中点, 保证了低精度层级(更小的层级)永远是高精度层级(更大的层级)的子集

因此, 可以把低精度的层级(小)当作粗糙的quantize的结果, 然后基于这个结果进行进一步的refine, 得到高精度的结果(大)

Methods

RFSQ

使用FSQ模仿RVQ的残差方法.

首先定义, 将任何实数映射到离散的个点上:

其中:

  • 是action, 是一个连续数值
  • 是量化层级的总数
  • 使用和最后的的原因是维持量化范围在之间

为了让FSQ像RVQ一样使用残差工作, 需要定义一个随层数变化的残差量化器:

其中:

  • 是一个固定值, 表示精度
  • 的目的是为了放大误差. 这里精度放大的方法是, 将每一层的误差放大(如, 最开始误差为2, 然后残差的误差为0.1, 经过一次放大可能就会变成1.6这种())
  • 经过放大之后的残差quantize需要重新缩放会原来的数值大小, 因此需要把除掉

然后使用类似RVQ的方法进行残差累加:

TAAE

首先经过Encoder, 每一层是一个downsampling的CNN加上多个self-attention的block组成的.

然后, 将encoder之后的结果送给FSQ, 得到量化之后的结果

最后, 经过Decoder得到重建之后的输出. Decoder类似Encoder有多层, 每一层是一个upsampling的CNN和多个self-attention block组成