CN115206330A - 音频处理方法、音频处理装置、电子设备和存储介质 - Google Patents

音频处理方法、音频处理装置、电子设备和存储介质 Download PDF

Info

Publication number
CN115206330A
CN115206330A CN202210836458.5A CN202210836458A CN115206330A CN 115206330 A CN115206330 A CN 115206330A CN 202210836458 A CN202210836458 A CN 202210836458A CN 115206330 A CN115206330 A CN 115206330A
Authority
CN
China
Prior art keywords
redundant
frame
audio
encoding
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
Application number
CN202210836458.5A
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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202210836458.5A priority Critical patent/CN115206330A/zh
Publication of CN115206330A publication Critical patent/CN115206330A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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 using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供一种音频处理方法、音频处理装置、电子设备和存储介质。所述音频处理方法可包括:获取语音传输网络的当前网络状态信息;基于当前网络状态信息确定在编码当前音频帧时将被编码的冗余帧的编码方法和数量;使用多级矢量量化编码方法对当前音频帧进行编码,并且基于确定的编码方法对所述数量的冗余帧进行编码。本公开能够使用适合于当前网络状态的编解码方法来降低编解码冗余帧的码率,从而减少传输网络的带宽负担。

Description

音频处理方法、音频处理装置、电子设备和存储介质
技术领域
本公开涉及音频技术领域,尤其涉及一种用于在弱网环境下进行语音传输的音频处理方法、音频处理装置、电子设备和存储介质。
背景技术
在音频实时通讯场景中,音频数据传输能力严重依赖于网络带宽,弱网环境会限制音频数据的传输,直接带来传输过程中的丢包问题,这会导致实时通讯双方的沟通不畅,或音质受到严重影响等问题。因此,音频传输中对抗弱网的方法一直是行业关注的重点。
发明内容
本公开提供一种音频处理方法、音频处理装置、电子设备和存储介质,以至少解决弱网环境下语音传输的丢包问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种音频处理方法。所述方法可包括:获取语音传输网络的当前网络状态信息;基于所述当前网络状态信息确定在编码当前音频帧时将被编码的冗余帧的编码方法和数量;使用多级矢量量化编码方法对所述当前音频帧进行编码,并且基于确定的编码方法对所述数量的冗余帧进行编码。
可选地,基于所述当前网络状态信息确定在编码当前音频帧时将被编码的冗余帧的编码方法和数量,包括:当所述当前网络状态信息中的丢包率小于预设阈值时,将所述数量确定为零;当所述丢包率大于或等于所述预设阈值时,基于所述丢包率所在的预设范围确定所述数量,并且确定每个冗余帧的编码方法。
可选地,基于所述丢包率所在的预设范围确定所述数量,包括:当所述丢包率处于第一预设范围时,将所述数量确定为预设数量;当所述丢包率处于第二预设范围时,将所述数量确定为所述预设数量的2倍,其中,所述第二预设范围的最小值大于所述第一预设范围的最大值;当所述丢包率处于第三预设范围时,将所述数量确定为所述预设数量的N倍,其中,所述第三预设范围的最小值大于所述第二预设范围的最大值,其中,N为大于2的整数。
可选地,在将被编码的冗余帧的所述数量不为零的情况下,基于确定的编码方法对所述数量的冗余帧进行编码,包括:使用多级矢量量化编码方法对所述数量的冗余帧进行编码。
可选地,在将被编码的冗余帧的所述数量不为零的情况下,基于确定的编码方法对所述数量的冗余帧进行编码,包括:使用相似性编码方法或者差分矢量量化编码方法对所述数量的冗余帧中的至少部分冗余帧进行编码,其中,所述相似性编码方法用于确定与所述冗余帧相似的相似音频帧并且对指示所述相似音频帧的标志进行编码,所述差分矢量量化编码方法用于对所述冗余帧与所述当前音频帧之间的差分特征进行编码。
可选地,基于确定的编码方法对所述数量的冗余帧进行编码,包括:对所述数量的冗余帧进行分组处理;针对每组冗余帧,执行以下操作:针对第一个冗余帧,基于与所述第一个冗余帧相邻的音频帧确定与所述第一个冗余帧相似的相似音频帧,并且对用于指示所述相似音频帧的标志进行编码;针对第二个冗余帧,对所述第二个冗余帧与所述当前音频帧之间的差分特征进行编码;针对第三个冗余帧,基于与所述第三个冗余帧相邻的音频帧确定与所述第三个冗余帧相似的相似音频帧,并且对用于指示所述相似音频帧的标志进行编码;针对第四个冗余帧,使用多级矢量量化编码方法对所述第四个冗余帧进行编码。
可选地,基于与所述第一个冗余帧相邻的音频帧确定与所述第一个冗余帧相似的相似音频帧,包括:基于所述当前音频帧和所述第二个冗余帧来构造参考音频帧;计算所述第一个冗余帧分别与所述参考音频帧、所述当前音频帧和所述第二个冗余帧之间的特征相似度;基于所述特征相似度从所述参考音频帧、所述当前音频帧和所述第二个冗余帧中选择所述相似音频帧。
根据本公开实施例的第二方面,提供一种音频处理方法。所述方法可包括:获取语音传输网络的当前网络状态信息;基于所述当前网络状态信息确定在解码当前音频包时将被解码的冗余包的解码方法和数量;使用多级矢量量化解码方法对所述当前音频包进行解码,并且基于确定的解码方法对所述数量的冗余包进行解码。
可选地,在将被解码的冗余包的所述数量不为零的情况下,基于确定的解码方法对所述数量的冗余包进行解码,包括:使用多级矢量量化解码方法对所述数量的冗余包进行解码,得到与所述数量的冗余包对应的冗余帧的特征信息。
可选地,在将被解码的冗余包的所述数量不为零的情况下,基于确定的解码方法对所述数量的冗余包进行解码,包括:使用相似性解码方法或者差分矢量量化解码方法对所述数量的冗余包中的至少部分冗余包进行解码,其中,所述相似性解码方法用于解码出指示与所述冗余包对应的相似音频帧的标志并且基于所述标志得到所述相似音频帧的特征信息,所述差分矢量量化解码方法用于解码出差分特征并且基于所述差分特征得到与所述冗余包对应的音频帧的特征信息,其中,所述差分特征为对应于所述冗余包的音频帧与所述当前音频帧之间的差分特征。
可选地,基于确定的解码方法对所述数量的冗余包进行解码,包括:对所述数量的冗余包进行分组处理;针对每组冗余包,执行以下操作:针对第一个冗余包,通过对所述第一个冗余包进行解码得到用于指示与所述第一个冗余包对应的相似音频帧的标志,并且基于所述标志得到所述相似音频帧的特征信息作为与所述第一个冗余包对应的音频帧的特征信息;针对第二个冗余包,通过对所述第二个冗余包进行解码得到和所述第二个冗余包对应的音频帧与所述当前音频帧之间的差分特征,并且基于所述差分特征得到与所述第二个冗余包对应的音频帧的特征信息;针对第三个冗余包,通过对所述第三个冗余包进行解码得到用于指示与所述第三个冗余包对应的相似音频帧的标志,并且基于所述标志得到所述相似音频帧的特征信息作为与所述第三个冗余包对应的音频帧的特征信息;针对第四个冗余包,使用多级矢量量化解码方法对所述第四个冗余包进行解码,得到与所述第四个冗余包对应的音频帧的特征信息。
可选地,所述方法还可包括:通过对所述当前音频包和所述数量的冗余包进行解码,得到与所述当前音频包对应的特征信息和与所述冗余包对应的特征信息;基于与所述冗余包对应的特征信息来恢复在当前音频帧之前丢失的音频帧的特征信息;在利用所述冗余包恢复所述丢失的音频帧的特征信息之后,检测是否还存在丢失的音频帧;如果检测到还存在丢失的音频帧,则使用基于神经网络的丢包隐藏模型来获得所述丢失的音频帧的特征信息。
可选地,使用基于神经网络的丢包隐藏模型来获得所述音频帧的特征信息,可包括:采用所述丢包隐藏模型,对所述音频帧之前的至少一个音频帧的特征信息和所述音频帧之后的至少一个音频帧的特征进行处理,得到所述音频帧的特征信息。
所述方法所述丢包隐藏模型可基于以下方式被训练得到:获取连续的音频帧的特征信息并且确定所述连续的音频帧中的目标音频帧;基于所述目标音频帧之前的第一数量的音频帧的特征信息和所述目标音频帧之后的第二数量的音频帧的特征信息,利用所述丢包隐藏模型来预测所述目标音频帧的特征信息,其中,所述第一数量和所述第二数量是大于或等于1的正整数;基于所述目标音频帧的预测的特征信息和所述目标音频帧的获取的特征信息来更新所述丢包隐藏模型的参数。
根据本公开实施例的第三方面,提供一种音频处理装置。所述装置可包括:网络状态监控模块,被配置为执行获取语音传输网络的当前网络状态信息;确定模块,被配置为执行基于所述当前网络状态信息确定在编码当前音频帧时将被编码的冗余帧的编码方法和数量;编码模块,被配置为执行使用多级矢量量化编码方法对所述当前音频帧进行编码,并且基于确定的编码方法对所述数量的冗余帧进行编码。
可选地,确定模块被配置为执行:当所述当前网络状态信息中的丢包率小于预设阈值时,将所述数量确定为零;当所述丢包率大于或等于所述预设阈值时,基于所述丢包率所在的预设范围确定所述数量,并且确定每个冗余帧的编码方法。
可选地,确定模块被配置为执行:当所述丢包率处于第一预设范围时,将所述数量确定为预设数量;当所述丢包率处于第二预设范围时,将所述数量确定为所述预设数量的2倍,其中,所述第二预设范围的最小值大于所述第一预设范围的最大值;当所述丢包率处于第三预设范围时,将所述数量确定为所述预设数量的N倍,其中,所述第三预设范围的最小值大于所述第二预设范围的最大值,其中,N为大于2的整数。
可选地,在将被编码的冗余帧的所述数量不为零的情况下,确定模块被配置为执行:将所述数量的冗余帧的编码方法确定为多级矢量量化编码方法。
可选地,在将被编码的冗余帧的所述数量不为零的情况下,确定模块被配置为执行:将所述数量的冗余帧中的至少部分冗余帧的编码方法确定为相似性编码方法或者差分矢量量化编码方法,其中,所述相似性编码方法用于确定与所述冗余帧相似的相似音频帧并且对指示所述相似音频帧的标志进行编码,所述差分矢量量化编码方法用于对所述冗余帧与所述当前音频帧之间的差分特征进行编码。
可选地,确定模块被配置为执行对所述数量的冗余帧进行分组处理;针对每组冗余帧,执行以下确定操作:针对第一个冗余帧,基于与所述第一个冗余帧相邻的音频帧确定与所述第一个冗余帧相似的相似音频帧,并且确定对用于指示所述相似音频帧的标志进行编码;针对第二个冗余帧,确定对所述第二个冗余帧与所述当前音频帧之间的差分特征进行编码;针对第三个冗余帧,基于与所述第三个冗余帧相邻的音频帧确定与所述第三个冗余帧相似的相似音频帧,并且确定对用于指示所述相似音频帧的标志进行编码;针对第四个冗余帧,确定使用多级矢量量化编码方法对所述第四个冗余帧进行编码。
可选地,确定模块被配置为执行:基于所述当前音频帧和所述第二个冗余帧来构造参考音频帧;计算所述第一个冗余帧分别与所述参考音频帧、所述当前音频帧和所述第二个冗余帧之间的特征相似度;基于所述特征相似度从所述参考音频帧、所述当前音频帧和所述第二个冗余帧中选择所述相似音频帧。
根据本公开实施例的第四方面,提供一种音频处理装置。所述装置可包括:网络状态监控模块,被配置为执行获取语音传输网络的当前网络状态信息;确定模块,被配置为执行基于所述当前网络状态信息确定在解码当前音频包时将被解码的冗余包的解码方法和数量;解码模块,被配置为执行使用多级矢量量化解码方法对所述当前音频包进行解码,并且基于确定的解码方法对所述数量的冗余包进行解码。
可选地,在将被解码的冗余包的所述数量不为零的情况下,解码模块被配置为执行:使用多级矢量量化解码方法对所述数量的冗余包进行解码,得到与所述数量的冗余包对应的冗余帧的特征信息。
可选地,在将被解码的冗余包的所述数量不为零的情况下,解码模块被配置为执行:使用相似性解码方法或者差分矢量量化解码方法对所述数量的冗余包中的至少部分冗余包进行解码,其中,所述相似性解码方法用于解码出指示与所述冗余包对应的相似音频帧的标志并且基于所述标志得到所述相似音频帧的特征信息,所述差分矢量量化解码方法用于解码出差分特征并且基于所述差分特征得到与所述冗余包对应的音频帧的特征信息,其中,所述差分特征为对应于所述冗余包的音频帧与所述当前音频帧之间的差分特征。
可选地,解码模块被配置为执行对所述数量的冗余包进行分组处理;针对每组冗余包,执行以下操作:针对第一个冗余包,通过对所述第一个冗余包进行解码得到用于指示与所述第一个冗余包对应的相似音频帧的标志,并且基于所述标志得到所述相似音频帧的特征信息作为与所述第一个冗余包对应的音频帧的特征信息;针对第二个冗余包,通过对所述第二个冗余包进行解码得到和所述第二个冗余包对应的音频帧与所述当前音频帧之间的差分特征,并且基于所述差分特征得到与所述第二个冗余包对应的音频帧的特征信息;针对第三个冗余包,通过对所述第三个冗余包进行解码得到用于指示与所述第三个冗余包对应的相似音频帧的标志,并且基于所述标志得到所述相似音频帧的特征信息作为与所述第三个冗余包对应的音频帧的特征信息;针对第四个冗余包,使用多级矢量量化解码方法对所述第四个冗余包进行解码,得到与所述第四个冗余包对应的音频帧的特征信息。
可选地,所述装置还可包括丢包隐藏模块,被配置为执行:基于与所述数量的冗余包对应的特征信息来恢复在当前音频帧之前丢失的音频帧的特征信息;在利用所述冗余包恢复所述丢失的音频帧的特征信息之后,检测是否还存在丢失的音频帧;如果检测到还存在丢失的音频帧,则使用基于神经网络的丢包隐藏模型来获得所述丢失的音频帧的特征信息。
可选地,丢包隐藏模块可被配置为执行:采用所述丢包隐藏模型,对所述音频帧之前的至少一个音频帧的特征信息和所述音频帧之后的至少一个音频帧的特征进行处理,得到所述音频帧的特征信息。
所述丢包隐藏模型基于以下方式被训练得到:获取连续的音频帧的特征信息并且确定所述连续的音频帧中的目标音频帧;基于所述目标音频帧之前的第一数量的音频帧的特征信息和所述目标音频帧之后的第二数量的音频帧的特征信息,利用所述丢包隐藏模型来预测所述目标音频帧的特征信息,其中,所述第一数量和所述第二数量是大于或等于1的正整数;基于所述目标音频帧的预测的特征信息和所述目标音频帧的获取的特征信息来更新所述丢包隐藏模型的参数。
根据本公开实施例的第五方面,提供一种电子设备,所述电子设备可包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如上所述的音频处理方法。
根据本公开实施例的第六方面,提供一种存储指令的计算机可读存储介质,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如上所述的音频处理方法。
根据本公开实施例的第七方面,提供一种计算机程序产品,所述计算机程序产品中的指令被电子装置中的至少一个处理器运行以执行如上所述的音频处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开考虑当前网络状态确定将被编解码的冗余帧的数量和相应方法,使用适合于当前网络状态的编解码方法来降低编解码冗余帧的码率,并且结合使用多级矢量量化编解码方法来降低编解码当前帧的码率,从而减少传输网络的带宽负担。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据本公开的实施例的实时通信的应用环境的示图;
图2是根据本公开的实施例的用于语音编码的音频处理方法的流程图;
图3是根据本公开的实施例的冗余帧的编码方法的示意图;
图4是根据本公开的实施例的用于语音解码的音频处理方法的流程图;
图5是根据本公开的实施例的丢包隐藏模型的示意图;
图6是根据本公开的实施例的用于音频处理的流程示意图;
图7是根据本公开的实施例的一种音频处理设备的结构示意图;
图8是根据本公开的实施例的用于语音编码的音频处理装置的框图;
图9是根据本公开的实施例的用于语音解码的音频处理装置的框图;
图10是根据本公开的实施例的电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
提供参照附图的以下描述以帮助对由权利要求及其等同物限定的本公开的实施例的全面理解。包括各种特定细节以帮助理解,但这些细节仅被视为是示例性的。因此,本领域的普通技术人员将认识到在不脱离本公开的范围和精神的情况下,可对描述于此的实施例进行各种改变和修改。此外,为了清楚和简洁,省略对公知的功能和结构的描述。
以下描述和权利要求中使用的术语和词语不限于书面含义,而仅由发明人用来实现本公开的清楚且一致的理解。因此,本领域的技术人员应清楚,本公开的各种实施例的以下描述仅被提供用于说明目的而不用于限制由权利要求及其等同物限定的本公开的目的。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
基于传统编解码方法的前向纠错(Forward Error Correction,FEC)方法可通过增加冗余包和丢包隐藏技术提升弱网环境下的音频传输质量。但是这种方法需要较高码率,例如要实现高音质音频传输一般需要依赖24kbps左右的音频码率,这样增加冗余包的代价较大,而且增加过多的冗余包也会增加对网络带宽要求,形成一定的负担。另一方面,这种传统方法的丢包隐藏一般难以在丢包率较高的情况下保证良好的音质,难以保证流畅的沟通体验。
本公开旨在提出一种基于深度学习编解码的语音传输弱网对抗方法,通过低码率冗余包策略和深度学习丢包隐藏方法来提升在弱网环境下的音频传输质量,保障良好的音频实时通讯体验。
在下文中,根据本公开的各种实施例,将参照附图对本公开的方法、装置进行详细描述。
图1是根据本公开的实施例的实时通信的应用环境的示图。
参照图1,该应用环境100包括终端110和终端120。
终端110和终端120可以是用户所在终端,例如,两个用户分别使用终端110和120进行实时通讯。终端110和终端120可以是智能手机、平板电脑、便携式计算机和台式计算机等中的至少一种。终端110可安装有目标应用,用于诸如用于语音通信的应用。虽然本实施例仅示出两个终端进行说明,但是本领域技术人员可知晓,终端的数量可以为两个或更多个。本公开实施例不对终端的数量和设备类型进行任何限定。
终端110和终端120可通过无线网络进行通信,使得终端110和终端120的用户可进行实时通讯。例如,网络可包含局域网(LAN)、广域网(WAN)、无线链路、内联网、互联网或其组合等。
终端110可对终端110的用户输入的语音进行编码,然后将编码后的语音数据发送给终端120,终端120可将接收到的编码数据进行解码,然后将解码数据还原为语音信号。此外,终端120可对终端120的用户输入的语音进行编码,然后将编码后的语音数据发送给终端110,终端110可将接收到的编码数据进行解码,然后将解码数据还原为语音信号。终端110和/或终端120可同时实现对语音的编码和解码。
根据本公开,当终端110作为编码端/发送端并且终端120作为解码端/接收端时,终端110可根据通信的网络状态确定用于将与当前帧一起编码的冗余帧的数量和对应的编码方法,然后将编码后的语音数据发送给终端120。终端120可根据网络状态确定用于将被解码的冗余包的数量和解码方法,然后使用对应的解码方法对当前语音包和冗余包进行解码,并且使用基于深度学习的丢包隐藏方法来进一步恢复丢失的帧特征,从提升在弱网环境下的音频传输质量,保证良好的音频实时通信。
本公开可根据网络状态选取合适的冗余包数量以及编码解方式,使得在弱网情况下,可保证良好的语音可懂度和较好的语音音质,提高用户体验。下面将参照图2至图5更加详细地描述在不同的网络状态下如何对语音进行编码和解码。
图2是根据本公开的实施例的用于语音编码的音频处理方法的流程图。图2的音频处理方法可在任何具有音频编码功能的电子设备中实现。电子设备可以是包括如下中的至少一个,例如,智能电话、平板个人计算机(PC)、移动电话、视频电话、电子书阅读器(e-bookreader)、桌上型PC、膝上型PC、上网本计算机、工作站、服务器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、运动图像专家组(MPEG-1或MPEG-2)音频层3(MP3)播放器、相机和可穿戴装置等。
参照图2,在步骤S101,获取语音传输网络的当前网络状态信息。例如,可实时地监测从发送端到接收端的传输网络的带宽、丢包率等信息。以对丢包率的检测为例,一般是以接收端统计的丢包序列来进行检测,每个发送的音频包有一个连续递增的序号,接收端可根据接收到音频包的序号来判断哪些音频包丢失,从而统计出丢包率,再反馈给发送端。上述示例仅是示例性的,本公开不限于此。
在步骤S102,基于当前网络状态信息确定在编码当前音频帧时将被编码的冗余帧的编码方法和数量。
作为示例,在当前网络状态信息中的丢包率小于预设阈值时,可认为当前不需要叠加发送冗余包,此时,将被编码的冗余帧的数量可被确定为零。当丢包率大于或等于预设阈值时,可认为当前网络不好,需要叠加发送冗余包来恢复由于弱网环境造成的丢包,此时可基于当前网络的丢包率所在的预设范围确定将被编码的冗余帧的数量,并且确定每个冗余帧的编码方法。这里,预设阈值可根据实际情况被不同地设置,例如,预设阈值可被设置为5%。
在当前网络的丢包率处于第一预设范围时,可将冗余帧的数量确定为预设数量。当丢包率处于第二预设范围时,可将冗余帧的数量确定为预设数量的2倍,其中,第二预设范围的最小值大于第一预设范围的最大值。当丢包率处于第三预设范围时,可将冗余帧的数量确定为预设数量的N倍,其中,第三预设范围的最小值大于第二预设范围的最大值,其中,N为大于2的整数。这里,预设数量和预设范围可根据实际情况被不同地设置,例如,预设数量可被设置为4或6。每个预设范围的端点可通过音频丢包等音质曲线确定,并且具体数值可根据编解码网格的特点进行调整。
例如,当网络状态较好,诸如丢包率低于5%时,无需叠加发送冗余帧信息,可仅发送编码后的当前音频包。当丢包率大于等于5%并且小于10%时,可叠加发送预设数量的冗余帧信息,诸如,叠加发送4个冗余帧信息。当丢包率大于等于10%并且小于20%时,可叠加发送预设数量的2倍的冗余帧信息,诸如叠加8个冗余帧信息,这样可保证在连续丢包达到诸如8个时,接收端仍能恢复出全部的语音特征数据。如果出现更高的丢包率,诸如大于等于20%,则可根据需要增加更多个冗余帧信息,诸如预设数量的三倍及以上的冗余包。可根据预设范围的大小,按照相应的倍数来增加冗余帧信息。例如,预设数量为4时,冗余帧的增加个数是4的倍数,即每4个冗余帧为一组。上述示例仅是示例性的,本公开不限于此。
根据本公开的实施例,可预先存储若干个编码方法,在确定需要叠加发送冗余包时,可向各个冗余帧分配编码方法以得到冗余包。可使用多级矢量量化编码方法对当前音频帧和确定的冗余帧进行编码。或者,可使用多级矢量量化编码方法对当前音频帧进行编码,并且使用相似性编码方法或者差分矢量量化编码方法对确定的冗余帧中的至少部分冗余帧进行编码。这里,相似性编码方法可用于确定与冗余帧相似的相似音频帧并且对指示相似音频帧的标志进行编码。差分矢量量化编码方法可用于对冗余帧与当前音频帧之间的差分特征进行编码。
在确定相似音频帧时,可基于与当前冗余帧的前一音频帧和后一音频帧来构造参考音频帧,并且计算当前冗余帧分别与参考音频帧、前一音频帧和后一音频帧之间的特征相似度,基于特征相似度从参考音频帧、前一音频帧和后一音频帧中选择相似音频帧。构造的参考帧的数量可以为一个、两个或更多个。
在确定需要与当前音频帧叠加发送冗余包的情况下,可针对每个冗余帧分配一个编码方法,使得在编码冗余帧时使用对应的编码方法执行编码操作。
可对将被编码的冗余帧进行分组处理,然后按照每组冗余帧进行编码操作。例如,可以以每4个冗余帧为一组,然后对每4个冗余帧执行编码操作。
例如,在将被编码的冗余帧的数量为4M的情况下,针对4M个冗余帧中的每4个冗余帧,可针对第一个冗余帧分配相似性编码方法,即基于与第一个冗余帧相邻的音频帧确定与第一个冗余帧相似的相似音频帧,并且对用于指示该相似音频帧的标志进行编码。可针对第二个冗余帧分配差分矢量量化编码方法,即对第二个冗余帧与当前音频帧之间的差分特征进行编码。可针对第三个冗余帧分配相似性编码方法,即基于与第三个冗余帧相邻的音频帧确定与第三个冗余帧相似的相似音频帧,并且对用于指示该相似音频帧的标志进行编码。可针对第四个冗余帧分配多级矢量量化编码方法,即使用多级矢量量化编码方法对所述第四个冗余帧进行编码。
作为另一示例,对于每5个冗余帧为一组情况,第1冗余帧可使用相似性编码方法进行编码,第2冗余帧可使用相似性编码方法进行编码,第3冗余帧可使用差分矢量量化编码方法进行编码,第4冗余帧可使用相似性编码方法进行编码,第5冗余帧可使用相似性编码方法进行编码。
然而,上述每个冗余帧的编码方法仅是示例性的,本公开不限于此。可对将被编码的每个冗余帧分配相似性编码方法、差分矢量量化编码方法、多级矢量量化编码方法中的任意一种方法。
本公开提出的低码率冗余包策略,通过使用自研的相似性编码方法和差分矢量量化编码方法来降低需要增加的冗余包的码率,从而减少由于增加冗余包给网络带宽带来的负担。
在步骤S103,使用多级矢量量化编码方法对当前音频帧进行编码,并且基于确定的编码方法对确定的冗余帧进行编码。
可对输入的语音信号进行分帧操作,针对每一音频帧,对音频帧进行特征提取,并且可使用多级矢量量化编码方法对提取的音频特征进行编码。多级矢量量化编码方法可指将多个矢量量化编码级联对信号进行编码,矢量量化编码之后的信号与真实信号存在残差,多个矢量量化编码级联之后,每一级矢量量化编码可以对前面若干级矢量量化编码之后的信号与真实信号之间的残差进行编码,从而降低编码后的信号与真实信号之间的残差。
以10ms每帧的分帧方法为例,每帧信号使用60比特进行编码,可以将音频码率压缩为6kbps,该码率相对传统方法是非常低的,诸如OPUS高音质编码需要24kbps。
当确定在当前时刻需要叠加发送冗余包时,可使用在步骤S102中针对每个冗余帧分配的编码方法对冗余帧进行编码。以将叠加发送8个冗余包为例来详细描述每个冗余帧的编码方法。
图3示出了根据本公开的实施例的冗余帧的编码方法的示意图。假设基于当前丢包率确定在当前时刻发送当前音频包时需要叠加发送8个冗余包。假设当前帧是第n帧,当前帧的前一帧是第n-1帧(即1号冗余帧),第n-1帧的前一帧是第n-2帧(即2号冗余帧),以此类推,第n-7帧的前一帧是第n-8帧(即8号冗余帧)。
参照图3,对于当前第n帧的音频特征feature(n),可使用多级矢量量化(VectorQuantization,VQ)编码方法进行压缩,需要60bit数据来编码当前音频帧的音频特征。如果当前音频帧是输入语音信号的首帧,则冗余帧可被设置为空帧。
对于与当前第n音频帧相邻的第n-1帧的音频特征feature(n-1),即第n音频帧的前一帧,可使用与之相邻两帧的相似性来进行编码。例如,可参考该帧音频特征feature(n-1)与feature(n)、feature(n-2)、0.25×feature(n)+0.75×feature(n-2)和0.75×feature(n)+0.25×feature(n-2)四个音频特征向量的相似度,该相似度可以通过特征向量之间的欧式距离来衡量,选择与feature(n-1)最相似的一个特征向量来表示第n-1帧的音频特征feature(n-1)。由于相邻帧的特征向量都已知,因此仅需要2bit数据来标注feature(n-1)是与以上4个特征向量中的哪一个最相似即可。这里,feature(n-2)是指第n-1帧的前一帧的音频特征。
对于第n-2帧的音频特征feature(n-2),可使用其与feature(n)特征向量之间的差值的特征向量进行编码,即使用差分VQ编码方法对(feature(n)-feature(n-2))特征向量进行编码。由于feature(n)已知,所以可仅使用10bit数据对该feature(n-2)向量进行编码,即可得到较高的恢复精度。
对于3号、5号、7号冗余帧,可使用与1号冗余帧相同的编码方法,即均使用相邻帧的相似性编码方法。
对于4号、8号冗余帧,可使用与当前音频帧相同的编码方法,即均使用多级VQ编码方法。
对于6号冗余帧,可使用与2号冗余帧相同的编码方法,即均使用差分矢量量化编码方法。
使用以上的低码率冗余包策略后,即使叠加8个冗余包,也仅会对当前时刻发送的完整包增加148bit数据,增加的码率仅为14.8kbps。而如果使用传统方法的24kbps码率,叠加8个冗余包后会增加192kbps码率,即使使用低音质的6kbps码率,叠加冗余包后也会增加48kbps,可见本公开的低码率冗余包方案极大地缓解了叠加冗余包对于网络带宽的负担。
根据本公开的另一实施例,可对当前音频帧和冗余帧都采用多级VQ编码方法进行编码。由于多级VQ编码方法是基于深度学习的编码方法,这种方法本身码率较低,因此即使以上冗余帧都采用与当前帧相同的编码方法(即60bit的多级VQ编码)也不会对带宽造成显著增加。
本公开通过使用低码率冗余包策略,提升在弱网环境下的音频传输质量,保障良好的音频实时通讯体验。
图4是根据本公开的实施例的用于语音解码的音频处理方法的流程图。图4的音频处理方法可在任何具有音频解码功能的电子设备中实现。电子设备可以是包括如下中的至少一个,例如,智能电话、平板个人计算机(PC)、移动电话、视频电话、电子书阅读器(e-bookreader)、桌上型PC、膝上型PC、上网本计算机、工作站、服务器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、运动图像专家组(MPEG-1或MPEG-2)音频层3(MP3)播放器、相机和可穿戴装置等。
参照图4,在步骤S201,获取语音传输网络的当前网络状态信息。例如,可实时地监测从发送端到接收端的传输网络的带宽、丢包率等信息。以对丢包率的检测为例,一般是以接收端统计的丢包序列来进行检测,每个发送的音频包有一个连续递增的序号,接收端可根据接收到音频包的序号来判断哪些音频包丢失,从而统计出丢包率,再反馈给发送端。上述示例仅是示例性的,本公开不限于此。
在步骤S202,基于当前网络状态信息确定在解码当前音频包时将被解码的冗余包的解码方法和数量。由于在编码端已经基于当前网络状态对当前音频帧和确定数量的冗余帧进行了编码,因此在解码端接收到当前音频包和冗余包,可使用与编码方法对应的解码方法执行解码操作。
作为示例,在将被解码的冗余包的数量不为零并且在编码端使用多级矢量量化编码方法对当前音频帧和冗余帧进行编码的情况下,可使用与多级矢量量化编码方法的逆过程(即多级矢量量化解码方法)对这些冗余包进行解码,得到与冗余包对应的冗余帧的特征信息。多级矢量量化解码方法可指将多个矢量量化解码级联对信号进行解码,矢量量化解码之后的信号与真实信号存在残差,多个矢量量化解码级联之后,每一级矢量量化解码可以对前面若干级矢量量化解码之后的信号与真实信号之间的残差进行解码,从而降低解码后的信号与真实信号之间的残差。
在将被解码的冗余包的数量不为零并且使用相似性编码方法或者差分矢量量化编码方法对冗余包中的至少部分冗余包进行编码的情况下,可使用相似性解码方法或者差分矢量量化解码方法对冗余包中的至少部分冗余包进行解码。例如,当在编码侧对第n-1冗余帧使用相似性编码方法的情况下,在解码侧可使用相似性解码方法对第n-1冗余包进行解码。
相似性解码方法可用于解码出指示与冗余包对应的相似音频帧的标志并且基于标志得到相似音频帧的特征信息。
差分矢量量化解码方法可用于解码出和冗余包对应的音频帧与当前音频帧之间的差分特征并且基于差分特征得到与冗余包对应的音频帧的特征信息。由于当前音频帧的特征已知,因此可基于差分特征与当前音频帧的特征得到对应冗余包的音频帧。
根据本公开的实施例,可对将被解码的冗余包进行分组处理,然后按照每组冗余包进行解码操作。例如,可以以每4个冗余包为一组,然后对每4个冗余包执行解码操作。
作为一个示例,在确定冗余包的数量为4M时,针对4M个冗余包中的每4个冗余包,可执行用于确定哪个冗余包执行哪种解码方法的以下操作。针对第一个冗余包,可通过对第一个冗余包进行解码得到用于指示与第一个冗余包对应的相似音频帧的标志,并且基于标志得到相似音频帧的特征信息作为与第一个冗余包对应的音频帧的特征信息;针对第二个冗余包,可通过对第二个冗余包进行解码得到和第二个冗余包对应的音频帧与当前音频帧之间的差分特征,并且基于差分特征得到与第二个冗余包对应的音频帧的特征信息;针对第三个冗余包,可通过对第三个冗余包进行解码得到用于指示与第三个冗余包对应的相似音频帧的标志,并且基于标志得到相似音频帧的特征信息作为与第三个冗余包对应的音频帧的特征信息;针对第四个冗余包,可使用多级矢量量化解码方法对第四个冗余包进行解码,得到与第四个冗余包对应的音频帧的特征信息。
在步骤S203,使用多级矢量量化解码方法对当前音频包进行解码,并且基于确定的解码方法对确定的冗余包进行解码。解码操作的过程是与前面描述的编码操作的逆过程。
此外,在通过对当前音频包和确定的冗余包进行解码并且得到与当前音频包对应的特征信息和与冗余包对应的特征信息后,可基于与冗余包对应的特征信息来恢复在当前音频帧之前丢失的音频帧的特征信息。
语音特征在经过以上解码并恢复丢包的处理之后,仍然可能存在丢失的语音包,因此需要通过丢包隐藏功能进一步恢复,此时可使用基于神经网络的丢失特征特征预测方法来进行处理。例如,在利用冗余包恢复丢失的音频帧的特征信息之后,可进一步检测是否还存在丢失的音频帧。如果检测到还存在丢失的音频帧,则可使用基于神经网络的丢包隐藏模型来获得该音频帧的特征信息。丢包隐藏模型可以是任意深度神经网络结构,并且可基于以下方式被训练得到:获取连续的音频帧的特征信息并且确定连续的音频帧中的目标音频帧,基于目标音频帧之前的第一数量(诸如X个)的音频帧的特征信息和这个目标音频帧之后的第二数量(诸如Y个)的音频帧的特征信息,利用丢包隐藏模型来预测这个音频帧的特征信息,其中,X和Y是大于或等于1的正整数。基于这个音频帧的预测的特征信息和获取的真实特征信息来更新丢包隐藏模型的参数。
例如,在模型的训练阶段,丢失的数据为模拟丢失,在得到预测输出之后与真实的特征(即模拟丢失的帧特征)进行对比来评价相似度进而通过反向传播来迭代网络,其中损失函数为评价预测特征和真实特征的指标,可选择均方误差MSE作为损失函数,也可选择其他合理的损失函数。下面将参照图5详细描述丢包隐藏模型。
图5是根据本公开的实施例的丢包隐藏模型的示意图。
参照图5,丢包隐藏模型可由两个卷积神经网络(即CNN)和两个门控循环单元(即GRU)构成。然而,图5示出的模型仅是示例性的,丢包隐藏模型还可包括全连接网络、长短期记忆网络等多种结构。
假设在使用冗余包恢复丢帧特征后确定出仍然不存在帧n的特征,可将帧n之前的m帧特征以及帧n之后的l特征输入至丢包隐藏模型。这里,帧n之前的m帧特征被表示为HistoryFeat(n)={feature(n-1),feature(n-2,……,featuren-m,帧n之后的l特征被表示为FutureFeat(n)={feature(n+1),……,feature(n+l)}。其中,先前帧数量m一般被设置为10-20,而为了保证处理过程较高的实时性,后续帧数量l一般被设置为1或2,网络的输出则为预测得到的实际已经丢失的一帧数据的特征。先前帧和后续帧在经过丢包隐藏模型后,可输出帧n的预测特征f’(n)。
本公开使用深度学习丢包隐藏方法提升在弱网环境下的音频传输质量,保障良好的音频实时通讯体验。
在经过丢包隐藏处理后,可得到连续的特征信息,然后使用连续的特征信息重建出高音质的语音信号。
本公开提出的基于深度学习的丢包隐藏方法,结合深度学习编解码,通过神经网络预测丢包语音特征的方法预测重建语音信号需要的特征,实现高音质丢包隐藏,从而提升用户在弱网状态下的音频实时通讯体验。
图6是根据本公开的实施例的用于音频处理的流程示意图。
参照图6,特征提取模块可提取从发送端输入的语音的特征信息。特征编码模块可对特征信息进行编码,以降低其码率。网络状态检测模块可检测传输网络的当前网络状态信息。低码率冗余包模块可在弱网状态下增加冗余包,同时保证冗余包的增加不会显著增加网络负担。网络传输模块可将编码后的语音数据包从发送端传送至接收端。特征解码和恢复模块可将编码后的特征信息进行解码,同时在弱网状态下,通过冗余包恢复出未能通过网络传送到接收端的语音特征信息。丢包隐藏模块可在丢包严重的情况下,进一步恢复丢失的语音特征信息,即隐藏丢包带来的空语音帧。语音解码模块可解码语音特征信息,重建语音信号,得到最终接收端输出的语音。下面参照图6详细描述本公开的音频处理过程。
可对输入的语音信号进行分帧操作。例如,每帧的语音信号长度可被设置为10ms至40ms。分帧后的第n帧语音信号可被表示为x(n)。
通过特征提取模块对x(n)进行特征提取,可得到抽象的语音特征。可使用各种特征提取方法对时刻n的语音信号进行特征提取。这里,语音特征可使用多种形式,例如,语音特征可以是梅尔频率倒谱系数。语音特征提取过程可被表示为:
feature(n)=FEAT[x(n)]
其中,feature(n)表示时刻n的语音信号的语音特征,FEAT[*]表示特征提取处理操作。
将feature(n)输入到特征编码模块,可使用多级矢量量化(VectorQuantization,VQ)编码方法对feature(n)进行码率压缩。针对每个时刻的语音帧,可使用多级VQ编码方法对语音帧的语音特征进行码率压缩。
以10ms每帧的分帧方法为例,每帧语音信号使用60bit进行编码,可将音频码率压缩为6kbps,该码率相对于传统压缩方法是非常低的,诸如OPUS高音质语音编码需要24kbps。多级矢量量化编码过程可被表示为:
multiVQfeature(n)=multiVQ[feature(n)]
其中,multiVQfeature(n)表示VQ编码后的梅尔频率倒谱系数特征,multiVQ[*]表示多级VQ编码操作。
可从网络状态检测模块获取当前发送端到接收端的语音传输网络的网络状态信息,例如,通过对语音传输网络的实时监测来确定语音传输网络的当前带宽、丢包率等信息。以对丢包率的检测为例,一般以接收端统计的丢包序列来进行检测,每个发送的音频包有一个连续递增的序号,接收端可根据接收到音频包的序号来判断哪些音频包丢失了,从而统计出丢包率,再反馈给发送端。
低码率冗余包模块可根据当前网络状态信息判断在发送当前音频包时是否需要叠加冗余包以及冗余包叠加的个数。可通过对检测到的当前丢包率与预设阈值进行比较来确定是否需要叠加冗余包以及冗余包的数量。关于丢包率的预设阈值可通过音频丢包等音质曲线确定,并且可根据编解码网络的特点进行调整。
作为示例,当网络状态较好,诸如丢包率低于5%时,无需叠加冗余包,直接发送编码后的当前音频包。当丢包率大于等于5%并且小于10%时,可叠加预设数量的冗余包,诸如,叠加4个冗余包。当丢包率大于等于10%并且小于20%时,可叠加预设数量的2倍的冗余包,诸如叠加8个冗余包,这样可保证在连续丢包达到8个时,接收端仍能恢复出全部的语音特征数据。如果出现更高的丢包率,诸如大于等于20%,则可根据需要增加更多个冗余包,诸如预设数量的三倍及以上的冗余包,诸如12个冗余包。
可根据预设范围的大小,按照相应的倍数来增加冗余包。例如,预设数量为6时,冗余包的增加个数是6的倍数,即每6个冗余包为一组,在当前时刻发送当前帧的音频包以及相应数量的冗余包。上述示例仅是示例性的,本公开不限于此。
为了实现在弱网环境下在不显著增加网络负担的同时进行前向纠错,可使用低码率音频压缩方法对叠加的冗余包进行编码。以叠加8个冗余包为例,表示在当前时刻需要除了发送当前音频包之外,还需要发送当前音频帧之前的8个音频帧的冗余包。假设当前帧是第n帧,当前帧的前一帧是第n-1帧(即1号冗余帧),第n-1帧的前一帧是第n-2帧(即2号冗余帧),以此类推,第n-7帧的前一帧是第n-8帧(即8号冗余帧)。
对于当前时刻的第n帧的音频特征feature(n),可使用多级VQ编码方法进行压缩,需要60bit数据来编码当前音频帧的音频特征。
对于与当前第n帧相邻的第n-1帧(即1号冗余帧)的音频特征feature(n-1),可使用与之相邻两帧的相似性来进行编码。例如,可参考帧音频特征feature(n-1)与feature(n)、feature(n-2)、0.25×feature(n)+0.75×feature(n-2)和0.75×feature(n)+0.25×feature(n-2)四个音频特征向量的相似度,该相似度可以通过特征向量之间的欧式距离来衡量,选择与feature(n-1)最相似的一个特征向量来表示第n-1帧的音频特征feature(n-1)。由于相邻帧的特征向量都已知,因此仅需要2bit数据来标注feature(n-1)是与以上4个特征向量中的哪一个最相似即可。这里,feature(n-2)是指第n-1音频帧的前一帧的特征向量。
对于第n-2帧(即2号冗余帧)的音频特征feature(n-2),可使用其与特征向量feature(n)之间的差值的特征向量进行编码,即使用差分VQ编码方法对(feature(n)-feature(n-2))的特征向量进行编码。由于feature(n)已知,所以可仅使用10bit数据对feature(n-2)特征向量进行编码,即可得到较高的恢复精度。
对于3号、5号、7号冗余帧,可使用与1号冗余帧相同的编码方法,即均使用相邻帧的相似性编码方法。
对于4号、8号冗余帧,可使用与当前音频帧相同的编码方法,即均使用多级VQ编码方法。
对于6号冗余帧,可使用与2号冗余帧相同的编码方法,即均使用差分矢量量化编码方法。
使用以上的低码率冗余包策略后,即使叠加8个冗余包,也仅会对当前时刻发送的完整包增加148bit数据,增加的码率仅为14.8kbps。而如果使用传统方法的24kbps码率,叠加8个冗余包后会增加192kbps码率,即使使用低音质的6kbps码率,叠加冗余包后也会增加48kbps,可见本公开的低码率冗余包方案极大地缓解了叠加冗余包对于网络带宽的负担。
又例如,由于基于深度学习的编解码本身码率较低,因此如果以上冗余帧都采用与当前帧相同的编码方法(即60bit的多级VQ编码方法)也不会对带宽造成显著增加。
通过网络传输模块,可将以上编码的数据从发送端传送到接收端。
特征解码和恢复模块可将接收到的数据包进行解码操作,同时根据网络状态信息(诸如丢包率)和冗余包来恢复已经丢包的数据。解码冗余包和恢复丢失包的过程是编码冗余帧和增加冗余包处理的逆过程。
语音特征在经过以上解码和恢复丢包的处理之后仍然可能存在丢失的语音包,因此需要通过丢包隐藏模块进一步恢复。丢包隐藏模块可使用基于神经网络的丢包隐藏模型进行处理。例如,丢包隐藏模型的网络结构可以为CNN和GRU网络的组合,也可以涉及全连接网络、长短期记忆网络等多种结构。假设确定出在通过冗余包恢复丢包之后仍然缺失第n帧的音频特征,可将第n帧之前的m帧特征HistoryFeat(n)={feature(n-1),feature(n-2,……,featuren-m以及第n帧之后的l帧特征FutureFeat(n)={feature(n+1),……,feature(n+l)}输入至丢包隐藏模型,通过模型预测来获得第n帧的音频特征。
这里,先前帧数量m可选择为10-20,而为了保证处理过程较高的实时性,后续帧数量l一般选择1或2。训练阶段丢失的数据为模拟丢失,在得到预测输出之后与真实的特征进行对比来评价相似度进而通过反向传播来迭代网络,其中损失函数为评价预测特征和真实特征的指标,可选择MSE作为损失函数,也可选择其他合理的损失函数。
可将丢包隐藏模块输出的连续的特征信息依次送入语音解码模块,以重建高音质语音信号。语音解码模块可使用声码器方案,诸如LPCNet、WaveNet、MelGAN、WaveRNN等结构或相关的改进结构。
根据本公开的实施例,在弱网情况下,可以通过低码率冗余包方法在不显著增加网络负担的情况下进行带外前向纠错FEC,保证连续丢包情况下有较好的恢复能力。此外,在通过增加冗余包恢复了丢包特征之后,如果仍存在丢失包,可通过基于深度学习的丢包隐藏模块进一步恢复丢失特征,最终通过深度学习解码得到弱网状态下的高音质语音信号,从而提升用户在弱网状态下的音频实时通讯体验。
图7是本公开实施例的硬件运行环境的音频处理设备的结构示意图。这里,音频处理设备500可实现上述编码功能和/或解码功能。
如图7所示,音频处理设备500可包括:处理组件501、通信总线502、网络接口503、输入输出接口504、存储器505以及电源组件506。其中,通信总线502用于实现这些组件之间的连接通信号。输入输出接口504可以包括视频显示器(诸如,液晶显示器)、麦克风和扬声器以及用户交互接口(诸如,键盘、鼠标、触摸输入装置等),可选地,输入输出接口504还可包括标准的有线接口、无线接口。网络接口503可选的可包括标准的有线接口、无线接口(如无线保真接口)。存储器505可以是高速的随机存取存储器,也可以是稳定的非易失性存储器。存储器505可选的还可以是独立于前述处理组件501的存储装置。
本领域技术人员可以理解,图7中示出的结构并不构成对音频处理设备500的限定,可包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图7所示,作为一种存储介质的存储器505中可包括操作系统(诸如MAC操作系统)、数据存储模块、网络通信模块、用户接口模块、音频处理程序以及数据库。
在图7所示的音频处理设备500中,网络接口503主要用于与外部设备/终端进行数据通信;输入输出接口504主要用于与用户进行数据交互;音频处理设备500中的处理组件501、存储器505可被设置在音频处理设备500中,音频处理设备500通过处理组件501调用存储器505中存储的音频处理程序以及由操作系统提供的各种API,执行本公开实施例提供的音频处理方法,诸如语音编码方法和语音解码方法。
处理组件501可以包括至少一个处理器,存储器505中存储有计算机可以执行指令集合,当计算机可以执行指令集合被至少一个处理器执行时,执行根据本公开实施例的音频处理方法。此外,处理组件501可执行如上所述的编码操作和解码操作等。然而,上述示例仅是示例性的,本公开不限于此。
作为示例,音频处理设备500可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,音频处理设备500并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。音频处理设备500还可以是集成控制系统或系统管理器的一部分,或者可以被配置为执行与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
在音频处理设备500中,处理组件501可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理组件501还可以包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理组件501可运行存储在存储器中的指令或代码,其中,存储器505还可以存储数据。指令和数据还可以经由网络接口503而通过网络被发送和接收,其中,网络接口503可以采用任何已知的传输协议。
存储器505可以与处理器集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器505可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可以使用的其他存储装置。存储器和处理器可以在操作上进行耦合,或者可以例如通过I/O端口、网络连接等互相通信,使得处理器能够读取存储在存储器中的文件。
图8是根据本公开的实施例的用于语音编码的音频处理装置的框图。
参照图8,音频处理装置600可包括网络状态监控模块601、确定模块602和编码模块603。音频处理装置600中的每个模块可由一个或多个模块来实现,并且对应模块的名称可根据模块的类型而变化。在各种实施例中,可省略音频处理装置600中的一些模块,或者还可包括另外的模块。此外,根据本公开的各种实施例的模块/元件可被组合以形成单个实体,并且因此可等效地执行相应模块/元件在组合之前的功能。
网络状态监控模块601可获取语音传输网络的当前网络状态信息。
确定模块602可基于当前网络状态信息确定在编码当前音频帧时将被编码的冗余帧的编码方法和数量。
编码模块603可使用多级矢量量化编码方法对当前音频帧进行编码,并且基于确定的编码方法对确定数量的冗余帧进行编码。
作为一种示例,在当前网络状态信息中的丢包率小于预设阈值时,确定模块602可将冗余帧数量确定为零。当当前丢包率大于或等于预设阈值时,确定模块602可基于丢包率所在的预设范围确定冗余帧数量,并且确定每个冗余帧的编码方法。这里,可预先设计针对冗余帧的若干种编码方法,确定模块602可为每个冗余帧分配一种编码方法。
作为一种示例,当丢包率处于第一预设范围时,确定模块602可将冗余帧(将被叠加发送的冗余帧)数量确定为预设数量。当丢包率处于第二预设范围时,确定模块602可将冗余帧数量确定为预设数量的2倍,其中,第二预设范围的最小值大于第一预设范围的最大值。当丢包率处于第三预设范围时,确定模块602可将冗余帧数量确定为预设数量的N倍,其中,第三预设范围的最小值大于第二预设范围的最大值,其中,N为大于2的整数。
作为一种示例,在将被编码的冗余帧的数量不为零的情况下,确定模块602可将全部冗余帧的编码方法都确定为多级矢量量化编码方法。即,确定使用多级VQ编码方法对每个冗余帧执行编码操作。
作为一种示例,在将被编码的冗余帧的数量不为零的情况下,确定模块602可将至少一部分冗余帧的编码方法确定为相似性编码方法或者差分矢量量化编码方法,其中,相似性编码方法可用于确定与冗余帧相似的相似音频帧并且对指示相似音频帧的标志进行编码。差分矢量量化编码方法可用于对冗余帧与当前音频帧之间的差分特征进行编码。
确定模块602可对将被编码的冗余帧进行分组处理,然后按照每组冗余帧进行编码操作。例如,可以以每4个冗余帧为一组,然后对每4个冗余帧执行编码操作。
作为一种示例,在冗余帧的数量为4M的情况下,M为大于等于1的正整数,针对4M个冗余帧中的每4个冗余帧,确定模块602可执行以下确定操作:针对第一个冗余帧,基于与第一个冗余帧相邻的音频帧确定与第一个冗余帧相似的相似音频帧,并且确定对用于指示该相似音频帧的标志进行编码;针对第二个冗余帧,确定对第二个冗余帧与当前音频帧之间的差分特征进行编码;针对第三个冗余帧,基于与第三个冗余帧相邻的音频帧确定与第三个冗余帧相似的相似音频帧,并且确定对用于指示该相似音频帧的标志进行编码;针对第四个冗余帧,确定使用多级矢量量化编码方法对第四个冗余帧进行编码。
作为一种示例,在确定针对第一个冗余帧的相似音频帧时,确定模块602可基于当前音频帧和第二个冗余帧来构造参考音频帧,计算第一个冗余帧分别与参考音频帧、当前音频帧和第二个冗余帧之间的特征相似度,基于特征相似度从参考音频帧、当前音频帧和第二个冗余帧中选择所述相似音频帧。构造的参考帧的数量可根据实际情况被不同的设置。
上面已经参照图2和图3详细描述了对冗余帧的编码方式,这里不在详细赘述。
图9是根据本公开的实施例的接收端的音频处理装置的框图。
参照图9,音频处理装置700可包括网络状态监控模块701、确定模块702、解码模块703和丢包隐藏模块704。音频处理装置700中的每个模块可由一个或多个模块来实现,并且对应模块的名称可根据模块的类型而变化。在各种实施例中,可省略音频处理装置700中的一些模块,或者还可包括另外的模块。此外,根据本公开的各种实施例的模块/元件可被组合以形成单个实体,并且因此可等效地执行相应模块/元件在组合之前的功能。
网络状态监控模块701可获取语音传输网络的当前网络状态信息。
确定模块702可基于当前网络状态信息确定在解码当前音频包时将被解码的冗余包的解码方法和数量。
解码模块703可使用多级矢量量化解码方法对当前音频包进行解码,并且基于确定的解码方法对确定数量的冗余包进行解码。
作为一种示例,在将被解码的冗余包的数量不为零的情况下,解码模块703可使用多级矢量量化解码方法对全部冗余包进行解码,得到与全部冗余包对应的冗余帧的特征信息。
作为一种示例,在将被解码的冗余包的数量不为零的情况下,解码模块703可使用相似性解码方法或者差分矢量量化解码方法对确定数量的冗余包中的至少部分冗余包进行解码。其中,相似性解码方法可用于解码出指示与冗余包对应的相似音频帧的标志并且基于标志得到相似音频帧的特征信息。差分矢量量化解码方法可用于解码出和冗余包对应的音频帧与当前音频帧之间的差分特征并且基于差分特征得到与冗余包对应的音频帧的特征信息。
解码模块703可对将被解码的冗余包进行分组处理,然后按照每组冗余包进行解码操作。例如,可以以每4个冗余包为一组,然后对每4个冗余包执行解码操作。
作为一种示例,在冗余包的数量为4M的情况下,M为大于等于1的正整数,针对4M个冗余包中的每4个冗余包,解码模块703可执行以下操作:针对第一个冗余包,通过对第一个冗余包进行解码得到用于指示与第一个冗余包对应的相似音频帧的标志,并且基于标志得到相似音频帧的特征信息作为与第一个冗余包对应的音频帧的特征信息;针对第二个冗余包,通过对第二个冗余包进行解码得到和第二个冗余包对应的音频帧与当前音频帧之间的差分特征,并且基于差分特征得到与第二个冗余包对应的音频帧的特征信息;针对第三个冗余包,通过对第三个冗余包进行解码得到用于指示与第三个冗余包对应的相似音频帧的标志,并且基于标志得到相似音频帧的特征信息作为与第三个冗余包对应的音频帧的特征信息;针对第四个冗余包,使用多级矢量量化解码方法对第四个冗余包进行解码,得到与第四个冗余包对应的音频帧的特征信息。
这里,在编码侧使用哪种编码方法对冗余帧进行编码,在解码侧将使用与之对应的解码方法对该冗余帧进行解码。也就是说,在解码侧对音频包进行解码的过程是在编码侧对音频帧进行编码的逆过程。
丢包隐藏模块704可基于与确定数量的冗余包对应的特征信息来恢复在当前音频帧之前丢失的音频帧的特征信息,在利用冗余包恢复丢失的音频帧的特征信息之后,检测是否还存在丢失的音频帧。如果检测到还存在丢失的音频帧,则丢包隐藏模块704可使用基于神经网络的丢包隐藏模型来获得该音频帧的特征信息。
例如,如果检测到还存在丢失的音频帧,丢包隐藏模块704可采用丢包隐藏模型,对该音频帧之前的至少一个音频帧的特征信息和该音频帧之后的至少一个音频帧的特征进行处理,得到该音频帧的特征信息。
作为示例,丢包隐藏模型可基于以下方式被训练得到:获取连续的音频帧的特征信息;基于连续的音频帧中的一个音频帧之前的X个音频帧的特征信息和该一个音频帧之后的Y个音频帧的特征信息,利用丢包隐藏模型来预测该一个音频帧的特征信息,其中,X和Y是大于或等于1的正整数;基于该一个音频帧的预测的特征信息和获取的特征信息来更新丢包隐藏模型的参数。这里,丢包隐藏模型可使用任何神经网络训练得到。
上面已经参照图4和图5详细描述了对冗余帧的解码方式,这里不在详细赘述。
根据本公开的另一实施例,提供一种音频处理装置,可包括前面描述的网络状态监控模块701、确定模块602、确定模块702、编码模块603、解码模块703和丢包隐藏模块704,此外,还可包括接收模块(未示出)和发送模块(未示出),发送模块可将编码好的语音包发送给其他设备,接收模块可从其他设备接收语音包,实现对输入语音的编码操作和对接收语音的解码操作,从而实现语音通信。
根据本公开的实施例,可提供一种电子设备。图10是根据本公开实施例的电子设备的框图,该电子设备1000可包括至少一个存储器1002和至少一个处理器1001,所述至少一个存储器1002存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器1001执行时,执行根据本公开实施例的音频处理方法(即语音编码方法和/或语音解码方法)。
处理器1001可包括中央处理器(CPU)、音频处理器、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器1001还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
作为一种存储介质的存储器1002可包括操作系统(例如MAC操作系统)、数据存储模块、网络通信模块、用户接口模块、音频处理程序、音频编解码程序以及数据库。
存储器1002可与处理器1001集成为一体,例如,可将RAM或闪存布置在集成电路微处理器等之内。此外,存储器1002可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器1002和处理器1001可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器1001能够读取存储在存储器1002中的文件。
此外,电子设备1000还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备1000的所有组件可经由总线和/或网络而彼此连接。
作为示例,电子设备1000可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备1000并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备1000还可以是集成控制系统或系统管理器的一部分,或者可被配置为执行与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
本领域技术人员可理解,图10中示出的结构并不构成对的限定,可包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
根据本公开的实施例,还可提供一种存储指令的计算机可读存储介质,其中,当指令被至少一个处理器运行时,促使至少一个处理器执行根据本公开的音频处理方法(语音编码方法和/或语音解码方法)。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为执行以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
根据本公开的实施例中,还可提供一种计算机程序产品,该计算机程序产品中的指令可由计算机设备的处理器执行以完成上述音频处理方法(语音编码方法和/或语音解码方法)。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种音频处理方法,其特征在于,所述方法包括:
获取语音传输网络的当前网络状态信息;
基于所述当前网络状态信息确定在编码当前音频帧时将被编码的冗余帧的编码方法和数量;
使用多级矢量量化编码方法对所述当前音频帧进行编码,并且基于确定的编码方法对所述数量的冗余帧进行编码。
2.根据权利要求1所述的方法,其特征在于,基于所述当前网络状态信息确定在编码当前音频帧时将被编码的冗余帧的编码方法和数量,包括:
当所述当前网络状态信息中的丢包率小于预设阈值时,将所述数量确定为零;
当所述丢包率大于或等于所述预设阈值时,基于所述丢包率所在的预设范围确定所述数量,并且确定每个冗余帧的编码方法。
3.根据权利要求2所述的方法,其特征在于,基于所述丢包率所在的预设范围确定所述数量,包括:
当所述丢包率处于第一预设范围时,将所述数量确定为预设数量;
当所述丢包率处于第二预设范围时,将所述数量确定为所述预设数量的2倍,其中,所述第二预设范围的最小值大于所述第一预设范围的最大值;
当所述丢包率处于第三预设范围时,将所述数量确定为所述预设数量的N倍,其中,所述第三预设范围的最小值大于所述第二预设范围的最大值,其中,N为大于2的整数。
4.根据权利要求1所述的方法,其特征在于,在将被编码的冗余帧的所述数量不为零的情况下,基于确定的编码方法对所述数量的冗余帧进行编码,包括:
使用多级矢量量化编码方法对所述数量的冗余帧进行编码。
5.一种音频处理方法,其特征在于,所述方法包括:
获取语音传输网络的当前网络状态信息;
基于所述当前网络状态信息确定在解码当前音频包时将被解码的冗余包的解码方法和数量;
使用多级矢量量化解码方法对所述当前音频包进行解码,并且基于确定的解码方法对所述数量的冗余包进行解码。
6.一种音频处理装置,其特征在于,所述装置包括:
网络状态监控模块,被配置为执行获取语音传输网络的当前网络状态信息;
确定模块,被配置为执行基于所述当前网络状态信息确定在编码当前音频帧时将被编码的冗余帧的编码方法和数量;
编码模块,被配置为执行使用多级矢量量化编码方法对所述当前音频帧进行编码,并且基于确定的编码方法对所述数量的冗余帧进行编码。
7.一种音频处理装置,其特征在于,所述装置包括:
网络状态监控模块,被配置为执行获取语音传输网络的当前网络状态信息;
确定模块,被配置为执行基于所述当前网络状态信息确定在解码当前音频包时将被解码的冗余包的解码方法和数量;
解码模块,被配置为执行使用多级矢量量化解码方法对所述当前音频包进行解码,并且基于确定的解码方法对所述数量的冗余包进行解码。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器,
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-5中的任意一项所述的音频处理方法。
9.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-5中的任意一项所述的音频处理方法。
10.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行时实现权利要求1-5中的任意一项所述的音频处理方法。
CN202210836458.5A 2022-07-15 2022-07-15 音频处理方法、音频处理装置、电子设备和存储介质 Pending CN115206330A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210836458.5A CN115206330A (zh) 2022-07-15 2022-07-15 音频处理方法、音频处理装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210836458.5A CN115206330A (zh) 2022-07-15 2022-07-15 音频处理方法、音频处理装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN115206330A true CN115206330A (zh) 2022-10-18

Family

ID=83582294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210836458.5A Pending CN115206330A (zh) 2022-07-15 2022-07-15 音频处理方法、音频处理装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN115206330A (zh)

Similar Documents

Publication Publication Date Title
WO2018077083A1 (zh) 音频帧丢失恢复方法和装置
US8509931B2 (en) Progressive encoding of audio
JP7383138B2 (ja) 音声伝送方法及びそのシステム、装置、コンピュータプログラム、並びにコンピュータ機器
CN111326168B (zh) 语音分离方法、装置、电子设备和存储介质
CN109819282B (zh) 一种视频用户类别识别方法、装置和介质
CN111312264B (zh) 语音传输方法、系统、装置、计算机可读存储介质和设备
EP2805325A1 (en) Devices for redundant frame coding and decoding
CN111371534B (zh) 一种数据重传方法、装置、电子设备和存储介质
US10121484B2 (en) Method and apparatus for decoding speech/audio bitstream
CN116233445B (zh) 视频的编解码处理方法、装置、计算机设备和存储介质
CN112751820B (zh) 使用深度学习实现数字语音丢包隐藏
CN114333862B (zh) 音频编码方法、解码方法、装置、设备、存储介质及产品
WO2023236961A1 (zh) 音频信号恢复方法、装置、电子设备及介质
CN115206330A (zh) 音频处理方法、音频处理装置、电子设备和存储介质
He et al. A Novel AMR‐WB Speech Steganography Based on Diameter‐Neighbor Codebook Partition
CN110958417A (zh) 一种基于语音线索的视频通话类视频去除压缩噪声的方法
CN112769524B (zh) 语音传输方法、装置、计算机设备和存储介质
CN112735392B (zh) 语音处理方法、装置、设备及存储介质
CN114841325A (zh) 神经网络模型的数据处理方法、介质及电子设备
CN109473116B (zh) 语音编码方法、语音解码方法及装置
CN113724716B (zh) 语音处理方法和语音处理装置
CN112639832A (zh) 识别生成网络的显著特征
US20240127848A1 (en) Quality estimation model for packet loss concealment
CN113076828B (zh) 视频编辑方法和装置以及模型训练方法和装置
JP2011259345A (ja) 符号化装置

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