CN117059105A - 一种音频数据处理方法、装置、设备及介质 - Google Patents
一种音频数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117059105A CN117059105A CN202311141490.2A CN202311141490A CN117059105A CN 117059105 A CN117059105 A CN 117059105A CN 202311141490 A CN202311141490 A CN 202311141490A CN 117059105 A CN117059105 A CN 117059105A
- Authority
- CN
- China
- Prior art keywords
- audio
- error
- data frame
- audio data
- decoding
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 10
- 230000005236 sound signal Effects 0.000 claims abstract description 174
- 238000000034 method Methods 0.000 claims abstract description 132
- 238000012545 processing Methods 0.000 claims abstract description 88
- 230000008569 process Effects 0.000 claims abstract description 65
- 238000004364 calculation method Methods 0.000 claims abstract description 50
- 238000013139 quantization Methods 0.000 claims description 200
- 230000008447 perception Effects 0.000 claims description 67
- 238000001228 spectrum Methods 0.000 claims description 62
- 238000013507 mapping Methods 0.000 claims description 39
- 238000003860 storage Methods 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 26
- 238000006243 chemical reaction Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 18
- 238000013135 deep learning Methods 0.000 description 47
- 238000010586 diagram Methods 0.000 description 29
- 238000005516 engineering process Methods 0.000 description 24
- 230000006854 communication Effects 0.000 description 20
- 238000012549 training Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 18
- 238000013461 design Methods 0.000 description 17
- 238000000605 extraction Methods 0.000 description 17
- 230000009466 transformation Effects 0.000 description 17
- 230000003595 spectral effect Effects 0.000 description 14
- 238000013473 artificial intelligence Methods 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 11
- 238000009432 framing Methods 0.000 description 11
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 238000005070 sampling Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 7
- 230000037433 frameshift Effects 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 6
- 230000006837 decompression Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000001364 causal effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000006403 short-term memory Effects 0.000 description 3
- 206010011469 Crying Diseases 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 210000005069 ears Anatomy 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007787 long-term memory Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000005311 autocorrelation function Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种音频数据处理方法、装置、设备及介质,方法包括:获取待编码音频数据帧对应的数据编码码流,对数据编码码流进行预解码处理,解码得到预解码音频数据帧;对待编码音频数据帧和预解码音频数据帧进行误差计算,得到数据编码误差;响应于数据编码误差满足待处理音频信号对应的误差编码条件,对数据编码误差进行误差编码,得到与待编码音频数据帧相关联的误差编码码流;误差编码码流解码得到的误差解码数据帧和数据编码码流解码得到的音频解码数据帧,用于重构得到待编码音频数据帧对应的音频数据重构帧;音频数据重构帧用于重构得到待处理音频信号对应的音频重构信号。采用本申请,可以在音频编解码过程中提升信号保真度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种音频数据处理方法、装置、设备及介质。
背景技术
近年来,随着深度学习的研究深入,基于深度学习的音频编解码逐渐成为音频编解码器的主流研究方向。然而,现有的深度学习音频编解码方案,普遍采用开环设计框架,即编码过程完全基于已经训练好的网络模型(比如音频编码器根据训练好的固定网络参数对输入的音频信号进行编码),但由于训练样本无法完全覆盖实际场景的输入信号,以及深度学习网络训练的目标是基于某个损失函数(如交叉熵)定义使综合误差尽可能小,而不是让输入信号与输出信号实现精准匹配等原因,导致训练过程必然存在误差,在这种情况下,训练好的音频编解码器其音频重构信号与实际输入信号势必会存在一定误差,以至于解码后得到的音频重构信号无法进一步提升信号保真度。
发明内容
本申请实施例提供了一种音频数据处理方法、装置、设备及介质,可以在音频编解码过程中提升信号保真度。
本申请实施例一方面提供了一种音频数据处理方法,包括:
获取待编码音频数据帧对应的数据编码码流,对数据编码码流进行预解码处理,解码得到数据编码码流对应的预解码音频数据帧;待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;
对待编码音频数据帧和预解码音频数据帧进行误差计算,得到待编码音频数据帧和预解码音频数据帧之间的数据编码误差;
响应于数据编码误差满足待处理音频信号对应的误差编码条件,对数据编码误差进行误差编码,得到与待编码音频数据帧相关联的误差编码码流;误差编码码流解码得到的误差解码数据帧和数据编码码流解码得到的音频解码数据帧,用于重构得到待编码音频数据帧对应的音频数据重构帧;音频数据重构帧用于重构得到待处理音频信号对应的音频重构信号。
本申请实施例一方面提供了一种音频数据处理方法,包括:
接收与待编码音频数据帧相关联的误差编码码流以及数据编码码流;待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;误差编码码流是响应于数据编码误差满足待处理音频信号对应的误差编码条件,对数据编码误差进行误差编码后得到的;数据编码误差是通过对待编码音频数据帧和数据编码码流对应的预解码音频数据帧进行误差计算所得到的;预解码音频数据帧是对数据编码码流进行预解码处理后得到的;
响应于解码得到误差编码码流对应的误差解码数据帧和数据编码码流对应的音频解码数据帧,通过误差解码数据帧和音频解码数据帧重构得到待编码音频数据帧对应的音频数据重构帧;音频数据重构帧用于重构得到待处理音频信号对应的音频重构信号。
本申请实施例一方面提供了一种音频数据处理装置,包括:
预解码模块,用于获取待编码音频数据帧对应的数据编码码流,对数据编码码流进行预解码处理,解码得到数据编码码流对应的预解码音频数据帧;待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;
误差计算模块,用于对待编码音频数据帧和预解码音频数据帧进行误差计算,得到待编码音频数据帧和预解码音频数据帧之间的数据编码误差;
误差编码模块,用于响应于数据编码误差满足待处理音频信号对应的误差编码条件,对数据编码误差进行误差编码,得到与待编码音频数据帧相关联的误差编码码流;误差编码码流解码得到的误差解码数据帧和数据编码码流解码得到的音频解码数据帧,用于重构得到待编码音频数据帧对应的音频数据重构帧;音频数据重构帧用于重构得到待处理音频信号对应的音频重构信号。
其中,预解码模块包括:
音频编码单元,用于获取待处理音频信号所对应的音频数据帧中的待编码音频数据帧,对待编码音频数据帧进行音频编码,得到待编码音频数据帧对应的数据编码码流;
预解码单元,用于对数据编码码流进行预解码处理,解码得到数据编码码流对应的预解码音频数据帧。
其中,音频编码单元包括:
第一提取子单元,用于对待编码音频数据帧进行特征提取,得到待编码音频数据帧对应的音频特征;
第一量化子单元,用于对音频特征进行量化,得到待编码音频数据帧对应的数据编码码流。
其中,第一量化子单元具体用于响应于获取到的待编码音频数据帧对应的编码量化等级,基于与编码量化等级相匹配的第一量化精度参数,对音频特征进行量化,得到量化后的音频特征,将量化后的音频特征作为待编码音频数据帧对应的数据编码码流。
其中,装置还包括:
类型识别模块,用于对待编码音频数据帧进行音频类型识别,得到待编码音频数据帧的音频类型;
量化控制模块,用于基于待编码音频数据帧的音频类型,对待编码音频数据帧进行量化等级映射,得到待编码音频数据帧对应的编码量化等级。
其中,量化控制模块包括:
规则表获取单元,用于获取配置的量化等级映射规则表;量化等级映射规则表用于存储不同音频类型与量化等级之间的映射关系;
等级查找单元,用于在量化等级映射规则表中查找与待编码音频数据帧的音频类型具有映射关系的量化等级,且将查找到的量化等级作为待编码音频数据帧对应的编码量化等级。
其中,预解码单元具体用于对数据编码码流中的量化后的音频特征进行解压缩处理,得到数据编码码流对应的预解码音频数据帧。
其中,误差计算模块具体用于将待编码音频数据帧和预解码音频数据帧相减,得到待编码音频数据帧和预解码音频数据帧之间的数据帧差值,将得到的数据帧差值作为待编码音频数据帧和预解码音频数据帧之间的数据编码误差。
其中,误差编码条件包括针对待处理音频信号配置的感知阈值;
误差编码模块包括:
感知计算单元,用于获取与待编码音频数据帧相关联的听觉感知加权系数,对听觉感知加权系数、待编码音频数据帧以及预解码音频数据帧进行感知误差计算,得到数据编码误差对应的感知误差;
误差编码单元,用于响应于感知误差大于感知阈值,确定数据编码误差满足待处理音频信号对应的误差编码条件,且对数据编码误差进行误差编码,得到与待编码音频数据帧相关联的误差编码码流。
其中,感知计算单元包括:
参数查找子单元,用于响应于获取到的待编码音频数据帧在频域上的目标频点,获取目标频点对应的频率在等响曲线数据表中所属的目标频率区间,在等响曲线数据表中查找目标频率区间对应的等响曲线参数,且将查找到的等响曲线参数作为目标等响曲线参数;
系数计算子单元,用于对目标等响曲线参数进行响度计算,得到目标频点对应的目标响度,且通过对目标响度进行系数转换,得到与待编码音频数据帧相关联的听觉感知加权系数;
感知计算子单元,用于获取待编码音频数据帧在频域上与目标频点相关联的第一功率谱幅值以及预解码音频数据帧在频域上与目标频点相关联的第二功率谱幅值,基于听觉感知加权系数、第一功率谱幅值以及第二功率谱幅值进行感知误差计算,得到数据编码误差对应的感知误差。
其中,误差编码单元包括:
第二提取子单元,用于对数据编码误差进行特征提取,得到数据编码误差对应的误差特征;
第二量化子单元,用于对误差特征进行量化,得到与待编码音频数据帧相关联的误差编码码流。
其中,第二量化子单元具体用于响应于获取到的待编码音频数据帧对应的编码量化等级,基于与编码量化等级相匹配的第二量化精度参数,对误差特征进行量化,得到量化后的误差特征,将量化后的误差特征作为与待编码音频数据帧相关联的误差编码码流。
其中,装置还包括:
误差舍弃模块,用于响应于数据编码误差不满足误差编码条件,不对数据编码误差进行误差编码;数据编码码流解码得到的音频解码数据帧用于作为待编码音频数据帧对应的音频数据重构帧。
本申请实施例一方面提供了一种音频数据处理装置,包括:
码流接收模块,用于接收与待编码音频数据帧相关联的误差编码码流以及数据编码码流;待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;误差编码码流是响应于数据编码误差满足待处理音频信号对应的误差编码条件,对数据编码误差进行误差编码后得到的;数据编码误差是通过对待编码音频数据帧和数据编码码流对应的预解码音频数据帧进行误差计算所得到的;预解码音频数据帧是对数据编码码流进行预解码处理后得到的;
音频重构模块,用于响应于解码得到误差编码码流对应的误差解码数据帧和数据编码码流对应的音频解码数据帧,通过误差解码数据帧和音频解码数据帧重构得到待编码音频数据帧对应的音频数据重构帧;音频数据重构帧用于重构得到待处理音频信号对应的音频重构信号。
其中,音频重构模块包括:
误差解码单元,用于对误差编码码流进行误差解码,得到误差编码码流对应的误差解码数据帧;
音频解码单元,用于对数据编码码流进行音频解码,得到数据编码码流对应的音频解码数据帧;
线性叠加单元,用于对误差解码数据帧和音频解码数据帧进行线性叠加处理,得到待编码音频数据帧对应的音频数据重构帧。
本申请实施例一方面提供了一种音频数据处理***,***包括:音频编码器和音频解码器;音频编码器包括编码组件、预解码组件和误差编码组件;音频解码器包括误差解码组件和解码组件;
编码组件用于获取待编码音频数据帧对应的数据编码码流;待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;
预解码组件用于对数据编码码流进行预解码处理,解码得到数据编码码流对应的预解码音频数据帧;
误差编码组件用于响应于数据编码误差满足待处理音频信号对应的误差编码条件,对数据编码误差进行误差编码,得到与待编码音频数据帧相关联的误差编码码流;数据编码误差是通过对待编码音频数据帧和预解码音频数据帧进行误差计算得到的;误差编码码流和数据编码码流用于发送给音频解码器;
误差解码组件用于对获取到的音频编码器发送的误差编码码流进行误差解码,得到误差编码码流对应的误差解码数据帧;
解码组件用于对获取到的音频编码器发送的数据编码码流进行音频解码,得到数据编码码流对应的音频解码数据帧;误差解码数据帧和音频解码数据帧用于重构得到待编码音频数据帧对应的音频数据重构帧;音频数据重构帧用于重构得到待处理音频信号对应的音频重构信号。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例中,可以获取待编码音频数据帧对应的数据编码码流,并对数据编码码流进行预解码处理,从而解码得到数据编码码流对应的预解码音频数据帧;其中,该待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;进一步地,可以对待编码音频数据帧和预解码音频数据帧进行误差计算,得到待编码音频数据帧和预解码音频数据帧之间的数据编码误差;响应于数据编码误差满足待处理音频信号对应的误差编码条件,可以对数据编码误差进行误差编码,得到与待编码音频数据帧相关联的误差编码码流;其中,误差编码码流解码得到的误差解码数据帧和数据编码码流解码得到的音频解码数据帧,可用于重构得到待编码音频数据帧对应的音频数据重构帧;该音频数据重构帧用于重构得到待处理音频信号对应的音频重构信号。由此可见,本申请实施例提出了一种具有实时误差反馈编码的深度学习音频编解码方案,采用闭环反馈设计,通过在编码过程中加入预解码环节,可以对当前帧的深度学习编码输出(即待编码音频数据帧对应的数据编码码流)进行相应的深度学习预解码,进而获取当前帧的编码误差(即数据编码误差),并可响应于满足误差编码条件,对当前编码误差进行二次编码,在后续的解码过程中,通过解码得到的误差解码数据帧和音频解码数据帧可以重构得到前述待编码音频数据帧对应的音频数据重构帧,可以理解,由于本申请实施例对预解码重构信号(比如前述预解码音频数据帧)与原始输入信号(比如前述待编码音频数据帧)之间的实时误差进行了补偿和编码,因此可以在音频编解码过程中提升信号保真度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种***架构示意图;
图2是本申请实施例提供的一种音频数据处理场景示意图;
图3是本申请实施例提供的一种即时通信场景的示意图;
图4是本申请实施例提供的一种音视频通话场景的示意图;
图5是本申请实施例提供的一种音视频会议场景的示意图;
图6是本申请实施例提供的一种音频数据处理方法的流程示意图一;
图7是本申请实施例提供的一种分帧处理的场景示意图;
图8是本申请实施例提供的一种音频编码器的结构示意图;
图9是本申请实施例提供的一种时频域转换的场景示意图;
图10是本申请实施例提供的一种听觉感知加权系数的示意图;
图11是本申请实施例提供的一种数据处理方法的流程示意图二;
图12是本申请实施例提供的一种音频解码器的结构示意图;
图13是本申请实施例提供的一种音频编解码流程示意图;
图14是本申请实施例提供的一种音频数据处理装置的结构示意图一;
图15是本申请实施例提供的一种音频数据处理装置的结构示意图二;
图16是本申请实施例提供的一种计算机设备的结构示意图;
图17是本申请实施例提供的一种音频数据处理***的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
本申请实施例提供的方案涉及数字信号处理技术。可以理解的是,数字信号处理(Digital Signal Processing,DSP)是将模拟信息(如音频、视频、图片等)转换为数字信息的技术,其利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。数字信号处理涉及数学、网络理论、信号与***、控制论、通信理论、人工智能、模式识别、神经网络等多种学科,且已经在通信等领域得到极为广泛的应用。在本申请实施例中,数字信号处理技术可用于提取待编码音频数据帧对应的音频特征以及数据编码误差对应的误差特征。
本申请实施例提供的方案涉及人工智能领域下的机器学习技术。可以理解的是,机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。预训练模型是深度学习的最新发展成果,融合了以上技术。在本申请实施例中,音频编码器和音频解码器均为基于机器学习技术的AI模型,音频编码器可用于对待编码音频数据帧进行音频编码以及对待编码音频数据帧和预解码音频数据帧之间的数据编码误差进行补偿和编码,相应的,音频解码器可用于通过解码得到的误差解码数据帧和音频解码数据帧重构得到待编码音频数据帧对应的音频数据重构帧。
可以理解,在常规的音频处理应用中,音频信号经过ADC(即Analog-to-DigitalConversion)模数转换和音频编码器进行压缩后,可以有效降低存储空间和传输带宽;当音频播放时,来自存储设备或网络传输接收到的压缩音频码流经过对应的音频解码以及DAC(即Digital-to-Analog Conversion)数模转换后的音频模拟信号,通过硬件播放设备进行播放。其中,传统的音频编解码器是基于语音模型、声学掩蔽效应或时频域的相关性等原理对原始音频数字信号进行压缩。近年来随着深度学习的研究深入,基于深度学习的音频编解码逐渐成为音频编码器的主流研究方向,目前深度学习音频编码器相比传统音频编码器在编码效率上有显著提升,部分深度学习音频编码器在音质相当条件下与传统音频编码器相比,压缩效率提升了几倍到十倍,可以在1.6kbps的极低编码码率下实现正常的VoIP(Voice over Internet Protocol)通话应用。
本申请实施例主要涉及基于深度学习的音频编解码技术,为便于理解,请参见图1,图1是本申请实施例提供的一种***架构示意图。如图1所示,该***架构可以包括音频编码器100A和音频解码器100B,音频编码器100A可以是指用于对音频信号进行编码的工具,可集成在音频编码阶段所使用的计算机设备上,为便于区分,该计算机设备可称为编码设备,该编码设备可以是终端设备或服务器,本申请实施例对集成有音频编码器100A的编码设备的具体形式不做限定;音频解码器100B可以是指用于对音频码流进行解码的工具,可集成在音频解码阶段所使用的计算机设备上,为便于区分,该计算机设备可称为解码设备,该解码设备可以是终端设备或服务器,本申请实施例对集成有音频解码器100B的解码设备的具体形式不做限定。其中,音频编码器100A与音频解码器100B之间可以存在通信连接,该通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其它方式,本申请在此不做限制。
其中,上述终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能头盔、智能手表、智能助听设备等)、智能电脑、智能家电、智能车载等可以处理音频数据的智能终端。其中,上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云数据库、云服务、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,终端设备和服务器可以通过有线或无线方式进行直接或间接地连接,本申请实施例在此不做限制。可以理解的是,可选的,若服务器上集成有音频编码器(比如前述音频编码器100A),则该服务器可以通过加载音频编码器,实现基于深度学习的音频编码。
可以理解的是,本申请涉及基于深度学习的音频编解码技术可以依托于云技术进行实现;例如,将音频编码器集成在云服务器上。其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
应当理解,终端设备可以安装有客户端,当该客户端运行于终端设备中时,可以与服务器进行数据交互。其中,客户端可以为即时通信客户端、社交客户端、娱乐客户端(例如,游戏客户端、直播客户端、小说客户端)、多媒体客户端(例如,短视频客户端、音乐客户端)、购物客户端、工具类客户端(例如,音频编辑客户端)、车载客户端、智能家居客户端、浏览器等具有显示文字、图像、音频或视频等数据信息功能的应用程序。其中,该客户端可以为独立的客户端,也可以为集成在某客户端(例如即时通信客户端、社交客户端等)中的嵌入式子客户端,在此不做限定。可以理解的是,可选的,若终端设备上集成有音频编码器(比如前述音频编码器100A),则该客户端可以通过加载音频编码器,实现基于深度学习的音频编码,此时,加载了音频编码器的客户端可作为编码客户端;若终端设备上集成有音频解码器(比如前述音频解码器100B),则该客户端可以通过加载音频解码器,实现基于深度学习的音频解码,此时,加载了音频解码器的客户端可作为解码客户端。
其中,需要说明的是,本申请实施例中的终端设备按照其操作方式可大致分为两种终端类型,为便于区分,这里可以将其分别称为第一终端类型和第二终端类型,其中,具有第一终端类型的终端设备(也可称为桌面端设备或者面向桌面的终端设备)是指以鼠标点击、键盘输入等交互操作为主的终端设备,且在这类终端设备上运行的任一客户端通常可以支持同时打开一个或多个窗口(即支持多页面显示),因此这类终端设备具有以窗口为维度进行交互的特点,具有第一终端类型的终端设备可包括笔记本电脑、台式计算机、智能电脑、部分平板电脑(如微软的Surface Pro,可外接键盘和鼠标进行操作)等;而具有第二终端类型的终端设备(也可称为非桌面端设备)则是指以用户手部点击或滑动等交互操作为主的终端设备,且这类终端设备上运行的任一客户端通常只能打开一个窗口(即支持单页面显示),具有第二终端类型的终端设备可包括智能手机、部分平板电脑(如iPad)、移动互联网设备、可穿戴设备(例如智能手表、智能手环等)、智能车载等。可以理解,基于此,本申请实施例可以将安装并运行在不同终端类型上的客户端也划分为两种客户端类型,其中,安装并运行在具有第一终端类型的终端设备上的客户端对应的客户端类型可称为第一客户端类型(即面向桌面的客户端,也可称为非移动端,比如电脑端),安装并运行在具有第二终端类型的终端设备上的客户端对应的客户端类型可称为第二客户端类型(即移动端,比如手机端),可以理解,对于同一应用的两种不同客户端类型,其页面布局和交互方式可能也存在着一定的差异。本申请提供的方法适用于所有客户端类型,因此,本申请所有实施例对涉及到的终端类型以及客户端类型均不做限定,且后续将不会对不同客户端类型的页面布局和交互方式所存在的差异进行区分描述。
以编码客户端和解码客户端均为即时通信客户端为例,与即时通信客户端相关联的业务服务器可以包括即时通信客户端对应的后台服务器、数据处理服务器、数据存储服务器等多个服务器,因此,终端设备可以通过其运行的即时通信客户端与业务服务器进行数据传输,如某个终端设备(比如终端设备Z1)上作为编码客户端的即时通信客户端可以调用相关的音频编码器,对在即时通信过程中实时采集到的音频信号进行编码,并可通过业务服务器将编码后所得到的音频码流发送至其它终端设备(比如终端设备Z2),其它终端设备上作为解码客户端的即时通信客户端则可以调用相关的音频解码器,对接收到的音频码流进行解码,进而播放,以实现即时通信(例如,收发语音消息)。
其中,基于深度学习的音频编解码过程可包括在音频编码器100A侧的编码过程及在音频解码器100B侧的解码过程。下面将结合图1,分别对基于深度学习的音频编解码过程中涉及的各个过程进行介绍。
如图1所示,在编码阶段,音频编码器100A可以对输入的音频信号(比如音频信号A)进行特征提取,这个提取过程通常可使用深度编码网络(例如全卷积网络)来实现,提取到的特征经过量化后生成音频码流(比如音频码流B),并通过相关传输通道传输给音频解码器100B。其中,该传输通道可以基于各种传输协议来实现,此处的传输协议可包括但不限于:RTSP(Real Time Streaming Protocol,实时流传输协议)、RTMP(Real Time MessagingProtocol,实时消息传输协议)、HTTP(HyperText Transfer Protocol,超文本传输协议)、SIP(Session Initiation Protocol,会话发起协议)等,本申请实施例将不对传输音频码流时所采用的传输协议进行限制。
其中,在启动音频编码器100A时,可预先设定目标编码码率值,该值用于指引音频编码器100A编码过程中的平均编码码率,而在音频编码器100A工作过程中,编码的每一帧输出的码率值可以是动态变化的,其多帧码率的平均值通常会小于或等于设定的目标编码码率值,本申请实施例将不对目标编码码率值的具体取值进行限制。
进一步地,在解码阶段,音频解码器100B在接收到音频编码器100A发送的音频码流(比如前述音频码流B)后,可以进行信号重构,这个重构过程通常可使用生成网络(即深度解码网络)来实现,进而可输出解码后得到的重构信号(比如音频信号C)。
可以理解,音频编码通过压缩音频数据来减少数据量,可便于音频数据的推流、拉流和存储,与传统音频编码器相比,深度学习音频编码器的编码效率更高,从而可以极大降低传输带宽、提高传输效率,且可有效降低存储空间。对于音频数据,常用的编码标准包括G.711(是国际电信联盟定制出来的一套语音压缩标准)、AAC(Advanced Audio Coding,于1997年推出的基于MPEG-2的音频编码技术)、Opus(一个有损声音编码的格式)等,可封装为MP3(Moving Picture Experts Group Audio Layer III)、OGG(OGGVobis(oggVorbis))、AAC等格式。本申请实施例对编码采用的格式不进行限制。
本申请实施例提供了一种具有实时误差反馈编码的深度学习音频编解码方案,可在编码过程中加入预解码环节,即通过在音频编码器中加入预解码环节,对输入的音频信号进行深度学习音频编码,进而可通过该音频编码器对应的音频解码器,对接收到的音频码流进行深度学习音频解码,可以在音频编解码过程中提升信号保真度。
为便于理解和说明,本申请实施例可以将待处理(或者说,待编码)的音频信号统称为待处理音频信号(比如前述音频信号A),具体可表现为时域上的声音波形,可能会包含语音(如说话声、歌声等)、音乐(如通过乐器产生的音乐)、噪声(如现实环境中的背景噪声,比如狗叫声、厨房用具的砰砰声、婴儿哭声、建筑或交通噪音等)、静音(即不存在语音、音乐以及噪声等任何声音)等中的一种或多种音频类型,此处不做限制。该待处理音频信号可以从待处理多媒体数据中获取得到,这里的待处理多媒体数据是指携带有未编码的音频数据的多媒体数据,可以指同时携带有音频数据和图像数据的视频类媒体数据(例如短视频、实时视频通讯数据、电视剧集、电影、音乐短片(Music Video,MV)、动画等),或者,可以指主要由音频数据组成的音频类媒体数据(例如语音消息、实时音频通讯数据、录音文件、歌曲、有声读物、广播剧、电台节目等),因此,可以将从该待处理多媒体数据中获取到的未编码的音频数据作为待处理音频信号。其中,待处理多媒体数据可以是实时采集到的多媒体数据(例如,在音视频通讯过程中所采集到的音频类媒体数据或视频类媒体数据),也可以是本地存储的多媒体数据(例如,录制的纯音频或短视频),还可以是从互联网的业务平台(例如,视频平台、音乐平台等)上获取到的多媒体数据(例如,电视剧集),或者可以是某个用户(例如,用户X)所制作、上传或分享的多媒体数据,本申请实施例将不对待处理多媒体数据的类型、内容、来源和格式进行限制。其中,上述音视频通讯可以为单纯的音频通讯或视频通讯,可广泛应用于企业办公、即时交流、在线教育、远程医疗、数字金融等不同领域中的音视频会议、音视频通话、音视频直播等多种涉及音频编码的业务场景。也就是说,本申请实施例中的待处理音频信号,可以是各种业务场景下的音频信号,从而可以保证本申请实施例提供的深度学习音频编解码方案在实际应用中的普适性。
需要说明的是,不同类型的多媒体数据可以封装为不同的文件格式,例如,视频类多媒体数据可封装为MKV(Matroska Video File)、AVI(Audio Video Interleaved)、MP4(MPEG-4(Moving Picture Experts Group 4)的一个缩写)等文件格式,音频类多媒体数据可封装为MP3、OGG、AAC等文件格式。本申请实施例对多媒体数据封装所采用的文件格式不进行限定。
可以理解,可选的,待处理多媒体数据可以是通过捕获设备采集现实世界的声音-视觉场景获得的。在一种实现中,捕获设备可以是指设于编码设备中的硬件组件,例如捕获设备是指终端设备的麦克风、摄像头、传感器等。另一种实现中,该捕获设备也可以是与编码设备相连接的硬件装置,例如与服务器相连接的麦克风、摄像头等,用于为编码设备提供待处理多媒体数据的获取服务。该捕获设备可以包括但不限于:音频采集设备、摄像设备及传感设备。其中,音频采集设备可以包括音频传感器、麦克风等。摄像设备可以包括普通摄像头、立体摄像头、光场摄像头等。传感设备可以包括激光设备、雷达设备等。捕获设备的数量可以为一个或多个,这里不进行限制,捕获的音频数据和图像数据在时间和空间上均保持同步。或者,可选的,待处理多媒体数据还可以是通过采集虚拟世界构建的声音-视觉场景获得的,本申请实施例对待处理多媒体数据的获取方式不进行限定。
可以理解的是,一段完整的音频信号(比如语音信号)通常是非稳态的,即其特征基本上是随时间变化的,但由于实际发声的固有特性,在一个短时间范围内,其特征基本保持不变,即音频信号具有短时平稳性。因此,对音频信号的分析和处理可采用“短时分析”的方式,将音频信号分为一段一段进行处理,其中每一段可称为一“帧”。基于此,音频编码器对前述待处理音频信号进行编码的过程,实际上可包括对其中多个数据帧的编码,相应的,音频解码器在进行解码的过程中,重构得到的音频信号也是对应于一个个数据帧的,也就是说,编解码过程均以数据帧为单位进行相应的特征提取、量化和信号重构等处理操作。其中,通过对待处理音频信号进行分帧处理,可以得到该待处理音频信号在时域上的多个数据帧,此处对得到的多个数据帧的具体数量不做限制,这里的每个数据帧均包含有待处理音频信号在时域上的部分波形,本申请实施例可以将这多个数据帧统称为待处理音频信号所对应的音频数据帧,此外,为便于区分,可以将这些音频数据帧中任意一个待编码的数据帧,称为待编码音频数据帧。
需要说明的是,本申请实施例提供的方法可以由硬件(比如音频编码器和音频解码器)执行,也可以由软件(比如编码客户端和解码客户端)执行,此处不做限定。为便于理解,这里以前述音频编码器100A和音频解码器100B为例进行阐述。具体来说,假设前述音频信号A可作为待处理音频信号,该音频信号A对应的音频数据帧中的数据帧A1可作为待编码音频数据帧,则音频编码器100A可以获取该待编码音频数据帧(比如数据帧A1)对应的数据编码码流(比如编码码流A2)时,且可以对该数据编码码流进行预解码处理,从而解码得到该数据编码码流对应的预解码音频数据帧(比如数据帧A3)。其中,这里的数据编码码流是指待编码音频数据帧对应的编码码流,可选的,该数据编码码流可以直接通过对时域上的待编码音频数据帧进行深度学习音频编码后得到,或者,可选的,也可以通过对待编码音频数据帧在非时域上的其他形式的帧(比如,频域上的待编码音频频谱帧,Mel(即梅尔)标度频率域上的待编码梅尔频谱帧)进行深度学习音频编码后得到,本申请实施例对数据编码码流的获取方式不做限定。可以理解,这里的预解码音频数据帧是指在音频编码器本地对前述数据编码码流进行深度学习预解码后,在时域上重构得到的数据帧,也就是说,该预解码音频数据帧是与前述待编码音频数据帧较为接近的预解码重构信号,二者之间的编码误差即可反映接近程度。
进一步地,音频编码器100A可以对待编码音频数据帧(比如前述数据帧A1)和预解码音频数据帧(比如前述数据帧A3)进行误差计算,得到待编码音频数据帧和预解码音频数据帧之间的数据编码误差(比如编码误差A4)。可以理解的是,编码误差是客观存在的,但人耳的听觉感知是主观的,因此并非所有的编码误差都需要做进一步的补偿和编码,基于此,本申请实施例可支持根据实际业务需求,针对待处理音频信号,预先配置与其编码误差的二次编码相关的误差编码条件(比如,可包括针对待处理音频信号预设的感知阈值),此处对误差编码条件的具体内容不做限定。可以理解,本申请实施例可通过误差编码条件判断是否需要对数据编码误差进行误差编码,从而可以在实现实时误差反馈编码的同时,保证较高的编码效率,减少***资源的消耗。
可选的,响应于数据编码误差(比如前述编码误差A4)满足误差编码条件,音频编码器100A可以对该数据编码误差进行误差编码,从而得到与待编码音频数据帧相关联的误差编码码流(比如编码码流A5);其中,这里的误差编码码流是指数据编码误差对应的编码码流,可选的,可以采用基于深度学习的编码方式或传统编码方式(比如熵编码、残差脉冲编码等)对数据编码误差进行误差编码,可以理解,基于深度学习的编码方式可以指直接对时域上的数据编码误差进行深度学习误差编码,或者,也可以指对数据编码误差在非时域上的其他形式的误差(比如,频域上的频谱编码误差,Mel标度频率域上的梅尔频谱编码误差)进行深度学习误差编码,本申请实施例对误差编码采用的编码方式不做限定。需要说明的是,本申请实施例中的误差编码码流和数据编码码流均属于音频码流。
可以理解的是,音频编码器100A可以将上述误差编码码流(比如前述编码码流A5)和数据编码码流(比如前述编码码流A2)发送给对应的音频解码器100B,后续音频解码器100B可响应于解码得到误差编码码流对应的误差解码数据帧(比如数据帧A6)和数据编码码流对应的音频解码数据帧(比如数据帧A7),通过该误差解码数据帧和音频解码数据帧重构得到待编码音频数据帧对应的音频数据重构帧(比如数据帧A8);该音频数据重构帧可用于重构得到待处理音频信号对应的音频重构信号(比如音频信号A9)。其中,这里的误差解码数据帧是指在音频解码器对误差编码码流进行误差解码后,在时域上重构得到的数据帧;类似的,这里的音频解码数据帧是指在音频解码器对数据编码码流进行音频解码后,在时域上重构得到的数据帧;相应的,此时的音频数据重构帧,则是指由误差解码数据帧和音频解码数据帧所重构得到的位于时域上的数据帧,即在待编码音频数据帧为原始输入信号时,该音频数据重构帧为对应的解码输出信号;而音频重构信号是指由重构得到的多个数据帧所构成的完整的音频信号,即重建时域波形。可以理解,由于在编码阶段对满足误差编码条件的数据编码误差进行了补偿和编码,因此,对应得到的音频数据重构帧会更接近于原始的待编码音频数据帧,从而可以缩小待处理音频信号与音频重构信号之间的误差,改善音频编码效果,提升音频信号保真度。
可以理解,可选的,响应于数据编码误差(比如前述编码误差A4)不满足前述误差编码条件,无需对该数据编码误差进行误差编码,音频编码器100A可以直接将数据编码码流(比如前述编码码流A2)发送给对应的音频解码器100B,后续音频解码器100B可响应于解码得到数据编码码流对应的音频解码数据帧(比如数据帧A7),将该音频解码数据帧作为待编码音频数据帧对应的音频数据重构帧,则此时的音频数据重构帧即是指位于时域上的音频解码数据帧,该音频数据重构帧可用于重构得到待处理音频信号对应的音频重构信号(比如音频信号A10)。可以理解,数据编码误差不满足误差编码条件,可表示该数据编码误差在人耳处是无法分辨的,因此,此时不需要再对其进行额外的误差编码,从而可以减少***资源的消耗,保证良好的音频编码效果。
由此可见,本申请实施例提出的具有实时误差反馈编码的深度学习音频编解码方案,采用闭环反馈设计,通过在编码过程中加入预解码环节,可以对当前帧的深度学习编码输出(即待编码音频数据帧对应的数据编码码流)进行相应的深度学习预解码,进而获取当前帧的编码误差(即数据编码误差),并可在判断当前编码误差达到误差编码条件时,对其进行二次编码,得到的误差编码码流和原始的数据编码码流会一并发送给音频解码器进行解码,通过解码得到的误差解码数据帧和音频解码数据帧可以重构得到前述待编码音频数据帧对应的音频数据重构帧,可以理解,由于本申请实施例对预解码重构信号(比如前述预解码音频数据帧)与原始输入信号(比如前述待编码音频数据帧)之间的实时误差进行了补偿和编码,因此可以在音频编解码过程中提升信号保真度。
为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种音频数据处理场景示意图。该场景可以由音频编码器(或编码客户端)和音频解码器(或解码客户端)共同实现。本申请实施例以音频编码器20a和音频解码器20b为例进行阐述,其中,这里的音频编码器20a可以集成在编码设备200A上,该编码设备200A可以为终端设备或服务器,此处不做限制,本申请实施例以编码设备200A为终端设备为例进行阐述;音频解码器20b可以集成在解码设备200B上,该解码设备200B可以为终端设备或服务器,此处不做限制,本申请实施例以解码设备200B为终端设备为例进行阐述,可与编码设备200A进行数据交互。
如图2所示的音频信号201可作为前述待处理音频信号,可以从相关的待处理多媒体数据(比如多媒体数据D)中获取得到,其中,该多媒体数据D可以为视频类媒体数据或音频类媒体数据,对此不进行限定。该多媒体数据D可以是由编码设备200A实时采集到的多媒体数据,也可以是存储在编码设备200A的存储区域(比如本地缓存)中的多媒体数据,还可以是编码设备200A从某个业务平台(比如视频平台)上获取到的多媒体数据,或者可以是某个用户所制作、上传或分享的多媒体数据(比如用户X通过编码设备200A上传的多媒体数据),本申请实施例对多媒体数据D的来源不进行限定。
可以理解的是,在进行编码压缩之前,可以对该待处理音频信号进行分帧处理,从而得到待处理音频信号对应的音频数据帧,例如,如图2所示,对音频信号201进行分帧处理后,可得到多个位于时域上的数据帧,多个数据帧具体可包括数据帧201a、数据帧201b、数据帧201c、…、数据帧201m,其中每个数据帧均可作为前述音频数据帧,此处对该音频数据帧所包含的数据帧的数量不做限制。进一步地,音频编码器20a可以对待处理音频信号对应的音频数据帧中的每个数据帧均进行编码处理,本申请实施例对每个数据帧编码的先后顺序不进行限制,例如,可以并行编码多个数据帧,也可以串行编码每个数据帧,比如按照时间顺序依次编码每个数据帧。为便于理解和说明,本申请实施例可以将上述数据帧201a、数据帧201b、数据帧201c、…、以及数据帧201m中的任意一个待编码的数据帧,作为前述待编码音频数据帧,例如,可以将数据帧201a作为待编码音频数据帧,此时由音频编码器20a对该数据帧201a进行编码处理;可以理解,当其他数据帧作为待编码音频数据帧时,对应的编码处理过程与对数据帧201a进行编码处理的过程类似。下面将以数据帧201a为例进行阐述。
如图2所示,音频编码器20a可以获取待编码音频数据帧对应的数据编码码流,例如,可以通过对数据帧201a进行音频编码,得到对应的编码码流202a,此时该编码码流202a可作为前述数据编码码流。进一步,为了实现基于实时误差的闭环反馈,音频编码器20a可以对数据编码码流进行预解码处理,以解码得到该数据编码码流对应的预解码音频数据帧,例如,可以对编码码流202a进行预解码处理,得到时域上的数据帧203a,此时该数据帧203a可作为前述预解码音频数据帧。
进一步地,为了获取待编码音频数据帧和预解码音频数据帧之间的数据编码误差,音频编码器20a可以对待编码音频数据帧和预解码音频数据帧进行误差计算,例如,如图2所示,可以将数据帧201a和数据帧203a相减,从而得到二者之间的编码误差204a,此时该编码误差204a可作为前述数据编码误差。
可以理解,为了更好地达到通过误差编码改善音频编码效果的目的,可以预先在音频编码器20a中配置相应的误差编码条件,因此在编码过程中可通过该误差编码条件判断是否需要对数据编码误差进行误差编码。例如,如图2所示,针对前述音频信号201可配置误差编码条件205,可选的,若前述编码误差204a满足该误差编码条件205,则音频编码器20a可以对编码误差204a进行误差编码(可采用基于深度学习的编码方式或传统编码方式),从而得到对应的编码码流206a,此时该编码码流206a可作为与待编码音频数据帧相关联的误差编码码流。
进一步地,音频编码器20a可以将编码输出的误差编码码流(比如前述编码码流206a)和数据编码码流(比如前述编码码流202a),通过传输网络一并发送给音频解码器20b。音频解码器20b接收到该误差编码码流和数据编码码流后,可以分别对这两组编码码流进行解码,例如,如图2所示,音频解码器20b可以对此时作为数据编码码流的编码码流202a进行音频解码,以解码得到位于时域上的数据帧207a,此时该数据帧207a可作为前述音频解码数据帧;类似的,音频解码器20b可以对此时作为误差编码码流的编码码流206a进行误差解码,以解码得到位于时域上的数据帧208a,此时该数据帧208a可作为前述误差解码数据帧;进而音频解码器20b可以通过解码得到的误差解码数据帧和音频解码数据帧,重构得到待编码音频数据帧对应的音频数据重构帧,例如,可以通过前述数据帧207a和数据帧208a重构得到位于时域上的数据帧209a,此时该数据帧209a可作为前述音频数据重构帧。
可选的,若前述编码误差204a不满足预设的误差编码条件205,则音频编码器20a无需对编码误差204a进行额外编码,而是可以将已经得到的编码码流202a(即数据编码码流)通过传输网络发送给音频解码器20b。音频解码器20b接收到该编码码流202a后,可以对该编码码流202a进行音频解码,从而可以解码得到位于时域上的数据帧207a(即音频解码数据帧),此时可以将该数据帧207a作为前述待编码音频数据帧对应的音频数据重构帧。
可以理解的是,音频编码器20a还可以对除了数据帧201a以外的其他数据帧(即数据帧201b~数据帧201m)也进行类似上述阐述的编码处理,以得到与每个数据帧相关联的数据编码码流,可选的,以及误差编码码流,且可以将得到的编码码流发送至音频解码器20b进行类似上述阐述的解码过程,以重构得到对应的音频数据重构帧,此处对其他数据帧相关的编解码过程不再进行赘述。假设音频解码器20b重构得到的数据帧包括数据帧201a对应的音频数据重构帧(即前述数据帧209a)、数据帧201b对应的音频数据重构帧(比如数据帧209b)、数据帧201c对应的音频数据重构帧(比如数据帧209c)、…、以及数据帧201m对应的音频数据重构帧(比如数据帧209m),则数据帧209a、数据帧209b、数据帧209c、…、以及数据帧209m可共同构成音频信号201对应的音频重构信号(比如音频信号209),可以理解,重构得到的音频信号209与原始的音频信号201之间的误差很小,即接近程度很高,具有极高的信号保真度。
由此可见,本申请实施例通过在音频编码器中对预解码音频数据帧与待编码音频数据帧之间的数据编码误差进行补偿和编码,实现了具有实时误差反馈编码的闭环反馈设计,可以在音频编解码过程中提升信号保真度。
可以理解,本申请实施例可以利用海量的音频数据,训练深度神经网络得到上述音频编码器20a和音频解码器20b,具体训练过程可参见后续图13所对应实施例中的相关描述。需要说明的是,音频编码器和音频解码器可以联合进行搭建和训练,也可以各自独立进行搭建和训练,本申请实施例对此不进行限定。
可以理解的是,本申请实施例提供的方法适用于各类存在音频编解码需求的业务场景中,比如即时通信场景、音视频通话场景、音视频会议场景、音视频直播场景、音视频专访场景、远程探视场景、音频广播场景、游戏场景、音视频录制场景、音视频制作场景、音频转码场景、音视频存储场景、音视频分发场景、音视频推荐场景等,这里将不对具体的业务场景进行一一列举。
比如,在即时通信场景下,用户U1可以通过相关的音频编码器,对需要发送的音频信号S1(即待处理音频信号,例如语音消息或音视频文件消息等)进行编码,从而可以将编码得到的音频码流E1发送至用户U2,用户U2可以通过相关的音频解码器对音频码流E1进行解码,以重构得到对应的音频信号S2(即音频重构信号)。为便于理解,请一并参见图3,图3是本申请实施例提供的一种即时通信场景的示意图。如图3所示的界面301是一种示例性的消息显示界面,可以通过该消息显示界面收发会话消息,比如前述音频信号S1具体可以为采集到的语音消息,可对该语音消息进行编码后发送。可以理解,即时通信场景下的音频编解码器可采用本申请实施例提出的闭环反馈设计,可以提升重构得到的音频信号的保真度,从而可以改善即时通信质量,提升用户体验。
又比如,在音视频通话(比如VoIP通话)场景下,用户U3可以通过相关的音频编码器,对在音视频通话过程中实时采集到的音频信号S3(即待处理音频信号,例如采集到的用户U3的语音信号)进行编码,从而可以将编码得到的音频码流E2发送至参与通话的其他用户(比如用户U4),用户U4可以通过相关的音频解码器对音频码流E2进行解码,以重构得到对应的音频信号S4(即音频重构信号)。为便于理解,请一并参见图4,图4是本申请实施例提供的一种音视频通话场景的示意图。如图4所示的界面401是一种示例性的音视频通话界面,可以通过该音视频通话界面进行音频通话或视频通话,其中可以包括对采集到的音频信号(比如前述音频信号S3)进行编码后发送,以及对接收到的音频码流(比如前述音频码流E2)进行解码后播放。可以理解,音视频通话场景下的音频编解码器可采用本申请实施例提出的闭环反馈设计,可以提升重构得到的音频信号的保真度,从而可以改善音视频通话的质量,提升用户通话体验。
类似的,在音视频会议场景下,用户U5可以通过相关的音频编码器,对在音视频会议过程中实时采集到的音频信号S5(即待处理音频信号,例如采集到的用户U5的语音信号)进行编码,从而可以将编码得到的音频码流E3发送至参与会议的其他用户(比如用户U6),用户U6可以通过相关的音频解码器对音频码流E3进行解码,以重构得到对应的音频信号S6(即音频重构信号)。为便于理解,请一并参见图5,图5是本申请实施例提供的一种音视频会议场景的示意图。如图5所示的界面501是一种示例性的音视频会议界面,可以通过该音视频会议界面进行音频会议或视频会议,其中可以包括对采集到的音频信号(比如前述音频信号S5)进行编码后发送,以及对接收到的音频码流(比如前述音频码流E3)进行解码后播放。可以理解,音视频会议场景下的音频编解码器可采用本申请实施例提出的闭环反馈设计,可以提升重构得到的音频信号的保真度,从而可以改善音视频会议的质量,提升用户会议体验。
又比如,在游戏场景下,游戏服务器可以通过相关的音频编码器,对游戏中涉及的音频信号S7(即待处理音频信号,例如游戏角色的说话声、游戏中的背景音乐或旁边、游戏技能的音效等等)进行编码,从而可以将编码得到的音频码流E4发送至游戏用户(比如用户U7)对应的游戏客户端,该游戏客户端可以通过相关的音频解码器对音频码流E4进行解码,以重构得到对应的音频信号S8(即音频重构信号)。可以理解,游戏场景下的音频编解码器可采用本申请实施例提出的闭环反馈设计,可以提升重构得到的音频信号的保真度,从而可以改善游戏的音质,提升用户游戏体验。
又比如,在音视频录制场景下,用户U8可以通过相关的音频编码器,对录制得到的音频信号S9(即待处理音频信号,比如单纯的录音或拍视频时录制到的声音)进行编码,从而可以将编码得到的音频码流E5进行传输或存储(比如在本地存储或者上传至云端存储)。在后续需要时,也可通过相关的音频解码器对音频码流E5进行解码,以重构得到对应的音频信号S10(即音频重构信号)。可以理解,音视频录制场景下的音频编解码器可采用本申请实施例提出的闭环反馈设计,可以提升重构得到的音频信号的保真度,从而可以改善音频录制的音质。
又比如,在音频转码场景下,当希望将具有某种编码格式的原始音频文件转换为其他编码格式的音频文件时,可以通过相关的音频编码器,对与该原始音频文件相关联的音频信号S11(即待处理音频信号)进行编码,从而可以将编码得到的音频码流E6封装为对应的音频文件。在后续需要时,也可通过相关的音频解码器对音频码流E6进行解码,以重构得到对应的音频信号S12(即音频重构信号)。可以理解,音频转码场景下的音频编解码器可采用本申请实施例提出的闭环反馈设计,可以提升重构得到的音频信号的保真度,从而可以改善音频转码的质量。
又比如,在音视频推荐场景下,相关的业务服务器可以根据用户U9的兴趣爱好,向用户U9推荐关联的音频片段(比如歌曲高潮片段)或视频片段(比如电影精彩片段),其中,可以通过相关的音频编码器,对前述音频片段或视频片段中所涉及的音频信号S13(即待处理音频信号)进行编码,从而可以将编码得到的音频码流E7发送至用户U9,用户U9可以通过相关的音频解码器对音频码流E7进行解码,以重构得到对应的音频信号S14(即音频重构信号)。可以理解,音视频推荐场景下的音频编解码器可采用本申请实施例提出的闭环反馈设计,可以提升重构得到的音频信号的保真度,从而可以改善推荐的音视频片段的音质,提升用户体验。
其中,具体的编码过程以及解码过程,可以参见如下图6至图13所对应的实施例。
进一步的,请参见图6,图6是本申请实施例提供的一种音频数据处理方法的流程示意图一。如图6所示,该方法具体可以包括以下步骤S101-步骤S103。
步骤S101,获取待编码音频数据帧对应的数据编码码流,对数据编码码流进行预解码处理,解码得到数据编码码流对应的预解码音频数据帧;待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;
可以理解的是,在获取到待处理音频信号时,本申请实施例可以对该待处理音频信号进行编码压缩,从而降低待处理音频信号的存储空间和传输带宽。需要说明的是,本申请实施例提供的方法可以由硬件(比如音频编码器)执行,也可以由软件(比如编码客户端)执行,为便于理解,本申请实施例以音频编码器执行为例进行阐述,该音频编码器可以运行于编码设备上,该编码设备可以为终端设备或服务器,此处不做限制,比如,该编码设备可以为上述图2所示的编码设备200A。
其中,待处理音频信号可以从待处理多媒体数据中获取得到,该待处理多媒体数据可以为视频类媒体数据或音频类媒体数据,此处对待处理多媒体数据的类型不做限制;可以理解,该待处理多媒体数据可以是实时采集到的多媒体数据,或者,可以是本地存储的多媒体数据,又或者,可以是从互联网的业务平台上获取到的多媒体数据,还可以是某个用户所制作、上传或分享的多媒体数据,本申请实施例将不对待处理多媒体数据的内容、来源和格式进行限制。
可以理解,基于待处理音频信号的短时平稳性,在对待处理音频信号进行编码前,可以对待处理音频信号进行分帧处理,以得到位于时域上的多个数据帧,每个数据帧均可作为待处理音频信号对应的音频数据帧,此处对分帧后得到的音频数据帧的具体数量不做限制。在一种实施方式中,可以根据待处理音频信号的长度、分帧处理所采用的帧长以及帧移共同确定可划分的数据帧的数量。其中,帧长是指一个音频数据帧的长度,这里的“长度”可以用多种方式表示,例如可以用时间或者采样点数来表示,可选的,如果用时间表示,一个音频数据帧的长度可以通常可以取在15ms-30ms之间,实际应用中可以根据业务需要选取合适的帧长,本申请实施例对此不进行限定,例如,在一些实施例中,可以将帧长设置为20ms,帧长为20ms的一个音频数据帧可表示时长为20ms的一小段音频信号。可选的,也可以用采样点数来表示,例如,在一些实施例中,假设待处理音频信号的采样率为16kHz,帧长为20ms,则一个音频数据帧可以由16kHz*20ms=320个采样点组成。其中,帧移是指每次分帧时移动的距离,以第一个音频数据帧的起始点开始移动一个帧移,开始下一帧。这里的帧移同样也可以用两种方式表示,例如,在一些实施例中,可以用时间表示,将帧移设置为12ms;又例如,在一些实施例中,可以用采样点数表示,对于采样率为16kHz的待处理音频信号,可以将帧移设置为192个采样点。
为便于理解,请参见图7,图7是本申请实施例提供的一种分帧处理的场景示意图。如图7所示,在对长度为T的待处理音频信号进行分帧处理时,可以将帧长设置为T1(例如,设置为20ms),将帧移设置为T2(例如,设置为12ms),此处对T、T1以及T2的取值均不做限定。则从待处理音频信号的起始位置开始,取帧长为T1的音频信号,可得到第一个音频数据帧,即音频数据帧1;随后,移动一个长度为T2的帧移,并从当前位置开始再取帧长为T1的音频信号,可得到第二个音频数据帧,即音频数据帧2;依此类推,最终可以得到H个音频数据帧,其中,H=(T-T1)÷T2+1。可以理解的是,在分帧处理时,可能会遇到最后剩下的信号长度不够一帧的情况,可选的,此时可以对最后剩余的这一段信号进行补零操作,使之达到一帧的长度(即T1),或者,可选的,可以直接将之抛弃,因为最后一帧处于待处理音频信号最末尾部分,大部分为静音片段。可以理解的是,可以对待处理音频信号对应的每个音频数据帧都进行编码,也就是说,将原本覆盖时间较长的待处理音频信号划分为覆盖时间较短的音频数据帧进行处理,可以避免时间信息的丢失,从而保证音频编码的可靠性和有效性。
可以理解,在得到待处理音频信号对应的多个音频数据帧后,可以将多个音频数据帧中任意一个待编码的数据帧作为待编码音频数据帧,例如,可以将上述图7所示的H个音频数据帧中的音频数据帧1作为待编码音频数据帧。本申请实施例采用了闭环误差编码的设计思路,在音频编码器中加入了预解码环节,即音频编码器可以在获取到待编码音频数据帧对应的数据编码码流时,对数据编码码流进行预解码处理,以解码得到数据编码码流对应的预解码音频数据帧。也就是说,本申请实施例可以在编码阶段,在本地预先对数据编码码流进行解码,从而可以在编码阶段实现对编码误差的反馈补偿,这样有助于提升信号保真度。
在本申请实施例中,可以获取待处理音频信号所对应的音频数据帧中的待编码音频数据帧,进而对待编码音频数据帧进行音频编码,得到待编码音频数据帧对应的数据编码码流;进一步地,可以对数据编码码流进行预解码处理,从而解码得到数据编码码流对应的预解码音频数据帧。
在一种具体的实施方式中,可以通过音频编码器中的编码组件实现音频编码,且可以通过音频编码器中的预解码组件实现预解码。为便于理解,请一并参见图8,图8是本申请实施例提供的一种音频编码器的结构示意图。本申请实施例中的音频编码器(比如图8所示的音频编码器80)可以包括编码组件(比如图8所示的编码组件802)和预解码组件(比如图8所示的预解码组件803),其中,编码组件是指用于对待编码音频数据帧进行音频编码的组件,预解码组件是指用于对待编码音频数据帧对应的数据编码码流进行预解码的组件,两个组件之间可进行数据交互。因此,在获取到待处理音频信号所对应的音频数据帧中的待编码音频数据帧(比如图8所示的音频数据帧80A)时,音频编码器可以将待编码音频数据帧输入至编码组件,由该编码组件对待编码音频数据帧进行音频编码,可得到待编码音频数据帧对应的数据编码码流(比如图8所示的编码码流80B);进一步地,可以将该数据编码码流输入至预解码组件,由该预解码组件对数据编码码流进行预解码处理,可解码得到该数据编码码流对应的预解码音频数据帧。
其中,音频编码的过程可以为:对待编码音频数据帧进行特征提取,得到待编码音频数据帧对应的音频特征;对音频特征进行量化,得到待编码音频数据帧对应的数据编码码流。在一种具体的实施方式中,编码组件可通过深度神经网络搭建得到,具体可包括音频编码网络(比如图8所示的音频编码网络802a)和音频量化网络(比如图8所示的音频量化网络802b),则由编码组件对待编码音频数据帧进行音频编码的具体过程可以为:将待编码音频数据帧输入至音频编码网络,由音频编码网络对待编码音频数据帧进行特征提取,可得到待编码音频数据帧对应的音频特征;进一步地,将该音频特征输入至音频量化网络,由音频量化网络对音频特征进行量化,可得到待编码音频数据帧对应的数据编码码流。其中,对输入的待编码音频数据帧进行特征提取,可以理解为将待编码音频数据帧压缩为对应的音频特征;对音频特征进行量化,可以理解为对该音频特征进一步压缩,因此得到的数据编码码流相比于前述待编码音频数据帧,可采用更少量的字节进行表示,即压缩率很高,从而可以有效降低存储空间和传输带宽。
需要说明的是,本申请实施例对编码组件的网络结构(包括音频编码网络的网络结构和音频量化网络的网络结构)不进行限定,例如,编码组件可采用全卷积网络、卷积神经网络、残差网络、长短期记忆网络(Long short-term memory,LSTM)等神经网络中的一种或多种实现,这里的全卷积网络可包括但不限于因果全卷积网络及其变种等。其中,音频量化网络可采用残差矢量量化(Residual Vector Quantization,RVQ)或其他量化方式提高编码效率,此处不做限定。
可以理解的是,量化精度可通过设定的量化等级进行控制,则上述量化过程可以为:响应于获取到的待编码音频数据帧对应的编码量化等级,基于与编码量化等级相匹配的第一量化精度参数,对音频特征进行量化,得到量化后的音频特征,将量化后的音频特征作为待编码音频数据帧对应的数据编码码流。
在一种具体的实施方式中,为了在编码过程中实现对量化精度的动态控制调节,音频编码器还可以包括信号分类组件(比如图8所示的信号分类组件801),该信号分类组件可以为独立于前述编码组件和预解码组件的组件,可用于确定待编码音频数据帧对应的编码量化等级。其中,编码量化等级也可称为编码量化级别,可用于控制量化精度,在编码过程中,编码量化等级越高,对应的量化精度就越高,因此,信号分类组件可以响应于获取到的待编码音频数据帧对应的编码量化等级,将该编码量化等级传输给编码组件中的音频量化网络,以使音频量化网络根据该编码量化等级调控其量化精度参数。则前述由音频量化网络对待编码音频数据帧对应的音频特征进行量化的具体过程可以为:将该音频特征输入至音频量化网络,由音频量化网络基于与待编码音频数据帧对应的编码量化等级相匹配的第一量化精度参数,对该音频特征进行量化,得到量化后的音频特征,此时可将量化后的音频特征作为待编码音频数据帧对应的数据编码码流。其中,第一量化精度参数可由音频量化网络通过待编码音频数据帧所对应的编码量化等级计算得到,也可由音频量化网络通过查表得到,比如,音频量化网络可配置第一量化精度转换表,该第一量化精度转换表可用于存储不同量化等级与量化精度参数之间的对应关系,则音频量化网络可以在第一量化精度转换表中,查找与前述编码量化等级相对应的量化精度参数,且将查找到的量化精度参数作为与该编码量化等级相匹配的第一量化精度参数。本申请实施例对第一量化精度参数的获取方式不做限定。可以理解,本申请实施例通过设置不同的量化等级来对编码组件的量化精度进行动态控制调节,可以提升量化的灵活性,从而提升音频编码的灵活性。
可以理解,在获取待编码音频数据帧对应的数据编码码流之前,可以对待编码音频数据帧进行音频类型识别,得到待编码音频数据帧的音频类型;进而可基于待编码音频数据帧的音频类型,对待编码音频数据帧进行量化等级映射,得到待编码音频数据帧对应的编码量化等级。在一种具体的实施方式中,可以通过信号分类组件确定待编码音频数据帧对应的编码量化等级,具体来说,可以将待编码音频数据帧(比如图8所示的音频数据帧80A)输入至信号分类组件(比如图8所示的信号分类组件801),由信号分类组件对待编码音频数据帧进行音频类型识别,得到待编码音频数据帧的音频类型。其中,待编码音频数据帧的音频类型可以为语音类型、音乐类型、噪声类型、静音类型等中的任意一种,此处不进行限制。进一步地,信号分类组件可以基于待编码音频数据帧的音频类型,对待编码音频数据帧进行量化等级映射,以得到待编码音频数据帧对应的编码量化等级。也就是说,信号分类组件可以对输入的每一个音频数据帧单独进行分类,根据业务需要,不同音频类型可对应不同的量化等级,即在音频类型和量化等级之间做映射,例如,在一些实施例中,不同音频类型的音频数据帧的量化等级(或者说,量化精度)从高到低排序为:音乐、语音、噪声、静音。因此,不同音频数据帧对应的量化等级可能不同,从而可以实现对音频编码器量化精度的灵活调控。
可选的,可以通过量化等级映射规则表来实现量化等级映射,具体来说,可以获取信号分类组件配置的量化等级映射规则表,这里的量化等级映射规则表可用于存储不同音频类型与量化等级之间的映射关系;基于此,在得到待编码音频数据帧的音频类型后,可以在量化等级映射规则表中查找与待编码音频数据帧的音频类型具有映射关系的量化等级,且可以将查找到的量化等级作为待编码音频数据帧对应的编码量化等级。例如,以语音类型和音乐类型为例,可以理解,音乐通常会涉及到不同的乐器,整体信号比较复杂,人耳对此更为敏感,因此对音乐的量化精度要求会更高,即音乐类型对应的量化等级要高于语音类型对应的量化等级,例如,音乐类型对应的量化等级可设定为10,语音类型对应的量化等级可设定为5,则在前述待编码音频数据帧的音频类型为音乐类型时,可以在量化等级映射规则表中查找到待编码音频数据帧对应的编码量化等级为10。
此外,除了上述查表映射的方式外,可选的,还可以通过其他方式实现量化等级映射,例如图形映射、函数映射等,本申请实施例对此不做限定。例如,可以通过量化等级映射函数来实现量化等级映射,具体来说,可以获取信号分类组件配置的量化等级映射函数,该量化等级映射函数可以用于实现不同音频类型与量化等级之间的映射(转换),基于此,在得到待编码音频数据帧的音频类型后,可以通过量化等级映射函数,计算出该音频类型所映射的量化等级,且可以将计算出的量化等级作为待编码音频数据帧对应的编码量化等级。
需要说明的是,本申请实施例对信号分类组件的网络结构不进行限定,例如,信号分类组件可采用全卷积网络、卷积神经网络、残差网络、长短期记忆网络等神经网络中的一种或多种实现。
可以理解的是,本申请实施例可以对数据编码码流中的量化后的音频特征进行解压缩处理,得到数据编码码流对应的预解码音频数据帧。在一种具体的实施方式中,上述由预解码组件对数据编码码流进行预解码处理的具体过可以为:将数据编码码流输入至预解码组件(比如图8所示的预解码组件803),由预解码组件对数据编码码流中的量化后的音频特征进行解压缩处理,从而得到数据编码码流对应的预解码音频数据帧,也就是说,预解码处理的过程与前述音频编码的过程是相逆的,即将数据编码码流重建为时域上的预解码音频数据帧。
需要说明的是,为了获取编码误差,预解码组件与编码组件对应的解码组件是完全一致的组件(即二者的网络结构和网络参数均相同),也就是说,在训练神经网络得到解码组件时,也就得到了预解码组件,因此可以在一定程度上加快训练过程。本申请实施例对预解码组件的网络结构不进行限定,例如预解码组件可采用全卷积网络、卷积神经网络、残差网络、长短期记忆网络等神经网络中的一种或多种实现,这里的全卷积网络可包括但不限于因果全卷积网络及其变种等。
可以理解的是,本申请实施例除了可以直接对时域上的待编码音频数据帧进行音频编码,可选的,也可以将时域上的待编码音频数据帧转换为非时域上的其他形式的帧(比如,频域上的待编码音频频谱帧、Mel标度频率域上的待编码梅尔频谱帧等),再进行音频编码,从而得到对应的数据编码码流。为便于理解,下面以频域上的待编码音频频谱帧为例进行说明。
其中,由于分帧后每一个音频数据帧的开始和结束都会出现间断,以至于分割的音频数据帧越多,与待处理音频信号的误差就越大,因此,在进行时频域转换之前,本申请实施例可以通过加窗处理解决这个问题,以使成帧后的信号变得连续,并且每一个音频数据帧都可以表现出周期函数的特性,从而减少频域上的频谱泄露。基于此,可以对分帧处理后得到的每个音频数据帧均进行加窗处理,从而得到信号连续的多个音频数据段。在本申请实施例中,进行加窗处理时,将每一个音频数据帧依次与窗函数进行相乘即可得到对应的音频数据段。其中,窗函数包括但不限于Vorbis窗、汉明窗、矩形窗、汉宁窗等,实际应用中可以根据需要选取合适的窗函数,本申请实施例对此不做限定。进一步地,可以分别对每个音频数据段进行时频变换,从而可以得到每个音频数据段分别对应的音频频谱帧,也就是说,可以将时域上的音频数据段变换为频域上的音频频谱帧。其中,这里的时频变换具体可以为傅立叶变换,例如快速傅立叶变换(Fast Flourier Transformation,简称FFT)。可以理解,音频数据帧的采样点数与音频频谱帧对应的频点数可以相同,也可以不相同,实际应用中可以根据需要设置傅立叶变换后得到的频点数。例如,在一些实施例中,每个音频数据帧对应的采样点数为320,在进行时频变换时,每个音频频谱帧对应的频点数则可以设置为512。
为便于理解,请参见图9,图9是本申请实施例提供的一种时频域转换的场景示意图。如图9所示,结合前述图7所对应的实施例,在经过上述分帧处理得到H个音频数据帧后,可以将窗函数依次作用于每一个音频数据帧,从而可以得到相应的音频数据段。例如,将音频数据帧1与窗函数相乘,可以得到音频数据段1;将音频数据帧2与窗函数相乘,可以得到音频数据段2;…;将音频数据帧H与窗函数相乘,可以得到音频数据段H。可以理解,这里的音频数据段1~音频数据段H是按照时间顺序排列的。进一步地,可以分别对H个音频数据段中的每一个音频数据段进行时频变换,从而可以得到相应的音频频谱帧。例如,对音频数据段1进行时频变换后,可以得到音频频谱帧1;对音频数据段2进行时频变换后,可以得到音频频谱帧2;…;对音频数据段H进行时频变换后,可以得到音频频谱帧H。可以理解,这H个音频频谱帧在频域上的先后顺序与H个音频数据段在时域上的先后顺序是一致的。
可以理解,在得到待处理音频信号对应的多个音频频谱帧后,可以将多个音频频谱帧中与待编码音频数据帧对应的频谱帧作为待编码音频频谱帧(即任意一个待编码的频谱帧),例如,可以将上述图9所示的H个音频频谱帧中的音频频谱帧1作为待编码音频频谱帧,则音频编码器在获取到待编码音频频谱帧时,可以将待编码音频频谱帧输入至编码组件,由编码组件对待编码音频频谱帧进行音频编码,以得到待编码音频数据帧对应的数据编码码流,其中,编码组件对待编码音频频谱帧进行音频编码的具体过程(包括特征提取和量化),与对待编码音频数据帧进行音频编码的过程类似,这里不再进行赘述。进一步地,可以将该数据编码码流输入至预解码组件,由预解码组件对数据编码码流进行预解码处理,以解码得到数据编码码流对应的预解码音频频谱帧。可以理解,预解码音频频谱帧为频域上的频谱帧,因此可以对预解码音频频谱帧进行傅立叶逆变换,从而得到时域上的预解码音频数据帧。
步骤S102,对待编码音频数据帧和预解码音频数据帧进行误差计算,得到待编码音频数据帧和预解码音频数据帧之间的数据编码误差;
可以理解,音频编码器可以对待编码音频数据帧和预解码音频数据帧进行误差计算,以获取二者之间的数据编码误差。具体来说,可以将待编码音频数据帧(比如上述图2中的数据帧201a)和预解码音频数据帧(比如上述图2中的数据帧203a)相减,得到待编码音频数据帧和预解码音频数据帧之间的数据帧差值,从而可以将得到的数据帧差值作为待编码音频数据帧和预解码音频数据帧之间的数据编码误差(比如上述图2中的编码误差204a)。
步骤S103,响应于数据编码误差满足待处理音频信号对应的误差编码条件,对数据编码误差进行误差编码,得到与待编码音频数据帧相关联的误差编码码流;误差编码码流解码得到的误差解码数据帧和数据编码码流解码得到的音频解码数据帧,用于重构得到待编码音频数据帧对应的音频数据重构帧;音频数据重构帧用于重构得到待处理音频信号对应的音频重构信号。
可以理解,本申请实施例可针对待处理音频信号,配置相应的误差编码条件,从而可通过该误差编码条件判断是否需要对数据编码误差进行误差编码。
在一种具体的实施方式中,音频编码器可包括误差编码组件,该误差编码组件是指用于对数据编码误差进行误差编码的组件。误差编码条件可包括针对待处理音频信号配置的感知阈值(也可称为感知门限,可用Thres_P表示),这里的感知阈值可理解为人耳可感知的能量门限值,本申请实施例对感知阈值的取值不做限制,例如可按照实际工程经验来设置。基于此,音频编码器可以获取与待编码音频数据帧相关联的听觉感知加权系数,进而可对听觉感知加权系数、待编码音频数据帧以及预解码音频数据帧进行感知误差计算,以得到数据编码误差对应的感知误差。可以理解的是,音频信号是通过人耳收听的,同样的物理能量下,在不同频点上,人耳所能感知的能量是不一样的,比如,对于具有相同物理能量的单频声,人耳在1000Hz对应的频点上所感知的能量,与在4000Hz对应的频点上所感知的能量并不相同,比如可能在4000Hz对应的频点上人耳听起来声音会更大;基于此,本申请实施例不会直接判断数据编码误差的物理能量的大小,而是可以通过获取数据编码误差对应的感知误差,来表示人耳对该数据编码误差的感知能量的大小,从而通过感知误差来判断是否需要对数据编码误差进行二次编码。可选的,响应于该感知误差大于感知阈值,可以确定数据编码误差满足待处理音频信号对应的误差编码条件,也就是说,此时人耳对该数据编码误差的感知能量比较大,已经达到人耳能分辨出来的水平了,那么就需要加入误差编码这个环节,对数据编码误差进行误差编码,即可以将数据编码误差输入至误差编码组件,由误差编码组件对该数据编码误差进行误差编码,从而得到与待编码音频数据帧相关联的误差编码码流。
反之,可选的,响应于该感知误差小于或等于感知阈值,可以确定数据编码误差不满足待处理音频信号对应的误差编码条件,不对数据编码误差进行误差编码,也就是说,此时人耳对该数据编码误差的感知能量比较小,人耳听起来其实并不明显,则可认为待编码音频数据帧的原始编码效果达到听觉感知要求,那么就不需要通过对数据编码误差编码进行改善。
可以理解,本申请实施例并不会直接对所有编码误差进行二次编码,而是通过对应的感知误差来判断是否需要对当前编码误差进行二次编码,这样做可以保证所有音频数据帧的编码效果始终能够满足人耳的听觉感知要求,同时可以保证较高的编码效率,减少***资源的消耗,提升信号保真度。
此外,误差编码条件还可以包括其他内容,本申请实施例对误差编码条件的具体内容不做限制,比如可以包括针对待处理音频信号预先配置的可感知范围、感知等级等。例如,可感知范围可表征人耳能够感知的能量范围,响应于感知误差处于预设的可感知范围,可以确定数据编码误差满足待处理音频信号对应的误差编码条件,进而可以对数据编码误差进行误差编码,得到与待编码音频数据帧相关联的误差编码码流。又例如,感知等级可用于表征人耳能够感知的最低能量等级,可以先获取感知误差对应的目标误差等级,响应于该目标误差等级大于或等于预设的感知等级,可以确定数据编码误差满足待处理音频信号对应的误差编码条件,进而可以对数据编码误差进行误差编码,得到与待编码音频数据帧相关联的误差编码码流。其中,感知误差对应的目标误差等级可以通过感知误差计算得到,也可通过查表得到,比如,误差编码组件可配置误差等级转换表,该误差等级转换表可用于存储不同取值的感知误差与误差等级之间的对应关系,则可以在误差等级转换表中,查找与数据编码误差对应的感知误差相对应的误差等级,且将查找到的误差等级作为该感知误差对应的目标误差等级。本申请实施例对目标误差等级的获取方式不做限定。
其中,获取数据编码误差对应的感知误差的具体过程可以为:响应于获取到的待编码音频数据帧在频域上的目标频点时,可以获取目标频点对应的频率在等响曲线数据表中所属的目标频率区间,进而可以在等响曲线数据表中查找目标频率区间对应的等响曲线参数,且可将查找到的等响曲线参数作为目标等响曲线参数;进一步地,可以对目标等响曲线参数进行响度计算,从而得到目标频点对应的目标响度,且可以通过对目标响度进行系数转换,得到与待编码音频数据帧相关联的听觉感知加权系数;进一步地,可以获取待编码音频数据帧在频域上与目标频点相关联的第一功率谱幅值以及预解码音频数据帧在频域上与目标频点相关联的第二功率谱幅值,进而可以基于前述听觉感知加权系数、第一功率谱幅值以及第二功率谱幅值进行感知误差计算,从而得到数据编码误差对应的感知误差。其中,感知误差计算公式如下:
PWE=∑[W(k)×(S(k)-D(k))2] (1)
其中,k为目标频点,W(k)为听觉感知加权系数,S(k)为待编码音频数据帧在频域上与目标频点相关联的第一功率谱幅值,即待编码音频数据帧的频域表述,D(k)为预解码音频数据帧在频域上与目标频点相关联的第二功率谱幅值,即预解码音频数据帧的频域表述。可以理解,在本申请实施例中,可以采用基于BS3383标准《BS 3383Specification fornormal equal-loudness level contours for pure tones under free-fieldlistening conditions》的心理声学等响曲线数据计算得到听觉感知加权系数。下述公式(2)~公式(5)(来源于BS3383标准的第四章)可用于计算目标响度:
afy=af(j-1)+(k-ff(j-1))*(af(j)-af(j-1))/(ff(j)-ff(j-1)) (2)
bfy=bf(j-1)+(k-ff(j-1))*(bf(j)-bf(j-1))/(ff(j)-ff(j-1)) (3)
cfy=cf(j-1)+(k-ff(j-1))*(cf(j)-cf(j-1))/(ff(j)-ff(j-1)) (4)
loud=4.2+afy*(dB-cfy)/(1+bfy*(dB-cfy)) (5)
其中,k为输入的任意一个目标频点,可以在将待编码音频数据帧由时域转换到频域上表述时得到,且目标频点的数量为多个,此处对目标频点的具体取值和数量均不做限定。本申请实施例中的等响曲线数据表可以为BS3383标准公开的等响曲线数据表,该等响曲线数据表可包含大量用于描述BS3383标准中的心理声学等响曲线(基于大量的实验画出来的一条曲线)的等响曲线参数,比如上述公式中的ff、af、bf、cf,这些等响曲线参数没有实际的物理含义,相当于前述心理声学等响曲线的一个数学表达。为了快速计算出目标频点对应的目标响度,可以在等响曲线数据表中查找出对应的等响曲线参数,比如,输入一个频率值j-1,就可以在等响曲线数据表中查到对应的等响曲线参数,例如ff(j-1)、af(j-1)、bf(j-1)、cf(j-1),再代入上述公式(2)~公式(5)即可。
可以理解,等响曲线数据表是一个有限大小的表格,因此其任意两个相邻的频率值之间的间隔不会是均匀的,比如可能间隔几赫兹或几十赫兹,此处不做限定。而在这个有限大小的表格中取查找参数时,需要先确定目标频点k对应的频率在等响曲线数据表中所属的目标频率区间。假设目标频点k对应的频率为freq,则可确定即目标频点k对应的频率freq在频率j-1(在等响曲线数据表中,选择小于或等于频率freq且最靠近频率freq的频率)和频率j(在等响曲线数据表中,选择大于或等于频率freq且最靠近频率freq的频率)之间,也就是说此时目标频率区间为[j-1,j],可以理解,频率j-1和频率j之间的间隔不一定是1Hz,可能间隔几赫兹或几十赫兹,这里对此不做限定。比如,假设freq=90Hz,而如果j-1表示频率值80Hz,j表示频率值100Hz,则可以确定freq就刚好是落在[j-1,j]这个频率区间内。
进一步,确定目标频率区间后,就可以在等响曲线数据表中查找目标频率区间对应的等响曲线参数,且可以将查找到的等响曲线参数作为目标等响曲线参数,比如,在目标频率区间为[j-1,j]时,ff(j-1)、af(j-1)、bf(j-1)、cf(j-1)、ff(j)、af(j)、bf(j)以及cf(j)即可作为目标等响曲线参数,其响度计算是采用线性插值法对目标等响曲线参数进行插值,将这些目标等响曲线参数代入上述公式(2)~公式(5),即可快速得到目标频点k对应的目标响度loud。其中,公式(5)中的dB表示一个默认的响度值,本申请实施例对该默认响度值的取值不做限定,比如可设定为60。
本申请实施例提供的听觉感知加权系数计算公式如下:
W(k)=(10loud/20)/1000 (6)
其中,将上述目标响度loud代入公式(6)进行系数转换,即可得到目标频点k对应的听觉感知加权系数W(k)。可以理解,由于待编码音频数据帧在频域上的目标频点有多个(即k的取值有多个),利用上述公式(2)~公式(6),可以得到与待编码音频数据帧相关联的多个听觉感知加权系数(即整个频带上的听觉感知加权系数)。
为便于理解,请一并参见图10,图10是本申请实施例提供的一种听觉感知加权系数的示意图。如图10所示的听觉感知加权系数与频率之间的变化关系可基于上述公式(6)得到,可以看到,不同频点对应于不同的听觉感知加权系数的取值,也就是说,在不同频点上,人耳感知的能量是不一样的。
其中,由于听觉感知加权系数是基于频域来定义的,因此在计算感知误差时,也需要将位于时域上的待编码音频数据帧以及预解码音频数据帧,变换到频域上来表述,本申请实施例可以通过对待编码音频数据帧的第一自相关函数进行傅立叶变换,得到待编码音频数据帧在频域上与目标频点相关联的第一功率谱幅值,可用S(k)表示;同理,可以通过对预解码音频数据帧的第二自相关函数进行傅立叶变换,得到预解码音频数据帧在频域上与目标频点相关联的第二功率谱幅值,可用D(k)表示。进一步,可以将获取到的听觉感知加权系数W(k)、第一功率谱幅值S(k)以及第二功率谱幅值D(k)代入上述公式(1)进行感知误差计算,其中第一功率谱幅值S(k)对应的是原始输入信号(即待编码音频数据帧),第二功率谱幅值D(k)对应的是经过编解码的衰减过的信号(即预解码音频数据帧),二者之间的差值可表示绝对能量误差,再乘上听觉感知加权系数W(k),可以得到数据编码误差对应的感知误差PWE。由此可见,通过等响曲线数据表可以快速获取到相应的等响曲线参数进行相关计算,从而可以高效地实现感知误差计算,进而提高感知误差的获取效率。
可以理解的是,上述误差编码的过程可以为:对数据编码误差进行特征提取,得到数据编码误差对应的误差特征;对误差特征进行量化,得到与待编码音频数据帧相关联的误差编码码流。在一种具体的实施方式中,可选的,误差编码组件(比如图8所示的误差编码组件804)可通过深度神经网络搭建得到,具体可包括误差编码网络(比如图8所示的误差编码网络804a)和误差量化网络(比如图8所示的误差编码网络804b),则响应于数据编码误差满足误差编码条件(比如感知误差PWE大于感知阈值Thres_P),由误差编码组件对数据编码误差进行误差编码的具体过程可以为:将数据编码误差输入至误差编码网络,由误差编码网络对数据编码误差进行特征提取,可得到数据编码误差对应的误差特征;进一步地,将该误差特征输入至误差量化网络,由误差量化网络对误差特征进行量化,可得到与待编码音频数据帧相关联的误差编码码流。其中,对输入的数据编码误差进行特征提取,可以理解为将数据编码误差压缩为对应的误差特征;对误差特征进行量化,可以理解为对该误差特征进一步压缩,因此得到的误差编码码流相比于前述数据编码误差,可采用更少量的字节进行表示,即压缩率很高,从而可以有效降低存储空间和传输带宽。
需要说明的是,本申请实施例对误差编码组件的网络结构(包括误差编码网络的网络结构和误差量化网络的网络结构)不进行限定,例如,误差编码组件可采用全卷积网络、卷积神经网络、残差网络、长短期记忆网络等神经网络中的一种或多种实现,这里的全卷积网络可包括但不限于因果全卷积网络及其变种等。其中,误差量化网络可采用残差矢量量化(RVQ)或其他量化方式提高编码效率,此处不做限定。此外,基于深度学习的误差编码组件的网络结构,与前述编码组件的网络结构可以相同,也可以不相同,本申请实施例对此不做限定。
可以理解的是,量化精度可通过设定的量化等级进行控制,则上述量化过程可以为:响应于获取到的待编码音频数据帧对应的编码量化等级,基于与编码量化等级相匹配的第二量化精度参数,对误差特征进行量化,得到量化后的误差特征,将量化后的误差特征作为与待编码音频数据帧相关联的误差编码码流。
在一种具体的实施方式中,音频编码器可包括信号分类组件(比如图8所示的信号分类组件801),该信号分类组件可用于确定待编码音频数据帧对应的编码量化等级,具体过程可以参见上述步骤S101中的相关阐述,这里不再进行赘述;则由误差量化网络对数据编码误差对应的误差特征进行量化的具体过程可以为:将该误差特征输入至误差量化网络,由误差量化网络基于与编码量化等级相匹配的第二量化精度参数,对该误差特征进行量化,得到量化后的误差特征,此时可以将量化后的误差特征作为与待编码音频数据帧相关联的误差编码码流。其中,第二量化精度参数可由误差量化网络通过待编码音频数据帧所对应的编码量化等级计算得到,也可由误差量化网络通过查表得到,比如,误差量化网络可配置第二量化精度转换表,该第二量化精度转换表可用于存储不同量化等级与量化精度参数之间的对应关系,则误差量化网络可以在第二量化精度转换表中,查找与前述编码量化等级相对应的量化精度参数,且将查找到的量化精度参数作为与该编码量化等级相匹配的第二量化精度参数。本申请实施例对第二量化精度参数的获取方式不做限定。可以理解,本申请实施例通过不同的量化等级来对量化精度进行动态控制调节,可以提升量化的灵活性,从而提升音频编码的灵活性。
可以理解的是,本申请实施例除了可以直接对时域上的数据编码误差进行误差编码,可选的,也可以将时域上的数据编码误差转换为非时域上的其他形式的误差(比如,频域上的频谱编码误差、Mel标度频率域上的梅尔频谱编码误差等),再进行误差编码,从而得到对应的误差编码码流。为便于理解,下面以频域上的频谱编码误差为例进行说明。
其中,可以对数据编码误差进行时频变换,这里的时频变换具体可以为傅立叶变换,例如快速傅立叶变换(FFT),从而得到数据编码误差对应的频谱编码误差,进而可以将该频谱编码误差输入至误差编码组件,由误差编码组件对该频谱编码误差进行误差编码,以得到与待编码音频数据帧相关联的误差编码码流。其中,误差编码组件对频谱编码误差进行误差编码的具体过程(包括特征提取和量化),与对数据编码误差进行误差编码的过程类似,这里不再进行赘述。后续在对该误差编码码流进行误差解码时,可得到误差编码码流对应的误差解码频谱帧,由于误差解码频谱帧为频域上的频谱帧,因此可以对误差解码频谱帧进行傅立叶逆变换,从而得到时域上的误差解码数据帧。
可以理解,除了可以采用上述基于深度学习的编码方式对数据编码误差进行误差编码,可选的,也可以采用传统编码方式对数据编码误差进行误差编码,此时的误差编码组件可为传统的音频编码组件,比如,可以对数据编码误差进行熵编码或残差脉冲编码,其中可包括采样、量化、编码等几个步骤,从而得到与待编码音频数据帧相关联的误差编码码流,此处不再一一展开说明。可以理解,实际应用中可以根据压缩要求选择合适的编码方式对数据编码误差进行误差编码,比如,在压缩率要求较高时,可以采用基于深度学习的编码方式对数据编码误差进行误差编码;在压缩率要求较低时,可以采用传统编码方式对数据编码误差进行误差编码。由此可见,本申请实施例可以丰富编码方式的灵活性。
可以理解,在本申请实施例中,误差编码码流解码得到的误差解码数据帧和数据编码码流解码得到的音频解码数据帧,可用于重构得到待编码音频数据帧对应的音频数据重构帧。具体的,在编码得到误差编码码流和数据编码码流后,音频编码器可以将误差编码码流和数据编码码流一并发送给该音频编码器对应的音频解码器,以使该音频解码器响应于解码得到误差编码码流对应的误差解码数据帧和数据编码码流对应的音频解码数据帧,通过误差解码数据帧和音频解码数据帧重构得到待编码音频数据帧对应的音频数据重构帧;其中,音频数据重构帧可用于重构得到待处理音频信号对应的音频重构信号。音频解码器进行信号重构的具体过程,可以参见后续图11所对应实施例中的步骤S202。
此外,可选的,在上述数据编码误差不满足误差编码条件时,音频编码器可以直接将数据编码码流发送给音频编码器对应的音频解码器,以使音频解码器响应于解码得到数据编码码流对应的音频解码数据帧,将该音频解码数据帧作为待编码音频数据帧对应的音频数据重构帧;其中,音频数据重构帧可用于重构得到待处理音频信号对应的音频重构信号。
其中,音频编码器可以基于某种传输协议,将误差编码码流和数据编码码流传输给音频解码器进行解码,这里的传输协议可包括但不限于RTSP、RTMP、HTTP、SIP等协议,本申请实施例对此不做限定。
上述可知,本申请实施例提出了一种具有实时误差反馈编码的深度学习音频编解码方案,采用闭环反馈设计,通过在编码过程中加入预解码环节,可以对当前帧的深度学习编码输出进行相应的深度学习预解码,进而获取当前帧的编码误差,并可在判断当前编码误差满足误差编码条件时,对其进行二次编码,在后续的解码过程中,通过解码得到的误差解码数据帧和音频解码数据帧可以重构得到前述待编码音频数据帧对应的音频数据重构帧,可以理解,由于本申请实施例对预解码重构信号与原始输入信号之间的实时误差进行了补偿和编码,因此可以在音频编解码过程中提升信号保真度。
进一步的,请参见图11,图11是本申请实施例提供的一种数据处理方法的流程示意图二。如图11所示,该方法具体可以包括以下步骤S201-步骤S202。
步骤S201,接收与待编码音频数据帧相关联的误差编码码流以及数据编码码流;
可以理解的是,本申请实施例可以对接收到的误差编码码流和数据编码码流分别进行解码以实现信号重构。需要说明的是,本申请实施例提供的方法可以由硬件(比如音频解码器)执行,也可以由软件(比如解码客户端),为便于理解,本申请实施例以音频解码器执行为例进行阐述,该音频解码器可以运行于解码设备上,该解码设备可以为终端设备或服务器,此处不做限制,比如,该解码设备可以为上述图2所示的解码设备200B。
可以理解,音频解码器可以基于某种传输协议(包括但不限于RTSP、RTMP、HTTP、SIP等协议),接收音频编码器发送的与待编码音频数据帧相关联的误差编码码流以及数据编码码流。其中,待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;误差编码码流是响应于数据编码误差满足待处理音频信号对应的误差编码条件,对数据编码误差进行误差编码后得到的;数据编码误差是通过对待编码音频数据帧和数据编码码流对应的预解码音频数据帧进行误差计算所得到的;预解码音频数据帧是对数据编码码流进行预解码处理后得到的;编码得到误差编码码流以及数据编码码流的具体过程,可以参见上述图6所对应的实施例,这里不再进行赘述。
步骤S202,响应于解码得到误差编码码流对应的误差解码数据帧和数据编码码流对应的音频解码数据帧,通过误差解码数据帧和音频解码数据帧重构得到待编码音频数据帧对应的音频数据重构帧;
可以理解,本申请实施例可以对误差编码码流进行误差解码,得到误差编码码流对应的误差解码数据帧;同时,可以对数据编码码流进行音频解码,得到数据编码码流对应的音频解码数据帧;进而可以对误差解码数据帧和音频解码数据帧进行线性叠加处理,得到待编码音频数据帧对应的音频数据重构帧。
在一种具体的实施方式中,可以通过音频解码器中的误差解码组件实现误差解码,且可以通过音频解码器中的解码组件实现音频解码。为便于理解,请一并参见图12,图12是本申请实施例提供的一种音频解码器的结构示意图。本申请实施例中的音频解码器(比如图12所示的音频解码器120)可包括解码组件(比如图12所示的解码组件1201)和误差解码组件(比如图12所示的误差解码组件1202),其中,解码组件是指用于对数据编码码流进行音频解码的组件,误差解码组件是指用于对误差编码码流进行误差解码的组件。基于此,音频解码器可以通过误差解码组件对误差编码码流(比如图12所示的编码码流120C)进行误差解码,得到误差编码码流对应的误差解码数据帧(比如图12所示的解码数据帧120D);同时,可以通过解码组件对数据编码码流(比如图12所示的编码码流120A)进行音频解码,得到数据编码码流对应的音频解码数据帧(比如图12所示的解码数据帧120B);进一步,可以对误差解码数据帧和音频解码数据帧进行线性叠加处理,从而得到待编码音频数据帧对应的音频数据重构帧(比如图12所示的音频数据重构帧120E)。
此外,可选的,若音频解码器只接收到音频编码器发送的数据编码码流(即前述数据编码误差不满足误差编码条件),则可以通过解码组件对数据编码码流进行音频解码,得到数据编码码流对应的音频解码数据帧,进而可以将该音频解码数据帧作为待编码音频数据帧对应的音频数据重构帧。
其中,可选的,若数据编码码流是通过直接对时域上的待编码音频数据帧进行深度学习音频编码后得到的,则音频解码器可以通过解码组件对数据编码码流中的量化后的音频特征进行解压缩处理,从而得到数据编码码流对应的音频解码数据帧。可选的,若数据编码码流是通过对待编码音频数据帧在频域上的待编码音频频谱帧进行深度学习音频编码后得到的,则音频解码器可以通过解码组件对数据编码码流中的量化后的音频特征进行解压缩处理,得到数据编码码流对应的音频解码频谱帧,由于音频解码频谱帧为频域上的频谱帧,因此可以对音频解码频谱帧进行傅立叶逆变换,从而得到时域上的音频解码数据帧。
类似的,可选的,若误差编码码流是通过基于深度学习的编码方式对时域上的数据编码误差进行误差编码后得到的,则音频解码器可以通过误差解码组件对误差编码码流中的量化后的误差特征进行解压缩处理,从而得到误差编码码流对应的误差解码数据帧。可选的,若误差编码码流是通过基于深度学习的编码方式对数据编码误差在频域上的频谱编码误差进行误差编码后得到的,则音频解码器可以通过误差解码组件对误差编码码流中的量化后的误差特征进行解压缩处理,得到误差编码码流对应的误差解码频谱帧,由于误差解码频谱帧为频域上的频谱帧,因此可以对误差解码频谱帧进行傅立叶逆变换,从而得到时域上的误差解码数据帧。此外,可选的,若误差编码码流是通过传统编码方式对数据编码误差进行误差编码后得到的,则音频解码器可以通过传统解码方式(比如熵编码的逆过程或残差脉冲编码的逆过程等)对误差编码码流进行误差解码,以得到误差编码码流对应的误差解码数据帧。
其中,音频数据重构帧可用于重构得到待处理音频信号对应的音频重构信号,也就是说,每一个待编码音频数据帧对应的音频数据重构帧,可以共同构成音频重构信号。
上述可知,本申请实施例提出了一种具有实时误差反馈编码的深度学习音频编解码器,采用闭环反馈设计,将当前帧的深度学习编码输出进行相应的本地深度学习预解码,预解码音频数据帧与待编码音频数据帧对比得到出当前帧的数据编码误差,并通过感知误差方法衡量当前数据编码误差是否满足预设的误差编码条件(比如感知阈值),若不满足该误差编码条件(比如感知误差不超过感知阈值),则当前帧数据编码码流正常输出;相反,若满足该误差编码条件(比如感知误差超过感知阈值),则需要对数据编码误差进行二次编码及量化(量化精度可由信号分类组件进行动态控制调节),得到的误差编码码流和原先的数据编码码流一并发送至音频解码器,音频解码器接收到误差编码码流和数据编码码流后进行信号重构,其重构过程包括原数据编码码流的深度学习解码和误差编码码流的深度学习解码,最终两路解码信号通过线性叠加后生成最终解码信号(即音频数据重构帧),从而可以在音频编解码过程中提升信号保真度。
进一步地,请参见图13,图13是本申请实施例提供的一种音频编解码流程示意图。本申请实施例采用了闭环误差编码的设计思路,如图13所示,编码端(即音频编码器端)可以将原编码组件正常输出的当前帧码流数据(即前述数据编码码流)经过预解码组件(预解码组件与解码端(即音频解码器端)的解码组件保持完全一致)进行预解码处理,得到预解码重构信号(即前述预解码音频数据帧),预解码重构信号与原始输入信号(即前述待编码音频数据帧)相减得到误差信号(即前述数据编码误差),经过感知误差计算模块对误差信号进行判断,当计算出的感知误差超过预设的感知阈值时,误差信号进入误差编码组件进行二次编码,得到误差编码码流,原始的数据编码码流和误差编码码流一并通过传输网络发送到解码端。解码端将两个码流数据分别接入原解码组件和误差解码组件,并输出对应的信号(包括误差解码数据帧和音频解码数据帧),最终将两个输出信号进行线性叠加处理得到解码输出信号(即前述音频数据重构帧)。
相反,当计算出的感知误差没有超过预设的感知阈值时,则可认为当前帧原始编码效果已经达到听觉感知要求,无需进一步通过误差编码进行改善,因此可以直接将原始的数据编码码流通过传输网络发送到解码端。
其中,上述传输网络可以为采用RTSP、RTMP、HTTP、SIP等传输协议中的任意一种传输协议实现的网络,此处不做限制。
可以理解,为了控制音频编码器的量化精度,如图13所示,在编码前加入了信号分类组件,可将原始输入信号分类为语音、音乐、噪声、静音等类别,不同类别结果对应不同的量化等级。
由此可见,采用闭环误差编码的设计思路,可以在音频编解码过程中提升信号保真度。
其中,可以理解的是,若本申请实施例新增的误差编码组件和误差解码组件是通过深度神经网络搭建得到的,则可以在原编码组件和解码组件训练完成后,再进行误差编码组件和误差解码组件的训练,也就是说,可以在已有的编解码组件的基础上,去做误差编解码组件的训练,相当于做了两次训练。误差编解码组件的训练方法和原有编解码组件的训练方法可以相同,比如编解码端可以同时进行训练。
在本申请实施例中,可以先训练编码组件和解码组件,比如可以利用数千个小时的音频数据进行编码组件和解码组件的训练,训练完成后,编码组件和解码组件的网络参数就固定不变了。进一步,可以将已经训练好的编码组件和解码组件作为一套可以直接使用的工具,在此基础上,既然有了解码组件,也就说明预解码组件也有了(因为预解码组件与解码组件完全一致),另外,加上预先训练好的信号分类组件(可以独立进行训练,能够实现信号分类,满足适配量化精度的要求即可),就搭建出了闭环反馈框架,此时可以利用已经训练好的信号分类组件、编码组件以及预解码组件生成大量的编码误差训练样本,进而可以基于该编码误差训练样本进行误差编码组件和误差解码组件的训练,训练完成后即可得到音频编码器和音频解码器。采用这样的训练方式,可以有效降低训练过程中存在的误差,提升训练效果。
进一步的,请参见图14,图14是本申请实施例提供的一种音频数据处理装置的结构示意图一。如图14所示,音频数据处理装置1可应用于音频编码器中,例如,该音频编码器可以为上述图2所对应实施例中的音频编码器20a。应当理解,该音频数据处理装置1可以是运行于计算机设备(比如,前述编码设备)的一个计算机程序(包括程序代码),例如该音频数据处理装置1可以为一个应用软件;可以理解的是,该音频数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图14所示,音频数据处理装置1可以包括:预解码模块11、误差计算模块12、误差编码模块13、类型识别模块14、量化控制模块15、误差舍弃模块16;
预解码模块11,用于获取待编码音频数据帧对应的数据编码码流,对数据编码码流进行预解码处理,解码得到数据编码码流对应的预解码音频数据帧;待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;
其中,预解码模块11可以包括:音频编码单元111、预解码单元112;
音频编码单元111,用于获取待处理音频信号所对应的音频数据帧中的待编码音频数据帧,对待编码音频数据帧进行音频编码,得到待编码音频数据帧对应的数据编码码流;
其中,音频编码单元111可以包括:第一提取子单元1111、第一量化子单元1112;
第一提取子单元1111,用于对待编码音频数据帧进行特征提取,得到待编码音频数据帧对应的音频特征;
第一量化子单元1112,用于对音频特征进行量化,得到待编码音频数据帧对应的数据编码码流。
其中,第一量化子单元1112具体用于响应于获取到的待编码音频数据帧对应的编码量化等级,基于与编码量化等级相匹配的第一量化精度参数,对音频特征进行量化,得到量化后的音频特征,将量化后的音频特征作为待编码音频数据帧对应的数据编码码流。
其中,第一提取子单元1111、第一量化子单元1112的具体功能实现方式,可以参见上述图6所对应实施例中对步骤S101的描述,这里将不再继续进行赘述。
预解码单元112,用于对数据编码码流进行预解码处理,解码得到数据编码码流对应的预解码音频数据帧。
其中,预解码单元112具体用于对数据编码码流中的量化后的音频特征进行解压缩处理,得到数据编码码流对应的预解码音频数据帧。
其中,音频编码单元111、预解码单元112的具体功能实现方式,可以参见上述图6所对应实施例中对步骤S101的描述,这里将不再继续进行赘述。
误差计算模块12,用于对待编码音频数据帧和预解码音频数据帧进行误差计算,得到待编码音频数据帧和预解码音频数据帧之间的数据编码误差;
其中,误差计算模块12具体用于将待编码音频数据帧和预解码音频数据帧相减,得到待编码音频数据帧和预解码音频数据帧之间的数据帧差值,将得到的数据帧差值作为待编码音频数据帧和预解码音频数据帧之间的数据编码误差。
误差编码模块13,用于响应于数据编码误差满足待处理音频信号对应的误差编码条件,对数据编码误差进行误差编码,得到与待编码音频数据帧相关联的误差编码码流;误差编码码流解码得到的误差解码数据帧和数据编码码流解码得到的音频解码数据帧,用于重构得到待编码音频数据帧对应的音频数据重构帧;音频数据重构帧用于重构得到待处理音频信号对应的音频重构信号;
其中,误差编码条件包括针对待处理音频信号配置的感知阈值;
误差编码模块13可以包括:感知计算单元131、误差编码单元132;
感知计算单元131,用于获取与待编码音频数据帧相关联的听觉感知加权系数,对听觉感知加权系数、待编码音频数据帧以及预解码音频数据帧进行感知误差计算,得到数据编码误差对应的感知误差;
其中,感知计算单元131可以包括:参数查找子单元1311、系数计算子单元1312、感知计算子单元1313;
参数查找子单元1311,用于响应于获取到的待编码音频数据帧在频域上的目标频点,获取目标频点对应的频率在等响曲线数据表中所属的目标频率区间,在等响曲线数据表中查找目标频率区间对应的等响曲线参数,且将查找到的等响曲线参数作为目标等响曲线参数;
系数计算子单元1312,用于对目标等响曲线参数进行响度计算,得到目标频点对应的目标响度,且通过对目标响度进行系数转换,得到与待编码音频数据帧相关联的听觉感知加权系数;
感知计算子单元1313,用于获取待编码音频数据帧在频域上与目标频点相关联的第一功率谱幅值以及预解码音频数据帧在频域上与目标频点相关联的第二功率谱幅值,基于听觉感知加权系数、第一功率谱幅值以及第二功率谱幅值进行感知误差计算,得到数据编码误差对应的感知误差。
其中,参数查找子单元1311、系数计算子单元1312、感知计算子单元1313的具体功能实现方式,可以参见上述图6所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
误差编码单元132,用于响应于感知误差大于感知阈值,确定数据编码误差满足待处理音频信号对应的误差编码条件,且对数据编码误差进行误差编码,得到与待编码音频数据帧相关联的误差编码码流。
其中,误差编码单元132可以包括:第二提取子单元1321、第二量化子单元1322;
第二提取子单元1321,用于对数据编码误差进行特征提取,得到数据编码误差对应的误差特征;
第二量化子单元1322,用于对误差特征进行量化,得到与待编码音频数据帧相关联的误差编码码流。
其中,第二量化子单元1322具体用于响应于获取到的待编码音频数据帧对应的编码量化等级,基于与编码量化等级相匹配的第二量化精度参数,对误差特征进行量化,得到量化后的误差特征,将量化后的误差特征作为与待编码音频数据帧相关联的误差编码码流。
其中,第二提取子单元1321、第二量化子单元1322的具体功能实现方式,可以参见上述图6所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
其中,感知计算单元131、误差编码单元132的具体功能实现方式,可以参见上述图6所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
其中,装置还包括:
类型识别模块14,用于对待编码音频数据帧进行音频类型识别,得到待编码音频数据帧的音频类型;
量化控制模块15,用于基于待编码音频数据帧的音频类型,对待编码音频数据帧进行量化等级映射,得到待编码音频数据帧对应的编码量化等级。
其中,量化控制模块15可以包括:规则表获取单元151、等级查找单元152;
规则表获取单元151,用于获取配置的量化等级映射规则表;量化等级映射规则表用于存储不同音频类型与量化等级之间的映射关系;
等级查找单元152,用于在量化等级映射规则表中查找与待编码音频数据帧的音频类型具有映射关系的量化等级,且将查找到的量化等级作为待编码音频数据帧对应的编码量化等级。
其中,规则表获取单元151、等级查找单元152的具体功能实现方式,可以参见上述图6所对应实施例中对步骤S101的描述,这里将不再继续进行赘述。
其中,装置还包括:
误差舍弃模块16,用于响应于数据编码误差不满足误差编码条件,不对数据编码误差进行误差编码;数据编码码流解码得到的音频解码数据帧用于作为待编码音频数据帧对应的音频数据重构帧。
其中,预解码模块11、误差计算模块12、误差编码模块13、类型识别模块14、量化控制模块15、误差舍弃模块16的具体功能实现方式,可以参见上述图6所对应实施例中对步骤S101-步骤S103的描述,这里将不再继续进行赘述。应当理解,对采用相同方法所得到的有益效果描述,也不再进行赘述。
进一步的,请参见图15,图15是本申请实施例提供的一种音频数据处理装置的结构示意图二。如图15所示,音频数据处理装置2可应用于音频解码器中,例如,该音频解码器可以为上述图2所对应实施例中的音频解码器20b。应当理解,该音频数据处理装置2可以是运行于计算机设备(比如,前述解码设备)的一个计算机程序(包括程序代码),例如该音频数据处理装置2可以为一个应用软件;可以理解的是,该音频数据处理装置2可以用于执行本申请实施例提供的方法中的相应步骤。如图15所示,音频数据处理装置2可以包括:码流接收模块21、音频重构模块22;
码流接收模块21,用于接收与待编码音频数据帧相关联的误差编码码流以及数据编码码流;待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;误差编码码流是响应于数据编码误差满足待处理音频信号对应的误差编码条件,对数据编码误差进行误差编码后得到的;数据编码误差是通过对待编码音频数据帧和数据编码码流对应的预解码音频数据帧进行误差计算所得到的;预解码音频数据帧是对数据编码码流进行预解码处理后得到的;
音频重构模块22,用于响应于解码得到误差编码码流对应的误差解码数据帧和数据编码码流对应的音频解码数据帧,通过误差解码数据帧和音频解码数据帧重构得到待编码音频数据帧对应的音频数据重构帧;音频数据重构帧用于重构得到待处理音频信号对应的音频重构信号。
其中,音频重构模块22可以包括:误差解码单元221、音频解码单元222、线性叠加单元223;
误差解码单元221,用于对误差编码码流进行误差解码,得到误差编码码流对应的误差解码数据帧;
音频解码单元222,用于对数据编码码流进行音频解码,得到数据编码码流对应的音频解码数据帧;
线性叠加单元223,用于对误差解码数据帧和音频解码数据帧进行线性叠加处理,得到待编码音频数据帧对应的音频数据重构帧。
其中,误差解码单元221、音频解码单元222、线性叠加单元223的具体功能实现方式,可以参见上述图11所对应实施例中对步骤S202的描述,这里将不再继续进行赘述。
其中,码流接收模块21、音频重构模块22的具体功能实现方式,可以参见上述图11所对应实施例中对步骤S201-步骤S202的描述,这里将不再继续进行赘述。应当理解,对采用相同方法所得到的有益效果描述,也不再进行赘述。
进一步地,请参见图16,图16是本申请实施例提供的一种计算机设备的结构示意图。如图16所示,该计算机设备1000可以为终端设备,还可以为服务器,这里将不对其进行限制。为便于理解,本申请以计算机设备为服务器为例,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,该计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图16所示,作为一种计算机可读存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在如图16所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文图6、图11所对应实施例中对音频数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的音频数据处理装置1或者音频数据处理装置2所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图6、图11所对应实施例中对音频数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,计算机指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,此处不做限制。
上述计算机可读存储介质可以是前述任一实施例提供的音频数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图6、图11所对应实施例提供的方法,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步的,请参见图17,图17是本申请实施例提供的一种音频数据处理***的结构示意图。如图17所示,该音频数据处理***3可以包含音频编码器1a和音频解码器2a。其中,音频编码器1a可以为上述图2所对应实施例所描述的音频编码器,该音频编码器可以集成在上述图2所示的编码设备200A上,这里将不再继续进行赘述。其中,音频解码器2a可以为上述图2所对应实施例所描述的音频解码器,该音频解码器可以集成在上述图2所示的解码设备200B上,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的音频数据处理***实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (20)
1.一种音频数据处理方法,其特征在于,包括:
获取待编码音频数据帧对应的数据编码码流,对所述数据编码码流进行预解码处理,解码得到所述数据编码码流对应的预解码音频数据帧;所述待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;
对所述待编码音频数据帧和所述预解码音频数据帧进行误差计算,得到所述待编码音频数据帧和所述预解码音频数据帧之间的数据编码误差;
响应于所述数据编码误差满足所述待处理音频信号对应的误差编码条件,对所述数据编码误差进行误差编码,得到与所述待编码音频数据帧相关联的误差编码码流;所述误差编码码流解码得到的误差解码数据帧和所述数据编码码流解码得到的音频解码数据帧,用于重构得到所述待编码音频数据帧对应的音频数据重构帧;所述音频数据重构帧用于重构得到所述待处理音频信号对应的音频重构信号。
2.根据权利要求1所述的方法,其特征在于,所述获取待编码音频数据帧对应的数据编码码流,对所述数据编码码流进行预解码处理,解码得到所述数据编码码流对应的预解码音频数据帧,包括:
获取待处理音频信号所对应的音频数据帧中的待编码音频数据帧,对所述待编码音频数据帧进行音频编码,得到所述待编码音频数据帧对应的数据编码码流;
对所述数据编码码流进行预解码处理,解码得到所述数据编码码流对应的预解码音频数据帧。
3.根据权利要求2所述的方法,其特征在于,所述对所述待编码音频数据帧进行音频编码,得到所述待编码音频数据帧对应的数据编码码流,包括:
对所述待编码音频数据帧进行特征提取,得到所述待编码音频数据帧对应的音频特征;
对所述音频特征进行量化,得到所述待编码音频数据帧对应的数据编码码流。
4.根据权利要求3所述的方法,其特征在于,所述对所述音频特征进行量化,得到所述待编码音频数据帧对应的数据编码码流,包括:
响应于获取到的所述待编码音频数据帧对应的编码量化等级,基于与所述编码量化等级相匹配的第一量化精度参数,对所述音频特征进行量化,得到量化后的音频特征,将所述量化后的音频特征作为所述待编码音频数据帧对应的数据编码码流。
5.根据权利要求1所述的方法,其特征在于,在所述获取待编码音频数据帧对应的数据编码码流之前,所述方法还包括:
对所述待编码音频数据帧进行音频类型识别,得到所述待编码音频数据帧的音频类型;
基于所述待编码音频数据帧的音频类型,对所述待编码音频数据帧进行量化等级映射,得到所述待编码音频数据帧对应的编码量化等级。
6.根据权利要求5所述的方法,其特征在于,所述基于所述待编码音频数据帧的音频类型,对所述待编码音频数据帧进行量化等级映射,得到所述待编码音频数据帧对应的编码量化等级,包括:
获取配置的量化等级映射规则表;所述量化等级映射规则表用于存储不同音频类型与量化等级之间的映射关系;
在所述量化等级映射规则表中查找与所述待编码音频数据帧的音频类型具有映射关系的量化等级,且将查找到的量化等级作为所述待编码音频数据帧对应的编码量化等级。
7.根据权利要求2所述的方法,其特征在于,所述对所述数据编码码流进行预解码处理,解码得到所述数据编码码流对应的预解码音频数据帧,包括:
对所述数据编码码流中的量化后的音频特征进行解压缩处理,得到所述数据编码码流对应的预解码音频数据帧。
8.根据权利要求1所述的方法,其特征在于,所述对所述待编码音频数据帧和所述预解码音频数据帧进行误差计算,得到所述待编码音频数据帧和所述预解码音频数据帧之间的数据编码误差,包括:
将所述待编码音频数据帧和所述预解码音频数据帧相减,得到所述待编码音频数据帧和所述预解码音频数据帧之间的数据帧差值,将得到的数据帧差值作为所述待编码音频数据帧和所述预解码音频数据帧之间的数据编码误差。
9.根据权利要求1所述的方法,其特征在于,所述误差编码条件包括针对所述待处理音频信号配置的感知阈值;
所述响应于所述数据编码误差满足所述待处理音频信号对应的误差编码条件,对所述数据编码误差进行误差编码,得到与所述待编码音频数据帧相关联的误差编码码流,包括:
获取与所述待编码音频数据帧相关联的听觉感知加权系数,对所述听觉感知加权系数、所述待编码音频数据帧以及所述预解码音频数据帧进行感知误差计算,得到所述数据编码误差对应的感知误差;
响应于所述感知误差大于所述感知阈值,确定所述数据编码误差满足所述待处理音频信号对应的所述误差编码条件,且对所述数据编码误差进行误差编码,得到与所述待编码音频数据帧相关联的误差编码码流。
10.根据权利要求9所述的方法,其特征在于,所述获取与所述待编码音频数据帧相关联的听觉感知加权系数,对所述听觉感知加权系数、所述待编码音频数据帧以及所述预解码音频数据帧进行感知误差计算,得到所述数据编码误差对应的感知误差,包括:
响应于获取到的所述待编码音频数据帧在频域上的目标频点,获取所述目标频点对应的频率在等响曲线数据表中所属的目标频率区间,在所述等响曲线数据表中查找所述目标频率区间对应的等响曲线参数,且将查找到的等响曲线参数作为目标等响曲线参数;
对所述目标等响曲线参数进行响度计算,得到所述目标频点对应的目标响度,且通过对所述目标响度进行系数转换,得到与所述待编码音频数据帧相关联的听觉感知加权系数;
获取所述待编码音频数据帧在频域上与所述目标频点相关联的第一功率谱幅值以及所述预解码音频数据帧在频域上与所述目标频点相关联的第二功率谱幅值,基于所述听觉感知加权系数、所述第一功率谱幅值以及所述第二功率谱幅值进行感知误差计算,得到所述数据编码误差对应的感知误差。
11.根据权利要求9所述的方法,其特征在于,所述对所述数据编码误差进行误差编码,得到与所述待编码音频数据帧相关联的误差编码码流,包括:
对所述数据编码误差进行特征提取,得到所述数据编码误差对应的误差特征;
对所述误差特征进行量化,得到与所述待编码音频数据帧相关联的误差编码码流。
12.根据权利要求11所述的方法,其特征在于,所述对所述误差特征进行量化,得到与所述待编码音频数据帧相关联的误差编码码流,包括:
响应于获取到的所述待编码音频数据帧对应的编码量化等级,基于与所述编码量化等级相匹配的第二量化精度参数,对所述误差特征进行量化,得到量化后的误差特征,将所述量化后的误差特征作为与所述待编码音频数据帧相关联的误差编码码流。
13.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述数据编码误差不满足所述误差编码条件,不对所述数据编码误差进行误差编码;所述数据编码码流解码得到的音频解码数据帧用于作为所述待编码音频数据帧对应的音频数据重构帧。
14.一种音频数据处理方法,其特征在于,包括:
接收与待编码音频数据帧相关联的误差编码码流以及数据编码码流;所述待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;所述误差编码码流是响应于数据编码误差满足所述待处理音频信号对应的误差编码条件,对所述数据编码误差进行误差编码后得到的;所述数据编码误差是通过对所述待编码音频数据帧和所述数据编码码流对应的预解码音频数据帧进行误差计算所得到的;所述预解码音频数据帧是对所述数据编码码流进行预解码处理后得到的;
响应于解码得到所述误差编码码流对应的误差解码数据帧和所述数据编码码流对应的音频解码数据帧,通过所述误差解码数据帧和所述音频解码数据帧重构得到所述待编码音频数据帧对应的音频数据重构帧;所述音频数据重构帧用于重构得到所述待处理音频信号对应的音频重构信号。
15.根据权利要求14所述的方法,其特征在于,所述响应于解码得到所述误差编码码流对应的误差解码数据帧和所述数据编码码流对应的音频解码数据帧,通过所述误差解码数据帧和所述音频解码数据帧重构得到所述待编码音频数据帧对应的音频数据重构帧,包括:
对所述误差编码码流进行误差解码,得到所述误差编码码流对应的误差解码数据帧;
对所述数据编码码流进行音频解码,得到所述数据编码码流对应的音频解码数据帧;
对所述误差解码数据帧和所述音频解码数据帧进行线性叠加处理,得到所述待编码音频数据帧对应的音频数据重构帧。
16.一种音频数据处理装置,其特征在于,包括:
预解码模块,用于获取待编码音频数据帧对应的数据编码码流,对所述数据编码码流进行预解码处理,解码得到所述数据编码码流对应的预解码音频数据帧;所述待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;
误差计算模块,用于对所述待编码音频数据帧和所述预解码音频数据帧进行误差计算,得到所述待编码音频数据帧和所述预解码音频数据帧之间的数据编码误差;
误差编码模块,用于响应于所述数据编码误差满足所述待处理音频信号对应的误差编码条件,对所述数据编码误差进行误差编码,得到与所述待编码音频数据帧相关联的误差编码码流;所述误差编码码流解码得到的误差解码数据帧和所述数据编码码流解码得到的音频解码数据帧,用于重构得到所述待编码音频数据帧对应的音频数据重构帧;所述音频数据重构帧用于重构得到所述待处理音频信号对应的音频重构信号。
17.一种音频数据处理装置,其特征在于,包括:
码流接收模块,用于接收与待编码音频数据帧相关联的误差编码码流以及数据编码码流;所述待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;所述误差编码码流是响应于数据编码误差满足所述待处理音频信号对应的误差编码条件,对所述数据编码误差进行误差编码后得到的;所述数据编码误差是通过对所述待编码音频数据帧和所述数据编码码流对应的预解码音频数据帧进行误差计算所得到的;所述预解码音频数据帧是对所述数据编码码流进行预解码处理后得到的;
音频重构模块,用于响应于解码得到所述误差编码码流对应的误差解码数据帧和所述数据编码码流对应的音频解码数据帧,通过所述误差解码数据帧和所述音频解码数据帧重构得到所述待编码音频数据帧对应的音频数据重构帧;所述音频数据重构帧用于重构得到所述待处理音频信号对应的音频重构信号。
18.一种音频数据处理***,其特征在于,所述***包括:音频编码器和音频解码器;所述音频编码器包括编码组件、预解码组件和误差编码组件;所述音频解码器包括误差解码组件和解码组件;
所述编码组件用于获取待编码音频数据帧对应的数据编码码流;所述待编码音频数据帧为获取到的待处理音频信号所对应的音频数据帧中的数据帧;
所述预解码组件用于对所述数据编码码流进行预解码处理,解码得到所述数据编码码流对应的预解码音频数据帧;
所述误差编码组件用于响应于数据编码误差满足所述待处理音频信号对应的误差编码条件,对所述数据编码误差进行误差编码,得到与所述待编码音频数据帧相关联的误差编码码流;所述数据编码误差是通过对所述待编码音频数据帧和所述预解码音频数据帧进行误差计算得到的;所述误差编码码流和所述数据编码码流用于发送给所述音频解码器;
所述误差解码组件用于对获取到的所述音频编码器发送的所述误差编码码流进行误差解码,得到所述误差编码码流对应的误差解码数据帧;
所述解码组件用于对获取到的所述音频编码器发送的所述数据编码码流进行音频解码,得到所述数据编码码流对应的音频解码数据帧;所述误差解码数据帧和所述音频解码数据帧用于重构得到所述待编码音频数据帧对应的音频数据重构帧;所述音频数据重构帧用于重构得到所述待处理音频信号对应的音频重构信号。
19.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与所述存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使所述计算机设备执行权利要求1-15任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使具有所述处理器的计算机设备执行权利要求1-15任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311141490.2A CN117059105A (zh) | 2023-09-05 | 2023-09-05 | 一种音频数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311141490.2A CN117059105A (zh) | 2023-09-05 | 2023-09-05 | 一种音频数据处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117059105A true CN117059105A (zh) | 2023-11-14 |
Family
ID=88662689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311141490.2A Pending CN117059105A (zh) | 2023-09-05 | 2023-09-05 | 一种音频数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117059105A (zh) |
-
2023
- 2023-09-05 CN CN202311141490.2A patent/CN117059105A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113140225B (zh) | 语音信号处理方法、装置、电子设备及存储介质 | |
US11727940B2 (en) | Autocorrection of pronunciations of keywords in audio/videoconferences | |
CN114338623B (zh) | 音频的处理方法、装置、设备及介质 | |
US20230377584A1 (en) | Real-time packet loss concealment using deep generative networks | |
CN112102846A (zh) | 音频处理方法、装置、电子设备以及存储介质 | |
JP2023548707A (ja) | 音声強調方法、装置、機器及びコンピュータプログラム | |
EP0779732A2 (en) | Multi-point voice conferencing system over a wide area network | |
CN112767955B (zh) | 音频编码方法及装置、存储介质、电子设备 | |
CN115116451A (zh) | 音频解码、编码方法、装置、电子设备及存储介质 | |
CN114333893A (zh) | 一种语音处理方法、装置、电子设备和可读介质 | |
Sacchetto et al. | Web-based networked music performances via WebRTC: a low-latency PCM audio solution | |
CN113823303A (zh) | 音频降噪方法、装置及计算机可读存储介质 | |
CN111816197B (zh) | 音频编码方法、装置、电子设备和存储介质 | |
US20230050519A1 (en) | Speech enhancement method and apparatus, device, and storage medium | |
CN117059105A (zh) | 一种音频数据处理方法、装置、设备及介质 | |
CN114333891A (zh) | 一种语音处理方法、装置、电子设备和可读介质 | |
CN114333892A (zh) | 一种语音处理方法、装置、电子设备和可读介质 | |
CN113571081A (zh) | 语音增强方法、装置、设备及存储介质 | |
CN112652292A (zh) | 用于生成音频的方法、装置、设备和介质 | |
CN112382268A (zh) | 用于生成音频的方法、装置、设备和介质 | |
CN112382273A (zh) | 用于生成音频的方法、装置、设备和介质 | |
CN111326166A (zh) | 语音处理方法及装置、计算机可读存储介质、电子设备 | |
CN115171705A (zh) | 一种语音丢包补偿的方法、语音通话的方法及装置 | |
CN113571072B (zh) | 一种语音编码方法、装置、设备、存储介质及产品 | |
CN114866856B (zh) | 音频信号的处理方法、音频生成模型的训练方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |