使用神经网络和向量量化器压缩音频波形的制作方法

文档序号:37188005发布日期:2024-03-01 12:54阅读:50来源:国知局
使用神经网络和向量量化器压缩音频波形的制作方法

本说明书涉及使用机器学习模型处理数据。


背景技术:

1、机器学习模型接收输入并基于接收到的输入生成输出,例如预测输出。一些机器学习模型是参数模型,并且基于接收到的输入和模型的参数值来生成输出。

2、一些机器学习模型是深度模型,深度模型采用多层模型对于接收的输入生成输出。例如,深度神经网络是包括一个输出层和一个或多个隐藏层的深度机器学习模型,每个隐藏层对接收到的输入应用非线性变换以生成输出。


技术实现思路

1、本说明书通常描述了一种压缩系统,该压缩系统在一个或多个位置中的一个或多个计算机上被实现为计算机程序,该压缩系统可以压缩音频波形。本说明书进一步描述了一种解压缩系统,该解压缩系统在一个或多个位置中的一个或多个计算机上被实现为计算机程序,该解压缩系统可以对音频波形进行解压缩。

2、通常,压缩系统和解压缩系统可以位于任何适当的位置。特别地,压缩系统可以可选地位于远离解压缩系统的位置。例如,压缩系统可以由第一位置处的一个或多个第一计算机来实现,而解压缩系统可以由第二(不同)位置处的一个或多个第二(不同)计算机来实现。

3、在一些实施方式中,压缩系统可以生成输入音频波形的压缩表示,并将压缩表示存储在数据存储,例如逻辑数据存储区或物理数据存储设备中。解压缩系统可以稍后从数据存储访问压缩表示,并处理压缩表示以生成对应的输出音频波形。输出音频波形可以是例如输入音频波形的重构或者输入音频波形的增强(例如去噪)版本。

4、在一些实施方式中,压缩系统可以生成输入音频波形的压缩表示,并通过例如局域网、广域网或互联网的数据通信网络将压缩表示传输到目的地。解压缩系统可以访问在目的地的压缩表示,并处理压缩表示以生成对应的输出波形。

5、根据第一方面,提供了一种由一个或多个计算机执行的方法,该方法包括:接收音频波形,音频波形包括多个时间步长中的每个时间步长的相应音频样本;使用编码器神经网络处理音频波形以生成表示音频波形的多个特征向量;使用多个向量量化器来生成多个特征向量中的每个特征向量的相应编译表示,向量量化器各自与代码向量的相应码本相关联,其中,每个特征向量的相应编译表示识别多个代码向量,多个代码向量包括来自每个向量量化器的码本的相应代码向量;多个代码向量定义特征向量的量化表示;以及,通过压缩多个特征向量中的每个特征向量的相应编译表示来生成音频波形的压缩表示。

6、在一些实施方式中,多个向量量化器被排序成序列,并且其中,对于多个特征向量中的每个特征向量,生成特征向量的编译表示包括:对于向量量化器序列中的第一向量量化器:接收特征向量;基于特征向量,从向量量化器的码本识别相应的代码向量以表示特征向量;以及,基于(i)特征向量和(ii)表示特征向量的代码向量之间的误差来确定当前残差向量;其中,特征向量的编译表示识别表示特征向量的代码向量。

7、在一些实施方式中,对于多个特征向量中的每个特征向量,生成特征向量的编译表示还包括:对于向量量化器序列中的第一向量量化器之后的每个向量量化器:接收由向量量化器序列中的先前向量量化器生成的当前残差向量;基于当前残差向量,从向量量化器的码本识别相应的代码向量以表示当前残差向量;以及,如果向量量化器不是向量量化器序列中的最后一个向量量化器:基于(i)当前残差向量和(ii)表示当前残差向量的代码向量之间的误差来更新当前残差向量;其中,特征向量的编译表示识别表示当前残差向量的代码向量。

8、在一些实施方式中,生成音频波形的压缩表示包括:对多个特征向量中的每个特征向量的相应编译表示进行熵编码。

9、在一些实施方式中,由特征向量的编译表示所识别的多个代码向量的和来定义每个特征向量的相应量化表示。

10、在一些实施方式中,多个向量量化器的码本都包括相等数量的代码向量。

