CN117831548A - 音频编解码系统的训练方法、编码方法、解码方法、装置 - Google Patents

音频编解码系统的训练方法、编码方法、解码方法、装置 Download PDF

Info

Publication number
CN117831548A
CN117831548A CN202311832234.8A CN202311832234A CN117831548A CN 117831548 A CN117831548 A CN 117831548A CN 202311832234 A CN202311832234 A CN 202311832234A CN 117831548 A CN117831548 A CN 117831548A
Authority
CN
China
Prior art keywords
audio
network
coding
decoding
sample
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311832234.8A
Other languages
English (en)
Inventor
肖玮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311832234.8A priority Critical patent/CN117831548A/zh
Publication of CN117831548A publication Critical patent/CN117831548A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供了一种音频编解码系统的训练方法、编码方法、解码方法、装置;音频编解码系统的训练方法包括:获取第一音频编解码系统,其中,第一音频编解码系统包括第一编码网络以及第一解码网络,第一编码网络以及第一解码网络是通过第一音频样本训练得到的;响应于针对第一编码网络的配置请求,确定与第一编码网络对应的待训练的第二编码网络;基于待训练的第二编码网络对第二音频样本进行编码处理,得到第二音频样本的音频码流样本,并基于第一解码网络对音频码流样本进行解码处理,得到第二音频样本的合成音频样本;基于合成音频样本更新待训练的第二编码网络的参数,得到训练后的第二编码网络。

Description

