掌桥专利:专业的专利平台
掌桥专利
首页

音频编码方法、音频解码方法、装置、可读存储介质

文献发布时间:2024-04-18 19:58:30


音频编码方法、音频解码方法、装置、可读存储介质

技术领域

本申请涉及人工智能技术,尤其涉及一种音频编码方法、音频解码方法、装置、电子设备、计算机可读存储介质及计算机程序产品。

背景技术

人工智能(AI,Artificial Intelligence)是计算机科学的一个综合技术,通过研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,例如自然语言处理技术以及机器学习/深度学习等几大方向,随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。

音频编解码技术是人工智能领域的重要应用之一,音频编解码技术是包括远程音视频通话在内的通信服务中的一项核心技术。语音编码技术,简单讲,就是使用较少的网络带宽资源去尽量多的传递语音信息。从香农信息论的角度来讲,语音编码是一种信源编码,信源编码的目的是在编码端尽可能的压缩我们想要传递信息的数据量,去掉信息中的冗余,同时在解码端还能够无损(或接近无损)的恢复出来。

相关技术中,在解码的过程中,为了保证音频解码的效率,音频解码的质量会大打折扣。

发明内容

本申请实施例提供一种音频编码方法、音频解码方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够在保证音频解码的效率的情况下,提高音频解码的质量。

本申请实施例的技术方案是这样实现的:

本申请实施例提供一种音频编码方法,包括:

对音频信号进行特征提取处理,得到所述音频信号的音频特征;

利用至少一个残差单元,对所述音频特征进行残差处理,得到所述音频信号的编码特征;

对所述音频信号的编码特征进行信号编码处理,得到所述音频信号的音频码流。

本申请实施例提供一种音频解码方法,包括:

对音频码流进行信号解码处理,得到所述音频码流对应的编码特征;

其中,所述音频码流是对音频信号进行音频编码得到的;

利用至少一个残差单元,对所述音频码流对应的编码特征进行残差处理,得到所述音频码流对应的音频特征;

对所述音频码流对应的音频特征进行特征重建处理,得到所述音频码流对应的合成音频信号。

本申请实施例提供一种音频编码装置,包括:

特征提取模块,用于对音频信号进行特征提取处理,得到所述音频信号的音频特征;

编码模块,用于利用至少一个残差单元,对所述音频特征进行残差处理,得到所述音频信号的编码特征;

信号编码模块,用于对所述音频信号的编码特征进行信号编码处理,得到所述音频信号的音频码流。

本申请实施例提供一种音频解码装置,包括:

信号解码模块,用于对音频码流进行信号解码处理,得到所述音频码流对应的编码特征;

其中,所述音频码流是对音频信号进行音频编码得到的;

解码模块,用于利用至少一个残差单元,对所述音频码流对应的编码特征进行残差处理,得到所述音频码流对应的音频特征;

特征重建模块,用于对所述音频码流对应的音频特征进行特征重建处理,得到所述音频码流对应的合成音频信号。

本申请实施例提供一种电子设备,所述电子设备包括:

存储器,用于存储计算机可执行指令;

处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的音频编码方法或音频解码方法。

本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,被处理器执行时,实现本申请实施例提供的音频编码方法或音频解码方法。

本申请实施例提供一种计算机程序产品,包括计算机可执行指令,所述计算机可执行指令被处理器执行时实现本申请实施例提供的音频编码方法或音频解码方法。

本申请实施例具有以下有益效果:

通过对音频码流对应的编码特征进行残差处理,以保证对音频码流进行全面学习的同时,还能够更好地利用编码特征的浅层信息,从而提高音频码流的音频特征的特征表征能力,进而提高音频解码的质量。

附图说明

图1是本申请实施例提供的不同码率下的频谱比较示意图;

图2是本申请实施例提供的音频编解码系统的架构示意图;

图3A-图3B是本申请实施例提供的电子设备的结构示意图;

图4A-图4F是本申请实施例提供的音频编码方法的流程示意图;

图5A-图5D是本申请实施例提供的音频解码方法的流程示意图;

图6A是本申请实施例提供的未采用分组卷积的通道示意图;

图6B是本申请实施例提供的采用分组卷积的通道示意图;

图6C是本申请实施例提供的语音通信链路示意图;

图7A是本申请实施例提供的音频编解码方法的流程示意图;

图7B是本申请实施例提供的低复杂度低码率神经网络语音压缩方法的流程示意图;

图8是本申请实施例提供的滤波器组示意图;

图9A是本申请实施例提供的普通卷积网络的示意图;

图9B是本申请实施例提供的空洞卷积网络的示意图;

图10是本申请实施例提供的频带扩展的示意图;

图11是本申请实施例提供的第三神经网络的示意图;

图12A是本申请实施例提供的编码块中使用的残差块结构示意图;

图12B是本申请实施例提供的残差单元结构示意图;

图13是本申请实施例提供的第四神经网络的示意图;

图14是本申请实施例提供的第一神经网络的示意图;

图15是本申请实施例提供的第二神经网络的示意图;

图16A-图16B是本申请实施例提供的音频编码方法的流程示意图;

图17A-图17B是本申请实施例提供的音频解码方法的流程示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,所涉及的术语“第一第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。

1)神经网络(NN,Neural Network):是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

2)深度学习(DL,Deep Learning):是机器学习(ML,Machine Learning)领域中一个新的研究方向,深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。

3)量化:是指将信号的连续取值(或者大量离散取值)近似为有限多个(或较少的)离散值的过程。其中,量化包括矢量量化(VQ,Vector Quantization)以及标量量化。

其中,矢量量化是一种有效的有损压缩技术,其理论基础是香农的速率失真理论。矢量量化的基本原理是用码书中与输入矢量最匹配的码字的索引代替输入矢量进行传输与存储,而解码时仅需要简单地查表操作。例如,将若干个标量数据组成一个矢量空间,将矢量空间划分为若干个小区域,量化时将落入小区域的矢量,使用对应的索引代替输入矢量。

标量量化是对标量进行量化,即一维的矢量量化,将动态范围分成若干个小区间,每个小区间有一个代表值(即索引)。当输入信号落入某区间时,将输入信号量化成该代表值。

4)熵编码:编码过程中按熵原理不丢失任何信息的无损编码方式,也是有损编码中的一个关键模块,处于编码器的末端。熵编码包括香农(Shannon)编码、哈夫曼(Huffman)编码、指数哥伦布编码(Exp-Golomb)和算术编码(arithmetic coding)。

5)正交镜像滤波器组(QMF,Quadrature Mirror Filters):是一个包含分析-合成的滤波器对,其中,QMF分析滤波器用于子带信号分解,以降低信号带宽,使各个子带信号可顺利通过各自通道进行处理;QMF合成滤波器用于将解码端恢复出的各子带信号进行合成处理,例如通过零值内插和带通滤波等方式重建出原始的音频信号。

语音编码技术就是使用较少的网络带宽资源去尽量多地传递语音信息。语音编解码器的压缩率可以达到10倍以上,也就是原本10MB的语音数据经过编码器的压缩后,只需要1MB来传输,大大降低了传递信息所需消耗的带宽资源。例如,对于采样率为16000Hz的宽带语音信号,如果采用16-bit采样深度(取样中对语音强度记录的精细程度),无压缩版本的码率(单位时间内传送数据量)为256kbps;如果使用语音编码技术,即使是有损编码,在10-20kbps的码率范围内,重建的语音信号的质量可以接近无压缩版本,甚至听感上认为无差别。如果需要更高采样率的服务,比如32000Hz的超宽带语音,码率范围至少要达到30kbps以上。

在通信系统中,为了保证通信的顺利,行业内部部署标准的语音编解码协议,例如来自ITU-T、3GPP、IETF、AVS、CCSA等国际国内标准组织的标准,G.711、G.722、AMR系列、EVS、OPUS等标准。图1给出一个不同码率下的频谱比较示意图,以示范压缩码率与质量的关系。曲线101为原始语音的频谱曲线,即没有压缩的信号;曲线102为OPUS编码器在20kbps码率下的频谱曲线;曲线103为OPUS编码在6kbps码率下的频谱曲线。由图1可知,随着编码码率的提升,压缩后的信号更为接近原始信号。

语音编码原理大致如下:语音编码可以直接对语音波形样本,逐样本地进行编码;或者,基于人的发声原理,提取相关低维度特征,编码端对特征进行编码,解码端基于这些参数重建语音信号。

上述编码原理均来自语音信号建模,即基于信号处理的压缩方法,无法保证音频的编码质量。为了在保证语音质量的情况下,提高编码效率,本申请实施例提供一种音频编码方法、音频解码方法、装置、电子设备、计算机可读存储介质及计算机程序产品。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为终端设备,也可以实施为服务器,或者由终端设备和服务器协同实施。下面以电子设备实施为终端设备为例进行说明。

示例的,参见图2,图2是本申请实施例提供的音频编解码系统10的架构示意图,音频解码系统10包括:服务器200、网络300、终端设备400(即编码端)和终端设备500(即解码端),其中,网络300可以是局域网,或者是广域网,又或者是二者的组合。

在一些实施例中,在终端设备400上运行有客户端410,客户端410可以是各种类型的客户端,例如即时通信客户端、网络会议客户端、直播客户端、浏览器等。客户端410响应于发送方(例如网络会议的发起者、主播、语音通话的发起者等)触发的音频采集指令,调用终端设备400自带的麦克风进行音频信号的采集,并对采集得到的音频信号进行音频编码处理,得到码流(高频码流以及低频码流)。

例如,客户端410调用本申请实施例提供的音频编码方法对采集得到的音频信号进行编码,即对音频信号进行特征提取处理,得到音频信号的音频特征;利用至少一个残差单元,对音频特征进行残差处理,得到音频信号的编码特征;对音频信号的编码特征进行信号编码处理,得到音频信号的音频码流。在一个实施例中,可选的,对音频信号进行子带分解,得到音频信号的低频子带信号以及高频子带信号,对低频子带信号可以进行本申请实施例所提供的音频编码方法,得到音频信号的低频码流,当然,还需要对音频信号的高频子带信号进行音频编码,得到音频信号的高频码流。需要说明的是,对高频子带信号的音频编码方式不局限于本申请实施例所提供的音频编码方法,还可以是其他的音频编码方法。编码端(即终端设备400)结合信号处理技术与人工智能技术,通过对音频信号的音频特征进行残差处理,以保证对音频特征进行全面学习的同时,还能够更好地利用音频特征的浅层信息,从而提高编码特征的特征表征能力,进而提高音频编码的质量。另外,本申请实施例并不局限于子带分解所得到的子带信号(包括低频子带信号以及高频子带信号)的数量,可以是2个、3个、4个、5个等任意正整数,也就是低频子带信号的数量为至少一个,高频子带信号的数量为至少一个。

客户端410可以将音频码流通过网络300发送至服务器200,以使服务器200将音频码流发送至接收方(例如网络会议的参会对象、观众、语音通话的接收者等)关联的终端设备500。

客户端510(例如即时通信客户端、网络会议客户端、直播客户端、浏览器等)在接收到服务器200发送的音频码流后,可以对码流进行音频解码处理,以得到合成音频信号,从而实现音频通信。

例如,客户端510调用本申请实施例提供的音频解码方法对接收到的音频码流进行解码,即对音频码流进行信号解码处理,得到音频码流对应的编码特征;其中,音频码流是对音频信号进行音频编码得到的;利用至少一个残差单元,对音频码流对应的编码特征进行残差处理,得到音频码流对应的音频特征;对音频码流对应的音频特征进行特征重建处理,得到音频码流对应的合成音频信号。当然,当接收到的音频码流为全频码流中的低频码流时,针对低频码流进行本申请实施例的音频解码方法,得到低频子带信号(为编码侧中的子带分解中的低频子带信号的估计值),当然全频码流还包括高频码流,对高频码流进行音频解码,得到高频子带信号(为编码侧中的子带分解中的高频子带信号的估计值),对低频子带信号以及高频子带信号进行子带合成处理,得到合成音频信号。需要说明的是,对高频码流的音频解码方式不局限于本申请实施例所提供的音频解码方法,还可以是其他的音频解码方法。

在一些实施例中,本申请实施例可以借助云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、存储、处理和共享的一种托管技术。

云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。上述服务器200之间的服务交互功能可以通过云技术实现。

示例的,图2中示出的服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。图2中示出的终端设备400和终端设备500可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。终端设备(例如终端设备400和终端设备500)以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。