11、在一些实施方式中,编码器神经网络和多个向量量化器的码本与解码器神经网络一起被联合训练,其中,解码器神经网络被配置为:接收使用编码器神经网络和多个向量量化器生成的表示输入音频波形的多个特征向量中的每个特征向量的相应量化表示;以及,处理表示输入音频波形的特征向量的量化表示以生成输出音频波形。

12、在一些实施方式中,训练包括:获得多个训练示例,每个训练示例包括:(i)相应的输入音频波形和(ii)对应的目标音频波形;使用编码器神经网络、来自向量量化器序列的多个向量量化器和解码器神经网络处理来自每个训练示例的相应输入音频波形,以生成作为对应的目标音频波形的估计的输出音频波形;确定取决于每个训练示例的相应输出和目标波形的目标函数的梯度;以及,使用目标函数的梯度来更新以下的一个或多个:编码器神经网络参数集合、解码器神经网络参数集合或多个向量量化器的码本。

13、在一些实施方式中,对于训练示例中的一个或多个,目标音频波形是输入音频波形的增强版本。

14、在一些实施方式中,对于训练示例中的一个或多个,目标音频波形是输入音频波形的去噪版本。

15、在一些实施方式中,对于训练示例中的一个或多个,目标音频波形与输入音频波形相同。

16、在一些实施方式中,处理每个输入音频波形以生成对应的输出音频波形包括:根据以定义对应的目标音频波形是(i)输入音频波形还是(ii)输入音频波形的增强版本的数据,调节编码器神经网络、解码器神经网络或两者。

17、在一些实施方式中,该方法还包括,对于每个训练示例:选择要在量化表示输入音频波形的特征向量中使用的相应数量的向量量化器;仅使用来自向量量化器序列的所选择的数量的向量量化器来生成对应的输出音频波形。

18、在一些实施方式中,要在量化表示输入音频波形的特征向量时使用的向量量化器的所选择的数量在训练示例之间变化。

19、在一些实施方式中,对于每个训练示例,选择要在量化表示输入音频波形的特征向量中使用的相应数量的向量量化器包括:随机采样要在量化表示输入音频波形的特征向量中使用的向量量化器的数量。

20、在一些实施方式中,目标函数包括重建损失,对于每个训练示例,重建损失测量(i)输出音频波形和(ii)对应的目标音频波形之间的误差。

21、在一些实施方式中,对于每个训练示例,重建损失测量(i)输出音频波形和(ii)对应的目标音频波形之间的多尺度频谱误差。

22、在一些实施方式中,对于每个训练示例:使用鉴别器神经网络处理从输出音频波形导出的数据,以生成一个或多个鉴别器分数的集合,其中,每个鉴别器分数表征输出音频波形是使用编码器神经网络、多个向量量化器和解码器神经网络生成的音频波形的估计可能性;其中,目标函数包括对抗性损失,对抗性损失取决于由鉴别器神经网络生成的鉴别器分数。

23、在一些实施方式中,从输出音频波形导出的数据包括输出音频波形、输出音频波形的下采样版本或输出音频波形的傅立叶变换版本。

24、在一些实施方式中,对于每个训练示例,重建损失测量以下之间的误差:(i)由鉴别器神经网络通过处理输出音频波形而生成的一个或多个中间输出,以及(ii)由鉴别器神经网络通过处理对应的目标音频波形而生成的一个或多个中间输出。

25、在一些实施方式中,在训练期间,使用由编码器神经网络生成的特征向量的指数移动平均来重复更新多个向量量化器的码本。

26、在一些实施方式中,编码器神经网络包括编码器块序列,每个编码器块被配置为根据编码器块参数集合来处理相应的输入特征向量集合,以生成具有比输入特征向量集合低的时间分辨率的输出特征向量集合。

27、在一些实施方式中,解码器神经网络包括解码器块序列,每个解码器块被配置为根据解码器块参数集合来处理相应的输入特征向量集合,以生成具有比输入特征向量集合高的时间分辨率的输出特征向量集合。

28、在一些实施方式中,音频波形是语音波形或音乐波形。

29、在一些实施方式中,该方法还包括通过网络传输音频波形的压缩表示。

30、根据另一个方面,提供了一种由一个或多个计算机执行的方法,该方法包括:接收输入音频波形的压缩表示;对输入音频波形的压缩表示进行解压缩以获得表示输入音频波形的多个特征向量中的每个特征向量的相应编译表示,其中,每个特征向量的编译表示识别多个代码向量,多个代码向量包括来自多个向量量化器中的每个向量量化器的相应码本的相应代码向量,多个代码向量定义特征向量的量化表示;从特征向量的编译表示生成每个特征向量的相应量化表示;以及,使用解码器神经网络处理特征向量的量化表示以生成输出音频波形。

