音频数据降噪的方法、装置、设备及存储介质与流程
本申请涉及计算机技术领域,特别涉及一种音频数据降噪的方法、装置、设备及存储介质。
背景技术:
在日常生活中,人们在听音频时,经常能够听过到一些噪声,这很影响用户的听觉体验,为此技术人员设置了如下方法减小音频中的噪音。
在获取到待降噪的音频数据后,基于噪音多为高频的原理,将该待降噪的音频数据输入到高频滤波器中,进而去除待降噪的音频数据中的高频音频数据,也就得到了降噪后的音频数据。
在实现本申请的过程中,发明人发现现有技术至少存在以下问题:
在上述方案中会去除待降噪的音频数据中的高频音频数据,也就会造成降噪后的音频数据的码率减小,进而影响音质。
技术实现要素:
本申请实施例提供了一种音频数据降噪的方法、装置、设备及存储介质,能够解决现有技术降噪不好的问题。所述技术方案如下:
一方面,提供了一种音频数据降噪的方法,所述方法包括:
获取待降噪的音频数据的频谱数据,提取所述频谱数据的实部数据和虚部数据;
将所述频谱数据的实部数据和虚部数据,输入噪音修正模型,得到所述实部数据对应的第一修正数据和所述虚部数据对应的第二修正数据;
基于所述第一修正数据和所述第二修正数据,得到复数修正数据;
基于所述复数修正数据,对所述待降噪的音频数据进行降噪处理,得到降噪后的音频数据。
可选的,所述获取待降噪的音频数据的频谱数据,包括:
获取待降噪的音频数据,对所述待降噪的音频数据进行傅里叶变换,得到待降噪的音频数据的频谱数据。
可选的,所述基于所述第一修正数据和所述第二修正数据,得到复数修正数据,包括:
以所述第一修正数据为实部、所述第二修正数据为虚部组合得到的复数,作为复数修正数据。
可选的,所述获取待降噪的音频数据的频谱数据之前,还包括:
获取无噪声的样本音频数据;
对所述无噪声的样本音频数据进行加噪处理,得到加噪后的样本音频数据;
基于所述无噪声的样本音频数据的实部数据和加噪的样本音频数据的实部数据,确定第一基准修正值,基于所述无噪声的样本音频数据的虚部数据和加噪的样本音频数据的虚部数据,确定第二基准修正值;
基于所述加噪的样本音频数据的实部数据和虚部数据、以及所述第一基准修正值、所述第二基准修正值,对初始噪音修正模型进行训练,得到噪音修正模型。
可选的,所述基于所述复数修正数据,对所述待降噪的音频数据进行降噪处理,得到降噪后的音频数据,包括:
将所述复数修正数据与所述频谱数据相乘,得到修正后的频谱数据;
对所述修正后的频谱数据进行傅里叶逆变换,得到降噪后的音频数据。
可选的,所述噪音修正模型包括第一卷积核和第二卷积核,所述将所述频谱数据的实部数据和虚部数据,输入噪音修正模型,得到所述实部数据对应的第一修正数据和所述虚部数据对应的第二修正数据,包括:
基于所述第一卷积核分别对所述频谱数据的实部数据和虚部数据进行卷积处理,得到第一中间数据和第二中间数据;并基于所述第二卷积核分别对所述频谱数据的实部数据和虚部数据进行卷积处理,得到第三中间数据和第四中间数据;
将所述第一中间数据与所述第四中间数据的差值确定为所述实部数据对应的第一修正数据,将所述第二中间数据与所述第三中间数据的和值确定为所述虚部数据对应的第二修正数据。
另一方面,提供了一种音频数据降噪的装置,所述装置包括:
获取模块,用于获取待降噪的音频数据的频谱数据,提取所述频谱数据的实部数据和虚部数据;
修正模块,用于将所述频谱数据的实部数据和虚部数据,输入噪音修正模型,得到所述实部数据对应的第一修正数据和所述虚部数据对应的第二修正数据;
确定模块,用于基于所述第一修正数据和所述第二修正数据,得到复数修正数据;
降噪模块,用于基于所述复数修正数据,对所述待降噪的音频数据进行降噪处理,得到降噪后的音频数据。
可选的,所述获取模块,用于:
获取待降噪的音频数据,对所述待降噪的音频数据进行傅里叶变换,得到待降噪的音频数据的频谱数据。
可选的,所述确定模块,用于:
以所述第一修正数据为实部、所述第二修正数据为虚部组合得到的复数,作为复数修正数据。
可选的,所述装置还包括训练模块,所述训练模块,用于:
获取无噪声的样本音频数据;
对所述无噪声的样本音频数据进行加噪处理,得到加噪后的样本音频数据;
基于所述无噪声的样本音频数据的实部数据和加噪的样本音频数据的实部数据,确定第一基准修正值,基于所述无噪声的样本音频数据的虚部数据和加噪的样本音频数据的虚部数据,确定第二基准修正值;
基于所述加噪的样本音频数据的实部数据和虚部数据、以及所述第一基准修正值、所述第二基准修正值,对初始噪音修正模型进行训练,得到噪音修正模型。
可选的,所述降噪模块,用于:
将所述复数修正数据与所述频谱数据相乘,得到修正后的频谱数据;
对所述修正后的频谱数据进行傅里叶逆变换,得到降噪后的音频数据。
可选的,所述噪音修正模型包括第一卷积核和第二卷积核,所述修正模块,用于:
基于所述第一卷积核分别对所述频谱数据的实部数据和虚部数据进行卷积处理,得到第一中间数据和第二中间数据;并基于所述第二卷积核分别对所述频谱数据的实部数据和虚部数据进行卷积处理,得到第三中间数据和第四中间数据;
将所述第一中间数据与所述第四中间数据的差值确定为所述实部数据对应的第一修正数据,将所述第二中间数据与所述第三中间数据的和值确定为所述虚部数据对应的第二修正数据。
再一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有指令,所述处理器执行所述指令使得所述计算机设备实现所述音频数据降噪的方法。
再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有指令,计算机设备执行所述指令使得所述计算机设备实现所述音频数据降噪的方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请通过获取待降噪的音频数据的频谱数据,频谱数据是以复数形式存在的,进而获取频谱数据的实部数据和虚部数据,然后将实部数据和虚部数据输入到噪音修正模型,进而得到与实部数据对应的第一修正数据和与虚部数据对应的第二修正数据,然后将第一修正数据和第二修正数据重新组合为复数形式,得到复数修正数据,然后基于复数修正数据,对待降噪的音频数据进行降噪处理,得到降噪后的音频数据,进而由于对待降噪的音频数据的频谱数据的实部数据和虚部数据进行了修正,由于本方案是通过机器学习模型来完成降噪的,也就可以控制输出的修正后的数据的码率的大小,进而具有对音质影响小的效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的实施环境示意图;
图2是本申请实施例提供的一种音频数据降噪的方法流程图;
图3是本申请实施例提供的一种音频数据降噪的方法的流程示意图;
图4是本申请实施例提供的噪音修正模型的一个结构示意图;
图5是本申请实施例提供的噪音修正模型的另一结构示意图;
图6是本申请实施例提供的一种噪音修正模型的训练方法流程图;
图7是本申请实施例提供的一种音频数据降噪的装置结构示意图;
图8是本申请实施例提供的服务器结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供了一种音频数据降噪的方法,该方法可以由服务器实现,该服务器可以是应用程序的后台服务器,该服务器可以是一个单独的服务器也可以是一个服务器组,如果是单独的服务器,该服务器可以负责下述方案中的所有需要由服务器进行的处理,如果是服务器组,服务器组中的不同服务器分别可以负责下述方案中的不同处理,具体的处理分配情况可以由技术人员根据实际需求任意设置,此处不再赘述。
如图1所示,在用户使用音频分享应用程序时,用户可以通过录音设备录制音频数据,并将录制的音频数据上传到服务器,进而服务器可以存储该音频数据。如果服务器接收到针对该音频数据的音频数据获取请求时,则该服务器可以将该音频数据发送给该音频数据获取请求对应的终端,进而在该终端上播放该音频。
图2是本申请实施例提供的一种音频数据降噪的方法的流程图。参见图2,该流程包括:
步骤201、获取待降噪的音频数据的频谱数据,提取频谱数据的实部数据和虚部数据。
其中,频谱数据是复数数据。
在实施中,服务器可以获取数据库中存储的待降噪的音频数据,该待降噪的音频数据可以是一个完整的歌曲的数据也可以是一段被分割为固定大小的音频的数据,如果该待降噪的音频数据是一个完整的歌曲的数据,则将上述完整的歌曲切分为多段固定大小的音频。进而服务器可以对待降噪的音频数据进行傅里叶变换,得到待降噪的音频数据的频谱数据。
例如,xt,f是待降噪的音频数据,则如图3所示,对xt,f进行傅里叶变换后可以得到xt,f对应的频谱数据xt,f。
然后,获取频谱数据的实部数据和虚部数据。
例如,频谱数据xt,f=xr+ixi,则实部数据为xr、虚部数据为xi。
步骤202、将频谱数据的实部数据和虚部数据,输入噪音修正模型,得到实部数据对应的第一修正数据和虚部数据对应的第二修正数据。
其中,噪音修正模型包含有复数卷积层。
在实施中,在获取到频谱数据的实部数据和虚部数据后,服务器可以按照预设规则将实部数据和虚部数据组合在一起,然后将组合后的数据输入噪音修正模型中。
例如,该实部数据xr和虚部数据xi可以是向量,则将xr与xi按照最后一个维度组合在一起,得到组合后的数据(即如图4中第一步中频谱数据的实部数据和虚部数据),然后将组合后的数据输入噪音修正模型中。
进而,噪音修正模型可以基于第一卷积核,分别对频谱数据的实部数据和虚部数据,进行卷积处理,得到第一中间数据和第二中间数据;基于第二卷积核,分别对频谱数据的实部数据和虚部数据,进行卷积处理,得到第三中间数据和第四中间数据。
例如,如图4所示,噪音修正模型中包含有第一卷积核和第二卷积核,在将频谱数据的实部数据和虚部数据输入到噪音修正模型后,噪音修正模型可以按照如图4所示的第二步分别对频谱数据的虚部数据和第一卷积核进行卷积得到第一中间数据h、对频谱数据的虚部数据和第二卷积核进行卷积得到第二中间数据o、对频谱数据实部数据和第一卷积核进行卷积得到第三中间数据π、对频谱数据的实部数据和第二卷积核进行卷积得到第四中间数据p。需要说明的是,图4中的“*”表示卷积运算。
然后,将第一中间数据与第四中间数据的差值确定为实部数据对应的第一原始修正数据,将第二中间数据与第三中间数据的和值确定为虚部数据对应的第二原始修正数据。例如,如图4所示的第三步,将第四中间数据p与第一中间数据h相减得到实部数据对应的第一原始修正数据(第一原始修正数据可以记为or),将第三中间数据π与第二中间数据o相加得到虚部数据对应的第二原始修正数据(第二原始修正数据可以记为oi)。图3中的cunet的输出即为图4第三步得到的复数(该复数可以记为t),real(t)是对复数t取实部数据,img(t)是对复数t取虚部数据。
进一步的,在实际计算过程中可以如图5所示,该图5是噪音修正模型进行卷积运算的一个示例,其中的各个参数只是用来举例说明,本申请并不限定梯形框的个数,以及各个参数的大小。图5中的第一行代表编码运算,第二行代表解码运算,每一个梯形框都对应上述图4中的卷积处理步骤,每一个梯形框的输入都是实部数据和虚部数据,相应的输出也是实部数据和虚部数据,图示中有两个输入的梯形框代表将两组输入的实部数据和虚部数据分别相加然后再将其进行如图4所示的卷积处理,其中,f代表第一卷积核以及第二卷积核的大小,s代表步长,c代表卷积核的个数。
在此需要说明的是上述第一卷积核和第二卷积核并没有限定个数,只是代表两种不同的卷积核,相应的卷积核的个数必定为偶数。
在此需要说明的是,由于噪音修正模型内部的神经网络是无法对复数进行运算的,因此,只能基于复数进行数学运算的过程来设置一个实部、虚部的运算规则,进而使得输入的实部、虚部可以根据上述运算规则进行计算,并得到实部数据对应的第一原始修正数据和虚部数据对应的第二原始修正数据。
由于上述噪音修正模型的特性,其输出结果是经过归一化处理的值,进而,服务器可以对上述的第一原始修正数据以及第二原始修正数据进行归一化逆处理,进而得到实部数据对应的第一修正数据和虚部数据对应的第二修正数据。
例如,如图3所示,通过公式
为了便于理解,对上述计算公式的生成过程进行解释说明。双曲正切变换的变种公式为
步骤203、基于第一修正数据和第二修正数据,得到复数修正数据。
其中,该复数修正数据是一个复数数据。
在实施中,在获取到第一修正数据和第二修正数据后,以第一修正数据为实部、所述第二修正数据为虚部组合得到的复数,作为复数修正数据。具体地,根据公式
步骤204、基于复数修正数据,对待降噪的音频数据进行降噪处理,得到降噪后的音频数据。
在实施中,在得到复数修正数据后,服务器可以将复数修正数据与频谱数据相乘,得到修正后的频谱数据,进而对修正后的频谱数据进行傅里叶逆变换,得到降噪后的音频数据。
具体地,
本申请通过获取待降噪的音频数据的频谱数据,频谱数据是以复数形式存在的,进而获取频谱数据的实部数据和虚部数据,然后将实部数据和虚部数据输入到噪音修正模型,进而得到与实部数据对应的第一修正数据和与虚部数据对应的第二修正数据,然后将第一修正数据和第二修正数据重新组合为复数形式,得到复数修正数据,然后基于复数修正数据,对待降噪的音频数据进行降噪处理,得到降噪后的音频数据,进而由于对待降噪的音频数据的频谱数据的实部数据和虚部数据进行了修正,提高了降噪后的音频数据的音质效果。
如图6所示,上述实施例中的噪音修正模型可以预先训练得到,具体的训练过程可以包括如下步骤s601-s604。
步骤601、获取无噪声的样本音频数据。
在实施中,服务器可以获取数据库中存储的无噪声的样本音频数据,该无噪声的样本音频数据可以是一个完整的歌曲的数据也可以是一段被分割为固定大小的音频的数据,如果该无噪声的样本音频数据是一个完整的歌曲的数据,则将上述完整的歌曲切分为多段固定大小的音频。
例如,用yt,f表示无噪声的样本音频数据。
步骤602、对无噪声的样本音频数据进行加噪处理,得到加噪后的样本音频数据。
在实施中,在获取到无噪声的样本音频数据后,服务器可以调用加噪函数对无噪声的样本音频数据进行加噪处理,进而得到加噪后的样本音频数据。
例如,用xt,f表示加噪后的音频数据。
步骤603、基于无噪声的样本音频数据的实部数据和加噪后的样本音频数据的实部数据,确定第一基准修正值,基于无噪声的样本音频数据的虚部数据和加噪后的样本音频数据的虚部数据,确定第二基准修正值。
在实施中,服务器可以对无噪声的样本音频数据进行傅里叶变换,得到无噪声的样本音频数据的频谱数据,服务器还可以对加噪后的样本音频数据进行傅里叶变换,得到加噪后的样本音频数据的频谱数据。然后分别获取无噪声的样本音频数据的频谱数据的实部数据和虚部数据,以及加噪后的样本音频数据的频谱数据的实部数据和虚部数据。然后服务器可以基于加噪后的样本音频数据的频谱数据的实部数据和虚部数据、无噪声的样本音频数据的频谱数据的实部数据和虚部数据,计算第一基准修正值和第二基准修正值。
例如,对无噪声的样本音频数据yt,f进行傅里叶变换后可以得到对应的频谱数据yt,f(即无噪声的样本音频数据的频域数据),该yt,f=yr+iyi,实部数据为yr、虚部数据为yi。对加噪后的样本音频数据xt,f进行傅里叶变换后可以得到xt,f对应的频谱数据xt,f(即加噪后的样本音频数据的频域数据)。该xt,f=xr+ixi,实部数据为xr、虚部数据为xi。然后,服务器可以依次基于公式
在此需要说明的是,参数m的下角标x分别表示r或i,r和i用来表示实部和虚部,例如mx代表mr和mi,
在此需要说明的是,上述第一基准修正值以及第二基准修正值分别对应下述初始噪音修正模型输出的两个数据(即下述第一训练值以及第二训练值),其实际为用于训练初始噪音修正模型的基准值。
步骤604、基于加噪的样本音频数据的实部数据和虚部数据以及第一基准修正值和第二基准修正值,对初始噪音修正模型进行训练,得到噪音修正模型。
在实施中,服务器可以按照预设规则将加噪后的样本音频数据的频谱数据的实部数据和虚部数据组合在一起,然后将组合后的数据输入初始噪音修正模型中,得到第一训练值以及第二训练值。然后,服务器可以使用损失函数对第一训练值及第二训练值与第一基准修正值及第二基准修正值之间的差距进行评估,从而根据评估结果对噪音修正模型进行更新。
例如,通过损失函数:
计算cost值。然后对得到的cost值进行梯度下降,得到最终的校正值,进而根据在上述校正值对,对噪音修正模型进行更新。
其中,or(t,f)是第一训练值,oi(t,f)是第二训练值,or(t,f)和oi(t,f)分别为ox的实部和虚部,cirmr(t,f)和cirmi(t,f)是第一基准修正值和第二基准修正值,cirmr(t,f)和cirmi(t,f)是cirmx的实部和虚部。
本申请通过获取待降噪的音频数据的频谱数据,频谱数据是以复数形式存在的,进而获取频谱数据的实部数据和虚部数据,然后将实部数据和虚部数据输入到噪音修正模型,进而得到与实部数据对应的第一修正数据和与虚部数据对应的第二修正数据,然后将第一修正数据和第二修正数据重新组合为复数形式,得到复数修正数据,然后基于复数修正数据,对待降噪的音频数据进行降噪处理,得到降噪后的音频数据,进而由于对待降噪的音频数据的频谱数据的实部数据和虚部数据进行了修正,由于本方案是通过机器学习模型来完成降噪的,也就可以控制输出的修正后的数据的码率的大小,进而具有对音质影响小的效果。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本申请实施例提供一种音频传输反馈的装置,该装置可以是上述实施例中的服务器,如图7所示,所述装置包括:
获取模块710,用于获取待降噪的音频数据的频谱数据,提取所述频谱数据的实部数据和虚部数据;
修正模块720,用于将所述频谱数据的实部数据和虚部数据,输入噪音修正模型,得到所述实部数据对应的第一修正数据和所述虚部数据对应的第二修正数据;
确定模块730,用于基于所述第一修正数据和所述第二修正数据,得到复数修正数据;
降噪模块740,用于基于所述复数修正数据,对所述待降噪的音频数据进行降噪处理,得到降噪后的音频数据。
可选的,所述获取模块710,用于:
获取待降噪的音频数据,对所述待降噪的音频数据进行傅里叶变换,得到待降噪的音频数据的频谱数据。
可选的,所述确定模块730,用于:
以所述第一修正数据为实部、所述第二修正数据为虚部组合得到的复数,作为复数修正数据。
可选的,所述装置还包括训练模块,所述训练模块,用于:
获取无噪声的样本音频数据;
对所述无噪声的样本音频数据进行加噪处理,得到加噪后的样本音频数据;
基于所述无噪声的样本音频数据的实部数据和加噪的样本音频数据的实部数据,确定第一基准修正值,基于所述无噪声的样本音频数据的虚部数据和加噪的样本音频数据的虚部数据,确定第二基准修正值;
基于所述加噪的样本音频数据的实部数据和虚部数据、以及所述第一基准修正值、所述第二基准修正值,对初始噪音修正模型进行训练,得到噪音修正模型。
可选的,所述降噪模块740,用于:
将所述复数修正数据与所述频谱数据相乘,得到修正后的频谱数据;
对所述修正后的频谱数据进行傅里叶逆变换,得到降噪后的音频数据。
可选的,所述噪音修正模型包括第一卷积核和第二卷积核,所述修正模块720,用于:
基于所述第一卷积核分别对所述频谱数据的实部数据和虚部数据进行卷积处理,得到第一中间数据和第二中间数据;并基于所述第二卷积核分别对所述频谱数据的实部数据和虚部数据进行卷积处理,得到第三中间数据和第四中间数据;
将所述第一中间数据与所述第四中间数据的差值确定为所述实部数据对应的第一修正数据,将所述第二中间数据与所述第三中间数据的和值确定为所述虚部数据对应的第二修正数据。
本申请通过获取待降噪的音频数据的频谱数据,频谱数据是以复数形式存在的,进而获取频谱数据的实部数据和虚部数据,然后将实部数据和虚部数据输入到噪音修正模型,进而得到与实部数据对应的第一修正数据和与虚部数据对应的第二修正数据,然后将第一修正数据和第二修正数据重新组合为复数形式,得到复数修正数据,然后基于复数修正数据,对待降噪的音频数据进行降噪处理,得到降噪后的音频数据,进而由于对待降噪的音频数据的频谱数据的实部数据和虚部数据进行了修正,由于本方案是通过机器学习模型来完成降噪的,也就可以控制输出的修正后的数据的码率的大小,进而具有对音质影响小的效果。
需要说明的是:上述实施例提供的音频数据降噪的装置在给音频数据降噪时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的音频数据降噪的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8是本申请实施例提供的一种服务器的结构示意图,该服务器可以是上述服务器,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)801和一个或一个以上的存储器802,其中,所述存储器802中存储有至少一条指令,所述至少一条指令由所述处理器801加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中音频数据降噪的方法。例如,所述计算机可读存储介质可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、cd-rom、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除