在一些实施例中,终端设备或服务器200还可以通过运行计算机程序来实现本申请实施例提供的音频编码方法或音频解码方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如直播APP、网络会议APP、或者即时通信APP等;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。

在一些实施例中,多个服务器可组成为一区块链,而服务器200为区块链上的节点,区块链中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。其中,本申请实施例提供的音频编码方法或音频解码方法所相关的数据(例如音频编码的逻辑、音频解码的逻辑、高频码流以及低频码流)可保存于区块链上。

参见图3A,图3A是本申请实施例提供的电子设备500的结构示意图,以电子设备500是终端设备为例说明,图3A所示的电子设备500包括:至少一个处理器520、存储器550、至少一个网络接口530和用户接口540。电子设备500中的各个组件通过总线系统550耦合在一起。可理解,总线系统550用于实现这些组件之间的连接通信。总线系统550除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3A中将各种总线都标为总线系统550。

处理器520可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器520的一个或多个存储设备。

存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。

在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

网络通信模块552,用于经由一个或多个(有线或无线)网络接口530到达其他计算设备,示例性的网络接口530包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等。

在一些实施例中,本申请实施例提供的音频编码装置可以采用软件方式实现,图3A示出了存储在存储器550中的音频编码装置555,其可以是程序和插件等形式的软件,包括以下软件模块:特征提取模块5551、编码模块5552、信号编码模块5553,其中,特征提取模块5551、编码模块5552、信号编码模块5553用于实现音频编码功能,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。

参见图3B,图3B是本申请实施例提供的电子设备600的结构示意图,以电子设备600是终端设备为例说明,图3B所示的电子设备600包括:至少一个处理器620、存储器650、至少一个网络接口630和用户接口640。电子设备600中的各个组件通过总线系统650耦合在一起。存储器650包括操作系统651、网络通信模块652。需要说明的是,图3B中的结构的功能与图3A中的结构的功能类似。本申请实施例提供的音频编码装置可以采用软件方式实现,图3B示出了存储在存储器650中的音频解码装置655,其可以是程序和插件等形式的软件,包括以下软件模块:信号解码模块6551、解码模块6552、特征重建模块6553,其中,信号解码模块6551、解码模块6552、特征重建模块6553用于实现音频解码功能,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。

如前所述,本申请实施例提供的音频编码方法可以由各种类型的电子设备实施。参见图16A,图16A是本申请实施例提供的音频编码方法的流程示意图,通过音频编码方法实现音频编码功能,下面结合图16A示出的步骤11-步骤13进行说明。

在步骤11中,对音频信号进行特征提取处理,得到音频信号的音频特征。

在一些实施例,步骤11可以通过以下方式实现:对音频信号进行因果卷积处理,得到因果卷积特征;对因果卷积特征进行池化处理,得到音频信号的音频特征。

在步骤12中,利用至少一个残差单元,对音频特征进行残差处理,得到音频信号的编码特征。

在一些实施例中,参见图16B,图16B是本申请实施例提供的音频编码方法的一个流程示意图,图16B示出图16A中的步骤12可以通过步骤121-122实现。

在步骤121中,通过至少一个残差单元,对音频特征进行特征残差处理,得到音频信号的残差特征。

在一些实施例中,当至少一个残差单元为一个残差单元时,步骤1021可以通过以下方式实现:通过一个残差单元,对音频特征进行残差处理,得到音频信号的残差特征。

在一些实施例中,当至少一个残差单元为多个级联的残差单元时,步骤121可以通过以下方式实现实现:通过多个级联的残差单元的第一个残差单元,对音频特征进行残差处理;将第一个残差单元输出的残差结果输出到后续级联的残差单元,通过后续级联的残差单元继续进行残差处理以及残差结果的输出;将最后一个残差单元输出的残差结果作为音频信号的残差特征。

在一些实施例中,残差单元的处理过程如下:通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果;将第k个残差单元的卷积结果与第k个残差单元的输入进行相加处理,得到第k个残差单元输出的残差结果,其中,k为依次递增的正整数,1≤k≤J,J为残差单元的数量,当k为1时,第k个残差单元的输入为音频特征,当k不为1时,第k个残差单元的输入为残差特征第k-1个残差单元输出的残差结果。也就是,通过多个级联的残差单元的第一个残差单元,对音频特征进行残差处理可以通过以下方式实现:通过多个级联的残差单元的第一个残差单元执行以下处理:对音频特征进行卷积处理,得到第一个残差单元的卷积结果;将第一个残差单元的卷积结果与音频特征进行相加处理,得到第一个残差单元输出的残差结果。通过后续级联的残差单元继续进行残差处理以及残差结果的输出可以通过以下方式实现:通过多个级联的残差单元的第j个残差单元执行以下处理:对第j-1个残差单元输出的残差结果进行卷积处理,得到第j个残差单元的卷积结果;将j个残差单元的卷积结果与第j-1个残差单元输出的残差结果进行相加处理,得到第j个残差单元输出的残差结果;将第j个残差单元输出的残差结果输出到第j+1个残差单元;其中,j为依次递增的正整数,1<j<J,J为残差单元的数量。

承接上述实施例,每个残差单元包括空洞卷积算子;通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果,可以通过以下方式实现:通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行空洞卷积处理,得到第k个残差单元的卷积结果。也就是,通过第一个残差单元包括的空洞卷积算子,对音频特征进行空洞卷积处理,得到第一个残差单元的空洞卷积结果。通过多个级联的残差单元的第j个残差单元执行以下处理:通过第j个残差单元包括的空洞卷积算子,对第j-1个残差单元输出的残差结果进行空洞卷积处理,得到第j个残差单元的空洞卷积结果,其中,j为依次递增的正整数,1<j≤J,J为残差单元的数量。需要说明的是,每个残差单元包含指定扩张率(Dilation rate)的空洞卷积算子,使用渐进的扩张率的空洞卷积算子,相当于使用不同感受野提取输入在不同分辨率下的特征,可以更好地对数据进行相对全面的分析。每个残差单元经过扩张率的空洞卷积算子的卷积处理后,与跳连接过来的浅层特征(即每个残差单元的输入)相加,从而直接利用浅层特征信息,使得网络在学习过程中可以充分利用浅层特征信息。

承接上述实施例,每个残差单元不仅包括空洞卷积算子,还包括至少一个因果卷积算子;对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果之后,通过第k个残差单元包括的至少一个因果卷积算子,对得到的空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为第k个残差单元的卷积结果。也就是,通过第一个残差单元包括的至少一个因果卷积算子,对第一个残差单元的空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为第一个残差单元输出的卷积结果。通过第j个残差单元包括的空洞卷积算子,对第j-1个残差单元输出的残差结果进行空洞卷积处理,得到第j个残差单元的空洞卷积结果之后,通过第j个残差单元包括的至少一个因果卷积算子,对第j个残差单元的空洞卷积结果进行因果卷积处理,将第j个残差单元的因果卷积结果作为第j个残差单元的卷积结果。需要说明的是,每个残差单元还包括至少一个因果卷积算子,通过因果卷积算子继续提取输入到因果卷积算子的特征的局部信息。

在一些实施例中,当对残差单元包括的空洞卷积算子应用分组卷积时,对音频特征进行空洞卷积处理,可以通过以下方式实现:对音频特征的输入通道进行分组处理,得到多个组别,其中,每个组别包括音频特征中的至少两个通道对应的第一元素(即第一特征值);对每个组别内的第一元素进行空洞卷积处理。当对残差单元包括的因果卷积算子应用分组卷积时,对得到的空洞卷积结果进行因果卷积处理,可以通过以下方式实现:对空洞卷积结果的输入通道进行分组处理,得到多个组别,其中,每个组别包括空洞卷积结果中的至少两个通道对应的第二元素(即第二特征值);对每个组别内的第二元素进行因果卷积处理。

承接步骤121,在步骤122中,对残差特征进行特征编码处理,得到音频信号的编码特征。

在一些实施例中,步骤122可以通过以下方式实现:对残差特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数大于残差特征的通道数;对卷积特征进行池化处理,得到音频信号的编码特征。

在一些实施例中,用于音频编码的第三神经网络包括多个级联的编码块,每个编码块包括至少一个残差单元以及特征编码块;步骤12是通过多个级联的编码块实现的,步骤12可以通过以下方式实现:通过多个级联的编码块中的至少一个残差单元对音频特征进行残差处理,得到音频信号的残差特征;通过多个级联的编码块中的特征编码块对残差特征进行特征编码处理,得到音频信号的编码特征。

在一些实施例中,通过多个级联的编码块中的至少一个残差单元对音频特征进行残差处理,得到音频信号的残差特征可以通过以下方式实现:通过多个级联的编码块的第一个编码块中的至少一个残差单元,对音频特征进行残差处理,并将第一个编码块中的至少一个残差单元输出的残差结果输出到第一个编码块中的特征编码块;通过多个级联的编码块的第i个编码块中的至少一个残差单元,对第i-1个编码块中的特征编码块输出的编码结果进行残差处理,并将第i个编码块中的至少一个残差单元输出的残差结果输出到第i个编码块中的特征编码块;将最后一个编码块中的至少一个残差单元输出的残差结果作为音频信号的残差特征;其中,i为依次递增的正整数,1<i≤I,I为编码块的数量。通过多个级联的编码块中的特征编码块对残差特征进行特征编码处理,得到音频信号的编码特征可以通过以下方式实现:通过多个级联的编码块的最后一个编码块中的特征编码块,对残差特征进行特征编码处理,得到音频信号的编码特征。其中,编码特征是通过多个级联的编码块的最后一个编码块执行以下处理得到的:对残差特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数大于残差特征的通道数;对卷积特征进行池化处理,得到音频信号的编码特征。

在步骤13中,对音频信号的编码特征进行信号编码处理,得到音频信号的音频码流。

在一些实施例中,步骤13可以通过以下方式实现:对编码特征进行量化处理,得到编码特征的索引值;对编码特征的索引值进行熵编码处理,得到音频信号的音频码流。

如图7A所示,通过图16A或16B所示的音频编码方法进行音频编码处理后,也就是音频信号x(n)通过第三神经网络111,得到编码特征F(n),并对编码特征F(n)进行信号编码(即量化编码),得到音频码流,将得到的音频码流传输至解码端,通过解码端对接收到的音频码流进行解码,得到合成音频信号x′(n),参见图17A,图17A是本申请实施例提供的音频解码方法的流程示意图,通过音频解码方法实现音频解码功能,下面结合图17A示出的步骤21-步骤23进行说明。

在步骤21中,对音频码流进行信号解码处理,得到音频码流对应的编码特征。

其中,音频码流是对音频信号进行上述音频编码得到的。

需要说明的是,信号解码是信号编码的逆过程。因此,解码过程中产生的值是相对于编码过程中的值的估计值,例如解码过程中产生的编码特征相对于编码过程中的编码特征是一种估计值。

例如,对音频码流进行信号解码处理,可以通过以下方式实现:对音频码流进行熵解码处理,得到音频码流对应的索引值;对音频码流对应的索引值进行逆量化处理,得到音频码流对应的编码特征。

在步骤22中,利用至少一个残差单元,对音频码流对应的编码特征进行残差处理,得到音频码流对应的音频特征。

在一些实施例中,参见图17B,图17B是本申请实施例提供的音频解码方法的流程示意图,图17B示出图17A中的步骤22可以通过步骤221-步骤222实现:

在步骤221中,对音频码流对应的编码特征进行特征解码处理,得到音频码流对应的残差特征。

例如,特征解码是特征编码的逆过程,对编码特征进行特征解码处理,得到音频码流对应的残差特征(一种估计值)。本申请实施例可以调用第一NN,通过第一NN对音频码流对应的编码特征进行特征解码处理,得到音频码流对应的残差特征。

在一些实施例中,步骤221可以通过以下方式实现:对音频码流对应的编码特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数小于音频码流对应的编码特征的通道数;对卷积特征进行上采样处理,得到音频码流对应的残差特征。

当然,在步骤221之前,还可以对音频码流对应的编码特征进行因果卷积,得到因果卷积后的编码特征,并基于因果卷积后的编码特征执行步骤22,即对因果卷积后的编码特征进行特征解码处理,得到音频码流对应的残差特征。

在步骤222中,通过至少一个残差单元,对音频码流对应的残差特征进行特征残差处理,得到音频码流对应的音频特征。

这里,通过对音频码流对应的残差特征进行残差处理,以保证对残差特征进行全面学习的同时,还能够更好地利用残差特征的浅层特征信息,避免遗漏浅层特征信息。

在一些实施例中,当至少一个残差单元为多个级联的残差单元时,步骤222可以通过以下方式实现:通过一个残差单元,对残差特征进行残差处理,得到音频码流对应的音频特征。

在一些实施例中,当至少一个残差单元为多个级联的残差单元时,步骤222可以通过以下方式实现:通过多个级联的残差单元的第一个残差单元,对残差特征进行残差处理;将第一个残差单元输出的残差结果输出到后续级联的残差单元,通过后续级联的残差单元继续进行残差处理以及残差结果的输出;将最后一个残差单元输出的残差结果作为音频码流对应的音频特征。

在一些实施例中,残差单元的处理过程如下:通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果;将第k个残差单元的卷积结果与第k个残差单元的输入进行相加处理,得到第k个残差单元输出的残差结果,其中,k为依次递增的正整数,1≤k≤J,J为残差单元的数量,当k为1时,第k个残差单元的输入为残差特征,当k不为1时,第k个残差单元的输入为残差特征第k-1个残差单元输出的残差结果。也就是,对残差特征进行残差处理可以通过以下方式实现:通过多个级联的残差单元的第一个残差单元执行以下处理:对残差特征进行卷积处理,得到第一个残差单元的卷积结果;将第一个残差单元的卷积结果与残差特征进行相加处理,得到第一个残差单元输出的残差结果。通过后续级联的残差单元继续进行残差处理以及残差结果的输出可以通过以下方式实现:通过多个级联的残差单元的第j个残差单元执行以下处理:通过多个级联的残差单元的第j个残差单元执行以下处理:对第j-1个残差单元输出的残差结果进行卷积处理,得到第j个残差单元的卷积结果;将j个残差单元的卷积结果与第j-1个残差单元输出的残差结果进行相加处理,得到第j个残差单元输出的残差结果;将第j个残差单元输出的残差结果输出到第j+1个残差单元;其中,j为依次递增的正整数,1<j<J,J为残差单元的数量。

承接上述实施例,每个残差单元包括空洞卷积算子;通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果,可以通过以下方式实现:通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行空洞卷积处理,得到第k个残差单元的卷积结果。也就是,通过第一个残差单元包括的空洞卷积算子,对残差特征进行空洞卷积处理,得到第一个残差单元的空洞卷积结果。通过多个级联的残差单元的第j个残差单元执行以下处理:通过第j个残差单元包括的空洞卷积算子,对第j-1个残差单元输出的残差结果进行空洞卷积处理,得到第j个残差单元的空洞卷积结果,其中,j为依次递增的正整数,1<j≤J,J为残差单元的数量。

承接上述实施例,每个残差单元不仅包括空洞卷积算子,还包括至少一个因果卷积算子;对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果之后,通过第k个残差单元包括的至少一个因果卷积算子,对得到的空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为第k个残差单元的卷积结果。也就是,通过第一个残差单元包括的至少一个因果卷积算子,对第一个残差单元的空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为第一个残差单元输出的卷积结果。通过第j个残差单元包括的空洞卷积算子,对第j-1个残差单元输出的残差结果进行空洞卷积处理,得到第j个残差单元的空洞卷积结果之后,通过第j个残差单元包括的至少一个因果卷积算子,对第j个残差单元的空洞卷积结果进行因果卷积处理,将第j个残差单元的因果卷积结果作为第j个残差单元的卷积结果。

在一些实施例中,当对残差单元包括的空洞卷积算子应用分组卷积时,对音频特征进行空洞卷积处理,可以通过以下方式实现:对残差特征的输入通道进行分组处理,得到多个组别,其中,每个组别包括残差特征中的至少两个通道对应的第一元素(即第一特征值);对每个组别内的第一元素进行空洞卷积处理。当对残差单元包括的因果卷积算子应用分组卷积时,对得到的空洞卷积结果进行因果卷积处理,可以通过以下方式实现:对空洞卷积结果的输入通道进行分组处理,得到多个组别,其中,每个组别包括空洞卷积结果中的至少两个通道对应的第二元素(即第二特征值);对每个组别内的第二元素进行因果卷积处理。

在一些实施例中,用于音频解码的第一神经网络包括多个级联的解码块,每个解码块包括特征解码块以及至少一个残差单元;步骤22可以通过以下方式实现:通过多个级联的解码块中的特征解码块,对音频码流对应的编码特征进行特征解码处理,得到音频码流对应的残差特征;对应的,通过多个级联的解码块中的至少一个残差单元,对音频码流对应的残差特征进行残差处理,得到音频码流对应的音频特征。

在一些实施例中,通过多个级联的解码块中的特征解码块,对音频码流对应的编码特征进行特征解码处理,得到音频码流对应的残差特征可以通过以下方式实现:通过多个级联的解码块的第一个解码块中的特征解码块,对音频码流对应的编码特征进行特征解码处理,并将第一个解码块中的特征解码块输出的解码结果输出到第一个解码块中的至少一个残差单元;通过多个级联的解码块的第i个解码块中的特征解码块,对第i-1个解码块中的至少一个残差单元输出的残差结果进行特征解码处理,并将第i个解码块中的特征解码块输出的解码结果输出到第i个解码块中的至少一个残差单元;将最后一个解码块中的特征解码块输出的解码结果作为音频码流对应的残差特征;其中,i为依次递增的正整数,1<i≤I,I为解码块的数量。其中,第一个解码块中的特征解码块输出的解码结果是通过多个级联的解码块的第一个解码块中的特征解码块执行以下处理得到的:对音频码流对应的编码特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数小于编码特征的通道数;对卷积特征进行上采样处理,得到第一个解码块中的特征解码块输出的解码结果。其中,第i个解码块中的特征解码块输出的解码结果是通过第i个解码块中的特征解码块执行以下处理得到的:对第i-1个解码块中的至少一个残差单元输出的残差结果进行卷积处理,得到卷积特征,其中,卷积特征的通道数小于至少一个残差单元输出的残差结果的通道数;对卷积特征进行上采样处理,得到第i个解码块中的特征解码块输出的解码结果。

在一些实施例中,通过多个级联的解码块中的至少一个残差单元,对音频码流对应的残差特征进行残差处理,得到音频码流对应的音频特征可以通过以下方式实现:通过多个级联的解码块的最后一个解码块中的至少一个残差单元,对音频码流对应的残差特征进行残差处理,得到音频码流对应的音频特征。

承接上述步骤22,在步骤23中,对音频码流对应的音频特征进行特征重建处理,得到音频码流对应的合成音频信号。

这里,特征重建是特征提取的逆过程,通过特征重建处理对音频特征进行升维,实现数据解压的功能。

在一些实施例,步骤23可以通过以下方式实现:对音频码流对应的音频特征进行上采样处理,得到上采样特征;对上采样特征进行因果卷积处理,得到音频码流对应的合成音频信号。

如前所述,本申请实施例提供的音频编码方法可以由各种类型的电子设备实施。参见图4A,图4A是本申请实施例提供的音频编码方法的流程示意图,通过音频编码方法实现音频编码功能,下面结合图4A示出的步骤101-步骤103进行说明。

如图4B所示,图4B是本申请实施例提供的音频编码方法的一个流程示意图,图4B示出在图4A中的步骤101之前,还包括步骤104:在步骤104中,对音频信号进行子带分解处理,得到音频信号的低频子带信号以及高频子带信号。然后,通过步骤104所得到的低频子带信号执行步骤101。

需要说明的是,本申请实施例并不限定低频子带信号以及高频子带信号的频带,即分解得到的低频子带信号与高频子带信号可以是平均分割音频信号的频带所得到的两个子带信号,也可以是非平均分割音频信号的频带所得到的两个子带信号,例如,音频信号x(n)的有效带宽为0-16kHz,则低频子带信号x

作为获取音频信号的示例,编码端响应于发送方(例如网络会议的发起者、主播、语音通话的发起者等)触发的音频采集指令,调用编码端的终端设备自带的麦克风进行音频信号的采集,以获取音频信号(又称输入信号)。

在获取音频信号后,通过QMF分析滤波器将音频信号分解成低频子带信号x

在一些实施例中,步骤104可以通过以下方式实现:对音频信号进行采样处理,得到采样信号,其中,采样信号包括采样得到的多个样本点;对采样信号进行低通滤波处理,得到低通滤波信号;对低通滤波信号进行下采样处理,得到音频信号的低频子带信号;对采样信号进行高通滤波处理,得到高通滤波信号;对高通滤波信号进行下采样处理,得到音频信号的高频子带信号。

需要说明的是,音频信号为连续的模拟信号,采样信号为离散的数字信号,采样点为从音频信号中采样得到的采样值。

作为示例,以音频信号为采样率Fs=32000Hz的输入信号为例,对音频信号进行采样,得到包括640个样本点的采样信号x(n)。调用QMF滤波器组中的分析滤波器(2通道),对采样信号进行低通滤波处理,得到低通滤波信号,对采样信号进行高通滤波处理,得到高通滤波信号,对低通滤波信号进行下采样处理,得到音频信号的低频子带信号x

需要说明的是,QMF滤波器组是一个包含分析-合成的滤波器对。对于QMF分析滤波器,可以将输入的采样率为Fs的信号分解成两路采样率为Fs/2的信号,分别表示QMF低通信号和QMF高通信号。解码端恢复出的低通信号和高通信号后,经过QMF合成滤波器进行合成处理,即可以恢复出输入信号对应的采样率Fs的重建信号。

在步骤101中,对音频信号的低频子带信号进行特征提取处理,得到低频子带信号的低频特征。

需要说明的是,步骤101与步骤11类似。

这里,本申请实施例可以基于低频子带信号,调用第三神经网络(NN),通过第三神经网络从低频子带信号中提取低频特征,以便后续继续基于重要的低频特征进行特征提炼。需要说明的是,本申请实施例并不局限于第三NN的结构,第三NN可以是卷积神经网络、深度神经网络等。

在一些实施例,步骤101可以通过以下方式实现:对音频信号的低频子带信号进行因果卷积处理,得到因果卷积特征;对因果卷积特征进行池化处理,得到低频子带信号的低频特征。

例如,参见图11所示的第三NN的网络结构图,第三NN包括一个因果卷积层、预处理层,首先,调用一个16通道的因果卷积层,可以将输入的张量(即低频子带信号),扩展为16×320的因果卷积特征;然后,通过预处理层对16×320的因果卷积特征进行预处理,例如,对16×320的因果卷积特征进行一次卷积运算后,做因子为2的池化(Pooling)处理、且激活函数可以为参数修正线性单元(PReLU,Parametric Rectified Linear Unit),以生成16×160的张量(即低频特征)。

在步骤102中,利用至少一个残差单元,对低频特征进行残差处理,得到低频子带信号的低频编码特征。

需要说明的是,步骤102与步骤12类似。

这里,通过对低频子带信号的低频特征进行残差处理,以保证对低频特征进行全面学习的同时,还能够更好地利用低频特征的浅层特征信息,避免遗漏低频特征的浅层特征信息。

在一些实施例中,参见图4C,图4C是本申请实施例提供的音频编码方法的一个流程示意图,图4C示出图4A中的步骤102可以通过步骤1021-1022实现。

在步骤1021中,通过至少一个残差单元,对低频特征进行特征残差处理,得到低频子带信号的残差特征。

在一些实施例中,当至少一个残差单元为一个残差单元时,步骤1021可以通过以下方式实现:通过一个残差单元,对低频特征进行残差处理,得到低频子带信号的残差特征。

在一些实施例中,当至少一个残差单元为多个级联的残差单元时,参见图4D,图4D是本申请实施例提供的音频编码方法的一个流程示意图,图4D示出图4C中的步骤1021可以通过步骤10211A-步骤10213A实现:在步骤10211A中,通过多个级联的残差单元的第一个残差单元,对低频特征进行残差处理;在步骤10212A中,将第一个残差单元输出的残差结果输出到后续级联的残差单元,通过后续级联的残差单元继续进行残差处理以及残差结果的输出;在步骤10213A中,将最后一个残差单元输出的残差结果作为低频子带信号的残差特征。

如图12A所示,当用于特征残差的至少一个残差单元有4个级联的残差单元时,第一个残差单元对低频特征进行残差处理,并将第一个残差单元输出的残差结果输出到第二个残差单元;第二个残差单元对第一个残差单元输出的残差结果进行残差处理,并将第二个残差单元输出的残差结果输出到第三个残差单元;第三个残差单元对第二个残差单元输出的残差结果进行残差处理,并将第三个残差单元输出的残差结果输出到第四个残差单元;第四个残差单元对第三个残差单元输出的残差结果进行残差处理,得到残差中间结果。

在一些实施例中,残差单元的处理过程如下:通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果;将第k个残差单元的卷积结果与第k个残差单元的输入进行相加处理,得到第k个残差单元输出的残差结果,其中,k为依次递增的正整数,1≤k≤J,J为残差单元的数量,当k为1时,第k个残差单元的输入为低频特征,当k不为1时,第k个残差单元的输入为残差特征第k-1个残差单元输出的残差结果。也就是,步骤10211A可以通过以下方式实现:通过多个级联的残差单元的第一个残差单元执行以下处理:对低频特征进行卷积处理,得到第一个残差单元的卷积结果;将第一个残差单元的卷积结果与低频特征进行相加处理,得到第一个残差单元输出的残差结果。步骤10212A可以通过以下方式实现:通过多个级联的残差单元的第j个残差单元执行以下处理:对第j-1个残差单元输出的残差结果进行卷积处理,得到第j个残差单元的卷积结果;将j个残差单元的卷积结果与第j-1个残差单元输出的残差结果进行相加处理,得到第j个残差单元输出的残差结果;将第j个残差单元输出的残差结果输出到第j+1个残差单元;其中,j为依次递增的正整数,1<j<J,J为残差单元的数量。

承接上述实施例,每个残差单元包括空洞卷积算子;通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果,可以通过以下方式实现:通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行空洞卷积处理,得到第k个残差单元的卷积结果。也就是,通过第一个残差单元包括的空洞卷积算子,对低频特征进行空洞卷积处理,得到第一个残差单元的空洞卷积结果。通过多个级联的残差单元的第j个残差单元执行以下处理:通过第j个残差单元包括的空洞卷积算子,对第j-1个残差单元输出的残差结果进行空洞卷积处理,得到第j个残差单元的空洞卷积结果,其中,j为依次递增的正整数,1<j≤J,J为残差单元的数量。需要说明的是,每个残差单元包含指定扩张率(Dilation rate)的空洞卷积算子,使用渐进的扩张率的空洞卷积算子,相当于使用不同感受野提取输入在不同分辨率下的特征,可以更好地对数据进行相对全面的分析。每个残差单元经过扩张率的空洞卷积算子的卷积处理后,与跳连接过来的浅层特征(即每个残差单元的输入)相加,从而直接利用浅层特征信息,使得网络在学习过程中可以充分利用浅层特征信息。

承接上述实施例,每个残差单元不仅包括空洞卷积算子,还包括至少一个因果卷积算子;对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果之后,通过第k个残差单元包括的至少一个因果卷积算子,对得到的空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为第k个残差单元的卷积结果。也就是,通过第一个残差单元包括的至少一个因果卷积算子,对第一个残差单元的空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为第一个残差单元输出的卷积结果。通过第j个残差单元包括的空洞卷积算子,对第j-1个残差单元输出的残差结果进行空洞卷积处理,得到第j个残差单元的空洞卷积结果之后,通过第j个残差单元包括的至少一个因果卷积算子,对第j个残差单元的空洞卷积结果进行因果卷积处理,将第j个残差单元的因果卷积结果作为第j个残差单元的卷积结果。需要说明的是,每个残差单元还包括至少一个因果卷积算子,通过因果卷积算子继续提取输入到因果卷积算子的特征的局部信息。

在一些实施例中,可以对残差单元的卷积算子(包括空洞卷积算子以及因果卷积算子)应用分组卷积,分组卷积就是将输入通道分成多个组别进行卷积运算,只在每个组内的输入通道和输出通道产生关联。需要说明的是,当输入通道被分成多个组别后,对应的输出通道也会分成多个组别,即输入通道的组别数量与输出通道的组别数量相同,从而实现在组内进行卷积后,只在每个组内的输入通道和输出通道产生关联。这里,假定输入某个卷积算子的特征的输入通道为4、输出通道为4。如果分组数为1,每个输入通道均与4个输出通道产生关联。如果分组数为2,首先将4个输入通道分成0-1和2-3两个组,在两个组内,输入通道与本组内的输出通道产生关联,例如第一组中的输入通道0-1与输出通道的0-1相关联,第二组中的输入通道2-3与输出通道的2-3相关联。如图6A所示,当未采用分组卷积方案时,每个输入通道均与4个输出通道产生关联;如图6B所示,当未采用分组卷积方案时,第0个输出通道,只与第0-1输入通道产生关联,不与第2-3输入通道产生关联,第2个输出通道,只与第2-3输入通道产生关联,不与第0-1输入通道产生关联。这样一比较可以看出,引入分组卷积,可以避免任意输入通道与所有输出通道产生关联,减少连接数,可以降低复杂度。

例如,当对残差单元包括的空洞卷积算子应用分组卷积时,对低频特征进行空洞卷积处理,可以通过以下方式实现:对低频特征的输入通道进行分组处理,得到多个组别,其中,每个组别包括低频特征中的至少两个通道对应的第一元素;对每个组别内的第一元素进行空洞卷积处理。当对残差单元包括的因果卷积算子应用分组卷积时,对得到的空洞卷积结果进行因果卷积处理,可以通过以下方式实现:对空洞卷积结果的输入通道进行分组处理,得到多个组别,其中,每个组别包括空洞卷积结果中的至少两个通道对应的第二元素;对每个组别内的第二元素进行因果卷积处理。

承接步骤1021,在步骤1022中,对残差特征进行特征编码处理,得到低频子带信号的低频编码特征。

这里,对残差特征进行特征编码处理,得到低频子带信号的低频编码特征,以便后续基于低频编码特征进行信号编码处理,得到音频信号的低频码流。

在一些实施例中,步骤1022可以通过以下方式实现:对残差特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数大于残差特征的通道数;对卷积特征进行池化处理,得到低频子带信号的低频编码特征。

例如,基于低频子带信号调用第三NN,经过第三NN中的残差单元处理后,得到残差特征,然后通过第三NN中的卷积层对残差特征进行卷积处理,以增加残差特征的通道数;最后,通过第三NN中的池化层对卷积特征进行池化处理,得到低频子带信号的低频编码特征。当然,第三NN还可以包括因果卷积层,通过因果卷积层对低频编码特征进行因果卷积,得到因果卷积后的低频编码特征,并对因果卷积后的低频子带信号的低频编码特征进行信号编码处理,得到音频信号的低频码流。

在一些实施例中,用于音频编码的第三神经网络包括多个级联的编码块,每个编码块包括至少一个残差单元以及特征编码块;步骤1021以及步骤1022是通过多个级联的编码块实现的,参见图4E,图4E是本申请实施例提供的音频编码方法的一个流程示意图,图4E示出图4C中的步骤1021可以通过步骤10211B实现,步骤1022可以通过步骤10221B实现:在步骤10211B中,通过多个级联的编码块中的至少一个残差单元对低频特征进行残差处理,得到低频子带信号的残差特征;在步骤10221B中,通过多个级联的编码块中的特征编码块对残差特征进行特征编码处理,得到低频子带信号的低频编码特征。

在一些实施例中,步骤10211B可以通过以下方式实现:通过多个级联的编码块的第一个编码块中的至少一个残差单元,对低频特征进行残差处理,并将第一个编码块中的至少一个残差单元输出的残差结果输出到第一个编码块中的特征编码块;通过多个级联的编码块的第i个编码块中的至少一个残差单元,对第i-1个编码块中的特征编码块输出的编码结果进行残差处理,并将第i个编码块中的至少一个残差单元输出的残差结果输出到第i个编码块中的特征编码块;将最后一个编码块中的至少一个残差单元输出的残差结果作为低频子带信号的残差特征;其中,i为依次递增的正整数,1<i≤I,I为编码块的数量。步骤10221B可以通过以下方式实现:通过多个级联的编码块的最后一个编码块中的特征编码块,对残差特征进行特征编码处理,得到低频子带信号的低频编码特征。其中,低频编码特征是通过多个级联的编码块的最后一个编码块执行以下处理得到的:对残差特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数大于残差特征的通道数;对卷积特征进行池化处理,得到低频子带信号的低频编码特征。

例如,如图11所示,当基于低频子带信号调用第三NN后,通过第三NN得到低频特征(图11中预处理后得到的16×160的张量),第三NN包括级联的4个不同下采样因子(Down_factor)的编码块。其中,每个编码块包含一个残差块(包括至少一个残差单元)、一个卷积层以及一个池化层,其中,每个残差块包括4个基于空洞卷积的残差单元(Residual Unit)(残差单元的输入、输出的特征维度不会产生变化);一个卷积层用于将输入通道数增加一倍,并且激活函数可以为PReLU,从而保证数据量,避免丢失数据;池化层为一个包含Down_factor的池化操作,以完成降采样,实现数据压缩。这里,4个编码块的Down_factor分别设置为2、4、4、5。因此,4个编码块输出通道数分别设置为32、64、128、256。经过4个编码块处理后,输入的16×160张量分别转换成32×80、64×20、128×5和256×1的张量。例如,通过第一个编码块中的残差块,对低频特征(即16×160张量)进行残差处理,并将第一个编码块中的残差块输出的残差结果输出到第一个编码块中的特征编码块,经过第一个编码块中的特征编码块(包括一个卷积层以及一个池化层)处理后,得到第一个编码块中的特征编码块的编码结果(即32×80的张量),并将第一个编码块中的特征编码块的编码结果(即32×80的张量)输出到第二个编码块;通过第二个编码块中的残差块,对第一个编码块中的特征编码块的编码结果(即32×80的张量)进行残差处理,并将第二个编码块中的残差块输出的残差结果输出到第二个编码块中的特征编码块,经过第二个编码块中的特征编码块(包括一个卷积层以及一个池化层)处理后,得到第二个编码块中的特征编码块的编码结果(即64×20的张量),并将第一个编码块中的特征编码块的编码结果(即64×20的张量)输出到第三个编码块;依次进行上述处理,将最后一个编码块的输出作为低频编码特征。

承接步骤102,在步骤103中,对低频子带信号的低频编码特征进行信号编码处理,得到音频信号的低频码流。

需要说明的是,步骤103与步骤13类似。

在一些实施例中,步骤103可以通过以下方式实现:对低频编码特征进行量化处理,得到低频编码特征的索引值;对低频编码特征的索引值进行熵编码处理,得到音频信号的低频码流。

例如,对于低频子带信号的低频编码特征F

下面继续说明图4B,图4B示出步骤104之后,还包括步骤105-步骤106。

在步骤105中,对高频子带信号进行高频分析处理,得到高频子带信号的高频编码特征。

由于低频子带信号相对于高频子带信号对音频编码的影响更大,因此对低频子带信号以及高频子带信号进行差异化的信号处理,使得高频特征的特征维度低于低频特征的特征维度。其中,高频分析处理用于对高频子带信号进行降维,实现数据压缩的功能。其中,高频编码特征为表征高频子带信号的特征,高频编码特征的特征维度小于高频子带信号的特征维度。

参见图4F,图4F是本申请实施例提供的音频编码方法的一个流程示意图,图4F示出图4B中的步骤105可以通过步骤1051A实现:在步骤1051A中,调用第四神经网络,对高频子带信号进行基于第四神经网络的特征提取处理,得到高频子带信号的高频编码特征,其中,第四神经网络模型的通道数小于第三神经网络的通道数,其中,第三神经网络用于从低频子带信号中提取低频编码特征。

下面对步骤1051A进行说明,步骤1051A可以通过以下方式实现:对音频信号的高频子带信号进行特征提取处理,得到高频子带信号的高频特征;利用至少一个残差单元,对高频特征进行残差处理,得到高频编码特征。

这里,引入另一个与第三NN类似的第四NN的结构,生成低维度的特征向量(即高频子带信号的高频编码特征)。相对低频子带信号,高频子带信号对质量的重要程度相对低,因此,针对高频子带信号的第四NN结构也无需像第三NN那么复杂。

需要说明的是,步骤1051A中的残差处理的处理流程与步骤102的处理过程类似。例如,利用至少一个残差单元,对高频特征进行残差处理,得到高频编码特征,包括:通过至少一个残差单元,对高频特征进行特征残差处理,得到高频子带信号的残差特征;对残差特征进行特征编码处理,得到高频子带信号的高频编码特征。