31、根据另一个方面,提供了一种系统,包括:一个或多个计算机;以及,通信地耦合到一个或多个计算机的一个或多个存储设备,其中,一个或多个存储设备存储指令,指令当由一个或多个计算机执行时,使一个或多个计算机执行本文的相应方法的操作。

32、根据另一个方面,提供了一个或多个非暂时性计算机存储介质,存储指令,指令当由一个或多个计算机执行时,使一个或多个计算机执行本文的相应方法的操作。

33、本说明书中描述的主题可以在特定实施例中实现,以实现以下优点的一个或多个。

34、本说明书中描述的压缩/解压缩系统可以实现比一些传统系统更有效地压缩音频数据。通过实现更高效的音频数据压缩,该系统允许更高效的音频数据传输(例如,通过减少传输音频数据所需的通信网络带宽)和更高效的音频数据存储(例如,通过减少存储视频数据所需要的存储器量)。

35、压缩/解压缩系统包括编码器神经网络、向量量化器集合和解码器神经网络,它们被联合训练(即从“端到端”)。与向量量化器的码本一起联合训练编码器和解码器神经网络的相应神经网络参数使得压缩/解压缩系统的参数能够一致地进行调整,以实现比其他情况下可能的更有效的音频压缩。例如,随着编码器神经网络的神经网络参数被迭代地调整,向量量化器的码本被同时优化,以使得能够对编码器神经网络生成的特征向量进行更精确的量化。解码器神经网络的神经网络参数也被同时优化,以使得能够从使用向量量化器的更新码本生成的量化特征向量更准确地重构音频波形。

36、使用其中使用r比特表示每个特征向量的单个向量量化器对表示音频波形的特征向量执行向量量化可能需要大小为2的码本。也就是说,向量量化器的码本的大小可以随着被分配来表示每个特征向量的比特数而指数增加。随着被分配来表示每个特征向量的比特数量的增加,学习和存储码本在计算上变得不可行。为了解决这个问题,压缩/解压缩系统使用多个向量量化器的序列来执行向量量化,每个向量量化器保持相应的码本。第一向量量化器可以直接量化编码器神经网络生成的特征向量,而每个后续向量量化器都可以量化定义由前一向量量化器生成的量化误差的残差向量。

37、向量量化器序列可以迭代地细化特征向量的量化,同时每个保持单个向量量化器所需的显著更小的码本。例如,每个向量量化器可以保持大小为的码本,其中,r是被分配来表示每个特征向量的比特数,且nq是向量量化器的数量。因此,使用多个向量量化器的序列执行向量量化使得压缩/解压缩系统能够减少存储量化器码本所需的存储器,并且允许在这样做否则在计算上不可行的情况下执行向量量化。

38、使用多个向量量化器的集合(即,而不是单个向量量化器)执行向量量化也使压缩/解压缩系统能够控制压缩比特率,例如,用于表示每秒音频数据的比特数。为了降低比特率,压缩/解压缩系统可以使用更少的向量量化器来执行向量量化。相反,为了增加比特率,压缩/解压缩系统可以使用更多的向量量化器来执行向量量化。在训练期间,用于每个音频波形的压缩/解压缩的向量量化器的数量可以在训练示例之间变化(例如,随机地),使得压缩/解压缩系统学习单个参数值集合,该参数值集合使得能够在一系列可能的比特率上进行有效压缩/解压缩。因此,压缩/解压缩系统通过消除训练和保持多个相应编码器、解码器和向量量化器的任何要求,使得能够减少计算资源的消耗,这些编码器、解码器和向量量化器中的每个都针对相应比特率而优化。

39、压缩/解压缩系统可以被训练为联合执行音频数据压缩和音频数据增强,例如去噪两者。也就是说,压缩和解压缩系统可以被训练为同时增强(例如,去噪)音频波形来作为压缩和解压缩波形的一部分,而不增加总延迟。相反,一些传统系统将单独的音频增强算法应用于发射机侧(即压缩之前)或接收机侧(即解压缩之后)的音频波形,这可能导致延迟增加。

40、本说明书主题的一个或多个实施例的细节在附图和以下描述中阐述。本主题的其他特征、方面和优点将从说明书、附图和权利要求中变得显而易见。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1