音频编解码系统的训练方法、编码方法、解码方法、装置
技术领域
本申请涉及人工智能技术,尤其涉及一种音频编解码系统的训练方法、编码方法、解码方法、装置。
背景技术
人工智能(AI,Artificial Intelligence)是计算机科学的一个综合技术,通过研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,例如自然语言处理技术以及机器学习/深度学习等几大方向,随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
音频编解码技术是人工智能领域的重要应用之一,音频编解码技术是包括远程音视频通话在内的通信服务中的一项核心技术。语音编码技术,简单讲,就是使用较少的网络带宽资源去尽量多的传递语音信息。从香农信息论的角度来讲,语音编码是一种信源编码,信源编码的目的是在编码端尽可能的压缩我们想要传递信息的数据量,去掉信息中的冗余,同时在解码端还能够无损(或接近无损)的恢复出来。
相关技术中,音频编解码系统中的编码网络以及解码网络的训练周期很长,升级成本过高,无法满足用户需求。
发明内容
本申请实施例提供一种音频编解码系统的训练方法、编码方法、解码方法、装置,能够缩短音频编解码系统的训练周期。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种音频编解码系统的训练方法,包括:
获取第一音频编解码系统,其中,所述第一音频编解码系统包括第一编码网络以及第一解码网络,所述第一编码网络以及所述第一解码网络是通过第一音频样本训练得到的;
响应于针对所述第一编码网络的配置请求,确定与所述第一编码网络对应的待训练的第二编码网络;
基于所述待训练的第二编码网络对第二音频样本进行编码处理,得到所述第二音频样本的音频码流样本,并基于所述第一解码网络对所述音频码流样本进行解码处理,得到所述第二音频样本的合成音频样本;
基于所述合成音频样本更新所述待训练的第二编码网络的参数,得到训练后的第二编码网络。
本申请实施例提供一种音频编码方法,包括:
获取音频信号;
调用第一音频编解码系统中的训练后的第二编码网络,对所述音频信号进行编码处理,得到所述音频信号的第二编码特征,其中,所述第一音频编解码系统包括所述训练后的第二编码网络以及第一解码网络;
对所述音频信号的第二编码特征进行信号编码处理,得到所述音频信号的第二音频码流;
其中,第一音频码流与所述第二音频码流均能通过所述第一解码网络解码出所述音频信号对应的合成音频信号,所述第一音频码流是所述音频信号经过第一编码网络处理后得到的音频码流,所述训练后的第二编码网络是通过音频编解码系统的训练方法针对所述第一编码网络训练得到的。
本申请实施例提供一种音频解码方法,包括:
获取音频码流;
对所述音频码流进行信号解码处理,得到所述音频码流对应的编码特征估计值;
调用第一音频编解码系统中的第一解码网络,对所述编码特征估计值进行解码处理,得到所述音频码流对应的合成音频信号;
其中,所述第一音频编解码系统包括训练后的第二编码网络以及所述第一解码网络,所述音频码流是音频信号经过所述训练后的第二编码网络或第一编码网络处理后得到的,所述训练后的第二编码网络是通过音频编解码系统的训练方法针对所述第一编码网络训练得到的。
本申请实施例提供一种音频编解码系统的训练装置,包括:
第一获取模块,用于获取第一音频编解码系统,其中,所述第一音频编解码系统包括第一编码网络以及第一解码网络,所述第一编码网络以及所述第一解码网络是通过第一音频样本训练得到的;
确定模块,用于响应于针对所述第一编码网络的配置请求,确定与所述第一编码网络对应的待训练的第二编码网络;
训练模块,用于基于所述待训练的第二编码网络对第二音频样本进行编码处理,得到所述第二音频样本的音频码流样本,并基于所述第一解码网络对所述音频码流样本进行解码处理,得到所述第二音频样本的合成音频样本;
基于所述合成音频样本更新所述待训练的第二编码网络的参数,得到训练后的第二编码网络。
本申请实施例提供一种音频编码装置,包括:
第二获取模块,用于获取音频信号;
编码模块,用于调用第一音频编解码系统中的训练后的第二编码网络,对所述音频信号进行编码处理,得到所述音频信号的第二编码特征,其中,所述第一音频编解码系统包括所述训练后的第二编码网络以及第一解码网络;
信号编码模块,用于对所述音频信号的第二编码特征进行信号编码处理,得到所述音频信号的第二音频码流;
其中,第一音频码流与所述第二音频码流均能通过所述第一解码网络解码出所述音频信号对应的合成音频信号,所述第一音频码流是所述音频信号经过第一编码网络处理后得到的音频码流,所述训练后的第二编码网络是通过音频编解码系统的训练方法针对所述第一编码网络训练得到的。
本申请实施例提供一种音频解码装置,包括:
第三获取模块,用于获取音频码流;
信号解码模块,用于对所述音频码流进行信号解码处理,得到所述音频码流对应的编码特征估计值;
解码模块,用于调用第一音频编解码系统中的第一解码网络,对所述编码特征估计值进行解码处理,得到所述音频码流对应的合成音频信号;
其中,所述第一音频编解码系统包括训练后的第二编码网络以及所述第一解码网络,所述音频码流是音频信号经过所述训练后的第二编码网络或第一编码网络处理后得到的,所述训练后的第二编码网络是通过音频编解码系统的训练方法针对所述第一编码网络训练得到的。
本申请实施例提供一种电子设备,所述电子设备包括:
存储器,用于存储计算机程序或计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机程序或计算机可执行指令时,实现本申请实施例提供的音频编解码系统的训练方法,或音频编码方法或音频解码方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,被处理器执行时,实现本申请实施例提供的音频编解码系统的训练方法,或音频编码方法或音频解码方法。
本申请实施例提供一种计算机程序产品,包括计算机可执行指令,所述计算机可执行指令被处理器执行时实现本申请实施例提供的音频编解码系统的训练方法,或音频编码方法或音频解码方法。
本申请实施例具有以下有益效果:
由于在训练第二编码网络时,第一解码网络的参数不变,因此节省了针对第一解码网络的训练过程,相对于相关技术中同时训练第一解码网络以及待训练的第二编码网络,能够缩短音频编解码系统的训练周期,从而降低了音频编解码系统中编码网络的升级成本,以满足用户的实际应用需求;并且,固定第一解码网络的参数不变,训练第二编码网络,能够保证经过训练后的第二编码网络处理得到的码流,可以被第一解码网络正确解码,由于经过第一编码网络处理得到的码流,也可以被第一解码网络正确解码,因此保证了音频编解码系统的前向兼容性。
附图说明
图1是本申请实施例提供的不同码率下的频谱比较示意图;
图2A是本申请实施例提供的音频编解码系统的训练平台示意图;
图2B是本申请实施例提供的音频编解码系统的架构示意图;
图3A是本申请实施例提供的电子设备的结构示意图;
图3B是本申请实施例提供的电子设备的结构示意图;
图3C是本申请实施例提供的电子设备的结构示意图;
图4A-图4H是本申请实施例提供的音频编解码系统的训练方法的流程示意图;
图5是本申请实施例提供的音频编码方法的流程示意图;
图6A是本申请实施例提供的音频解码方法的流程示意图;
图6B是本申请实施例提供的语音通信链路示意图;
图7是本申请实施例提供的音频编解码系统的训练方法的流程示意图;
图8A是本申请实施例提供的普通卷积网络的示意图;
图8B是本申请实施例提供的空洞卷积网络的示意图;
图9是本申请实施例提供的第一编码网络的示意图;
图10A是本申请实施例提供的编码块中使用的残差块结构示意图;
图10B是本申请实施例提供的残差单元结构示意图;
图11是本申请实施例提供的第一解码网络的示意图;
图12是本申请实施例提供的第二编码网络的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
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可知,随着编码码率的提升,压缩后的信号更为接近原始信号。
语音编码原理大致如下:语音编码可以直接对语音波形样本,逐样本地进行编码;或者,基于人的发声原理,提取相关低维度特征,编码端对特征进行编码,解码端基于这些参数重建语音信号。
上述编码原理均来自语音信号建模,即基于信号处理的压缩方法,无法保证音频的编码质量。对此,本申请实施例通过基于深度学习的技术,以在保证语音质量的情况下,提高编解码效率。目前看,基于深度学习的技术,的确能够带来低码率高质量的效果。但是,这种方法也存在以下两个典型问题:
1)这种编解码方法的复杂度比较高。对于一些实时音视频应用场景,过高复杂度会限制音频应用推广。此外,基于深度学习的编解码系统的训练周期很长,几天到几周不等,迭代成本高。
2)为了保证通信系统中的前向兼容的准则,只能先替换旧版本的编码器以及解码器后,再更新编码器以及解码器,工程改造难度大。
为了解决上述问题,本申请实施例提供一种音频编解码系统的训练方法、音频编码方法、音频解码方法、装置、电子设备、计算机可读存储介质及计算机程序产品。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为终端设备,也可以实施为服务器,或者由终端设备和服务器协同实施。
下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为笔记本电脑、平板电脑、台式计算机、机顶盒、移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备,车载设备)、智能手机、智能音箱、智能手表、智能电视、车载终端等各种类型的用户终端。下面,将说明电子设备实施为服务器时示例性应用。
以服务器为例,例如可以是部署在云端的服务器集群,向用户开放人工智能云服务(AI as a Service,AIaaS),AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务,这种服务模式类似于一个AI主题商城,所有的用户都可以通过应用程序编程接口的方式来接入使用AIaaS平台提供的一种或者多种人工智能服务。
例如,其中的一种人工智能云服务可以为音频编解码系统的训练服务,即云端的服务器封装有本申请实施例提供的音频编解码系统的训练程序。用户通过终端(运行有客户端,例如音响客户端、车载客户端等)调用云服务中的音频编解码系统的训练服务,以使部署在云端的服务器调用封装的音频编解码系统的训练程序,训练出第二编码网络。
参见图2A,图2A是本申请实施例提供的音频编解码系统的训练平台10A的应用场景示意图,终端设备100通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
终端设备100(运行有客户端,例如音响客户端、车载客户端等)可以被用来获取针对音频编解码系统的训练请求,例如,用户通过终端100加载第一音频编解码系统(包括第一编码网络以及第一解码网络),则终端100自动获取第一音频编解码系统,并自动生成针对音频编解码系统的训练请求。
在一些实施例中,终端设备100中运行的客户端中可以植入有音频编解码系统的训练插件,用以在客户端本地实现音频编解码系统的训练方法。例如,终端设备100获取针对音频编解码系统的训练请求后,调用音频编解码系统的训练插件,以实现音频编解码系统的训练方法,首先获取第一音频编解码系统,其中,第一音频编解码系统包括第一编码网络以及第一解码网络,第一编码网络以及第一解码网络是通过第一音频样本训练得到的;响应于针对第一编码网络的配置请求,确定与第一编码网络对应的待训练的第二编码网络;基于待训练的第二编码网络对第二音频样本进行编码处理,得到第二音频样本的音频码流样本,并基于第一解码网络对音频码流样本进行解码处理,得到第二音频样本的合成音频样本;基于合成音频样本更新待训练的第二编码网络的参数,得到训练后的第二编码网络。由于在训练第二编码网络时,第一解码网络的参数不变,因此节省了针对第一解码网络的训练过程,相对于相关技术中同时训练第一解码网络以及待训练的第二编码网络,能够缩短音频编解码系统的训练周期,从而降低了音频编解码系统中编码网络的升级成本,以满足用户的实际应用需求。
在一些实施例中,终端设备100获取针对音频编解码系统的训练请求后,调用服务器200的音频编解码系统的训练接口(可以提供为云服务的形式,即音频编解码系统的训练服务),服务器200调用音频编解码系统的训练插件,以实现音频编解码系统的训练方法,首先获取第一音频编解码系统,其中,第一音频编解码系统包括第一编码网络以及第一解码网络,第一编码网络以及第一解码网络是通过第一音频样本训练得到的;响应于针对第一编码网络的配置请求,确定与第一编码网络对应的待训练的第二编码网络;基于待训练的第二编码网络对第二音频样本进行编码处理,得到第二音频样本的音频码流样本,并基于第一解码网络对音频码流样本进行解码处理,得到第二音频样本的合成音频样本;基于合成音频样本更新待训练的第二编码网络的参数,得到训练后的第二编码网络。由于在训练第二编码网络时,第一解码网络的参数不变,因此节省了针对第一解码网络的训练过程,相对于相关技术中同时训练第一解码网络以及待训练的第二编码网络,能够缩短音频编解码系统的训练周期,从而降低了音频编解码系统中编码网络的升级成本,以满足用户的实际应用需求。
综上,通过上述方式训练出第二编码网络后,可将训练后的第二编码网络以及第一解码网络上线应用,即将训练后的第二编码网络以及第一解码网络分别集成到一个终端设备,以分别实现音频编码方法以及音频解码方法。
示例的,参见图2B,图2B是本申请实施例提供的音频编解码系统10B(即上线的包括第二编码网络以及第一解码网络的音频编解码系统)的架构示意图,音频解码系统10B包括:服务器200、网络300、终端设备400(即编码端)和终端设备500(即解码端),其中,网络300可以是局域网,或者是广域网,又或者是二者的组合。
在一些实施例中,在终端设备400上运行有客户端410,客户端410可以是各种类型的客户端,例如即时通信客户端、网络会议客户端、直播客户端、浏览器等。客户端410响应于发送方(例如网络会议的发起者、主播、语音通话的发起者等)触发的音频采集指令,调用终端设备400自带的麦克风进行音频信号的采集,并对采集得到的音频信号进行音频编码处理,得到音频码流。
例如,客户端410调用本申请实施例提供的音频编码方法对采集得到的音频信号进行编码,即调用训练后的第二编码网络,对音频信号进行编码处理,得到音频信号的第二编码特征;对音频信号的第二编码特征进行信号编码处理,得到音频信号的第二音频码流。
客户端410可以将音频码流封装通过网络300发送至服务器200,以使服务器200将音频码流封装发送至接收方(例如网络会议的参会对象、观众、语音通话的接收者等)关联的终端设备500。
客户端510(例如即时通信客户端、网络会议客户端、直播客户端、浏览器等)在接收到服务器200发送的音频码流封装后,可以对音频码流封装进行音频解码处理,以得到合成音频信号,从而实现音频通信。
例如,客户端510调用本申请实施例提供的音频解码方法对接收到的音频码流封装进行解码,即对音频码流进行信号解码处理,得到音频码流对应的编码特征估计值;调用第一解码网络,对编码特征估计值进行解码处理,得到音频码流对应的合成音频信号。
需要说明的是,图2A中示出的服务器200与图2B示出的服务器200可以是同一个服务器,也可以是不同的服务器。图2A中示出的终端设备100与图2B示出的终端设备400或终端设备500可以是同一个终端设备,也可以是不同的终端设备。
在一些实施例中,本申请实施例可以借助云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、存储、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。上述图2A示出的服务器200之间的服务交互功能可以通过云技术实现。
示例的,图2A中示出的服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。图2A中示出的终端设备100、图2B中示出的终端设备400和终端设备500可以是笔记本电脑、平板电脑、台式计算机、机顶盒、移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备,车载设备)、智能手机、智能音箱、智能手表、智能电视、车载终端等各种类型的用户终端,但并不局限于此。图2B中示出的终端设备(例如终端设备400和终端设备500)以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
在一些实施例中,终端或服务器可以通过运行各种计算机可执行指令或计算机程序来实现本申请实施例提供的音频编解码系统的训练方法、音频编码方法或音频解码方法。举例来说,计算机可执行指令可以是微程序级的命令、机器指令或软件指令。计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如直播类的应用程序或者即时通信应用程序;也可以是嵌入至任意APP中的小程序,即只需要下载到浏览器环境中就可以运行的程序。总而言之,上述的计算机可执行指令可以是任意形式的指令,上述计算机程序可以是任意形式的应用程序、模块或插件。
在一些实施例中,多个服务器可组成为一区块链,而图2A中示出的服务器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用于实现音频编码功能,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
参见图3C,图3C是本申请实施例提供的电子设备700的结构示意图,以电子设备700是终端设备为例说明,图3B所示的电子设备700包括:至少一个处理器720、存储器750、至少一个网络接口730和用户接口740。电子设备700中的各个组件通过总线系统750耦合在一起。存储器750包括操作系统751、网络通信模块752。需要说明的是,图3C中的结构的功能与图3A中的结构的功能类似。本申请实施例提供的音频解码装置可以采用软件方式实现,图3B示出了存储在存储器750中的音频解码装置755,其可以是程序和插件等形式的软件,包括以下软件模块:第三获取模块7551、信号解码模块7552、解码模块7553,其中,第三获取模块7551、信号解码模块7552、解码模块7553用于实现音频解码功能,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
如前所述,本申请实施例提供的音频编解码系统的训练方法可以由各种类型的电子设备实施。参见图4A,图4A是本申请实施例提供的音频编解码系统的训练方法的流程示意图,下面结合图4A示出的步骤1-步骤4进行说明。
在步骤1中,获取第一音频编解码系统,其中,第一音频编解码系统包括第一编码网络以及第一解码网络,第一编码网络以及第一解码网络是通过第一音频样本训练得到的。
这里,第一音频编解码系统中的第一编码网络与第一解码网络是匹配的,也就是第一解码网络能够正确解码由第一编码网络编码得到的音频码流。第一编码网络以及第一解码网络为训练好的神经网络,可应用于线上业务。例如,第一音频编解码系统为已在线上应用的音频编解码系统,也即第一编码网络为线上应用的编码网络,可对接收到的音频信号进行编码,以获得音频码流;第一解码网络为线上应用的解码网络,可对接收到的音频码流进行解码,以获得合成音频信号,从而恢复出音频信号。
在步骤2中,响应于针对第一编码网络的配置请求,确定与第一编码网络对应的待训练的第二编码网络。
其中,针对第一编码网络的配置请求用于指示修改第一编码网络的配置数据,以确定出与第一编码网络对应的待训练的第二编码网络,也就是待训练的第二编码网路为更新第一编码网络后所得到的编码网络。
这里,当需要更新第一音频编解码系统中的第一编码网络时,修改第一编码网络的配置数据,则自动生成针对第一编码网络的配置请求,响应于针对第一编码网络的配置请求,确定与第一编码网络对应的待训练的第二编码网络。
在一些实施例中,配置请求包括针对针对第一编码网络的同构网络配置请求,其中,同构网络配置请求表示更新第一编码网络所得到的待训练的第二编码网络的网络结构与第一编码网络的网络结构相同,也就是待训练的第二编码网络为基于同构网络配置请求构建的第一编码网络的同构网络。同构网络配置请求用于指示修改以下第一配置数据至少之一:训练第一音频编解码系统的第一音频样本、训练第一音频编解码系统的训练策略。其中,训练策略为训练神经网络的策略,例如无监督学习策略、监督学习策略、迭代次数、训练批次等。
这里,当同构网络配置请求用于指示修改第一音频样本时,第二音频样本为基于同构网络配置请求修改后的第一音频样本,也就是第一音频样本与第二音频样本不同,例如,第一音频样本为语音样本,第二音频样本为歌曲样本,则通过语音样本训练得到的第一编码网络用于对语音信号进行编码,适用于语音场景;通过歌曲样本训练得到的第二编码网络用于对歌曲信号进行编码,适用于歌唱场景。
这里,当同构网络配置请求用于指示修改训练第一音频编解码系统的训练策略时,修改后的训练策略用于结合第二音频样本对待训练的第二编码网络进行训练,得到训练后的第二编码网络,即通过第二音频样本以及修改后的训练策略,对第二编码网络进行训练,得到训练后的第二编码网络。其中,用于训练第二编码网络的训练策略为训练第一编码网络的训练策略修改后的训练策略,即训练第二编码网络的训练策略与训练第一编码网络的训练策略不同,例如训练第一编码网络的训练策略为无监督学习策略、训练第二编码网络的训练策略为监督学习策略。
在一些实施例中,配置请求包括针对针对第一编码网络的异构网络配置请求,异构网络配置请求用于指示修改以下第二配置数据至少之一:第一编码网络的网络结构、第一编码网络的参数量;步骤2可以通过以下方式实现:基于异构网络配置请求,修改第一编码网络的第二配置数据,得到待训练的第二编码网络。其中,待训练的第二编码网络为第一编码网络的异构网络。
例如,当异构网络配置请求用于指示修改第一编码网络的网络结构,则基于异构网络配置请求,修改第一编码网络的网络结构,得到待训练的第二编码网络,其中,待训练的第二编码网络的网络结构与第一编码网络的网络结构不同,待训练的第二编码网络的网络结构可以比第一编码网络的网络结构更加复杂,待训练的第二编码网络的网络结构也可以比第一编码网络的网络结构更加简单。
例如,当异构网络配置请求用于指示修改第一编码网络的参数量,则基于异构网络配置请求,修改第一编码网络的参数量,得到待训练的第二编码网络,其中,待训练的第二编码网络的参数量与第一编码网络的参数量不同,待训练的第二编码网络的参数量可以比第一编码网络的参数量更多,例如待训练的第二编码网络中的某一卷积层输出的变量维度大于第二编码网络中的相同层对应的卷积层输出的变量维度;待训练的第二编码网络的参数量可以比第一编码网络的参数量更少,例如待训练的第二编码网络中的某一卷积层输出的变量维度小于第二编码网络中的相同层对应的卷积层输出的变量维度。
需要说明的是,本申请实施例中的配置请求不局限于上述的异构网络配置请求或上述的同构网络配置请求,配置请求可以包括上述的异构网络配置请求以及上述的同构网络配置请求。
在一些实施例中,基于待训练的第二编码网络以及第一解码网络,构建第二音频编解码系统,即新的音频编解码系统。
这里,由于需要更新第一编码网络,因此基于针对第一编码网络的配置请求,确定与第一编码网络对应的待训练的第二编码网络,并保留第一音频编解码系统,第一音频编解码系统还是可以上线使用,基于基于待训练的第二编码网络以及第一解码网络,构建新的音频编解码系统,即第二音频编解码系统,以便后续将新的音频编解码系统上线使用。需要说明的是,第二音频编解码系统上线使用后,可以将第一音频编解码系统下线,即采用最新的音频编解码系统;第二音频编解码系统上线使用后,也可以保留第一音频编解码系统,即采用两个音频编解码系统均可以上线使用,两个音频编解码系统可使用不同的场景。
在步骤3中,基于待训练的第二编码网络对第二音频样本进行编码处理,得到第二音频样本的音频码流样本,并基于第一解码网络对音频码流样本进行解码处理,得到第二音频样本的合成音频样本,基于合成音频样本更新待训练的第二编码网络的参数,得到训练后的第二编码网络。
参见图4B,图4B是本申请实施例提供的音频编解码系统的训练方法的流程示意图,图4B示出步骤3可以通过以下步骤41-45实现:
在步骤41中,通过待训练的第二编码网络,对第二音频样本进行网络编码处理,得到第二音频样本的编码特征。
需要说明的是,如上述步骤2所示,待训练的第二编码网络可以是第一编码网络的同构网络,则通过不同于第一编码网络的训练样本或者训练策略对待训练的第二编码网络进行训练,使得训练后的第二编码网络与第一编码网络适用于不同的场景。待训练的第二编码网络也可以是第一编码网络的异构网络,待训练的第二编码网络的网络结构可以比第一编码网络的网络结构更加复杂,也就是相对于第一编码网络,增加第二编码网络的复杂度,通过增加编码网络的算力,可以提升编码效果;待训练的第二编码网络的网络结构也可以比第一编码网络的网络结构更加简单,也就是对第一编码网络的结构进行裁减,以得到更简单的第二编码网络,以降低编码网络的复杂度,适应轻量级应用。
下面以相对于第一编码网络,增加第二编码网络的复杂度(如待训练的第二编码网络包括第一编码网络的网络结构以及一维卷积层)为例进行说明。
参见图4C,图4C是本申请实施例提供的音频编解码系统的训练方法的流程示意图,图4C示出步骤41可以通过以下步骤411-412实现:
在步骤411中,通过待训练的第二编码网络包括的第一编码网络的网络结构,对第二音频样本进行网络编码处理,得到第二音频样本的初始编码特征。
参见图4D,图4D是本申请实施例提供的音频编解码系统的训练方法的流程示意图,图4D示出步骤411可以通过以下步骤4111-4112实现:
在步骤4111中,通过待训练的第二编码网络包括的第一编码网络的网络结构,对第二音频样本进行特征提取处理,得到第二音频样本的音频特征。
在一些实施例,步骤4111可以通过以下方式实现:通过待训练的第二编码网络包括的第一编码网络的网络结构,对第二音频样本进行因果卷积处理,得到因果卷积特征;对因果卷积特征进行池化处理,得到第二音频样本的音频特征。
在步骤4112中,通过待训练的第二编码网络包括的第一编码网络中的至少一个残差单元,对第二音频样本的音频特征进行残差处理,得到第二音频样本的初始编码特征。
参见图4E,图4E是本申请实施例提供的音频编解码系统的训练方法的一个流程示意图,图4E示出步骤4112可以通过步骤41121-41122实现。
在步骤41121中,通过待训练的第二编码网络包括的第一编码网络中的至少一个残差单元,对第二音频样本的音频特征进行特征残差处理,得到第二音频样本的残差特征。
在一些实施例中,当至少一个残差单元为一个残差单元时,步骤41121可以通过以下方式实现:通过待训练的第二编码网络包括的第一编码网络中的一个残差单元,对第二音频样本的音频特征进行残差处理,得到第二音频样本的残差特征。
在一些实施例中,当至少一个残差单元为多个级联的残差单元时,步骤41121可以通过以下方式实现实现:通过多个级联的残差单元的第一个残差单元,对第二音频样本的音频特征进行残差处理;将第一个残差单元输出的残差结果输出到后续级联的残差单元,通过后续级联的残差单元继续进行残差处理以及残差结果的输出;将最后一个残差单元输出的残差结果作为第二音频样本的残差特征。
在一些实施例中,残差单元的处理过程如下:通过多个级联的残差单元的第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为残差单元的数量。需要说明的是,每个残差单元包含指定扩张率(Dilationrate)的空洞卷积算子,使用渐进的扩张率的空洞卷积算子,相当于使用不同感受野提取输入在不同分辨率下的特征,可以更好地对数据进行相对全面的分析。每个残差单元经过扩张率的空洞卷积算子的卷积处理后,与跳连接过来的浅层特征(即每个残差单元的输入)相加,从而直接利用浅层特征信息,使得网络在学习过程中可以充分利用浅层特征信息。
承接上述实施例,每个残差单元不仅包括空洞卷积算子,还包括至少一个因果卷积算子;对第k个残差单元的输入进行卷积处理,得到第k个残差单元的卷积结果之后,通过第k个残差单元包括的至少一个因果卷积算子,对得到的空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为第k个残差单元的卷积结果。也就是,通过第一个残差单元包括的至少一个因果卷积算子,对第一个残差单元的空洞卷积结果进行因果卷积处理,将得到的因果卷积结果作为第一个残差单元输出的卷积结果。通过第j个残差单元包括的空洞卷积算子,对第j-1个残差单元输出的残差结果进行空洞卷积处理,得到第j个残差单元的空洞卷积结果之后,通过第j个残差单元包括的至少一个因果卷积算子,对第j个残差单元的空洞卷积结果进行因果卷积处理,将第j个残差单元的因果卷积结果作为第j个残差单元的卷积结果。需要说明的是,每个残差单元还包括至少一个因果卷积算子,通过因果卷积算子继续提取输入到因果卷积算子的特征的局部信息。
在一些实施例中,当对残差单元包括的空洞卷积算子应用分组卷积时,对音频特征进行空洞卷积处理,可以通过以下方式实现:对第二音频样本的音频特征的输入通道进行分组处理,得到多个组别,其中,每个组别包括第二音频样本的音频特征中的至少两个通道对应的第一元素(即第一特征值);对每个组别内的第一元素进行空洞卷积处理。当对残差单元包括的因果卷积算子应用分组卷积时,对得到的空洞卷积结果进行因果卷积处理,可以通过以下方式实现:对空洞卷积结果的输入通道进行分组处理,得到多个组别,其中,每个组别包括空洞卷积结果中的至少两个通道对应的第二元素(即第二特征值);对每个组别内的第二元素进行因果卷积处理。
承接步骤41121,在步骤41122中,对残差特征进行特征编码处理,得到第二音频样本的初始编码特征。
在一些实施例中,步骤41122可以通过以下方式实现:对残差特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数大于残差特征的通道数;对卷积特征进行池化处理,得到第二音频样本的初始编码特征。
在一些实施例中,待训练的第二编码网络包括的第一编码网络包括多个级联的编码块,每个编码块包括至少一个残差单元以及特征编码块;步骤4112是通过多个级联的编码块实现的,步骤4112可以通过以下方式实现:通过多个级联的编码块中的至少一个残差单元对音频特征进行残差处理,得到第二音频样本的残差特征;通过多个级联的编码块中的特征编码块对残差特征进行特征编码处理,得到第二音频样本的初始编码特征。
在一些实施例中,通过多个级联的编码块中的至少一个残差单元对音频特征进行残差处理,得到音频信号的残差特征可以通过以下方式实现:通过多个级联的编码块的第一个编码块中的至少一个残差单元,对第二音频样本的音频特征进行残差处理,并将第一个编码块中的至少一个残差单元输出的残差结果输出到第一个编码块中的特征编码块;通过多个级联的编码块的第i个编码块中的至少一个残差单元,对第i-1个编码块中的特征编码块输出的编码结果进行残差处理,并将第i个编码块中的至少一个残差单元输出的残差结果输出到第i个编码块中的特征编码块;将最后一个编码块中的至少一个残差单元输出的残差结果作为第二音频样本的残差特征;其中,i为依次递增的正整数,1<i≤I,I为编码块的数量。通过多个级联的编码块中的特征编码块对残差特征进行特征编码处理,得到第二音频样本的初始编码特征可以通过以下方式实现:通过多个级联的编码块的最后一个编码块中的特征编码块,对第二音频样本的残差特征进行特征编码处理,得到第二音频样本的初始编码特征。其中,编码特征是通过多个级联的编码块的最后一个编码块执行以下处理得到的:对残差特征进行卷积处理,得到卷积特征,其中,卷积特征的通道数大于残差特征的通道数;对卷积特征进行池化处理,得到第二音频样本的初始编码特征。
在步骤412中,通过待训练的第二编码网络包括的一维卷积层,对初始编码特征进行卷积处理,得到第二音频样本的编码特征。
这里,待训练的第二编码网络与第一编码网络的主要区别在于:在第一编码网络的最后,再级连一个一维卷积层。这个一维卷积层的输入变量的维度与输出变量的维度相同,通过增加编码网络的层数,可以提升编码网络的特征提取能力。类似地,可以进一步增加编码网络的层数,包括在一维卷积层中,进一步增加包括一个或者多个残差单元。
在步骤42中,对第二音频样本的编码特征进行信号编码处理,得到第二音频样本的音频码流样本。
在一些实施例中,步骤42可以通过以下方式实现:对第二音频样本的编码特征进行量化处理,得到编码特征的索引值;对编码特征的索引值进行熵编码处理,得到第二音频样本的音频码流样本。
需要说明的是,步骤3中的“基于待训练的第二编码网络对第二音频样本进行编码处理,得到第二音频样本的编码结果”是通过上述步骤41以及步骤42实现的。
在步骤43中,对第二音频样本的音频码流样本进行信号解码处理,得到音频码流样本对应的编码特征估计值。
在一些实施例中,步骤44可以通过以下方式实现:对第二音频样本的音频码流样本进行熵解码处理,得到音频码流样本对应的索引值;对音频码流样本对应的索引值进行逆量化处理,得到音频码流样本对应的编码特征估计值。
在步骤44中,通过第一解码网络,对编码特征估计值进行网络解码处理,得到音频码流样本对应的合成音频样本。
需要说明的是,网络解码处理是网络编码处理的逆过程。因此,网络解码过程中产生的值是相对于网络编码过程中的值的估计值,例如网络解码过程中产生的编码特征相对于网络编码过程中的编码特征是一种估计值,即编码特征估计值。
参见图4F,图4F是本申请实施例提供的音频编解码系统的训练方法的一个流程示意图,图4F示出步骤44可以通过步骤441-442实现。
在步骤441中,通过第一解码网络中的至少一个残差单元,对音频码流样本对应的编码特征估计值进行残差处理,得到音频码流样本对应的音频特征估计值。
参见图4G,图4G是本申请实施例提供的音频编解码系统的训练方法的一个流程示意图,图4G示出步骤441可以通过步骤4411-4412实现:
在步骤4411中,通过第一解码网络,对音频码流样本对应的编码特征估计值进行特征解码处理,得到音频码流样本对应的残差特征估计值。
例如,特征解码是特征编码的逆过程,对编码特征估计值进行特征解码处理,得到音频码流样本对应的残差特征估计值(一种估计值)。本申请实施例可以调用第一解码网络,通过第一解码网络对音频码流样本对应的编码特征估计值进行特征解码处理,得到音频码流样本对应的残差特征估计值。
在一些实施例中,步骤4411可以通过以下方式实现:对音频码流样本对应的编码特征估计值进行卷积处理,得到卷积特征,其中,卷积特征的通道数小于音频码流样本对应的编码特征估计值的通道数;对卷积特征进行上采样处理,得到音频码流样本对应的残差特征估计值。
当然,在步骤4411之前,还可以对音频码流样本对应的编码特征估计值进行因果卷积,得到因果卷积后的编码特征估计值,并基于因果卷积后的编码特征估计值执行步骤4411,即对因果卷积后的编码特征估计值进行特征解码处理,得到音频码流样本对应的残差特征估计值。
在步骤4412中,通过第一解码网络中的至少一个残差单元,对音频码流样本对应的残差特征估计值进行特征残差处理,得到音频码流样本对应的音频特征估计值。
这里,通过对音频码流样本对应的残差特征估计值进行残差处理,以保证对残差特征估计值进行全面学习的同时,还能够更好地利用残差特征估计值的浅层特征信息,避免遗漏浅层特征信息。
在一些实施例中,当至少一个残差单元为多个级联的残差单元时,步骤4412可以通过以下方式实现:通过一个残差单元,对残差特征估计值进行残差处理,得到音频码流样本对应的音频特征估计值。
在一些实施例中,当至少一个残差单元为多个级联的残差单元时,步骤4412可以通过以下方式实现:通过多个级联的残差单元的第一个残差单元,对残差特征估计值进行残差处理;将第一个残差单元输出的残差结果输出到后续级联的残差单元,通过后续级联的残差单元继续进行残差处理以及残差结果的输出;将最后一个残差单元输出的残差结果作为音频码流样本对应的音频特征估计值。
在一些实施例中,残差单元的处理过程如下:通过多个级联的残差单元的第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个残差单元的卷积结果。
在一些实施例中,当对残差单元包括的空洞卷积算子应用分组卷积时,对音频特征进行空洞卷积处理,可以通过以下方式实现:对残差特征估计值的输入通道进行分组处理,得到多个组别,其中,每个组别包括残差特征估计值中的至少两个通道对应的第一元素(即第一特征值);对每个组别内的第一元素进行空洞卷积处理。当对残差单元包括的因果卷积算子应用分组卷积时,对得到的空洞卷积结果进行因果卷积处理,可以通过以下方式实现:对空洞卷积结果的输入通道进行分组处理,得到多个组别,其中,每个组别包括空洞卷积结果中的至少两个通道对应的第二元素(即第二特征值);对每个组别内的第二元素进行因果卷积处理。
在一些实施例中,第一解码网络包括多个级联的解码块,每个解码块包括特征解码块以及至少一个残差单元;步骤441可以通过以下方式实现:通过多个级联的解码块中的特征解码块,对音频码流样本对应的编码特征估计值进行特征解码处理,得到音频码流样本对应的残差特征估计值;对应的,通过多个级联的解码块中的至少一个残差单元,对音频码流样本对应的残差特征估计值进行残差处理,得到音频码流样本对应的音频特征估计值。
在一些实施例中,通过多个级联的解码块中的特征解码块,对音频码流样本对应的编码特征估计值进行特征解码处理,得到音频码流样本对应的残差特征估计值可以通过以下方式实现:通过多个级联的解码块的第一个解码块中的特征解码块,对音频码流样本对应的编码特征估计值进行特征解码处理,并将第一个解码块中的特征解码块输出的解码结果输出到第一个解码块中的至少一个残差单元;通过多个级联的解码块的第i个解码块中的特征解码块,对第i-1个解码块中的至少一个残差单元输出的残差结果进行特征解码处理,并将第i个解码块中的特征解码块输出的解码结果输出到第i个解码块中的至少一个残差单元;将最后一个解码块中的特征解码块输出的解码结果作为音频码流样本对应的残差特征估计值;其中,i为依次递增的正整数,1<i≤I,I为解码块的数量。其中,第一个解码块中的特征解码块输出的解码结果是通过多个级联的解码块的第一个解码块中的特征解码块执行以下处理得到的:对音频码流样本对应的编码特征估计值进行卷积处理,得到卷积特征,其中,卷积特征的通道数小于编码特征的通道数;对卷积特征进行上采样处理,得到第一个解码块中的特征解码块输出的解码结果。其中,第i个解码块中的特征解码块输出的解码结果是通过第i个解码块中的特征解码块执行以下处理得到的:对第i-1个解码块中的至少一个残差单元输出的残差结果进行卷积处理,得到卷积特征,其中,卷积特征的通道数小于至少一个残差单元输出的残差结果的通道数;对卷积特征进行上采样处理,得到第i个解码块中的特征解码块输出的解码结果。
在一些实施例中,通过多个级联的解码块中的至少一个残差单元,对音频码流样本对应的残差特征估计值进行残差处理,得到音频码流样本对应的音频特征估计值可以通过以下方式实现:通过多个级联的解码块的最后一个解码块中的至少一个残差单元,对音频码流样本对应的残差特征估计值进行残差处理,得到音频码流样本对应的音频特征估计值。
承接上述步骤441,在步骤442中,对音频码流样本对应的音频特征估计值进行特征重建处理,得到音频码流样本对应的合成音频样本。
这里,特征重建是特征提取的逆过程,通过特征重建处理对音频特征估计值进行升维,实现数据解压的功能。
在一些实施例,步骤442可以通过以下方式实现:对音频码流样本对应的音频特征估计值进行上采样处理,得到上采样特征;对上采样特征进行因果卷积处理,得到音频码流样本对应的合成音频样本。
在步骤45中,基于合成音频样本更新待训练的第二编码网络的参数,得到训练后的第二编码网络。
需要说明的是,在应用第二编码网络之前,需要训练待训练的第二编码网络,然后将训练好的第二编码网络投入应用。例如,基于合成音频样本更新待训练的第二编码网络的参数可以通过以下方式实现基于合成音频样本以及第二音频样本,确定第二编码网络的损失函数的值后,可以判断损失函数的值是否超出预设阈值,当损失函数的值超出预设阈值时,基于损失函数确定第二编码网络的误差信号,将误差信息在第二编码网络中反向传播,并在传播的过程中更新各个层的模型参数。其中,本申请实施例并不局限于损失函数的形式,例如可以是交叉熵损失函数、L2损失函数等。
这里,对反向传播进行说明,将训练样本数据输入到神经网络模型的输入层,经过隐藏层,最后达到输出层并输出结果,这是神经网络模型的前向传播过程,由于神经网络模型的输出结果与实际结果有误差,则计算输出结果与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层,在反向传播的过程中,根据误差调整模型参数的值,即根据输出结果与实际值之间的误差构建损失函数,并逐层求出损失函数对模型参数的偏导数,生成损失函数对各层模型参数的梯度,由于梯度的方向表明误差扩大的方向,因此对模型参数的梯度取反,与以各层模型的原始参数求和,将得到的求和结果作为更新后的各层模型参数,从而减小模型参数引起的误差;不断迭代上述过程,直至收敛。其中,第二编码网络是一种神经网络模型。
需要说明的是,上述步骤41-45所涉及的第二音频样本为音频信号样本时,则音频码流样本为音频信号样本的全频码流样本。
参见图4H,图4H是本申请实施例提供的音频编解码系统的训练方法的一个流程示意图,当上述第二音频样本为对音频信号样本进行子带分解所得到低频子带信号时,上述音频码流样本为音频信号样本对应的低频码流样本,图4H示出步骤3可以通过步骤4-1-步骤4-7实现:
在步骤4-1中,对音频信号样本进行子带分解,得到音频信号样本的低频子带信号。
这里,当音频信号样本为超宽带信号时,对音频信号样本进行子带分解,得到音频信号样本的低频子带信号以及高频子带信号。需要说明的是,本申请实施例并不限定低频子带信号以及高频子带信号的频带,即分解得到的低频子带信号与高频子带信号可以是平均分割音频信号的频带所得到的两个子带信号,也可以是非平均分割音频信号的频带所得到的两个子带信号,例如,音频信号样本x的有效带宽为0-16kHz,则低频子带信号xLB和高频子带信号xHB的有效带宽分别是0-8kHz和8-16kHz,低频子带信号xLB和高频子带信号xHB的有效带宽还可以分别是0-6kHz和6-16kHz。另外,本申请实施例并不限定分割频带的数量,即可以平均/非平均分割得到两个子带信号,也可以是平均/非平均分割音频信号的频带得到超过两个子带信号,例如3个,4个等更多子带信号。
在步骤4-2中,通过待训练的第二编码网络,对低频子带信号进行网络编码处理,得到低频子带信号的低频编码特征。
这里,步骤4-2的处理过程与步骤41的处理过程类似,步骤4-2的处理对象为低频子带信号,而步骤41的处理对象为音频信号样本。
需要说明的是,本申请实施例可以对高频子带信号进行高频分析处理,得到高频子带信号的高频编码特征。由于低频子带信号相对于高频子带信号对音频编码的影响更大,因此对低频子带信号以及高频子带信号进行差异化的信号处理,使得高频编码特征的特征维度低于低频编码特征的特征维度。其中,高频分析处理用于对高频子带信号进行降维,实现数据压缩的功能。其中,高频编码特征为表征高频子带信号的特征,高频编码特征的特征维度小于高频子带信号的特征维度。
在一些实施例中,高频分析处理可以通过以下方式实现:调用第三编码网络,对高频子带信号进行编码处理,得到高频子带信号的高频编码特征,其中,第三编码网络的通道数小于第二编码网络的通道数。其中,第三编码网络可以是已训练好的编码网络,也可以是待训练的编码网络。这里,引入另一个与第二编码网络类似的第三编码网络的结构,生成低维度的特征向量(即高频子带信号的高频编码特征)。相对低频子带信号,高频子带信号对质量的重要程度相对低,因此,针对高频子带信号的第三编码网络结构也无需像第二编码网络那么复杂。
在一些实施例中,由于相对低频子带信号,高频子带信号对质量的重要程度相对低,因此可以通过另一种方法压缩高频子带信号,即频带扩展(从频带受限的窄带语音信号中恢复宽带语音信号),以快速压缩高频子带信号,提取高频子带信号的高频编码特征。
在一些实施例中,高频分析处理可以通过以下方式实现:基于高频子带信号包括的多个样本点进行频域变换处理,得到多个样本点分别对应的变换系数;将多个样本点分别对应的变换系数划分为多个子带;对每个子带包括的变换系数进行均值处理,得到每个子带对应的平均能量,并将平均能量作为每个子带对应的子带谱包络;将多个子带分别对应的子带谱包络确定为高频子带信号的高频编码特征。
需要说明的是,本申请实施例的频域变换方法包括改进型离散余弦变换(MDCT,Modified Discrete Cosine Transform)、离散余弦变换(DCT,Discrete CosineTransform)、快速傅立叶变换(FFT,Fast Fourier Transform)等,本申请实施例并不局限于频域变换的方式。本申请实施例的均值处理包括算术平均、几何平均,本申请实施例并不局限于均值处理的方式。
在一些实施例中,基于高频子带信号包括的多个样本点进行频域变换处理,得到多个样本点分别对应的变换系数,包括:获取参考音频信号的参考高频子带信号,其中,参考音频信号是与音频信号相邻的音频信号;基于参考高频子带信号包括的多个样本点以及高频子带信号包括的多个样本点,对高频子带信号包括的多个样本点进行离散余弦变换处理,得到高频子带信号包括的多个样本点分别对应的变换系数。
在一些实施例中,对每个子带包括的变换系数进行几何均值处理的过程如下:确定每个子带包括的样本点对应的变换系数的平方和;将平方和与子带包括的样本点的数量的比值,确定为得到每个子带对应的平均能量。
作为示例,对于包括320点的高频子带信号xHB(n),调用改进型离散余弦变换(MDCT,Modified Discrete Cosine Transform),生成320个点的MDCT系数(即高频子带信号包括的多个样本点分别对应的变换系数)。具体地,如果是50%交叠,可以将第n+1帧高频数据(即参考音频信号)与第n帧高频数据(即音频信号)合并(拼接),计算640个点的MDCT,获得前320个点的MDCT系数。
将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)2+x(2)2+…+x(40)2)/40)。对于320个点的MDCT系数分成8个子带的情况,可以获得8个子带谱包络,这8个子带谱包络就是生成的高频子带信号的特征向量FHB(n),即高频编码特征。
在步骤4-3中,对低频子带信号的低频编码特征进行信号编码处理,得到低频子带信号的低频码流样本。
这里,步骤4-3的处理过程与步骤42的处理过程类似,步骤4-3的处理对象为低频子带信号的编码特征,而步骤42的处理对象为音频信号样本的编码特征。
在步骤4-4中,对低频子带信号的低频码流样本进行信号解码处理,得到低频码流样本对应的低频编码特征估计值。
这里,步骤4-4的处理过程与步骤43的处理过程类似。
在一些实施例中,本申请实施例还可以对高频子带信号的高频编码特征进行信号编码处理,并对得到的高频子带信号的高频码流样本进行信号解码处理,得到高频码流样本对应的高频编码特征估计值。
在步骤4-5中,通过第一解码网络,对低频编码特征估计值进行解码处理,得到低频码流样本对应的低频子带信号估计值。
这里,步骤4-5的处理过程与步骤44的处理过程类似,步骤4-5的处理对象为低频编码特征估计值,而步骤44的处理对象为编码特征估计值。
在一些实施例中,本申请实施例还可以对高频码流样本对应的高频编码特征估计值进行高频重建处理,得到高频码流样本对应的高频子带信号估计值。
其中,高频重建与高频分析互为逆过程。例如,当编码端调用编码网络对高频子带信号进行编码处理,以获得高频编码特征,则解码端调用解码网络对高频编码特征估计值进行解码处理,得到对应的高频子带信号估计值。
在一些实施例中,当编码端对高频子带信号进行频带扩展处理,以获得高频编码特征,则解码端对高频编码特征估计值进行频带扩展的逆处理,得到高频码流样本对应的高频子带信号估计值。
在一些实施例中,对高频编码特征估计值进行频带扩展的逆处理,得到高频码流样本对应的高频子带信号估计值,包括:基于低频子带信号估计值包括的多个样本点进行频域变换处理,得到多个样本点分别对应的变换系数;对多个样本点分别对应的变换系数中的后半部分的变换系数进行频谱复制处理,得到参考高频子带信号的参考变换系数;基于高频编码特征估计值对应的子带谱包络,对参考高频子带信号的参考变换系数进行增益处理,得到增益后的参考变换系数;对增益后的参考变换系数进行反频域变换处理,得到对应的高频子带信号估计值。
需要说明的是,本申请实施例的频域变换方法包括改进型离散余弦变换(MDCT,Modified Discrete Cosine Transform)、离散余弦变换(DCT,Discrete CosineTransform)、快速傅立叶变换(FFT,Fast Fourier Transform)等,本申请实施例并不局限于频域变换的方式。
在一些实施例中,基于高频编码特征估计值对应的子带谱包络,对参考高频子带信号的参考变换系数进行增益处理,得到增益后的参考变换系数,包括:基于高频编码特征估计值对应的子带谱包络,将参考高频子带信号的参考变换系数划分为多个子带;针对多个子带中的任意子带执行以下处理:确定子带谱包络中与子带对应的第一平均能量,并确定子带对应的第二平均能量;基于第一平均能量与第二平均能量的比值,确定增益因子;将增益因子与子带包括的每个参考变换系数相乘,得到增益后的参考变换系数。
在步骤4-6中,基于低频子带信号估计值进行子带合成处理,得到合成音频样本。
例如,子带合成处理是子带分解处理的逆过程,解码端对低频子带信号估计值以及高频子带信号估计值进行子带合成处理,以恢复出音频信号,其中合成音频样本即为恢复出的重建信号。
在一些实施例中,对低频子带信号估计值以及高频子带信号估计值进行子带合成处理,包括:对低频子带信号估计值进行上采样处理,得到低通滤波信号;对高频子带信号估计值进行上采样处理,得到高频滤波信号;对低通滤波信号以及高频滤波信号进行滤波合成处理,得到合成音频样本。
在步骤4-7中,基于合成音频样本更新待训练的第二编码网络的参数,得到训练后的第二编码网络。
这里,步骤4-7的处理过程与步骤45的处理过程类似。
在一些实施例中,包括待训练的第二编码网络的第一音频编解码系统作为生成对抗网络中的生成模型,生成对抗网络还包括判别模型;步骤3中的待训练的第二编码网络是通过以下方式训练得到的:基于生成对抗网络中的生成模型以及判别模型,交替执行以下训练任务:基于真实的第二音频样本,训练生成模型,以使生成模型基于第二音频样本生成虚假的合成音频样本;基于真实的第二音频样本以及虚假的合成音频样本,训练判别模型,以使判别模型区分真实的音频样本和虚假的合成音频样本;其中,当训练生成模型时,固定判别模型的参数不变;当训练判别模型时,固定生成模型的参数不变。
这里,固定判别模型的参数不变,训练生成模型的方法与上述步骤3类似,即将生成模型看作为包括待训练的第二编码网络的第一音频编解码系统。
如前所述,本申请实施例提供的音频编码方法可以由各种类型的电子设备实施。参见图5,图5是本申请实施例提供的音频编码方法的流程示意图,通过音频编码方法实现音频编码功能,下面结合图5示出的步骤101-步骤103进行说明。
在步骤101中,获取音频信号。
作为获取音频信号的示例,编码端响应于发送方(例如网络会议的发起者、主播、语音通话的发起者等)触发的音频采集指令,调用编码端的终端设备自带的麦克风进行音频信号的采集,以获取音频信号(又称输入信号)。
在步骤102中,调用第一音频编解码系统中的训练后的第二编码网络,对音频信号进行编码处理,得到音频信号的第二编码特征,其中,第一音频编解码系统包括训练后的第二编码网络以及第一解码网络。
这里,步骤102中通过训练后的第二编码网络,对音频信号进行编码处理的过程与上述步骤41类似,区别在于步骤102中的处理对象为音频信号,而步骤41中的处理对象为第二音频样本。
需要说明的是,当音频信号为超宽带信号需要子带分解时,可以先对音频信号进行子带分解,然后对子带信号进行分解,其处理过程与上述图4H所示的过程类似。
承接步骤102,在步骤103中,对音频信号的第二编码特征进行信号编码处理,得到音频信号的第二音频码流。
其中,第一音频码流与第二音频码流均能通过第一解码网络解码出音频信号对应的合成音频信号,第一音频码流是音频信号经过第一编码网络处理后得到的音频码流,训练后的第二编码网络是通过上述的音频编解码系统的训练方法针对第一编码网络训练得到的。
在一些实施例中,步骤103可以通过以下方式实现:对音频信号的第二编码特征进行量化处理,得到第二编码特征的索引值;对第二编码特征的索引值进行熵编码处理,得到音频信号的第二音频码流。
如前所述,本申请实施例提供的音频解码方法可以由各种类型的电子设备实施。参见图6A,图6A是本申请实施例提供的音频解码方法的流程示意图,通过音频解码方法实现音频解码功能,音频解码方法与上述音频编码方法互为逆过程,下面结合图6A示出的步骤进行说明。
在步骤201中,获取音频码流。
作为示例,通过如图5所示的音频编码方法编码得到音频码流后,将音频码流传输至解码端,解码端接收到音频码流后,对音频码流进行音频解码处理,以重建出合成音频信号。
在步骤202中,对音频码流进行信号解码处理,得到音频码流对应的编码特征估计值。
需要说明的是,信号解码是信号编码的逆过程。由于解码端对接收到的码流进行解码的过程是编码端进行编码的过程的逆过程,因此,解码过程中产生的值是相对于编码过程中的值的估计值,例如解码过程中产生的编码特征估计值相对于编码过程中的编码特征是一种估计值。
在步骤203中,调用第一音频编解码系统中的第一解码网络,对编码特征估计值进行解码处理,得到音频码流对应的合成音频信号。
需要说明的是,解码过程是编码过程的逆过程。由于解码端对接收到的码流进行解码的过程是编码端进行编码的过程的逆过程,因此,解码过程中产生的值是相对于编码过程中的值的估计值,例如解码过程中产生的合成音频信号相对于编码过程中的音频信号是一种估计值。
这里,步骤203中调用第一音频编解码系统中的第一解码网络,对编码特征估计值进行解码处理的过程与上述步骤44类似,区别在于步骤203中的处理对象为音频码流的编码特征估计值,而步骤44中的处理对象为音频码流样本的编码特征估计值。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例可以应用于各种音频场景,例如语音通话、即时通信等。下面以语音通话为例进行说明:
相关技术中,语音编码原理大致如下:语音编码可以直接对语音波形样本,逐样本地进行编码;或者,基于人的发声原理,提取相关低维度特征,编码端对特征进行编码,解码端基于这些参数重建语音信号。
上述编码原理均来自语音信号建模,即基于信号处理的压缩方法,无法保证音频的编码质量。对此,本申请实施例通过基于深度学习的技术,以在保证语音质量的情况下,提高编解码效率。目前看,基于深度学习的技术,的确能够带来低码率高质量的效果。但是,这种方法也存在以下两个典型问题:
1)这种编解码方法的复杂度比较高。对于一些实时音视频应用场景,过高复杂度会限制音频应用推广。此外,基于深度学习的编解码系统的训练周期很长,几天到几周不等,迭代成本高。
2)为了保证通信系统中的前向兼容的准则,只能先替换旧版本的编码器以及解码器后,再更新编码器以及解码器,工程改造难度大。
为了解决上述问题,本申请实施例提供一种语音编解码方法(即音频编码方法以及音频解码方法),基于音频信号特点,基于神经网络(NN,Neural Network)技术进行处理后,会得到比输入更低维度的特征向量。其中,神经网络内部采用类似“分块”的操作,可以降低算法复杂度,提高编码效果。解码端对接收的码流进行解码,获得特征向量,调用对应编码端的逆过程,完成信号的重建。特别地,解码端的神经网络内部,采用了类似“分块”的操作,降低算法复杂度。在上述的基础上,为了保证编解码系统的前向兼容性,本申请实施例提出了一种预训练解码器机制(即音频编解码系统的训练方法),按照上述方案,先训练出一个编码网络(表示为第一编码网络)和解码网络(表示为第一解码网络);然后固定第一解码网络参数的情况下,修改编码网络配置并重新训练,以获得第二编码网络。特别地,不管是第一编码网络还是第二编码网络处理和压缩后的特征向量,调用第一解码网络,均可以恢复出高质量语音。需要说明的是,通过固定解码网络的参数,各种变更编码网络,解决了前向兼容的风险。因此,线上业务在不受影响的前提下,可以更新编码网络的版本。另外,编码网络的变更,既可以提升编码效果,也可以对编码网络进行轻量化改造,降低编码复杂度。
本申请实施例可应用于如图6B所示的语音通信链路,以基于网际互连协议的语音传输(VoIP,Voice over Internet Protocol)会议系统为例,将本申请实施例涉及的语音编解码技术部署在编码和解码部分,以解决语音压缩的基本功能。编码器部署在上行客户端601,解码器部署在下行客户端602,通过上行客户端采集语音,并进行前处理增强、编码等处理,将编码得到的码流通过网络传输至下行客户端602,通过下行客户端602进行解码、增强等处理,以在下行客户端602回放解码出的语音。
考虑前向兼容(即新的编码器与已有的编码器兼容),需要在系统的后台(即服务器)部署转码器,以解决新的编码器与已有的编码器互联互通问题。例如,如果发送端(上行客户端)是新的NN编码器,接收端(下行客户端)是公用电话交换网(PSTN,Public SwitchedTelephone Network)(G.722)。在后台,需要执行NN解码器生成语音信号,然后调用G.722编码器生成特定码流,以实现转码功能,才能让接收端基于特定码流进行正确解码。
下面在具体介绍本申请实施例提供的音频编解码系统的训练方法之前,先介绍空洞卷积网络、模型训练。
参见图8A和图8B,图8A是本申请实施例提供的普通卷积(例如因果卷积)网络的示意图,图8B是本申请实施例提供的空洞卷积网络的示意图。相对普通卷积网络,空洞卷积能够增加感受野的同时保持特征图的尺寸不变,还可以避免因为上采样、下采样引起的误差。虽然图8A和图8B中示出的卷积核大小(Kernel Size)均为3×3;但是,图8A所示的普通卷积的感受野801只有3,而图8B所示的空洞卷积的感受野802达到了5。也就是说,对于尺寸为3×3的卷积核,图8A所示的普通卷积的感受野为3、扩张率(Dilation Rate)(卷积核中的点的间隔数量)为1;而图8B所示的空洞卷积的感受野为5、扩张率为2。
卷积核还可以在类似图8A或者图8B的平面上进行移动,这里是涉及移位率(Stride Rate)(步长)概念。比如,每次卷积核移位1格,则对应的移位率为1。
此外,还有卷积通道数的概念,就是用多少个卷积核对应的参数去进行卷积分析。理论上,通道数越多,对信号的分析更为全面,精度越高;但是,通道越高,复杂度也越高。比如,一个1×320的张量,可以使用24通道卷积运算,输出就是24×320的张量。
需要说明的是,可以根据实际应用需要,自行定义空洞卷积核大小(例如:针对语音信号,卷积核的大小可以设置为1×3)、扩张率、移位率和通道数,本申请实施例对此不作具体限定。
关于模型训练,对于编码网络以及解码网络,在训练过程中,会同时调整编码网络和解码网络的参数。当编码网络以及解码网络收敛后,可以将训练好的编码网络和训练好的解码网络,集成到音频编解码系统中,完成高质量的压缩。然而,在音频编解码系统迭代过程中,一方面希望通过系统更新,提升压缩的质量,另一方面,还要求码流能够前向兼容,即新版本的编码器压缩获得的码流,可以被旧版本解码器准确解码,并生成高质量语音。对于基于神经网络的编解码系统,要求新的编码网络与旧的编码网络,均能与同一个旧的解码网络适配,即均可以获得高质量压缩效果。
其中,新旧两种编码网络(即新的编码网络与旧的编码网络)主要包含以下两种情况下:
一,新旧两种编码网络结构的参数量完全一样,只是因为特别的目标,重新训练一个新的编码网络。一种典型的场景,提升编码网络在某个语种的编码效果,或者提升不同音频信号的编码效果等。
二,新旧两种编码网络结构完全不一样。例如,在原有编码网络结构的基础上,增加网络层数或者改变特定模块的网络结构或者参数量。例如,增加编码网络的复杂度,通过增加算力,可以提升编码效果;可以对编码网络结构进行裁减,降低编码器复杂度,适应轻量级应用。
模型训练过程可以概括为:基于准备好的训练数据和提前设计好的网络结构、损失函数、优化器等,将训练数据输入到模型中,通过反向传播算法计算梯度,并使用优化器更新模型参数;将验证数据集输入到模型中,计算损失函数值和预测准确率,以评估模型的性能;此外,根据验证结果,调整模型的超参数,例如学习率、正则化系数等,以获得最佳训练效果,将模型进行保存;最后,将测试数据集输入到模型中,计算预测结果和准确率,以评估模型的泛化能力。上述训练过程完成后,可以对模型进行部署和应用,将训练好的模型部署到实际应用中,用于预测新的输入数据。
对于语音编解码领域,主要涉及端到端的神经网络:将神经网络分成编码网络和解码网络两个部分。每个部分,提前定义好网络结构。编码网络的作用是将输入的时域信号,通过编码网络的非线性预测能力,映射为低维度的特征向量。其中,特征向量小于输入的时域信号维度,以达到压缩的目的。例如对输入的时域信号,经过编码网络处理后,获得低维的特征向量,每一个维度的分量是[-1,1],以利于归一化处理。然后,对上述低维的特征向量的所有分量,在指定的压缩率下进行量化,获得量化后的低维特征向量。解码网络的作用是基于量化后的低维特征向量,通过解码网络的非线性预测能力,预测出与输入维度一致的时域信号,并且,理论上希望预测的时域信号与输入的时域信号逼近。在限定的压缩率(决定了低维特征向量的量化精度)情况下,上述预测误差越小,说明重建的语音信号质量越好。因此,端到端的神经网络训练,就是基于上面介绍的模型训练和部署方式,基于训练数据,训练出一个编码网络和解码网络组合。上述组合,可以对输入的时域信号,通过编码网络进行数据压缩,通过解码网络还原出语音信号。
下面对本申请实施例提供的音频编解码系统的训练方法进行说明。
通过如图7所示的可扩展神经网络训练平台来实现本申请实施例提供的音频编解码系统的训练方法。
通过可扩展神经网络训练平台,首先训练出一个编码网络(表示为第一编码网络)和解码网络(表示为第一解码网络)。
然后,以第一编码网络以及第一解码网络为基础,构建第一音频编解码系统。对第n帧的输入音频信号x(n),调用第一编码网络,获得低维度的特征向量F1(n),特征向量F1(n)的维度小于输入音频信号的维度,以减少数据量。例如,对于每帧x(n),调用神经网络(编码部分),生成更低维的特征向量F1(n)。本申请实施例不限制其它的NN结构,例如自编码器(Autoencoder),全连接(FC,Full-Connection)网络,长短期记忆(LSTM,Long Short-TermMemory)网络、卷积神经网络(CNN,Convolutional Neural Network)+LSTM等等。其中,神经网络内部采用类似“分块”的操作,可以降低算法复杂度,提高编码效果。对于F1(n),采用不同量化精度的码表进行量化和编码,实现多速率编解码效果。
对于通过对输入音频信号进行子带分解得到的高频子带信号xHB(n),考虑到高频对质量的重要性没有低频那么重要,高频子带信号xHB(n)可以采用其它方案提取特征向量FHB(n)。例如,基于语音信号分析的频带扩展技术,可以只用少量比特实现高频子带信号的生成;还可以使用与低频子带信号一样的NN结构或者更精简的网络(比如输出的特征向量比低频的特征向量FLB(n)更小)。
对子带信号对应的特征向量(即FLB(n)以及FHB(n))进行矢量量化或者标量量化,并将量化后的量化值进行熵编码,并编码后得到的码流(低频码流以及高频码流)传输到解码端。
对于解码获得的特征向量的估计值F1′(n),调用第一解码网络,生成音频信号估计值x1′(n),实现音频解码效果。
在上述第一编码网络以及第一解码网络的基础上,固定第一解码网络参数不变,调用可扩展神经网络训练平台,重新训练出一个第二编码网络。
以第二编码网络和第一解码网络为基础,构建第二音频编解码系统。对于第n帧的输入音频信号x(n),调用第二编码网络,获得低维度的特征向量F2(n),特征向量F2(n)的维度小于输入音频信号的维度,以减少数据量。对特征向量F2(n)进行矢量或者标量量化,并将量化后索引值进行熵编码,并传输到解码端。
对于解码获得的特征向量的估计值F2′(n),调用第一解码网络,生成音频信号估计值x′2(n),以完成解码。
通过上述步骤,实现了相同的一个解码器(由解码网路实现),可以对应不同的编码器(由编码网络实现),可以组合出一个或者多个音频编解码系统(即至少一个音频编解码系统)。上述一个或者多个编码解码系统,可以对同一个语音输入,完成语音压缩。由于上述一个或者多个编解码系统使用同一个解码器,因此,实现了语音通信中的码流前向兼容特性,同时,对编码器保留了非常大的可扩展空间。
下面对本申请实施例提供的音频编解码系统的训练方法、音频编码方法、音频解码方法进行具体说明。
在一些实施例中,以采样率Fs=16000Hz的语音信号为例(需要说明的是,本申请实施例提供的方法也适用于其他采样率的场景,包括但不限于:8000Hz、32000Hz、48000Hz)。同时,假设帧长设置为20ms,因此,对于Fs=16000Hz,相当于每帧包含320个样本点。
下面参考图7所示的第一编码网络和第一解码网络,将编码端和解码端进行详细描述。
关于第一编码网络和第一解码网络的流程如下:
针对采样率Fs=16000Hz的音频信号(单声道信号),对于第n帧的输入信号包括320个样本点,记为输入信号x(n)。
步骤11、通过第一编码网络进行编码。
基于输入信号x(n),调用第一编码网络,生成更低维度的特征向量F1(n)。需要说明的是,x(n)的维度为320,F1(n)的维度为56,从数据量看,第一编码网络起到了“降维”的作用,实现数据压缩的功能。其中,本申请实施例并不局限于F1(n)的维度,还可以是其他小于x(n)的维度。
参见图9所示的第一编码网络的网络结构图,下面具体说明第一编码网络进行数据压缩的流程:
首先,调用一个16通道的因果卷积,可以将输入的张量(即向量),扩展为16×320的张量。
然后,对16×320的张量进行预处理。例如,对16×320的张量进行一次卷积运算后,做因子为2的池化(Pooling)操作、且激活函数可以为PReLU,以生成16×160的张量。
接下来,级联4个不同下采样因子(Down_factor)的编码块。其中,每个编码块包含一个残差块、一个卷积层以及一个池化层,其中,每个残差块包括5个基于空洞卷积的残差单元(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个等任意正整数。另外,本申请实施例并不局限编码块中残差单元的数量,可以是2个、3个、4个、5个、6个等任意正整数,多个编码块中的残差单元的数量可以相同也可以不同,例如一个编码块中包含4个残差单元,另一个编码块中包含5个残差单元。
这里进一步对残差单元(Residual Unit)进行介绍。残差单元是指一种深度神经网络中的模块,通过在神经网络中引入跨层连接,使得神经网络在训练过程中更易优化,避免梯度消失或梯度爆炸等问题。其核心思想是在模块内部对输入进行残差学习,即通过一条直接的路径将输入信息绕过一部分层,直接传递到输出,使得网络在学习过程中可以更好地利用浅层特征信息。图10A为第一编码网络中编码块中使用的残差块结构示意图,此残差块包括4个基于空洞卷积的残差单元,每个残差单元包含指定扩张率(Dilation rate)的空洞卷积块,也就是每个空洞卷积块里包含指定扩张率(如Dilation rate=3)的卷积算子。本申请实施例中,使用5种渐进的扩张率的空洞卷积块,相当于使用不同感受野提取输入在不同分辨率下的特征,可以更好地对数据进行相对全面的分析。经过5个指定扩张率的空洞卷积块的残差处理后,与跳连接过来的输入相加,得到残差块的输出结果,并将输出结果输出到与残差块连接的卷积层。
这里,进一步对图10A任意一个残差单元进行描述,如图10B所示。对于任意一个残差单元,内部包含至少一个指定扩张率的空洞卷积(用于扩大感受野),可以用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个编码块中对应的5个残差块包含的空洞卷积,可以使用不同的分组数配置,具体的分组数配置如表1所示。
表1.不同编码块中残差单元使用的分组数配置
编码块 分组数
编码块(Down_factor=2) 2
编码块(Down_factor=4) 4
编码块(Down_factor=4) 4
编码块(Down_factor=5) 4
最后,对256×1的张量,再经过类似预处理的因果卷积,可以输出一个56维的特征向量F1(n)。根据第一编码网络的计算,56维的特征向量F1(n)中的每个值均在[-1,1]之间。
步骤12、量化编码。
对于低维特征向量F1(n),可以进行标量量化(各分量单独量化)和熵编码的方法。另外,本申请实施例也不限制矢量量化(相邻多个分量组合成一个矢量进行联合量化)和熵编码的技术组合。
这里针对低维特征向量F1(n)的量化编码进行说明。按照上文描述,通过第一编码网络对输入信号进行处理后,获得56维的特征向量F1(n)。本申请实施例提供一种基于标量量化和熵编码的方法,包括:1)对于F1(n)中的每一维度,将[-1,1]的区间平均分成11等份,以形成包含11个元素的码表(codebook),将每一维度值量化为11个元素之一;2)根据香农熵定理,对于包含11个元素且均匀分布的码表,熵(平均比特)为因此,每帧低频子带信号对应的平均比特为193.76bit;3)对于每20ms分帧方式,1秒有50帧,因此,平均码率为9.69kbps(即码率模式)。根据熵编码理论,可以对上述每一个维度进行概率分布统计,生成56个码表。一般地,每个维度是非均匀分布,因此,实际码率是在9.69kbps附近,或者小于9.69kbps。一般地,码率模式越高,编码器会使用更多比特进行编码,对应重建出的语音质量更高。需要说明的是,本申请实施例并不局限于码率模式,可以是8.88kbps、6.50kbps等。
综上,量化编码后,可以生成码流。在5-10kbps范围内,本申请实施例可以对16kHz宽带信号实现高质量压缩。
步骤13、量化解码。
量化解码是量化编码的逆过程。对于收到的码流(包括高频码流以及低频码流),先进行熵解码,并通过查量化表,获得低维特征向量的估计值F′1(n)。
步骤14、通过第一解码网络进行解码。
首先,基于低维特征向量的估计值F′1(n),调用如图11所示的第一解码网络,生成音频信号的估计值x′1(n),即合成音频信号。其中,第一解码网络与第一编码网络类似,比如因果卷积,后处理结构类似于第一编码网络中的预处理结构,解码块结构与编码侧的编码块是对称的,编码侧的编码块是先做空洞卷积,再池化以完成降采样,解码侧的解码块是先进行池化以完成升采样,再做空洞卷积。第一解码网络的具体流程如下:
首先,调用一个因果卷积,可以将输入的张量F′LB(n),由56×1扩展为256×1的张量。
接下来,级联4个不同上采样因子(Up_factor)的解码块。每个解码块包含一个卷积层、一个上采样模块、一个残差块,其中,一个卷积层用于将输入通道数减半;一个上采样模块包含特定Up_factor,用于以完成升采样;一个残差块包括5个基于空洞卷积的残差单元(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)操作,通过重复填充的方式,完成升采样操作。这样,可以节省复杂度。
这里,解码端的5个基于空洞卷积的残差单元的配置与编码端的残差单元的配置类似,包括但不限于残差单元的内部结构、卷积核大小、扩张率等。解码块中空洞卷积使用的分组数配置如表2所示。这里解码块中,采用更多的分组数为2,是为了关联更多的输入通道和输出通道,提升语音重建的质量。
表2.不同解码块中残差单元使用的分组数配置
解码块 分组数
解码块(Up_factor=5) 4
解码块(Up_factor=4) 4
解码块(Up_factor=4) 2
解码块(Up_factor=2) 2
然后,对级联解码块输出的16×160的张量进行后处理。例如对对级联解码块输出的16×160的张量做因子为2的Repeat操作,以完成上采样,然后进行卷积运算并使用激活函数可以为PReLU的操作,生成16×320的张量。
最后,调用一个因果卷积,可以将输入的16×320张量,转换为1×320的张量,以重建输入信号。
下面针对第一编码网络和第一解码网络的训练流程进行说明:
本申请实施例可以通过采集数据,对编码端和解码端的相关网络进行联合训练,获得最优参数。用户仅需准备好数据和设置相应的网络结构,在后台完成训练后,即可将训练好的模型投入使用。
需要说明的是,在端到端神经网络的编编解码系统中,可以使用对抗学习的训练机制。对抗学习的训练原理是通过让生成模型(generator)和判别模型(discriminator)互相对抗的方式来提高生成模型的性能。具体地,生成模型会尝试生成逼真的样本来愚弄判别模型,而判别模型则会尝试识别出真实样本和生成样本之间的差异。这种对抗过程会不断迭代,直到生成模型生成的样本质量足够高为止。
当采用对抗学习的训练机制训练第一编码网络和第一解码网络时,可以将第一编码网络和第一解码网络作为生成模型,通过生成模型和判别模型互相对抗的方式来提高第一编码网络和第一解码网络的性能。
如上述,当第一编码网络和第一解码网络训练好后,获得第一音频编解码系统。在实际应用中,仍然有进一步版本更新需求,比如:针对特定应用需要微调效果(例如增加某个语种的适配能力);通过增加编码网络的复杂度,进一步提升语音质量;通过减少编码网络的复杂度,服务一些轻量级应用。
上述更新需求,有一个重要的前提,就是已经发布的老版本的解码端可以正确解码新版本的编码端发出的码流。对于基于端到端神经网络的音频编解码系统,需要固定解码网络的参数后,重新训练编码网络。
与第一编码网络和第一解码网络的训练流程类似,在端到端神经网络的第二音频编解码系统(包括第二编码网络和第一解码网络)中,可以使用对抗学习的训练机制。对抗学习的训练原理是通过让生成模型和判别模型互相对抗的方式来提高生成模型的性能。
与第一编码网络和第一解码网络的训练流程的差异在于,第二编码网络和第一解码网络的训练过程是基于第一编码网络和第一解码网络已经训练好的模型(包括参数)。第二编码网络和第一解码网络的训练过程如下:
1)加载第一编码网络和第一解码网络已经训练好的模型参数。
2)在可扩展神经网络训练平台中,采用第二编码网络的配置,以替换第一编码网络,以实现修改编码网络的配置。其中,配置包括但不限于模型结构、损失函数、优化器等。
其中,第二编码网络设置灵活,即相对于第一编码网络,可以增加模型复杂度提升质量,也可以减模型复杂度适于轻量级应用等。上述修改编码网络配置包括但不限于:1)“同构”配置,第一编码网络和第二编码网络的网络结构和参数量完全一样,即第二编码网络是第一编码网络的同构网络,通过修改训练数据或者训练策略等,进行重新训练获得第二编码网络;2)“异构”配置,第一编码网络和第二编码网络的网络结构和参数量产生变化(如第二编码网络比第一编码网络层数更多,或者第二编码网络的部分层的中间变量维度更多),即第二编码网络是第一编码网络的异构网络。此外,“同构”配置中的训练数据或者训练策略的变更,也可以应用于“异构”配置的场景。
需要说明的是,本申请实施例需要将第一解码网络中的梯度更新设置为错误(False)。通过将第一解码网络中的梯度更新设置为False,在端到端训练第二编码网络和第一解码网络时,可以只对第一解码网络的参数进行固定,因此第一解码网络不会参与梯度计算。这样,在重新训练第二编码网络和第一解码网络时,任何的参数更新,只在第二编码网络中进行。
其中,用于训练第二编码网络以及第一解码网络的训练数据,可以与用于训练第一编码网络和第一解码网络的训练数据一致,也可以不一致。
通过上述设置,获得第二编码网络和第一解码网络,即第二音频编解码码系统。这样,就保证了码流前向兼容性:基于第一编码网络生成的特征向量F1(n),完成压缩,基于第二编码网络生成的特征向量F2(n),完成压缩。特征向量F1(n),以及特征向量F2(n)经过量化、解码后,可以被同一个第一解码网络解码,生成语音信号。
当第二编码网络以及第一解码网络训练完成后,可以将第二编码网络以及第一解码网络上线使用。下面对第二编码网络以及第一解码网络的应用进行说明:
如图12所示的第二编码网络,第二编码网络与第一编码网络的主要区别在于,在第一编码网络的最后,再级连一个一维卷积层。这个一维卷积层的输入变量的维度是[56,1],输出变量F2(n)的维度是[56,1],通过增加编码网络的层数,可以提升编码网络的特征提取能力。类似地,可以进一步增加编码网络的层数,例如在一维卷积层中,进一步增加一个或者多个残差单元。
对F2(n)的量化编码,可以与对F1(n)的量化编码的流程一致。这样,就完成了编码端的操作。
在解码端,与上述实施例一致,通过解码,获得低维特征向量的估计值F′2(n),调用第一解码网络,生成输入信号的估计值x′2(n)。在解码端操作,与上述实施例一致。特别地,解码端复用第一解码网络(参数完全一致)。这样,就解决了前向兼容问题。
综上,本申请实施例提供的音频编解码系统的训练方法、音频编码方法、音频解码方法通过信号分解、信号处理技术与深度神经网络的有机结合,较信号处理方案,在保证复杂度可接受的情况下,显著提升音频质量。
至此已经结合本申请实施例提供的终端设备的示例性应用和实施,说明本申请实施例提供的音频编码方法或音频解码方法。本申请实施例还提供音频编码装置以及音频解码装置,实际应用中,音频编码装置以及音频解码装置中的各功能模块可以由电子设备(如终端设备、服务器或服务器集群)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)、存储器协同实现。图3A示出了存储在存储器550中的音频编解码系统的训练装置555、图3B示出了存储在存储器650中的音频编码装置655以及图3C示出了存储在存储器750中的音频编码装置755,其可以是程序和插件等形式的软件,例如,软件C/C++、Java等编程语言设计的软件模块、C/C++、Java等编程语言设计的应用软件或大型软件系统中的专用软件模块、应用程序接口、插件、云服务等实现方式,下面对不同的实现方式举例说明。
其中,音频编解码系统的训练装置555包括一系列的模块,包括第一获取模块5551、确定模块5552、构建模块5553、训练模块5554。下面继续说明本申请实施例提供的音频编解码系统的训练装置555中各个模块配合实现音频编解码系统的训练方案。
第一获取模块5551,用于获取第一音频编解码系统,其中,所述第一音频编解码系统包括第一编码网络以及第一解码网络,所述第一编码网络以及所述第一解码网络是通过第一音频样本训练得到的;确定模块5552,用于响应于针对所述第一编码网络的配置请求,确定与所述第一编码网络对应的待训练的第二编码网络;训练模块5553,用于基于所述待训练的第二编码网络对第二音频样本进行编码处理,得到所述第二音频样本的音频码流样本,并基于所述第一解码网络对所述音频码流样本进行解码处理,得到所述第二音频样本的合成音频样本;基于所述合成音频样本更新所述待训练的第二编码网络的参数,得到训练后的第二编码网络。
在一些实施例中,所述配置请求包括针对针对所述第一编码网络的同构网络配置请求,所述同构网络配置请求用于指示修改以下第一配置数据至少之一:训练所述第一音频编解码系统的第一音频样本、训练所述第一音频编解码系统的训练策略;所述待训练的第二编码网络为基于所述同构网络配置请求构建的所述第一编码网络的同构网络;当所述同构网络配置请求用于指示修改所述第一音频样本时,所述第二音频样本为基于所述同构网络配置请求修改后的第一音频样本。
在一些实施例中,当所述同构网络配置请求用于指示修改所述训练策略时,修改后的训练策略用于结合所述第二音频样本对所述待训练的第二编码网络进行训练,得到训练后的第二编码网络。
在一些实施例中,所述配置请求包括针对针对所述第一编码网络的异构网络配置请求,所述异构网络配置请求用于指示修改以下第二配置数据至少之一:所述第一编码网络的网络结构、所述第一编码网络的参数量;所述确定模块5552还用于基于所述异构网络配置请求,修改所述第一编码网络的第二配置数据,得到所述待训练的第二编码网络。
在一些实施例中,包括所述待训练的第二编码网络的第一音频编解码系统作为生成对抗网络中的生成模型,所述生成对抗网络还包括判别模型;所述训练模块5553还用于基于所述生成对抗网络中的生成模型以及判别模型,交替执行以下训练任务:基于真实的所述第二音频样本,训练所述生成模型,以使所述生成模型基于所述第二音频样本生成虚假的合成音频样本;基于真实的所述第二音频样本以及所述虚假的合成音频样本,训练所述判别模型,以使所述判别模型区分真实的音频样本和虚假的合成音频样本;其中,当训练所述生成模型时,固定所述判别模型的参数不变;当训练所述判别模型时,固定所述生成模型的参数不变;将训练后的生成模型中的第二编码网络作为所述训练后的第二编码网络。
在一些实施例中,所述训练模块5553还用于通过所述待训练的第二编码网络,对所述第二音频样本进行网络编码处理,得到所述第二音频样本的编码特征;对所述第二音频样本的编码特征进行信号编码处理,得到所述第二音频样本的音频码流样本;对所述第二音频样本的音频码流样本进行信号解码处理,得到所述音频码流样本对应的编码特征估计值;通过所述第一解码网络,对所述编码特征估计值进行网络解码处理,得到所述音频码流样本对应的合成音频样本。
在一些实施例中,所述待训练的第二编码网络包括所述第一编码网络的网络结构以及一维卷积层;所述训练模块5553还用于通过所述待训练的第二编码网络包括的所述第一编码网络的网络结构,对所述第二音频样本进行网络编码处理,得到所述第二音频样本的初始编码特征;通过所述待训练的第二编码网络包括的所述一维卷积层,对所述初始编码特征进行卷积处理,得到所述第二音频样本的编码特征。
在一些实施例中,所述训练模块5553还用于通过所述待训练的第二编码网络包括的所述第一编码网络的网络结构执行以下处理:对所述第二音频样本进行特征提取处理,得到所述第二音频样本的音频特征;利用所述网络结构中的至少一个残差单元,对所述音频特征进行残差处理,得到所述第二音频样本的初始编码特征。
在一些实施例中,所述训练模块5553还用于通过所述第一解码网络执行以下处理:利用所述第一解码网络包括的至少一个残差单元,对所述编码特征估计值进行残差处理,得到所述音频码流样本对应的音频特征估计值;对所述音频特征估计值进行特征重建处理,得到所述音频码流样本对应的合成音频样本。
在一些实施例中,当所述第二音频样本为对音频信号样本进行子带分解所得到低频子带信号时,所述音频码流样本为所述音频信号样本对应的低频码流样本;当所述第二音频样本为所述音频信号样本时,所述音频码流样本为所述音频信号样本对应的全频码流样本。
其中,音频编码装置655包括一系列的模块,包括第二获取模块6551、编码模块6552、信号编码模块6553。下面继续说明本申请实施例提供的音频编码装置655中各个模块配合实现音频编码方案。
第二获取模块6551,用于获取音频信号;编码模块6552,用于调用第一音频编解码系统中的训练后的第二编码网络,对所述音频信号进行网络编码处理,得到所述音频信号的第二编码特征,其中,所述第一音频编解码系统包括所述训练后的第二编码网络以及第一解码网络;信号编码模块6553,用于对所述音频信号的第二编码特征进行信号编码处理,得到所述音频信号的第二音频码流;其中,第一音频码流与所述第二音频码流均能通过所述第一解码网络解码出所述音频信号对应的合成音频信号,所述第一音频码流是所述音频信号经过第一编码网络处理后得到的音频码流,所述训练后的第二编码网络是通过音频编解码系统的训练方法针对所述第一编码网络训练得到的。
其中,音频解码装置755包括一系列的模块,包括第三获取模块7551、信号解码模块7552、解码模块7553。下面继续说明本申请实施例提供的音频解码装置555中各个模块配合实现音频解码方案。
第三获取模块7551,用于获取音频码流;信号解码模块7552,用于对所述音频码流进行信号解码处理,得到所述音频码流对应的编码特征估计值;解码模块7553,用于调用第一音频编解码系统中的第一解码网络,对所述编码特征估计值进行网络解码处理,得到所述音频码流对应的合成音频信号;其中,所述第一音频编解码系统包括训练后的第二编码网络以及所述第一解码网络,所述音频码流是音频信号经过所述训练后的第二编码网络或第一编码网络处理后得到的,所述训练后的第二编码网络是通过音频编解码系统的训练方法针对所述第一编码网络训练得到的。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机程序或计算机可执行指令,处理器执行该计算机程序或计算机可执行指令,使得该电子设备执行本申请实施例上述的音频编解码系统的训练方法、音频编码方法、音频解码方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的音频编解码系统的训练方法、音频编码方法、音频解码方法,例如,如图4A示出的音频编解码系统的训练方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备。
在一些实施例中,计算机可执行指令(简称可执行指令)可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
可以理解的是,在本申请实施例中,涉及到用户信息等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (15)