其中,当至少一个残差单元为一个残差单元时,通过一个残差单元,对高频特征进行残差处理,得到高频子带信号的残差特征。当至少一个残差单元为多个级联的残差单元时,通过多个级联的残差单元的第一个残差单元,对高频特征进行残差处理;将第一个残差单元输出的残差结果输出到后续级联的残差单元,通过后续级联的残差单元继续进行残差处理以及残差结果的输出;将最后一个残差单元输出的残差结果作为高频子带信号的残差特征。

在一些实施例中,残差单元的处理过程如下:通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果;将第k个残差单元的卷积结果与第k个残差单元的输入进行相加处理,得到第k个残差单元输出的残差结果,其中,k为依次递增的正整数,1≤k≤J,J为残差单元的数量,当k为1时,第k个残差单元的输入为残差特征,当k不为1时,第k个残差单元的输入为残差特征第k-1个残差单元输出的残差结果。

承接上述实施例,每个残差单元包括空洞卷积算子;通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果,可以通过以下方式实现:通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行空洞卷积处理,得到第k个残差单元的卷积结果。

承接上述实施例,每个残差单元不仅包括空洞卷积算子,还包括至少一个因果卷积算子;对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果之后,通过第k个残差单元包括的至少一个因果卷积算子,对得到的空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为第k个残差单元的卷积结果。

在一些实施例中,当对残差单元包括的空洞卷积算子应用分组卷积时,对高频特征进行空洞卷积处理,可以通过以下方式实现:对高频特征的输入通道进行分组处理,得到多个组别,其中,每个组别包括高频特征中的至少两个通道对应的第一元素;对每个组别内的第一元素进行空洞卷积处理。当对残差单元包括的因果卷积算子应用分组卷积时,对得到的空洞卷积结果进行因果卷积处理,可以通过以下方式实现:对空洞卷积结果的输入通道进行分组处理,得到多个组别,其中,每个组别包括空洞卷积结果中的至少两个通道对应的第二元素;对每个组别内的第二元素进行因果卷积处理。

在一些实施例中,对残差特征进行特征编码处理,得到高频子带信号的高频编码特征可以通过以下方式实现:对残差特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数大于残差特征的通道数;对卷积特征进行池化处理,得到高频子带信号的高频编码特征。

在一些实施例中,用于音频编码的第四神经网络包括多个级联的编码块,每个编码块包括至少一个残差单元以及特征编码块;步骤1051A是通过多个级联的编码块实现的,步骤1051A可以通过以下方式实现:通过多个级联的编码块中的至少一个残差单元对高频特征进行残差处理,得到高频子带信号的残差特征;通过多个级联的编码块中的特征编码块对残差特征进行特征编码处理,得到高频子带信号的高频编码特征。

在一些实施例中,通过多个级联的编码块中的至少一个残差单元对高频特征进行残差处理,得到高频子带信号的残差特征可以通过以下方式实现:通过多个级联的编码块的第一个编码块中的至少一个残差单元,对高频特征进行残差处理,并将第一个编码块中的至少一个残差单元输出的残差结果输出到第一个编码块中的特征编码块;通过多个级联的编码块的第i个编码块中的至少一个残差单元,对第i-1个编码块中的特征编码块输出的编码结果进行残差处理,并将第i个编码块中的至少一个残差单元输出的残差结果输出到第i个编码块中的特征编码块;将最后一个编码块中的至少一个残差单元输出的残差结果作为高频子带信号的残差特征;其中,i为依次递增的正整数,1<i≤I,I为编码块的数量。通过多个级联的编码块中的特征编码块对残差特征进行特征编码处理,得到高频子带信号的高频编码特征可以通过以下方式实现:通过多个级联的编码块的最后一个编码块中的特征编码块,对残差特征进行特征编码处理,得到高频子带信号的高频编码特征。其中,高频编码特征是通过多个级联的编码块的最后一个编码块执行以下处理得到的:对残差特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数大于残差特征的通道数;对卷积特征进行池化处理,得到高频子带信号的高频编码特征。

参见图4F,图4F是本申请实施例提供的音频编码方法的一个流程示意图,图4F示出图4B中的步骤105可以通过步骤1051B实现:在步骤1051B中,对高频子带信号进行频带扩展处理,得到高频子带信号的高频编码特征,其中,高频编码特征的特征维度低于低频编码特征的特征维度。

例如,由于相对低频子带信号,高频子带信号对质量的重要程度相对低,因此可以通过另一种方法压缩高频子带信号,即频带扩展(从频带受限的窄带语音信号中恢复宽带语音信号),以快速压缩高频子带信号,提取高频子带信号的高频编码特征。

在一些实施例中,步骤1051B可以通过以下方式:基于高频子带信号包括的多个样本点进行频域变换处理,得到多个样本点分别对应的变换系数;将多个样本点分别对应的变换系数划分为多个子带;对每个子带包括的变换系数进行均值处理,得到每个子带对应的平均能量,并将平均能量作为每个子带对应的子带谱包络;将多个子带分别对应的子带谱包络确定为高频子带信号的高频编码特征。

需要说明的是,本申请实施例的频域变换方法包括改进型离散余弦变换(MDCT,Modified Discrete Cosine Transform)、离散余弦变换(DCT,Discrete CosineTransform)、快速傅立叶变换(FFT,Fast Fourier Transform)等,本申请实施例并不局限于频域变换的方式。本申请实施例的均值处理包括算术平均、几何平均,本申请实施例并不局限于均值处理的方式。

在一些实施例中,基于高频子带信号包括的多个样本点进行频域变换处理,得到多个样本点分别对应的变换系数,包括:获取参考音频信号的参考高频子带信号,其中,参考音频信号是与音频信号相邻的音频信号;基于参考高频子带信号包括的多个样本点以及高频子带信号包括的多个样本点,对高频子带信号包括的多个样本点进行离散余弦变换处理,得到高频子带信号包括的多个样本点分别对应的变换系数。

在一些实施例中,对每个子带包括的变换系数进行几何均值处理的过程如下:确定每个子带包括的样本点对应的变换系数的平方和;将平方和与子带包括的样本点的数量的比值,确定为得到每个子带对应的平均能量。

作为示例,对于包括320点的高频子带信号x

将320个点的MDCT系数分成N个子带(即将多个样本点分别对应的变换系数划分为多个子带),这里的子带就是将相邻的多个MDCT系数组成一组,320个点的MDCT系数可以分成8个子带。例如,可以均匀分配320个点,即每个子带包括的点的数量一致。当然,本申请实施例不可以对320个点进行非均匀划分,比如偏低频的子带包括的MDCT系数更少(频率分辨率更高),偏高频的子带包括的MDCT系数更多(频率分辨率更低)。

根据奈奎斯特(Nyquist)采样定律(要从抽样信号中无失真地恢复原信号,抽样频率应大于2倍原信号最高频率,抽样频率小于2倍频谱最高频率时,信号的频谱有混叠,抽样频率大于2倍频谱最高频率时,信号的频谱无混叠),上述320个点的MDCT系数表示了8-16kHz的频谱。但超宽带语音通信,不一定要求频谱到16kHz,比如,如果设置频谱到14kHz,只需要考虑前240个点的MDCT系数,对应地,子带数可以控制为6。

对于每一个子带,计算当前子带中所有MDCT系数的平均能量(即对每个子带包括的变换系数进行均值处理)作为子带谱包络(频谱包络是经过频谱各主峰值点的平滑曲线),比如,当前子带中包括的MDCT系数为x(n),n=1,2,…,40,则通过几何均值计算平均能量Y=((x(1)

承接上述步骤105,在步骤106中,对高频编码特征进行信号编码处理,得到音频信号的高频码流。

在一些实施例中,步骤106可以通过以下方式实现:对高频编码特征进行量化处理,得到高频编码特征的索引值;对高频编码特征的索引值进行熵编码处理,得到音频信号的高频码流。

例如,对于高频子带信号的高频编码特征F

如前所述,本申请实施例提供的音频解码方法可以由各种类型的电子设备实施。参见图5A,图5A是本申请实施例提供的音频解码方法的流程示意图,通过音频解码方法实现音频解码功能,音频解码方法与上述音频编码方法互为逆过程,下面结合图5A示出的步骤进行说明。

在步骤201中,对低频码流进行信号解码处理,得到低频码流对应的低频编码特征。

其中,低频码流是对音频信号的低频子带信号进行上述音频编码得到的。需要说明的是,步骤201与步骤21类似,仅处理对象不同。

例如,通过如图4A所示的音频编码方法编码得到低频码流后,将编码得到的低频码流传输至解码端,解码端接收到低频码流后,对低频码流进行信号解码处理,得到低频码流对应的低频编码特征。

需要说明的是,信号解码是信号编码的逆过程。对于收到码流(高频码流以及低频码流),先进行熵解码,并通过查量化表(即逆量化,量化表为编码过程中量化所产生的映射表),获得低频的特征向量的估计值F′

例如,对低频码流进行信号解码处理,可以通过以下方式实现:对低频码流进行熵解码处理,得到低频码流对应的索引值;对低频码流对应的索引值进行逆量化处理,得到低频码流对应的低频编码特征。

在步骤202中,利用至少一个残差单元,对低频码流对应的低频编码特征进行残差处理,得到低频码流对应的低频特征。

需要说明的是,步骤202与步骤22类似。

在一些实施例中,参见图5B,图5B是本申请实施例提供的音频解码方法的流程示意图,图5B示出图5A中的步骤202可以通过步骤2021-步骤2022实现:

在步骤2021中,对低频码流对应的低频编码特征进行特征解码处理,得到低频码流对应的残差特征。

例如,特征解码是特征编码的逆过程,对低频编码特征进行特征解码处理,得到低频码流对应的残差特征(一种估计值)。本申请实施例可以调用第一NN,通过第一NN对低频码流对应的低频编码特征进行特征解码处理,得到低频码流对应的残差特征。

在一些实施例中,步骤2021可以通过以下方式实现:对低频码流对应的低频编码特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数小于低频码流对应的低频编码特征的通道数;对卷积特征进行上采样处理,得到低频码流对应的残差特征。

当然,在步骤2021之前,还可以对低频码流对应的低频编码特征进行因果卷积,得到因果卷积后的低频编码特征,并基于因果卷积后的低频编码特征执行步骤202,即对因果卷积后的低频编码特征进行特征解码处理,得到低频码流对应的残差特征。

在步骤2022中,通过至少一个残差单元,对低频码流对应的残差特征进行特征残差处理,得到低频码流对应的低频特征。

这里,通过对低频码流对应的残差特征进行残差处理,以保证对残差特征进行全面学习的同时,还能够更好地利用残差特征的浅层特征信息,避免遗漏浅层特征信息。

在一些实施例中,当至少一个残差单元为多个级联的残差单元时,步骤2022可以通过以下方式实现:通过一个残差单元,对残差特征进行残差处理,得到低频码流对应的低频特征。

在一些实施例中,当至少一个残差单元为多个级联的残差单元时,步骤2022可以通过以下方式实现:通过多个级联的残差单元的第一个残差单元,对残差特征进行残差处理;将第一个残差单元输出的残差结果输出到后续级联的残差单元,通过后续级联的残差单元继续进行残差处理以及残差结果的输出;将最后一个残差单元输出的残差结果作为低频码流对应的低频特征。

在一些实施例中,残差单元的处理过程如下:通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果;将第k个残差单元的卷积结果与第k个残差单元的输入进行相加处理,得到第k个残差单元输出的残差结果,其中,k为依次递增的正整数,1≤k≤J,J为残差单元的数量,当k为1时,第k个残差单元的输入为残差特征,当k不为1时,第k个残差单元的输入为残差特征第k-1个残差单元输出的残差结果。也就是,对残差特征进行残差处理可以通过以下方式实现:通过多个级联的残差单元的第一个残差单元执行以下处理:对残差特征进行卷积处理,得到第一个残差单元的卷积结果;将第一个残差单元的卷积结果与残差特征进行相加处理,得到第一个残差单元输出的残差结果。通过后续级联的残差单元继续进行残差处理以及残差结果的输出可以通过以下方式实现:通过多个级联的残差单元的第j个残差单元执行以下处理:通过多个级联的残差单元的第j个残差单元执行以下处理:对第j-1个残差单元输出的残差结果进行卷积处理,得到第j个残差单元的卷积结果;将j个残差单元的卷积结果与第j-1个残差单元输出的残差结果进行相加处理,得到第j个残差单元输出的残差结果;将第j个残差单元输出的残差结果输出到第j+1个残差单元;其中,j为依次递增的正整数,1<j<J,J为残差单元的数量。

承接上述实施例,每个残差单元包括空洞卷积算子;通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果,可以通过以下方式实现:通过多个级联的残差单元的第k个残差单元执行以下处理:对第k个残差单元的输入进行空洞卷积处理,得到第k个残差单元的卷积结果。也就是,通过第一个残差单元包括的空洞卷积算子,对残差特征进行空洞卷积处理,得到第一个残差单元的空洞卷积结果。通过多个级联的残差单元的第j个残差单元执行以下处理:通过第j个残差单元包括的空洞卷积算子,对第j-1个残差单元输出的残差结果进行空洞卷积处理,得到第j个残差单元的空洞卷积结果,其中,j为依次递增的正整数,1<j≤J,J为残差单元的数量。

承接上述实施例,每个残差单元不仅包括空洞卷积算子,还包括至少一个因果卷积算子;对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果之后,通过第k个残差单元包括的至少一个因果卷积算子,对得到的空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为第k个残差单元的卷积结果。也就是,通过第一个残差单元包括的至少一个因果卷积算子,对第一个残差单元的空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为第一个残差单元输出的卷积结果。通过第j个残差单元包括的空洞卷积算子,对第j-1个残差单元输出的残差结果进行空洞卷积处理,得到第j个残差单元的空洞卷积结果之后,通过第j个残差单元包括的至少一个因果卷积算子,对第j个残差单元的空洞卷积结果进行因果卷积处理,将第j个残差单元的因果卷积结果作为第j个残差单元的卷积结果。

在一些实施例中,当对残差单元包括的空洞卷积算子应用分组卷积时,对低频特征进行空洞卷积处理,可以通过以下方式实现:对残差特征的输入通道进行分组处理,得到多个组别,其中,每个组别包括残差特征中的至少两个通道对应的第一元素;对每个组别内的第一元素进行空洞卷积处理。当对残差单元包括的因果卷积算子应用分组卷积时,对得到的空洞卷积结果进行因果卷积处理,可以通过以下方式实现:对空洞卷积结果的输入通道进行分组处理,得到多个组别,其中,每个组别包括空洞卷积结果中的至少两个通道对应的第二元素;对每个组别内的第二元素进行因果卷积处理。

在一些实施例中,用于音频解码的第一神经网络包括多个级联的解码块,每个解码块包括特征解码块以及至少一个残差单元;参见图5C,图5C是本申请实施例提供的音频解码方法的流程示意图,图5C示出图5B中的步骤2021可以通过步骤20211A实现,步骤2022可以通过步骤20221A实现:在步骤20211A中,通过多个级联的解码块中的特征解码块,对低频码流对应的低频编码特征进行特征解码处理,得到低频码流对应的残差特征;对应的,在步骤20221A中,通过多个级联的解码块中的至少一个残差单元,对低频码流对应的残差特征进行残差处理,得到低频码流对应的低频特征。

在一些实施例中,步骤20211A可以通过以下方式实现:通过多个级联的解码块的第一个解码块中的特征解码块,对低频码流对应的低频编码特征进行特征解码处理,并将第一个解码块中的特征解码块输出的解码结果输出到第一个解码块中的至少一个残差单元;通过多个级联的解码块的第i个解码块中的特征解码块,对第i-1个解码块中的至少一个残差单元输出的残差结果进行特征解码处理,并将第i个解码块中的特征解码块输出的解码结果输出到第i个解码块中的至少一个残差单元;将最后一个解码块中的特征解码块输出的解码结果作为低频码流对应的残差特征;其中,i为依次递增的正整数,1<i≤I,I为解码块的数量。其中,第一个解码块中的特征解码块输出的解码结果是通过多个级联的解码块的第一个解码块中的特征解码块执行以下处理得到的:对低频码流对应的低频编码特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数小于低频编码特征的通道数;对卷积特征进行上采样处理,得到第一个解码块中的特征解码块输出的解码结果。其中,第i个解码块中的特征解码块输出的解码结果是通过第i个解码块中的特征解码块执行以下处理得到的:对第i-1个解码块中的至少一个残差单元输出的残差结果进行卷积处理,得到卷积特征,其中,卷积特征的通道数小于至少一个残差单元输出的残差结果的通道数;对卷积特征进行上采样处理,得到第i个解码块中的特征解码块输出的解码结果。

在一些实施例中,步骤20221A可以通过以下方式实现:通过多个级联的解码块的最后一个解码块中的至少一个残差单元,对低频码流对应的残差特征进行残差处理,得到低频码流对应的低频特征。

例如,如图14所示,当基于低频码流对应的低频解码特征(图14中的F′

承接上述步骤202,在步骤203中,对低频码流对应的低频特征进行特征重建处理,得到低频码流对应的低频子带信号。

需要说明的是,步骤203与步骤23类似。

这里,特征重建是特征提取的逆过程,通过特征重建处理对低频特征进行升维,实现数据解压的功能。

在一些实施例,步骤203可以通过以下方式实现:对低频码流对应的低频特征进行上采样处理,得到上采样特征;对上采样特征进行因果卷积处理,得到低频码流对应的低频子带信号。

参见图5D,图5D是本申请实施例提供的音频解码方法的流程示意图,图5D示出图5A还包括步骤204-206:

在步骤204中,对高频码流进行信号解码处理,得到高频码流对应的高频编码特征。

其中,高频码流是对音频信号的高频子带信号进行音频编码得到的。其中,信号解码与信号编码互为逆过程,例如,对高频码流进行信号解码处理,可以通过以下方式实现:对高频码流进行熵解码处理,得到高频码流对应的索引值;对高频码流对应的索引值进行逆量化处理,得到高频码流对应的高频编码特征。

在步骤205中,对高频码流对应的高频编码特征进行高频重建处理,得到高频码流对应的高频子带信号。

其中,高频重建与高频分析互为逆过程。需要说明的是,步骤23中的特征重建与步骤205中的高频重建不同。步骤23中的特征重建是步骤11中的特征提取的逆过程,步骤23中的特征重建用于根据音频码流对应的音频特征重建出合成音频信号。而步骤205中的高频重建用于根据高频码流对应的高频编码特征重建出高频码流对应的高频子带信号。

在一些实施例中,步骤205可以通过以下方式实现:调用第二神经网络模型,对高频编码特征进行特征重建处理,得到高频码流对应的高频子带信号。

例如,当编码端调用第四NN对高频子带信号进行特征提取,以获得高频编码特征,则解码端调用第二NN对高频编码特征进行特征重建处理,得到对应的高频子带信号,其中,第四NN的结构与第二NN的结构是对应的。

在一些实施例中,步骤205可以通过以下方式实现:对高频编码特征进行频带扩展的逆处理,得到高频码流对应的高频子带信号。

例如,当编码端是对高频子带信号进行频带扩展,以获得高频特征,则解码端对高频特征进行频带扩展的逆处理,得到对应的高频子带信号。

在一些实施例中,对高频编码特征进行频带扩展的逆处理,得到高频码流对应的高频子带信号,包括:基于低频子带信号包括的多个样本点进行频域变换处理,得到多个样本点分别对应的变换系数;对多个样本点分别对应的变换系数中的后半部分的变换系数进行频谱复制处理,得到参考高频子带信号的参考变换系数;基于高频特征对应的子带谱包络,对参考高频子带信号的参考变换系数进行增益处理,得到增益后的参考变换系数;对增益后的参考变换系数进行反频域变换处理,得到对应的高频子带信号。

需要说明的是,本申请实施例的频域变换方法包括改进型离散余弦变换(MDCT,Modified Discrete Cosine Transform)、离散余弦变换(DCT,Discrete CosineTransform)、快速傅立叶变换(FFT,Fast Fourier Transform)等,本申请实施例并不局限于频域变换的方式。

在一些实施例中,基于高频特征对应的子带谱包络,对参考高频子带信号的参考变换系数进行增益处理,得到增益后的参考变换系数,包括:基于高频特征对应的子带谱包络,将参考高频子带信号的参考变换系数划分为多个子带;针对多个子带中的任意子带执行以下处理:确定子带谱包络中与子带对应的第一平均能量,并确定子带对应的第二平均能量;基于第一平均能量与第二平均能量的比值,确定增益因子;将增益因子与子带包括的每个参考变换系数相乘,得到增益后的参考变换系数。

作为示例,先将解码端生成的低频子带信号x′

然后,将由x′

接下来,调用前面获得的8个子带谱包络(即通过查询量化表后得到的8个子带谱包络,即高频特征对应的子带谱包络),这8个子带谱包络对应8个高频子带,并将生成的320个点的参考高频子带信号的MDCT系数的参考值分为8个参考高频子带(即将参考高频子带信号的参考变换系数划分为多个子带),分带地,基于一个高频子带与对应的参考高频子带,对生成的320点的参考高频子带信号的MDCT系数的参考值进行增益控制(频域上就是做乘法),例如根据高频子带的平均能量(即第一平均能量)与对应的参考高频子带的平均能量(第二平均能量)计算增益因子,将该对应的参考高频子带中的每个点对应的MDCT系数乘以增益因子,确保解码虚拟生成的高频MDCT系数的能量,与编码端原始的系数能量接近。

例如,假定参考高频子带(即由生成的高频部分信号的320个点的MDCT系数的参考值所划分得到的子带)的平均能量是Y_L,当前高频子带(即基于码流解码出来的子带谱包络对应的子带)的平均能量是Y_H,则计算一个增益因子a=sqrt(Y_H/Y_L),其中,sqrt()表示平方根计算函数,用于计算(Y_H/Y_L)的平方根。有了增益因子a后,直接将参考高频子带中的每个点的MDCT系数均乘以a。经过增益控制后的MDCT系数(虚拟生成的)的平均能量,就跟编码端原始的非常接近的。

最后,调用MDCT反变换,生成高频子带信号的估计值x′

在步骤206中,对低频子带信号以及高频子带信号进行子带合成处理,得到合成音频信号。

例如,子带合成处理是子带分解处理的逆过程,解码端对低频子带信号以及高频子带信号进行子带合成处理,以恢复出音频信号,其中合成音频信号即为恢复出的重建信号。

在一些实施例中,对低频子带信号以及高频子带信号进行子带合成处理,得到合成音频信号,包括:对低频子带信号进行上采样处理,得到低通滤波信号;对高频子带信号进行上采样处理,得到高频滤波信号;对低通滤波信号以及高频滤波信号进行滤波合成处理,得到合成音频信号。

例如,在获取低频子带信号以及高频子带信号后,通过QMF合成滤波器对低频子带信号以及高频子带信号进行子带合成以恢复出音频信号。

下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。

本申请实施例可以应用于各种音频场景,例如语音通话、即时通信等。下面以语音通话为例进行说明:

相关技术中,语音编码原理大致如下:语音编码可以直接对语音波形样本,逐样本地进行编码;或者,基于人的发声原理,提取相关低维度特征,编码端对特征进行编码,解码端基于这些参数重建语音信号。

上述编码原理均来自语音信号建模,即基于信号处理的压缩方法。为了相对于基于信号处理的压缩方法,在保证语音编码效率的情况下,提高编码质量。本申请实施例提供一种低复杂度低码率神经网络语音压缩方法(即音频编码方法以及音频解码方法),基于音频信号特点,对于重要的部分(低频子带信号),基于神经网络(NN,Neural Network)技术进行处理后,会得到比输入的低频子带信号更低维度的特征向量。其中,神经网络内部采用残差块进行残差处理,可以更好地对数据进行相对全面的分析,提高编码质量,并且残差块内部采用了类似“分块”的操作,还可以降低算法复杂度,提高编码效果。

本申请实施例可应用于如图6C所示的语音通信链路,以基于网际互连协议的语音传输(VoIP,Voice over Internet Protocol)会议系统为例,将本申请实施例涉及的语音编解码技术部署在编码和解码部分,以解决语音压缩的基本功能。编码器部署在上行客户端601,解码器部署在下行客户端602,通过上行客户端采集语音,并进行前处理增强、编码等处理,将编码得到的码流通过网络传输至下行客户端602,通过下行客户端602进行解码、增强等处理,以在下行客户端602回放解码出的语音。

考虑前向兼容(即新的编码器与已有的编码器兼容),需要在系统的后台(即服务器)部署转码器,以解决新的编码器与已有的编码器互联互通问题。例如,如果发送端(上行客户端)是新的NN编码器,接收端(下行客户端)是公用电话交换网(PSTN,Public SwitchedTelephone Network)(G.722)。在后台,需要执行NN解码器生成语音信号,然后调用G.722编码器生成特定码流,以实现转码功能,才能让接收端基于特定码流进行正确解码。

下面在具体介绍本申请实施例提供的低复杂度低码率神经网络语音压缩方法之前,先介绍QMF滤波器组、空洞卷积网络、频带扩展。

QMF滤波器组是一个包含分析-合成的滤波器对。对于QMF分析滤波器,可以将输入的采样率为Fs的信号分解成两路采样率为Fs/2的信号,分别表示QMF低通信号和QMF高通信号。如图8所示的QMF滤波器的低通部分H_Low(z)和高通部分H_High(z)的频谱响应。基于QMF分析滤波器组的相关理论知识,可以容易地描述上述低通滤波和高通滤波的系数之间的相关性,如公式(1)所示:

h

其中,h

类似地,根据QMF相关理论,可以基于QMF分析滤波器组H_Low(z)和H_High(z),描述QMF合成滤波器组,如公式(2)所示。

G

G

其中,G

解码端恢复出的低通和高通信号,经过QMF合成滤波器组进行合成处理,即可以恢复出输入信号对应的采样率Fs的重建信号(即合成信号)。

参见图9A和图9B,图9A是本申请实施例提供的普通卷积(例如因果卷积)网络的示意图,图9B是本申请实施例提供的空洞卷积网络的示意图。相对普通卷积网络,空洞卷积能够增加感受野的同时保持特征图的尺寸不变,还可以避免因为上采样、下采样引起的误差。虽然图9A和图9B中示出的卷积核大小(Kernel Size)均为3×3;但是,图9A所示的普通卷积的感受野901只有3,而图9B所示的空洞卷积的感受野902达到了5。也就是说,对于尺寸为3×3的卷积核,图9A所示的普通卷积的感受野为3、扩张率(Dilation Rate)(卷积核中的点的间隔数量)为1;而图9B所示的空洞卷积的感受野为5、扩张率为2。

卷积核还可以在类似图9A或者图9B的平面上进行移动,这里是涉及移位率(Stride Rate)(步长)概念。比如,每次卷积核移位1格,则对应的移位率为1。

此外,还有卷积通道数的概念,就是用多少个卷积核对应的参数去进行卷积分析。理论上,通道数越多,对信号的分析更为全面,精度越高;但是,通道越高,复杂度也越高。比如,一个1×320的张量,可以使用24通道卷积运算,输出就是24×320的张量。

需要说明的是,可以根据实际应用需要,自行定义空洞卷积核大小(例如:针对语音信号,卷积核的大小可以设置为1×3)、扩张率、移位率和通道数,本申请实施例对此不作具体限定。

如图10所示的频带扩展(或者频带复制)示意图,先重建宽带信号,然后将宽带信号复制到超宽带信号上,最后基于超宽带包络进行整形,图10示出的频域实现方案具体包括:

1)在低采样率下,实现一个核心层编码;2)选择低频部分的频谱复制到高频;3)根据提前记录的边界信息(描述高频与低频的能量相关性等),对复制的高频频谱进行增益控制。仅需1-2kbps码率,就可以产生采样率翻倍的效果。

下面将结合高频部分以及低频部分对本申请实施例提供的低复杂度低码率神经网络语音压缩方法。

下面结合图7B说明本申请实施例提供的低复杂度低码率神经网络语音压缩方法:

对于编码端执行如下处理:

对第n帧的输入音频信号x(n),使用分析滤波器分解为低频子带信号x

对于低频子带信号x

对于高频子带信号x

对子带信号对应的特征向量(即F

对于解码端执行如下处理:

对解码端接收到码流(低频码流以及高频码流)进行解码,分别获得低频的特征向量的估计值F′

对于低频部分,基于低频的特征向量的估计值F′

对于高频部分,基于高频的特征向量的估计值F′

最后,调用QMF合成滤波,生成重建的合成语音信号x′(n)。

下面对本申请实施例提供的低复杂度低码率神经网络语音压缩方法进行具体说明。

在一些实施例中,以采样率Fs=32000Hz的语音信号为例(需要说明的是,本申请实施例提供的方法也适用于其他采样率的场景,包括但不限于:8000Hz、32000Hz、48000Hz)。同时,假设帧长设置为20ms,因此,对于Fs=32000Hz,相当于每帧包含640个样本点。

下面参考图7B所示的流程图,将编码端和解码端进行详细描述。

关于低频部分以及高频部分的编码端的流程如下:

针对采样率Fs=32000Hz的音频信号,对于第n帧的输入信号包括640个样本点,记为输入信号x(n)。

步骤11、调用QMF分析滤波器进行信号分解。

调用QMF分析滤波器(2通道QMF),进行下采样,可以获得两部分子带信号,即低频子带信号x

步骤12、基于低频子带信号,调用第三NN。

基于低频子带信号x

参见图11所示的第三NN的网络结构图,下面具体说明第三NN进行数据压缩的流程:

首先,调用一个16通道的因果卷积,可以将输入的张量(即向量),扩展为16×320的张量。

然后,对16×320的张量进行预处理。例如,对16×320的张量进行一次卷积运算后,做因子为2的池化(Pooling)操作、且激活函数可以为PReLU,以生成16×160的张量。

接下来,级联4个不同下采样因子(Down_factor)的编码块。其中,每个编码块包含一个残差块、一个卷积层以及一个池化层,其中,每个残差块包括4个基于空洞卷积的残差单元(Residual Unit)(残差单元的输入、输出的特征维度不会产生变化);一个卷积层用于将输入通道数增加一倍,并且激活函数可以为PReLU,从而保证数据量,避免丢失数据;池化层为一个包含Down_factor的池化操作,以完成降采样,实现数据压缩。这里,4个编码块的Down_factor分别设置为2、4、4、5。因此,4个编码块输出通道数分别设置为32、64、128、256。经过4个编码块处理后,输入的16×160张量分别转换成32×80、64×20、128×5和256×1的张量。其中,本申请实施例并不局限编码块的数量,可以是2个、3个、4个、5个等任意正整数。

这里进一步对残差单元(Residual Unit)进行介绍。残差单元是指一种深度神经网络中的模块,通过在神经网络中引入跨层连接,使得神经网络在训练过程中更易优化,避免梯度消失或梯度爆炸等问题。其核心思想是在模块内部对输入进行残差学习,即通过一条直接的路径将输入信息绕过一部分层,直接传递到输出,使得网络在学习过程中可以更好地利用浅层特征信息。图12A为第三NN中编码块中使用的残差块结构示意图,此残差块包括4个基于空洞卷积的残差单元,每个残差单元包含指定扩张率(Dilation rate)的空洞卷积块,也就是每个空洞卷积块里包含指定扩张率(如Dilation rate=3)的卷积算子。本申请实施例中,使用4种渐进的扩张率的空洞卷积块,相当于使用不同感受野提取输入在不同分辨率下的特征,可以更好地对数据进行相对全面的分析。经过4个指定扩张率的空洞卷积块的残差处理后,与跳连接过来的输入相加,得到残差块的输出结果,并将输出结果输出到与残差块连接的卷积层。

这里,进一步对图12A任意一个残差单元进行描述,如图12B所示。对于任意一个残差单元,内部包含指定扩张率的空洞卷积(用于扩大感受野),可以用PReLU作为激活函数;此外,还可以级联一个或者多个因果卷积(用于提取局部信息),可以用PReLU作为激活函数。上述指定扩张率的空洞卷积的卷积核大小可以是3、5、7、9等,上述因果卷积的卷积核大小可以是1、3等。本申请本实施例并不限制上述指定扩张率的空洞卷积或者因果卷积的卷积核大小。另外,本申请实施例中的因果卷积或空洞卷积也可以由其他具体相似或等同功能的卷积单元实施。

此外,对于残差单元,为了减少算法复杂度,引入了分组卷积的算法。分组卷积就是将输入通道分成多个组别进行卷积运算,只在每个组内的输入通道和输出通道产生关联。这里,假定输入通道为16、输出通道为32。如果分组数为1,每个输入通道均与32个输出通道产生关联。如果分组数为2,首先将16个输入通道分成0-7和8-15两个组,在两个组内,输入通道与本组内的输出通道产生关联,例如第一组中的输入通道0-7与输出通道的0-15相关联,第二组中的输入通道8-15与输出通道的16-31相关联,比如第0个输出通道,只与第0-7输入通道产生关联,不与第8-15输入通道产生关联,第25个输出通道,只与第8-15输入通道产生关联,不与第0-7输入通道产生关联。这样一比较可以看出,引入分组卷积,可以避免任意输入通道与所有输出通道产生关联,减少连接数,可以降低复杂度。当然,由于分组数越大,输入通道和输出通道的关联度越小,也会影响编码效果,因此并不是分组数越大越好。本申请实施例中,4个编码块中对应的4个残差块包含的空洞卷积,可以使用不同的分组数配置,具体的分组数配置如表1所示。

表1.不同编码块中残差单元使用的分组数配置

最后,对256×1的张量,再经过类似预处理的因果卷积,可以输出一个56维的特征向量F

步骤13、对高频子带信号x

高频分析的目的是提取高频子带信号x

在一些实施例中,可以参考步骤12,引入另一个与第三NN类似的第四NN的结构,生成低维度的特征向量。相对低频子带信号,高频子带信号对质量的重要程度相对低,因此,针对高频子带信号的NN结构也无需像第三NN那么复杂。如图13所示的针对高频子带信号的第四NN结构,该第四NN结构与第三NN的结构类似,但是相比第三NN的结构,第四NN大幅度减少通道数。

然而,对于高频子带信号,虽然通过如图13所示的第四NN结构,高频子带信号的数据量减少很多,但是第四NN结构的模型复杂度仍然比较复杂。因此,本申请实施例提出另一种方法压缩高频子带信号,即频带扩展(从频带受限的窄带音频信号中恢复宽带音频信号)。下面具体介绍本申请实施例中频带扩展的应用:

对于包括320点的高频子带信号x

将320个点的MDCT系数分成N个子带,这里的子带就是将相邻的多个MDCT系数组成一组,320个点的MDCT系数可以分成8个子带。例如,可以均匀分配320个点,即每个子带包括的点的数量一致。当然,本申请实施例不可以对320个点进行非均匀划分,比如偏低频的子带包括的MDCT系数更少(频率分辨率更高),偏高频的子带包括的MDCT系数更多(频率分辨率更低)。

根据奈奎斯特(Nyquist)采样定律(要从抽样信号中无失真地恢复原信号,抽样频率应大于2倍原信号最高频率,抽样频率小于2倍频谱最高频率时,信号的频谱有混叠,抽样频率大于2倍频谱最高频率时,信号的频谱无混叠),上述320个点的MDCT系数表示了8-16kHz的频谱。但超宽带语音通信,不一定要求频谱到16kHz,比如,如果设置频谱到14kHz,只需要考虑前240个点的MDCT系数,对应地,子带数可以控制为6。

对于每一个子带,计算当前子带中所有MDCT系数的平均能量作为子带谱包络(频谱包络是经过频谱各主峰值点的平滑曲线),比如,当前子带中包括的MDCT系数为x(n),n=1,2,…,40,则平均能量Y=((x(1)

总之,使用上述两种方法(NN结构和频带扩展)中任意一种方法,均可以将320维的高频子带信号,输出为一个8维的特征向量。因此,只需少量数据量,即可表示高频信息,编码效率显著提升。

步骤14、量化编码。

对于低频子带信号的特征向量F

对特征向量进行量化编码后,可以生成对应的码流。根据实验,通过6-10kbps码率就可以对32kHz超宽带信号实现高质量压缩。

关于低频部分以及高频部分的解码端的流程如下:

步骤21、量化解码。

量化解码是量化编码的逆过程。对于收到码流(包括高频码流以及低频码流),先进行熵解码,并通过查量化表,获得低频码流的特征向量的估计值F′

步骤22、基于低频码流的特征向量的估计值F′

首先,基于低频码流的特征向量的估计值F′

首先,调用一个因果卷积,可以将输入的张量F′

接下来,级联4个不同上采样因子(Up_factor)的解码块。每个解码块包含一个卷积层、一个上采样模块、一个残差块,其中,一个卷积层用于将输入通道数减半;一个上采样模块包含特定Up_factor,用于以完成升采样;一个残差块包括4个基于空洞卷积的残差单元(Residual Unit)。4个解码块的Up_factor分别设置为5、4、4、2。因此,4个解码块输出通道数分别设置为128、64、32、16。经过4解码块处理,256×1张量分别转换成128×5、64×20、32×80和16×160的张量。其中,本申请实施例并不局限解码块的数量,可以是2个、3个、4个、5个等任意正整数。

这里,对于包含特定Up_factor的升采样模块,可以采用复制(Repeat)操作,通过重复填充的方式,完成升采样操作。这样,可以节省复杂度。

这里,解码端的4个基于空洞卷积的残差单元的配置与编码端的残差单元的配置类似,包括但不限于残差单元的内部结构、卷积核大小、扩张率等。解码块中空洞卷积使用的分组数配置如表2所示。这里解码块中,采用更多的分组数为2,是为了关联更多的输入通道和输出通道,提升语音重建的质量。

表2.不同解码块中残差单元使用的分组数配置

然后,对级联解码块输出的16×160的张量进行后处理。例如对对级联解码块输出的16×160的张量做因子为2的Repeat操作,以完成上采样,然后进行卷积运算并使用激活函数可以为PReLU的操作,生成16×320的张量。

最后,调用一个因果卷积,可以将输入的16×320张量,转换为1×320的张量,以重建低频子带信号。

步骤23、对高频子带信号的特征向量的估计值F′

与编码端的高频分析类似,本申请实施例中的高频重建包含两种方案。

高频重建的第一种实现,如图15所示的第二神经网络,对应于编码端中高频分析的第一种实现(对应图13所示的第四NN结构)。基于高频子带信号的特征向量的估计值F′

其中,第二神经网络的结构与高频分析的第一种实现(图13)类似,比如因果卷积,后处理结构类似于高频分析的第一种实现中的预处理的结构。其中,解码块结构与编码侧的编码块是对称的,编码侧的编码块是先做空洞卷积,再池化以完成降采样,解码侧的解码块是先进行池化以完成升采样,再做空洞卷积。

高频重建的第二种实现,对应于编码端高频分析的第二种实现(对应频带扩展技术)。基于高频码流中解码出来的8个幅度谱子带谱包络,即高频的特征向量的估计值F′

先将解码端生成的低频子带信号的估计值x′

然后,将由x′

接下来,调用前面获得的8个子带谱包络(即通过查询量化表后得到的8个子带谱包络),这8个子带谱包络对应8个高频子带,并将生成的320个点的高频子带信号的MDCT系数的参考值分为8个参考高频子带,基于一个高频子带与对应的参考高频子带,对生成的320点的高频子带信号的MDCT系数的参考值进行增益控制(频域上就是做乘法),例如根据高频子带的平均能量与对应的参考高频子带的平均能量计算增益因子,将该对应的参考高频子带中的每个点对应的MDCT系数乘以增益因子,确保解码虚拟生成的高频MDCT系数的能量,与编码端原始的系数能量接近。

例如,假定参考高频子带(即由生成的高频部分信号的320个点的MDCT系数的参考值所划分得到的子带)的平均能量是Y_L,当前高频子带(即基于码流解码出来的子带谱包络对应的子带)的平均能量是Y_H,则计算一个增益因子a=sqrt(Y_H/Y_L),其中,sqrt()表示平方根计算函数,用于计算(Y_H/Y_L)的平方根。有了增益因子a后,直接将参考高频子带中的每个点的MDCT系数均乘以a。经过增益控制后的MDCT系数(虚拟生成的)的平均能量,就跟编码端原始的非常接近的。

最后,调用MDCT反变换,生成高频子带信号的估计值x′

步骤24、合成滤波器

在解码端获得了低频子带信号的估计值x′

本申请实施例可以通过采集数据,对编码端和解码端的相关网络进行联合训练,获得最优参数。用户仅需准备好数据和设置相应的网络结构,在后台完成训练后,即可将训练好的模型投入使用。

综上,本申请实施例提供的基于神经网络的音频编解码方法通过信号分解、信号处理技术与深度神经网络的有机结合,在保证音频质量、且复杂度可接受的情况下,较信号处理方案显著提升提高编码效率。

至此已经结合本申请实施例提供的终端设备的示例性应用和实施,说明本申请实施例提供的音频编码方法或音频解码方法。本申请实施例还提供音频编码装置以及音频解码装置,实际应用中,音频编码装置以及音频解码装置中的各功能模块可以由电子设备(如终端设备、服务器或服务器集群)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)、存储器协同实现。图3A示出了存储在存储器550中的音频编码装置555以及图3B示出了存储在存储器650中的音频解码装置655,其可以是程序和插件等形式的软件,例如,软件C/C++、Java等编程语言设计的软件模块、C/C++、Java等编程语言设计的应用软件或大型软件系统中的专用软件模块、应用程序接口、插件、云服务等实现方式,下面对不同的实现方式举例说明。

其中,音频编码装置555包括一系列的模块,包括特征提取模块5551、编码模块5552、信号编码模块5553。下面继续说明本申请实施例提供的音频编码装置555中各个模块配合实现音频编码的方案。

特征提取模块5551,用于对音频信号进行特征提取处理,得到所述音频信号的音频特征;编码模块5552,用于利用至少一个残差单元,对所述音频特征进行残差处理,得到所述音频信号的编码特征;信号编码模块5553,用于对所述音频信号的编码特征进行信号编码处理,得到所述音频信号的音频码流。

其中,音频解码装置655包括一系列的模块,包括信号解码模块6551、解码模块6552、特征重建模块6553。下面继续说明本申请实施例提供的音频解码装置655中各个模块配合实现音频解码的方案。

信号解码模块6551,用于对音频码流进行信号解码处理,得到所述音频码流对应的编码特征;其中,所述音频码流是对音频信号进行音频编码得到的;解码模块6552,用于利用至少一个残差单元,对所述音频码流对应的编码特征进行残差处理,得到所述音频码流对应的音频特征;特征重建模块6553,用于对所述音频码流对应的音频特征进行特征重建处理,得到所述音频码流对应的合成音频信号。

在一些实施例中,解码模块6552还用于对所述音频码流对应的编码特征进行特征解码处理,得到所述音频码流对应的残差特征;通过所述至少一个残差单元,对所述音频码流对应的残差特征进行特征残差处理,得到所述音频码流对应的音频特征。

在一些实施例中,当至少一个残差单元为多个级联的残差单元时,所述解码模块6552还用于通过所述多个级联的残差单元的第一个残差单元,对所述残差特征进行残差处理;将所述第一个残差单元输出的残差结果输出到后续级联的残差单元,通过后续级联的残差单元继续进行残差处理以及残差结果的输出;将所述最后一个残差单元输出的残差结果作为所述音频码流对应的音频特征。

在一些实施例中,所述解码模块6552还用于通过所述多个级联的残差单元的第一个残差单元执行以下处理:对所述残差特征进行卷积处理,得到所述第一个残差单元的卷积结果;将所述第一个残差单元的卷积结果与所述残差特征进行相加处理,得到所述第一个残差单元输出的残差结果;通过所述多个级联的残差单元的第j个残差单元执行以下处理:对第j-1个残差单元输出的残差结果进行卷积处理,得到所述第j个残差单元的卷积结果;将所述j个残差单元的卷积结果与所述第j-1个残差单元输出的残差结果进行相加处理,得到所述第j个残差单元输出的残差结果;将所述第j个残差单元输出的残差结果输出到第j+1个残差单元;其中,j为依次递增的正整数,1<j<J,J为所述残差单元的数量。

在一些实施例中,每个所述残差单元包括空洞卷积算子;所述解码模块6552还用于通过所述第一个残差单元包括的空洞卷积算子,对所述残差特征进行空洞卷积处理。

在一些实施例中,所述解码模块6552还用于对所述残差特征的输入通道进行分组处理,得到多个组别,其中,每个所述组别包括所述残差特征中的至少两个通道对应的第一元素;对每个所述组别内的第一元素进行空洞卷积处理。

在一些实施例中,每个所述残差单元还包括至少一个因果卷积算子;所述通过所述第一个残差单元包括的空洞卷积算子,对所述残差特征进行空洞卷积处理之后,所述解码模块6552还用于通过所述第一个残差单元包括的至少一个因果卷积算子,对得到的第一空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为所述第一个残差单元的卷积结果。

在一些实施例中,所述第二残差模块6553还用于对所述空洞卷积结果的输入通道进行分组处理,得到多个组别,其中,每个所述组别包括所述空洞卷积结果中的至少两个通道对应的第二元素;对每个所述组别内的第二元素进行因果卷积处理。

在一些实施例中,用于音频解码的第一神经网络包括多个级联的解码块,每个所述解码块包括特征解码块以及至少一个残差单元;所述解码模块6552还用于通过所述多个级联的解码块中的特征解码块,对所述音频码流对应的编码特征进行特征解码处理,得到所述音频码流对应的残差特征;通过所述多个级联的解码块中的至少一个残差单元,对所述音频码流对应的残差特征进行残差处理,得到所述音频码流对应的音频特征。

在一些实施例中,所述解码模块6552还用于通过所述多个级联的解码块的第一个解码块中的特征解码块,对所述音频码流对应的编码特征进行特征解码处理,并将所述第一个解码块中的特征解码块输出的解码结果输出到所述第一个解码块中的至少一个残差单元;通过所述多个级联的解码块的第i个解码块中的特征解码块,对第i-1个解码块中的至少一个残差单元输出的残差结果进行特征解码处理,并将所述第i个解码块中的特征解码块输出的解码结果输出到所述第i个解码块中的至少一个残差单元;将所述最后一个解码块中的特征解码块输出的解码结果作为所述音频码流对应的残差特征;其中,i为依次递增的正整数,1<i≤I,I为所述解码块的数量;通过所述多个级联的解码块的最后一个解码块中的至少一个残差单元,对所述音频码流对应的残差特征进行残差处理,得到所述音频码流对应的音频特征。

在一些实施例中,所述解码模块6552还用于通过所述多个级联的解码块的第一个解码块中的特征解码块执行以下处理:对所述音频码流对应的编码特征进行卷积处理,得到卷积特征,其中,所述卷积特征的通道数小于所述编码特征的通道数;对所述卷积特征进行上采样处理,得到所述第一个解码块中的特征解码块输出的解码结果。

在一些实施例中,所述特征重建6553还用于对所述音频码流对应的音频特征进行上采样处理,得到上采样特征;对所述上采样特征进行因果卷积处理,得到所述音频码流对应的合成音频信号。

在一些实施例中,所述音频码流为全频码流中的低频码流,所述全频码流包括所述低频码流以及高频码流;所述信号解码模块6551还用于对所述高频码流进行信号解码处理,得到所述高频码流对应的高频编码特征;其中,所述高频码流是对所述音频信号的高频子带信号进行音频编码得到的;对所述高频码流对应的高频编码特征进行高频重建处理,得到所述高频码流对应的高频子带信号;对所述低频码流对应的合成音频信号以及所述高频子带信号进行子带合成处理,得到合成音频信号。

在一些实施例中,所述信号解码模块6551还用于调用第二神经网络,对所述高频编码特征进行基于所述第二神经网络的特征重建处理,得到所述高频码流对应的高频子带信号,其中,所述第二神经网络模型的通道数小于第一神经网络的通道数,其中,所述第一神经网络用于从所述音频码流中重建出所述合成音频信号;或者,对所述高频编码特征进行频带扩展的逆处理,得到所述高频码流对应的高频子带信号。

本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机可执行指令,该计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的音频编码方法或音频解码方法。

本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的音频编码方法或音频解码方法,例如,如图4A示出的音频编码方法。

在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备。

在一些实施例中,计算机可执行指令(简称可执行指令)可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。

可以理解的是,在本申请实施例中,涉及到用户信息等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

相关技术
  • 一种编码方法、解码方法及装置、计算机可读存储介质
  • 一种音频检测方法、装置、设备及计算机可读存储介质
  • 音频播放方法、装置及计算机可读存储介质
  • 音频对齐方法、装置、计算机设备以及可读存储介质
  • 同场景音频处理方法、装置、计算机可读存储介质及系统
  • 音频编码方法和设备、音频解码方法和设备及其记录介质和采用音频编码方法和设备、音频解码方法和设备的多媒体装置
  • 音频编码装置、音频解码装置、音频编码方法、音频解码方法和信息记录介质
技术分类

06120116499937