音频流中的丢帧补偿实现方法和装置的制造方法
【技术领域】
[0001]本发明涉及音频信号处理技术,特别是涉及一种音频流中的丢帧补偿实现方法和
>J-U ρ?α装直。
【背景技术】
[0002]为实现音频的丢帧补偿,传统的实现方案包括了依赖于编解码的方案和不依赖于编解码的方案两大类。依赖于编解码的方案在解码时如发现当前帧丢失,则利用前后若干帧编码数据中的相关信息来估算得到当前编码帧,进而由估算出的当前编码帧得出补帧音频流。而不依赖于编解码的方案则与编解码无关,将针对已经解码所得到的前后音频信息,利用其时域频域等特征进行估算,以得出补偿音频流。
[0003]然而,对于依赖于编解码的方案而言,在进行丢帧补偿后将出现明显的“金属音”,在连续丢帧时将更为显著;而在使用不依赖于编解码的方案的过程中,虽然规避了大多数的“金属音”,以稍微改善输出效果,但是,对于语音音频,尤其是背景较纯净时浊音末尾的丢帧补偿,将能够明显发现所得到的补偿音频流即为噪声;而对于音乐音频,虽然时域掩蔽降低了这一感知,但是存在着断续感十分严重的缺陷,因此并无法适应于所有种类的音频的丢帧补偿,仅限于对少数音频得到较好的丢帧补偿效果。
【发明内容】
[0004]基于此,有必要针对传统的音频丢帧补偿实现方案无法适应所有种类的音频的丢帧补偿的技术问题,提供一种能适应所有种类的音频的丢帧补偿且明显改善了输出效果的音频流中的丢帧补偿实现方法。
[0005]此外,还有必要提供一种能适应所有种类的音频的丢帧补偿且明显改善了输出效果的音频流中的丢帧补偿实现装置。
[0006]一种音频流中的丢帧补偿实现方法,包括如下步骤:
[0007]获取由编解码器输入的音频流和丢帧信息;
[0008]根据所述丢帧信息将所述音频流置为静音,并按照预设时间进行延时处理;
[0009]由所述丢帧信息和所述音频流对应的音频信息修正的混响声场输出余音;
[0010]平滑处理所述输出的余音以得到补偿的音频流。
[0011]一种音频流中的丢帧补偿实现装置,包括:
[0012]输入获取模块,用于获取由编解码器输入的音频流和丢帧信息;
[0013]预处理模块,用于根据所述丢帧信息将所述音频流置为静音,并按照预设时间进行延时处理;
[0014]混响模块,用于由所述丢帧信息和所述音频流对应的音频信息修正的混响声场输出余首;
[0015]平滑处理模块,用于平滑处理所述输出的余音以得到补偿的音频流。
[0016]上述音频流中的丢帧补偿实现方法和装置中,将获取由编解码器输入的音频流和丢帧信息,根据丢帧信息将音频流置为静音,并按照预设时间进行延时处理,在达到设置的时间延时完成延时处理之后将由混响声场输出余音,其中,该混响声场是由丢巾贞信息和音频流对应的音频信息进行修正的,平滑处理该余音即可得到补偿的音频流,由于这一丢帧补偿过程对输入的音频流所对应的音频种类并没有强相关,因此能够适应所有种类的音频的丢帧补偿,并且由于混响声场已经由当前所获取得到的丢帧信息和音频流对应的音频信息进行了修正,因此将大幅提高了丢帧补偿质量,明显地改善了输出效果。
【附图说明】
[0017]图1为一个实施例中音频流中的丢帧补偿实现方法的流程图;
[0018]图2为另一个实施例中音频流中的丢帧补偿实现方法的流程图;
[0019]图3为图2中通过得到的当前丢帧状态和音频流对应的音频信息修正构建的混响声场;
[0020]图4为一个实施例中平滑处理输出的余音以得到补偿的音频流的方法流程图;
[0021]图5为一个实施例中音频流中的丢帧补偿实现方法的应用示意图;
[0022]图6为一个实施例中音频流中的丢帧补偿实现装置的结构示意图;
[0023]图7为另一个实施例中音频流中的丢帧补偿实现装置的结构示意图;
[0024]图8为图7中声场修正模块的结构示意图;
[0025]图9为一个实施例中平滑处理模块的结构示意图;
[0026]图10为实现本发明实施例的一个计算机系统的模块图。
【具体实施方式】
[0027]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0028]除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组口 ο
[0029]如图1所示,在一个实施例中,一种音频流中的丢帧补偿实现方法,包括如下步骤:
[0030]步骤S110,获取由编解码器输入的音频流和丢帧信息。
[0031]本实施例中,编解码器为音频引擎中使用的编解码器,例如,该编解码器可为celt高音质编解码器。当前所获取到的由编解码器输入的音频流即为编解码器所输出的音频流。在未发生音频流的丢帧时,不需要对音频流进行丢帧补偿;当发生音频流的丢帧时,则需要对获取到的由编解码器输入的音频流进行优化,以实现丢帧补偿。
[0032]由音频引擎的上层得到当前的丢帧信息,以将传递至编解码器中,该音频引擎的上层是相对于编解码器而言的。在判断到当前的音频流发生了丢帧的情况之后,将生成相应的丢帧信息,得以由这一丢帧信息获知音频流的丢帧状况。
[0033]在一个实施例中,上述步骤SllO的具体过程为:逐帧获取由编解码器输入的音频流和当前帧音频流所对应的丢帧信息。
[0034]本实施例中,进行丢帧补偿的输入将包括了一帧音频流和该帧音频流所对应的丢帧信息,也就是说,音频流的获取和丢帧补偿的实现都是以帧为单位进行的。
[0035]步骤S130,根据丢帧信息将音频流置为静音,并按照预设时间进行延时处理。
[0036]本实施例中,在发生音频流的丢帧时,所获取到的音频流即为空帧,此时将静音作为混响声场的输入。
[0037]具体的,在获知发生了丢帧之后对当前丢帧时刻所对应的音频流置为静音,将其做预设时间的延时处理,以延迟混响声场中的静音输入,其中,该预设时间是与用于进行平滑处理的平滑窗口的重叠长度相匹配的,例如,该预设时间可为5毫秒。
[0038]步骤S150,由丢帧信息和音频流对应的音频信息修正的混响声场输出余音。
[0039]本实施例中,延迟了预设时间之后将以静音作为混响声场的输入,通过混响声场得到余音并输出,该余音即为前一段时间的音频流所产生的。输出余音的混响声场是系统通过一定的混响算法模拟的,例如,可以采用Schroeder混响模型实现,即通过四个并联的梳状滤波器级联两个全通滤波器实现混响音效。
[0040]进一步的,用于输出余音的混响声场将不断通过丢帧信息和音频流对应的音频信息进行各项参数的不断修正,以保证较高的丢帧补偿质量。
[0041]步骤S170,平滑处理输出的余音以得到补偿的音频流。
[0042]本实施例中,通过平滑窗口对混响声场输出的余音进行平滑处理,以完成当前发生的丢帧进行补偿得到相应的音频流。
[0043]进一步的,由混响声场输出的余音包括了干声和湿声,因此,相应的,平滑窗口也包括了干声窗口和湿声