1.一种音频编解码系统的训练方法,其特征在于,所述方法包括:
获取第一音频编解码系统,其中,所述第一音频编解码系统包括第一编码网络以及第一解码网络,所述第一编码网络以及所述第一解码网络是通过第一音频样本训练得到的;
响应于针对所述第一编码网络的配置请求,确定与所述第一编码网络对应的待训练的第二编码网络;
基于所述待训练的第二编码网络对第二音频样本进行编码处理,得到所述第二音频样本的音频码流样本,并基于所述第一解码网络对所述音频码流样本进行解码处理,得到所述第二音频样本的合成音频样本;
基于所述合成音频样本更新所述待训练的第二编码网络的参数,得到训练后的第二编码网络。
2.根据权利要求1所述的方法,其特征在于,
所述配置请求包括针对所述第一编码网络的同构网络配置请求,所述同构网络配置请求用于指示修改以下第一配置数据至少之一:训练所述第一音频编解码系统的第一音频样本、训练所述第一音频编解码系统的训练策略;
所述待训练的第二编码网络为基于所述同构网络配置请求构建的所述第一编码网络的同构网络;
当所述同构网络配置请求用于指示修改所述第一音频样本时,所述第二音频样本为基于所述同构网络配置请求修改后的第一音频样本。
3.根据权利要求2所述的方法,其特征在于,当所述同构网络配置请求用于指示修改所述训练策略时,修改后的训练策略用于结合所述第二音频样本对所述待训练的第二编码网络进行训练,得到训练后的第二编码网络。
4.根据权利要求1所述的方法,其特征在于,
所述配置请求包括针对针对所述第一编码网络的异构网络配置请求,所述异构网络配置请求用于指示修改以下第二配置数据至少之一:所述第一编码网络的网络结构、所述第一编码网络的参数量;
所述响应于针对所述第一编码网络的配置请求,确定与所述第一编码网络对应的待训练的第二编码网络,包括:
基于所述异构网络配置请求,修改所述第一编码网络的第二配置数据,得到所述待训练的第二编码网络。
5.根据权利要求1所述的方法,其特征在于,
包括所述待训练的第二编码网络的第一音频编解码系统作为生成对抗网络中的生成模型,所述生成对抗网络还包括判别模型;
所述待训练的第二编码网络是通过以下方式训练得到的:
基于所述生成对抗网络中的生成模型以及判别模型,交替执行以下训练任务:
基于真实的所述第二音频样本,训练所述生成模型,以使所述生成模型基于所述第二音频样本生成虚假的合成音频样本;
基于真实的所述第二音频样本以及所述虚假的合成音频样本,训练所述判别模型,以使所述判别模型区分真实的音频样本和虚假的合成音频样本;
其中,当训练所述生成模型时,固定所述判别模型的参数不变;当训练所述判别模型时,固定所述生成模型的参数不变;
将训练后的生成模型中的第二编码网络作为所述训练后的第二编码网络。
6.根据权利要求1-5任一项所述的方法,其特征在于,
所述基于所述待训练的第二编码网络对第二音频样本进行编码处理,得到所述第二音频样本的编码结果,包括:
通过所述待训练的第二编码网络,对所述第二音频样本进行网络编码处理,得到所述第二音频样本的编码特征;
对所述第二音频样本的编码特征进行信号编码处理,得到所述第二音频样本的音频码流样本;
所述基于所述第一解码网络对所述音频码流样本进行解码处理,得到所述第二音频样本的合成音频样本,包括:
对所述第二音频样本的音频码流样本进行信号解码处理,得到所述音频码流样本对应的编码特征估计值;
通过所述第一解码网络,对所述编码特征估计值进行网络解码处理,得到所述音频码流样本对应的合成音频样本。
7.根据权利要求6所述的方法,其特征在于,
所述待训练的第二编码网络包括所述第一编码网络的网络结构以及一维卷积层;
所述通过所述待训练的第二编码网络,对所述第二音频样本进行网络编码处理,得到所述第二音频样本的编码特征,包括:
通过所述待训练的第二编码网络包括的所述第一编码网络的网络结构,对所述第二音频样本进行网络编码处理,得到所述第二音频样本的初始编码特征;
通过所述待训练的第二编码网络包括的所述一维卷积层,对所述初始编码特征进行卷积处理,得到所述第二音频样本的编码特征。
8.根据权利要求7所述的方法,其特征在于,所述通过所述待训练的第二编码网络包括的所述第一编码网络的网络结构,对所述第二音频样本进行网络编码处理,得到所述第二音频样本的初始编码特征,包括:
通过所述待训练的第二编码网络包括的所述第一编码网络的网络结构执行以下处理:
对所述第二音频样本进行特征提取处理,得到所述第二音频样本的音频特征;
利用所述网络结构中的至少一个残差单元,对所述音频特征进行残差处理,得到所述第二音频样本的初始编码特征。
9.根据权利要求6所述的方法,其特征在于,所述通过所述第一解码网络,对所述编码特征估计值进行网络解码处理,得到所述音频码流样本对应的合成音频样本,包括:
通过所述第一解码网络执行以下处理:
利用所述第一解码网络包括的至少一个残差单元,对所述编码特征估计值进行残差处理,得到所述音频码流样本对应的音频特征估计值;
对所述音频特征估计值进行特征重建处理,得到所述音频码流样本对应的合成音频样本。
10.根据权利要求1-9任一项所述的方法,其特征在于,
当所述第二音频样本为对音频信号样本进行子带分解所得到低频子带信号时,所述音频码流样本为所述音频信号样本对应的低频码流样本;
当所述第二音频样本为所述音频信号样本时,所述音频码流样本为所述音频信号样本对应的全频码流样本。
11.一种音频编码方法,其特征在于,所述方法包括:
获取音频信号;
调用第一音频编解码系统中的训练后的第二编码网络,对所述音频信号进行网络编码处理,得到所述音频信号的第二编码特征,其中,所述第一音频编解码系统包括所述训练后的第二编码网络以及第一解码网络;
对所述音频信号的第二编码特征进行信号编码处理,得到所述音频信号的第二音频码流;
其中,第一音频码流与所述第二音频码流均能通过所述第一解码网络解码出所述音频信号对应的合成音频信号,所述第一音频码流是所述音频信号经过第一编码网络处理后得到的音频码流,所述训练后的第二编码网络是通过权利要求1-10任一项所述的音频编解码系统的训练方法针对所述第一编码网络训练得到的。
12.一种音频解码方法,其特征在于,所述方法包括:
获取音频码流;
对所述音频码流进行信号解码处理,得到所述音频码流对应的编码特征估计值;
调用第一音频编解码系统中的第一解码网络,对所述编码特征估计值进行网络解码处理,得到所述音频码流对应的合成音频信号;
其中,所述第一音频编解码系统包括训练后的第二编码网络以及所述第一解码网络,所述音频码流是音频信号经过所述训练后的第二编码网络或第一编码网络处理后得到的,所述训练后的第二编码网络是通过权利要求1-10任一项所述的音频编解码系统的训练方法针对所述第一编码网络训练得到的。
13.一种音频编解码系统的训练装置,其特征在于,所述装置包括:
第一获取模块,用于获取第一音频编解码系统,其中,所述第一音频编解码系统包括第一编码网络以及第一解码网络,所述第一编码网络以及所述第一解码网络是通过第一音频样本训练得到的;
确定模块,用于响应于针对所述第一编码网络的配置请求,确定与所述第一编码网络对应的待训练的第二编码网络;
训练模块,用于基于所述待训练的第二编码网络对第二音频样本进行编码处理,得到所述第二音频样本的音频码流样本,并基于所述第一解码网络对所述音频码流样本进行解码处理,得到所述第二音频样本的合成音频样本;
基于所述合成音频样本更新所述待训练的第二编码网络的参数,得到训练后的第二编码网络。
14.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机程序或计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机程序或计算机可执行指令时,实现权利要求1至10任一项所述的音频编解码系统的训练方法,或权利要求11所述的音频编码方法,或权利要求12所述的音频解码方法。
15.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,被处理器执行时实现权利要求1至10任一项所述的音频编解码系统的训练方法,或权利要求11所述的音频编码方法,或权利要求12所述的音频解码方法。
CN202311832234.8A 2023-12-26 2023-12-26 音频编解码系统的训练方法、编码方法、解码方法、装置 Pending CN117831548A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311832234.8A CN117831548A (zh) 2023-12-26 2023-12-26 音频编解码系统的训练方法、编码方法、解码方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311832234.8A CN117831548A (zh) 2023-12-26 2023-12-26 音频编解码系统的训练方法、编码方法、解码方法、装置

