首页 > 乐器声学 专利正文
音频帧的处理方法、系统、装置及存储介质与流程

时间:2022-02-06 阅读: 作者:专利查询

音频帧的处理方法、系统、装置及存储介质与流程

1.本发明涉及音频处理技术领域,具体涉及一种音频帧的处理方法、系统、装置及存储介质。


背景技术:

2.为了提高音频数据的播放效果,通常会对音频数据进行回声抵消、降噪、自动增益控制等处理。借助于机器学习技术,现阶段可以通过对大量的音频数据样本进行学习,从而训练得到效果较好的音频处理模型。
3.然而,在需要对音频帧进行实时处理的场景下,训练得到的音频处理模型往往效果不佳。原因在于,音频处理模型的训练样本通常都是具备一定时长的音频数据,在对这些音频数据进行训练的过程中,会对前后帧的音频数据进行多次推理迭代,从而生成处理后的音频数据。但是在音频帧的实时处理场景下,每次输入音频处理模型的都是单独的音频帧,因此音频处理模型无法衡量相邻音频帧之间的联系,从而导致生成的各个音频帧在连续播放时,会存在失真的情况。
4.可见,目前需要一种能够有效地对音频帧进行实时处理的方法。


技术实现要素:

5.有鉴于此,本发明实施方式提供了一种音频帧的处理方法、系统、装置及存储介质,能够有效地对音频帧进行实时处理。
6.本发明一方面提供了一种音频帧的处理方法,用于音频帧处理的目标音频模型被拆分为相连的多个局部模型;所述方法包括:获取当前音频帧之前的上一音频帧对应的第一状态参数,并将所述第一状态参数作为所述当前音频帧的输入状态参数;在所述输入状态参数的基础上,利用所述多个局部模型对所述当前音频帧进行处理;在对所述当前音频帧的处理过程中,生成所述当前音频帧的第二状态参数,所述第二状态参数作为所述当前音频帧之后的下一音频帧的输入状态参数。
7.在一个实施方式中,所述多个局部模型包括长短期记忆模型和至少一组编解码模型对,所述编解码模型对中包括相绑定的编码模型和解码模型;其中,针对任一当前解码模型而言,所述当前解码模型的输入数据包括上一个解码模型的输出结果或者所述长短期记忆模型的输出结果,以及与所述当前解码模型相绑定的编码模型的输出结果。
8.在一个实施方式中,用于音频帧处理的目标音频模型被拆分为相连的多个局部模型包括:按照局部模型中包含的层级结构,对目标音频模型中的层级结构进行划分,以形成多个局部模型;在所述目标音频模型中获取层级结构对应的系数矩阵,并将获取的所述系数矩阵更新至局部模型的对应层级结构中。
9.在一个实施方式中,所述第一状态参数用于表征各个所述局部模型在处理所述上一音频帧时产生的临时缓存数据;所述第二状态参数用于表征各个所述局部模型在处理所述当前音频帧时产生的临时缓存数据。
10.在一个实施方式中,所述第一状态参数至少包括所述长短期记忆模型对所述上一音频帧处理时对应的隐藏元参数和记忆元参数、各个所述编码模型对所述上一音频帧处理时对应的中间状态参数及各个所述解码模型对所述上一音频帧处理时对应的中间状态参数;所述第二状态参数至少包括长短期记忆模型对所述当前音频帧处理时对应的隐藏元参数和记忆元参数、各个所述编码模型对所述当前音频帧处理时对应的中间状态参数及各个所述解码模型对所述当前音频帧处理时对应的中间状态参数。
11.在一个实施方式中,所述第一状态参数被写入全局缓存中作为当前状态参数,并且在所述第二状态参数生成之后,将所述第二状态参数替换所述第一状态参数作为所述全局缓存中的所述当前状态参数。
12.在一个实施方式中,所述方法还包括:针对处理后的当前音频帧,在所述处理后的当前音频帧的尾部确定待平滑处理的子段,并对所述子段进行幅度调节后,与所述当前音频帧的后一个音频帧的头部调节后的子段进行叠加,以生成平滑处理后的音频帧。
13.本发明另一方面提供了一种音频帧的处理系统,用于音频帧处理的目标音频模型被拆分为相连的多个局部模型;所述系统包括:状态参数获取单元,用于获取当前音频帧之前的上一音频帧对应的第一状态参数,并将所述第一状态参数作为所述当前音频帧的输入状态参数;音频帧处理单元,用于在所述输入状态参数的基础上,利用所述多个局部模型对所述当前音频帧进行处理;状态参数生成单元,用于在对所述当前音频帧的处理过程中,生成所述当前音频帧的第二状态参数,所述第二状态参数作为所述当前音频帧之后的下一音频帧的输入状态参数。
14.本发明另一方面提供了一种音频帧的处理装置,所述装置包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的音频帧的处理方法。
15.本发明另一方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的音频帧的处理方法。
16.本技术提供的技术方案,可以将完成训练的目标音频模型拆分为相连的多个局部模型。进行模型拆分的意义在于,局部模型在进行音频帧的处理时,可以生成中间的状态参数,该状态参数可以表征音频帧在处理过程中的特征信息。在本技术中,可以暂时存储该状态参数,当需要进行下一音频帧的处理时,可以将存储的状态参数作为该下一音频帧的输入状态参数,与下一音频帧的数据一起由各个局部模型进行处理。这样,下一音频帧的处理过程中引入了相邻音频帧的状态参数,使得下一音频帧的处理结果能够与相邻音频帧的处理结果之间产生关联。
17.通过这种方式对音频帧进行实时处理时,由于每次的处理过程都结合了相邻音频帧的状态参数,从而使得处理得到的音频帧在连续播放时,音效能够比较连贯,不会出现明显的失真或者卡顿,进而提高了音频的播放效果。
附图说明
18.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
19.图1示出了本发明一个实施方式中拆分后的局部模型的连接示意图;
20.图2示出了本发明一个实施方式中音频帧的处理方法的步骤示意图;
21.图3示出了本发明一个实施方式中lstm模型的处理示意图;
22.图4示出了本发明一个实施方式中帧间平滑处理的示意图;
23.图5示出了本发明一个实施方式中音频帧的处理系统的功能模块示意图;
24.图6示出了本发明一个实施方式中音频帧的处理装置的结构示意图。
具体实施方式
25.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
26.基于现有的机器学习算法训练得到的目标音频模型,在非实时处理音频数据时往往会具备较好的效果。原因在于,目标音频模型的训练数据通常都是具备一定时长的音频数据,在对音频数据的整体进行处理时,能够保证处理得到的音频数据也具备较好的连贯性。
27.但是现有的目标音频模型在实时处理音频数据时,输入的都是单独的音频帧,目标音频模型无法确定该音频帧与相邻的前后音频帧之间的联系,从而导致在连续播放处理后的音频帧时,可能会出现音效不连贯或者失真的问题。
28.鉴于此,在一个实施方式中,可以将完成训练的目标音频模型拆分为多个局部模型,拆分后的局部模型在处理输入的音频帧时,会产生中间的一些状态参数,这部分状态参数可以表征音频帧的特征信息。这部分状态参数可以暂时存储于缓存中,在处理当前的音频帧时,通过引入相邻的音频帧的状态参数,将状态参数重用并更新,从而使得处理得到的音频帧能够与相邻的音频帧之间保持关联。
29.具体地,目标音频模型中通常会包括多个神经网络层,这些神经网络层可以构成目标音频模型的层级结构。例如,目标音频模型中可以包括卷积层、激活层、归一化层、逆卷积层等。根据目标音频模型中各个神经网络层所实现的功能,可以对目标音频模型的层级结构进行划分,从而得到神经网络层的分组。例如,目标音频模型中多个神经网络层共同实现了编码的功能,那么这部分的神经网络层就可以划分至一个分组中。又例如,目标音频模型中多个神经网络层共同实现了解码的功能,那么这部分的神经网络层也可以划分至一个分组中。分组后的结果中,可以保留各个神经网络层之间的连接关系,每个分组可以对应一个局部模型。这样,通过对目标音频模型中的层级结构进行划分,可以形成多个局部模型各自的层级结构。
30.在本实施方式中,将目标音频模型拆分为多个局部模型的目的在于,原先目标音频模型在对音频数据进行处理时,产生的状态参数并不能被外部获取,而拆分为局部模型之后,局部模型生成的状态参数,可以被外部获取并存储。
31.请参阅图1,在一个具体应用示例中,拆分后得到的局部模型可以包括长短期记忆(lstm,long short

term memory)模型和至少一组编解码模型对。其中,编解码模型对中可以包括相绑定的编码模型和解码模型。编码模型和解码模型的这种绑定关系,可以体现在
音频帧的处理过程中。具体地,如图1所示,针对任一当前解码模型(例如解码模型n)而言,该当前解码模型的一部分输入数据,可以包括与该当前解码模型相绑定的编码模型(例如编码模型n)的输出结果。
32.在该应用示例中,拆分后的局部模型,可以按照编码模型、长短期记忆模型、解码模型这样的顺序依次排列。待处理的音频帧可以被输入第一个编码模型中,然后可以由后续的编码模型进行逐级编码。编码模型得到的编码结果,可以被送入lstm模型中进行处理。lstm模型的输出结果可以由解码模型进行逐层解码,最终可以输出处理后的音频帧。如图1所示,解码模型在执行解码操作时,输入数据除了包含相绑定的编码模型的输出结果,还可以包含上一级模型的输出结果。其中,上一级模型可以是lstm模型,也可以是上一个解码模型。例如,对于解码模型n而言,由于其上一层模型是lstm模型,那么该解码模型n的输入数据就包括编码模型n的输出结果和lstm模型的输出结果。而对于解码模型1而言,其上一层模型是解码模型2,那么该解码模型1的输入数据就包括编码模型1的输出结果和解码模型2的输出结果。
33.需要说明的是,在对目标音频模型中的层级结构进行划分,形成多个局部模型各自的层级结构之后,由于目标音频模型中部分层级结构原本是具备系数矩阵的,那么在划分得到局部模型的层级结构之后,需要将对应的系数矩阵更新至局部模型中。举例来说,对于卷积层和逆卷积层等神经网络层而言,通常在层内部是包含系数矩阵的,在这种情况下,应当将这些系数矩阵更新至局部模型中的对应神经网络层。在实际应用中,可以在目标音频模型中获取层级结构对应的系数矩阵,并将获取的系数矩阵更新至局部模型的对应层级结构中,从而完成局部模型拆分的过程。
34.请参阅图2,本技术一个实施方式提供的音频帧的处理方法,可以包括以下多个步骤。
35.s1:获取当前音频帧之前的上一音频帧对应的第一状态参数,并将所述第一状态参数作为所述当前音频帧的输入状态参数。
36.s2:在所述输入状态参数的基础上,利用所述多个局部模型对所述当前音频帧进行处理;在对所述当前音频帧的处理过程中,生成所述当前音频帧的第二状态参数,所述第二状态参数作为所述当前音频帧之后的下一音频帧的输入状态参数。
37.在本实施方式中,针对每一个音频帧,在经过各个局部模型的处理后,在生成处理后的音频帧的同时,还会产生对应的状态参数,该状态参数可以表征音频帧的特征信息。为了提高音频帧的处理效果,可以在处理当前音频帧时,将上一音频帧的状态参数作为参考。这样,处理后的当前音频帧可以与上一音频帧具备一定的关联,从而使得各个音频帧在连续播放时比较连贯。具体地,拆分后的各个局部模型在对音频帧进行处理时,都可以产生对应的状态参数,这部分状态参数可以作为临时缓存数据进行存储。在处理下一个音频帧时,可以将临时缓存数据作为参考,如对临时缓存数据进行重用及更新,从而保持前后的音频帧之间的联系。
38.可见,为了使音频帧实现帧间连贯,需要临时存储目标音频模型中各个网络层的中间状态数据,这些中间状态数据可以用于处理下一个音频帧。在实际应用中,如果获取目标音频模型中各个网络层的中间状态数据,会导致数据处理量较大,从而影响音频数据的处理效率。鉴于此,在本技术中,可以按照网络层所实现的功能,将目标音频模型拆解为局
部模型,在每个局部模型中,都可以包含网络层的组合,这些网络层的组合可以共同实现一个具体的功能。例如上述的编码模型,可以实现编码功能,解码模型可以实现解码功能等。以局部模型的形式来获取中间状态数据,可以减少数据处理量,从而在提高数据处理效率的同时,还能保证音频帧的连贯。
39.以lstm模型生成的状态参数为例,lstm模型生成的状态参数,可以是隐藏元参数和记忆元参数。由于目标音频模型被拆分为局部模型,那么lstm模型生成的状态参数可以被获取并暂时存储。在一个具体应用示例中,音频帧对应的状态参数可以被写入全局缓存中,这样,可以从全局缓存中读取音频帧对应的状态参数。
40.需要说明的是,全局缓存中写入的状态参数,可以与音频帧的标识相对应。例如,当前的音频帧的标识为a01,那么全局缓存中该音频帧的状态参数也可以通过a01来表示。这样,在全局缓存中可以写入多个音频帧的状态参数,当需要某个音频帧的状态参数时,可以基于该音频帧的标识从全局缓存中读取。另外,在一个实施方式中,为了节省全局缓存的空间,在同一时段内可以仅写入一个音频帧的状态参数。例如,在对当前音频帧进行处理时,可以将当前音频帧对应的状态参数写入全局缓存中。如果在写入当前音频帧对应的状态参数之前,全局缓存中已经存在另一个音频帧的状态参数,那么可以用当前音频帧的状态参数替换已经存在的状态参数,从而保证全局缓存中仅存在一个音频帧的状态参数。那么在处理当前音频帧之后的下一音频帧时,可以从该全局缓存中读取当前音频帧的状态参数。
41.同理,下一音频帧对应的状态参数在生成后,也可以写入全局缓存中,此时,可以将下一音频帧的状态参数替换当前音频帧的状态参数,从而保证全局缓存中依然仅存在一个音频帧的状态参数。
42.请参阅图3,在本实施方式中,在利用各个局部模型对当前音频帧进行处理时,可以将当前音频帧的数据导入第一个编码模型中,然后经过各个编码模型的逐级编码后,可以将编码结果送入lstm模型中。在lstm模型对当前音频帧的编码结果进行处理时,可以获取当前音频帧之前的上一音频帧对应的第一状态参数,然后可以将该第一状态参数作为当前音频帧的输入状态参数,与第一音频帧的编码结果一起由lstm模型进行处理。在图3中,lstm模型的输入数据(input)可以是各个编码模型针对当前音频帧最终输出的编码结果,输入状态参数则可以是上一音频帧的第一状态参数,其中包括隐藏元参数(in_hn)和记忆元参数(in_cn),在经过lstm模型的处理后,可以得到当前音频帧的输出数据(output),该输出数据可以作为解码模型的一部分输入数据。同时,lstm模型还可以生成当前音频帧的第二状态参数。该第二状态参数同样可以包括隐藏元参数(out_hn)和记忆元参数(out_cn)。
43.需要说明的是,在实际应用中,第一状态参数和第二状态参数可以不仅仅包含lstm模型生成的状态参数,还可以包含编码模块和解码模块生成的状态参数。以上只是以lstm模型为例进行方案的阐述,并不表示本技术的方案只能适用于隐藏元参数和记忆元参数的场景。
44.此外,图3所示的lstm模型只是简化的模型,在实际应用中,还可能存在与lstm模型相关的更多处理单元。例如,可以包括切片单元(slice)、转置单元(transpose)、压缩单元(squeeze)、合并单元(concat)等等。
45.在一个实际应用中,上一音频帧的第一状态参数在生成时,可以被写入全局缓存中作为当前状态参数。在处理当前音频帧时,可以从全局缓存中读取第一状态参数,并将第一状态参数作为当前音频帧的输入状态参数。在生成当前音频帧对应的第二状态参数后,可以将第二状态参数替换第一状态参数作为全局缓存中的当前状态参数。这样,在全局缓存中,同一时间段仅会存在一个音频帧的状态参数,从而节省了全局缓存的空间。
46.由于全局缓存中仅存在一个音频帧的状态参数,那么每当对音频帧进行处理时,都可以直接从全局缓存中读取当前时刻存储的状态参数,而无需根据音频帧的标识进行状态参数的查询,从而也提高了音频帧的处理效率。
47.在本实施方式中,lstm模型的输出数据可以输入解码模型中,同时与解码模型相绑定的编码模型的输出结果也可以一并输入解码模型中,从而进行注册解码的过程。解码模型输出的最终结果便可以作为处理后的当前音频帧。
48.可见,由于每次的处理过程都结合了相邻音频帧的状态参数,从而使得处理得到的音频帧在连续播放时,音效能够比较连贯,不会出现明显的失真或者卡顿,进而提高了音频的播放效果。
49.在一个实施方式中,经过上述的方式对各个音频帧进行处理后,输出的音频帧可能还会存在一定的噪音。为了提高音频帧的处理效果,针对输出的音频帧,可以进行帧间平滑处理。具体地,针对当前音频帧而言,可以在当前音频帧中确定待平滑处理的子段。如图4所示,该子段通常是当前音频帧与前后音频帧相邻接的头部和尾部。在确定出待平滑处理的子段后,可以采用幅度窗对该子段进行幅度调节。如图4所示,该幅度窗可以是折线窗,其中,折线窗可以由两条幅度调节线构成,其中,前一条的幅度调节线可以对当前音频帧的尾部子段进行幅度调节,后一条的幅度调节线可以对下一音频帧的头部字段进行幅度调节。调节后的两个字段可以进行叠加,这样叠加后的幅度还能够与未调节之前的幅度持平。可见,当前音频帧调节后的子段可以与相邻的音频帧中调节后的子段进行叠加,从而生成平滑处理后的当前音频帧。经过帧间平滑处理的音频帧,能够与前后相邻的两个音频帧保持较好的关联,从而在连续播放时能够达到更好的效果。
50.请参阅图5,本技术还提供一种音频帧的处理系统,用于音频帧处理的目标音频模型被拆分为相连的多个局部模型;所述系统包括:
51.状态参数获取单元,用于获取当前音频帧之前的上一音频帧对应的第一状态参数,并将所述第一状态参数作为所述当前音频帧的输入状态参数;
52.音频帧处理单元,用于在所述输入状态参数的基础上,利用所述多个局部模型对所述当前音频帧进行处理;
53.状态参数生成单元,用于在对所述当前音频帧的处理过程中,生成所述当前音频帧的第二状态参数,所述第二状态参数作为所述当前音频帧之后的下一音频帧的输入状态参数。
54.请参阅图6,本技术还提供一种音频帧的处理装置,所述装置包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的音频帧的处理方法。
55.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的音频帧的处理方法。
56.其中,处理器可以为中央处理器(central processing unit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
57.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
58.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
59.本技术提供的技术方案,可以将完成训练的目标音频模型拆分为相连的多个局部模型。进行模型拆分的意义在于,局部模型在进行音频帧的处理时,可以生成中间的状态参数,该状态参数可以表征音频帧在处理过程中的特征信息。在本技术中,可以暂时存储该状态参数,当需要进行下一音频帧的处理时,可以将存储的状态参数作为该下一音频帧的输入状态参数,与下一音频帧的数据一起由各个局部模型进行处理。这样,下一音频帧的处理过程中引入了相邻音频帧的状态参数,使得下一音频帧的处理结果能够与相邻音频帧的处理结果之间产生关联。
60.通过这种方式对音频帧进行实时处理时,由于每次的处理过程都结合了相邻音频帧的状态参数,从而使得处理得到的音频帧在连续播放时,音效能够比较连贯,不会出现明显的失真或者卡顿,进而提高了音频的播放效果。
61.本领域技术人员可以理解,实现上述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施方式的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid

state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
62.虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。