Publications (1)

Publication Number Publication Date
CN117831548A true CN117831548A (zh) 2024-04-05

Family

ID=90510904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311832234.8A Pending CN117831548A (zh) 2023-12-26 2023-12-26 音频编解码系统的训练方法、编码方法、解码方法、装置

Country Status (1)

Country Link
CN (1) CN117831548A (zh)

Similar Documents

Publication Publication Date Title
JP4850837B2 (ja) 異なるサブバンド領域同士の間の通過によるデータ処理方法
RU2530926C2 (ru) Изменение формы шума округления для основанных на целочисленном преобразовании кодирования и декодирования аудио и видеосигнала
US20090319278A1 (en) Efficient coding of overcomplete representations of audio using the modulated complex lapped transform (mclt)
US20220180881A1 (en) Speech signal encoding and decoding methods and apparatuses, electronic device, and storage medium
WO2023241193A1 (zh) 音频编码方法、装置、电子设备、存储介质及程序产品
WO2023241254A1 (zh) 音频编解码方法、装置、电子设备、计算机可读存储介质及计算机程序产品
CN111641826A (zh) 对数据进行编码、解码的方法、装置与系统
EP4229629A2 (en) Real-time packet loss concealment using deep generative networks
JP7167335B2 (ja) 生成モデルを用いたレート品質スケーラブル符号化のための方法及び装置
WO2023241222A9 (zh) 音频处理方法、装置、设备、存储介质及计算机程序产品
Kumar et al. The optimized wavelet filters for speech compression
WO2023241205A1 (zh) 音频处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品
Raj et al. Multilayered convolutional neural network-based auto-CODEC for audio signal denoising using mel-frequency cepstral coefficients
CN115116457A (zh) 音频编码及解码方法、装置、设备、介质及程序产品
CN117831548A (zh) 音频编解码系统的训练方法、编码方法、解码方法、装置
CN117198301A (zh) 音频编码方法、音频解码方法、装置、可读存储介质
CN117219095A (zh) 音频编码方法、音频解码方法、装置、设备及存储介质
CN104380377A (zh) 用于可缩放低复杂度编码/解码的方法和装置
CN117476024A (zh) 音频编码方法、音频解码方法、装置、可读存储介质
Raj et al. Audio signal quality enhancement using multi-layered convolutional neural network based auto encoder–decoder
CN117834596A (zh) 音频处理方法、装置、设备、存储介质及计算机程序产品
CN117219099A (zh) 音频编码、音频解码方法、音频编码装置、音频解码装置
US11881227B2 (en) Audio signal compression method and apparatus using deep neural network-based multilayer structure and training method thereof
CN117423348B (zh) 基于深度学习和矢量预测的语音压缩方法及系统
WO2022252957A1 (zh) 音频数据编解码方法和相关装置及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination