发明内容
有鉴于此,本公开至少提供一种声音分离方法和装置、电子设备,以提高模型的泛化能力和声音分离的效果。
第一方面,提供一种声音分离方法,所述方法包括:
获取输入声音频谱,所述输入声音频谱中包括对应于多种声源的声音频谱;
对所述输入声音频谱进行频谱分离处理,由所述输入声音频谱中分离出预测声音频谱;
从所述输入声音频谱中去除所述预测声音频谱,得到更新后的输入声音频谱;
通过所述更新后的输入声音频谱,继续获得下一个分离的预测声音频谱,直至所述更新后的输入声音频谱未包含声音频谱时,结束迭代。
在一些实施例中,所述对所述输入声音频谱进行频谱分离处理,由所述输入声音频谱中分离出预测声音频谱,包括:获取所述输入声音频谱对应的输入视频帧,其中,所述输入视频帧中包含多个声源,所述输入声音频谱中的各声音频谱对应于所述输入视频帧的各声源;根据所述输入视频帧对所述输入声音频谱进行频谱分离处理,由所述输入声音频谱中分离出预测声音频谱。
在一些实施例中,所述根据所述输入视频帧对所述输入声音频谱进行频谱分离处理,由所述输入声音频谱中分离出预测声音频谱,包括:根据所述输入声音频谱,得到k个基本分量,所述k个基本分量分别表示所述输入声音频谱中的不同声音特征,所述k为自然数;根据所述输入视频帧,得到视觉特征图,所述视觉特征图包括多个k维的视觉特征向量,每个视觉特征向量对应所述输入视频帧中的一个声源;根据其中一个所述视觉特征向量和所述k个基本分量,获得分离出来的预测声音频谱,所述预测声音频谱的声源是所述视觉特征向量对应的声源。
在一些实施例中,所述根据所述输入视频帧,得到视觉特征图,包括:将所述输入视频帧输入特征提取网络,输出输入视频帧的视频特征;对所述视频特征在时间维度进行最大池化,得到包含多个视觉特征向量的所述视觉特征图。
在一些实施例中,所述根据其中一个所述视觉特征向量和所述k个基本分量,获得分离出来的预测声音频谱,包括:将所述k个基本分量和其中一个所述视觉特征向量中的k维元素,分别相乘后加和,得到所述预测声音频谱。
在一些实施例中,所述根据其中一个所述视觉特征向量和所述k个基本分量,获得分离出来的预测声音频谱,包括:将所述k个基本分量和其中一个所述视觉特征向量中的k维元素,分别相乘后加和;对加和结果进行非线性激活处理,获得预测掩模;将所述预测掩模和首次迭代时初始的输入声音频谱进行点乘,得到所述预测声音频谱。
在一些实施例中,所述根据其中一个所述视觉特征向量和所述k个基本分量,获得分离出来的预测声音频谱,包括:由所述多个视觉特征向量中,随机选取一个视觉特征向量。
在一些实施例中,所述根据其中一个所述视觉特征向量和所述k个基本分量,获得分离出来的预测声音频谱,包括:由所述多个视觉特征向量中,选取音量最大的声源所对应的所述视觉特征向量。
在一些实施例中,所述选取音量最大的声源所对应的所述视觉特征向量,包括:将所述多个视觉特征向量中的每一个向量,执行如下处理:所述向量与所述k个基本分量相乘,得到第一相乘结果;对非线性激活后的第一相乘结果与首次迭代的初始输入声音频谱相乘,得到第二相乘结果;求取所述第二相乘结果的平均能量;选取平均能量最大值位置对应的视觉特征向量。
在一些实施例中,所述由所述输入声音频谱中分离出预测声音频谱之后,所述方法还包括:根据所述预测声音频谱和历史累计频谱,得到余量掩模,所述历史累计频谱是当前迭代之前历次分离的预测声音频谱的加和;基于所述余量掩模和历史累计频谱,得到余量频谱;将所述余量频谱和预测声音频谱相加,得到所述完整预测声音频谱。
在一些实施例中,所述历次预测声音频谱的加和,具体是历次完整预测声音频谱的加和;所述输入声音频谱中去除所述预测声音频谱,得到更新后的输入声音频谱,具体包括:所述输入声音频谱中去除所述完整预测声音频谱,得到更新后的输入声音频谱。
在一些实施例中,所述输入声音频谱通过第一网络,得到所述k个基本分量;所述输入视频帧通过第二网络,得到所述视觉特征图;所述预测声音频谱和历史累计频谱通过第三网络,得到所述余量掩模;所述方法还包括:根据所述完整预测声音频谱与频谱真实值之间的误差,调整所述第一网络、第二网络和第三网络中的至少任一网络的网络参数。
在一些实施例中,所述直至所述更新后的输入声音频谱未包含声音频谱,包括:当所述更新后的输入声音频谱的平均能量小于一个预设阈值时,确定所述输入声音频谱未包含声音频谱。
第二方面,提供一种声音分离装置,所述装置包括:
输入获取模块,用于获取输入声音频谱,所述输入声音频谱中包括对应于多种声源的声音频谱;
频谱分离模块,用于对所述输入声音频谱进行频谱分离处理,由所述输入声音频谱中分离出预测声音频谱;还用于通过更新后的输入声音频谱,继续获得下一个分离的预测声音频谱,直至所述更新后的输入声音频谱未包含声音频谱时结束迭代;
频谱更新模块,用于从所述输入声音频谱中去除所述预测声音频谱,得到所述更新后的输入声音频谱。
在一些实施例中,所述频谱分离模块,包括:视频处理子模块,用于获取所述输入声音频谱对应的输入视频帧,其中,所述输入视频帧中包含多个声源,所述输入声音频谱中的各声音频谱对应于所述输入视频帧的各声源;声音分离子模块,用于根据所述输入视频帧对所述输入声音频谱进行频谱分离处理,由所述输入声音频谱中分离出预测声音频谱。
在一些实施例中,所述视频处理子模块,用于根据所述输入视频帧,得到视觉特征图,所述视觉特征图包括多个k维的视觉特征向量,每个视觉特征向量对应所述输入视频帧中的一个声源;所述声音分离子模块,具体用于:根据所述输入声音频谱得到k个基本分量,所述k个基本分量分别表示所述输入声音频谱中的不同声音特征,所述k为自然数;以及根据其中一个所述视觉特征向量和所述k个基本分量,获得一个分离出来的预测声音频谱,所述预测声音频谱的声源是所述视觉特征向量对应的声源。
在一些实施例中,所述视频处理子模块,在用于根据所述输入视频帧得到视觉特征图时,包括:将所述输入视频帧输入特征提取网络,输出所述输入视频帧的视频特征;对所述视频特征在时间维度进行最大池化,得到包含多个视觉特征向量的所述视觉特征图。
在一些实施例中,所述声音分离子模块,在用于根据其中一个所述视觉特征向量和所述k个基本分量获得分离出来的预测声音频谱时,包括:将所述k个基本分量和其中一个所述视觉特征向量中的k维元素,分别相乘后加和,得到所述预测声音频谱。
在一些实施例中,所述声音分离子模块,在用于根据其中一个所述视觉特征向量和所述k个基本分量获得分离出来的预测声音频谱时,包括:将所述k个基本分量和其中一个所述视觉特征向量中的k维元素,分别相乘后加和;对加和结果进行非线性激活处理,获得预测掩模;将所述预测掩模和首次迭代时初始的输入声音频谱进行点乘,得到所述预测声音频谱。
在一些实施例中,所述声音分离子模块,在用于根据其中一个所述视觉特征向量和所述k个基本分量获得分离出来的预测声音频谱时,包括:由所述多个视觉特征向量中,随机选取一个视觉特征向量。
在一些实施例中,所述声音分离子模块,在用于根据其中一个所述视觉特征向量和所述k个基本分量获得分离出来的预测声音频谱时,包括:由所述多个视觉特征向量中,选取音量最大的声源所对应的所述视觉特征向量。
在一些实施例中,所述声音分离子模块,在用于选取音量最大的声源所对应的所述视觉特征向量时,包括:将所述多个视觉特征向量中的每一个向量,执行如下处理:所述向量与所述k个基本分量相乘,得到第一相乘结果;对非线性激活后的第一相乘结果与首次迭代的初始输入声音频谱相乘,得到第二相乘结果;求取所述第二相乘结果的平均能量;选取平均能量最大值位置对应的视觉特征向量。
在一些实施例中,所述装置还包括:频谱调整模块,用于根据所述预测声音频谱和历史累计频谱,得到余量掩模,所述历史累计频谱是当前迭代之前历次分离的预测声音频谱的加和;基于所述余量掩模和历史累计频谱,得到余量频谱;将所述余量频谱和预测声音频谱相加,得到所述完整预测声音频谱。
在一些实施例中,所述频谱更新模块,具体用于:所述输入声音频谱中去除所述完整预测声音频谱,得到更新后的输入声音频谱;所述历次预测声音频谱的加和,具体是历次完整预测声音频谱的加和。
在一些实施例中,所述频谱分离模块,在用于确定所述更新后的输入声音频谱未包含声源对应的声音频谱时,具体包括:当所述更新后的输入声音频谱的平均能量小于一个预设阈值时,确定所述输入声音频谱未包含声音频谱。
第三方面,提供一种电子设备,所述设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现本公开任一实施例所述的声音分离方法。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开任一实施例所述的声音分离方法。
本公开实施例提供的声音分离方法和装置、电子设备,通过采用迭代式分离的过程对混合声源的输入声音频谱进行频谱分离,每次迭代都分离出预测声音频谱,并将该预测声音频谱由输入声音频谱中去除后再继续下一个频谱分离,这种方式使得预测声音频谱被去除之后,能够减小这部分预测声音频谱对剩余声音的干扰,从而使得剩余声音能够随着迭代的进行而逐步的更加突出,更利于分离,从而提高了声音分离的准确度,分离效果更好。并且,该迭代式分离声音的过程,其终止条件是更新后的输入声音频谱中未包含声源声音,这种终止条件并没有限制固定的声源数量,从而使得该方法能够适用于声源个数不确定的场景,模型的泛化能力得到提高。
具体实施方式
为了使本技术领域的人员更好地理解本公开一个或多个实施例中的技术方案,下面将结合本公开一个或多个实施例中的附图,对本公开一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
本公开实施例提供一种声音分离方法,该方法可以用于将混合声源的声音频谱进行频谱分离。如图1所示,该方法可以包括如下处理:
在步骤100中,获取输入声音频谱,所述输入声音频谱中包括对应多种声源的声音频谱。
输入声音频谱可以是原始的声音文件,该声音文件例如可以是MP3、WAV等格式的文件,或者也可以是声音文件经过傅里叶变换之后的STFT(短时傅里叶变换,Short-TimeFourier-Transform)频谱。该输入声音频谱中可以包括对应多种声源的声音频谱,后续步骤可以分别将各个声源对应的声音频谱进行分离出来。上述的声源是发出声音频谱对应的声音的对象,比如,一个声音频谱对应的声源是钢琴,该声音频谱是钢琴声转化来的STFT频谱;另一个声音频谱对应的声源是小提琴,是小提琴声转化来的STFT频谱。
在步骤102中,对输入声音频谱进行频谱分离处理,由输入声音频谱中分离出预测声音频谱。
例如,本实施例的声音分离采用的是迭代式分离的过程,该迭代式分离是通过多次迭代,实现将输入声音频谱中的各个声源对应的声音频谱分离出来,并且该迭代式分离的过程是采用每次迭代分离出其中的一个声音频谱,该分离出的声音频谱可以称为预测声音频谱(也可以称为预测频谱)。该预测声音频谱可以是对应所述输入声音频谱中的其中一种声源。
本步骤可以是上述迭代式分离过程的其中一次迭代,本次迭代分离出其中中声源对应的预测声音频谱。需要说明的是,本步骤中的对输入声音频谱进行频谱分离处理的方式,本实施例不进行限制,例如,可以基于输入声音频谱对应的视频帧进行频谱分离,或者,也可以不是基于视频帧进行频谱分离,等。
在步骤104中,从所述输入声音频谱中去除所述预测声音频谱,得到更新后的输入声音频谱。
本步骤中,在开始下一次迭代之前,将本次迭代分离出的预测声音频谱由输入声音频谱中去除,这样可以减小对输入声音频谱中剩余声音频谱的干扰影响,以更好的分离剩余的声音频谱。去除本次迭代分离的预测声音频谱后,剩余的输入声音频谱即为更新后的输入声音频谱。
在步骤106中,通过更新后的输入声音频谱,继续获得下一个分离的预测声音频谱,直至更新后的输入声音频谱未包含声音频谱时,结束迭代。
本步骤可以开始下一次迭代,该下一次迭代将分离出另一个声源对应的预测声音频谱。该迭代式分离过程的终止条件是,输入声音频谱中未包含声源对应的声音频谱,比如,该输入声音频谱中只包含噪声,例如,若输入声音频谱的平均能量低于某个设定的阈值,可以认为该频谱中只包含噪声,即只包含能量很低的小的声音分量,这些小分量无意义,不需要再由输入声音频谱中进行分离,此时可以结束迭代过程。
本公开实施例提供的声音分离方法,通过采用迭代式分离的过程对混合声源的输入声音频谱进行频谱分离,使得预测声音频谱被去除之后,能够减小这部分预测声音频谱对剩余声音的干扰,从而使得剩余声音能够随着迭代的进行而逐步的更加突出,更利于分离,从而提高了声音分离的准确度,分离效果更好。并且,该迭代式分离声音的过程的终止条件并没有限制固定的声源数量,从而使得该方法能够适用于声源个数不确定的场景,模型的泛化能力得到提高。
图2示出了本公开至少一个实施例提供的一种基于视觉的声音分离方法,图3是对应图2的原理示意图。结合图2和图3来看,该方法可以是基于输入视频帧对输入声音频谱进行频谱分离。该方法可以包括如下处理,需要说明的是,如下的200/202等步骤序号不作为对步骤执行顺序的限制。
在步骤200中,获取输入声音频谱、以及该声音频谱对应的输入视频帧。
本步骤中,输入声音频谱可以是将波形形式的声音转化为声音频谱表示,例如可以是STFT(短时傅里叶变换,Short-Time Fourier-Transform)频谱。而输入视频帧中可以没有声音,只是一些画面帧。该输入视频帧是输入声音频谱对应的视频帧,并且,该输入视频帧中包含多个声源,所述输入声音频谱中的各声音频谱对应于所述输入视频帧的各声源。
在步骤202中,根据所述输入声音频谱,得到k个基本分量。
本步骤中,可以将输入声音频谱作为第一网络的输入,该第一网络的输出可以是k个基本分量,该第一网络可以对输入声音频谱进行声音特征的提取,例如第一网络具体可以是U-Net网络。其中,该k个基本分量可以分别表示输入声音频谱中的不同的声音特征。声音特征用于表示声音中的不同属性,例如声音特征可以为声音的音量大小、音调高低等。可以理解的是,不同声源产生的声音可以由相同的声音特征,同一个声源产生的声音也可以有不同的声音特征,在此不做具体限定。
在步骤204中,根据所述输入视频帧,得到视觉特征图,所述视觉特征图包括多个k维的视觉特征向量。
本实施例中,输入声音频谱和输入视频帧可以是来自同一个视频文件,该输入声音频谱中包括的多种声音频谱分别对应于不同的声源,而该多种不同的声源可以是所述输入视频帧中的声源。举例来说,一个视频帧中有一个男生在弹钢琴,一个女生在拉小提琴,钢琴和小提琴就是两个声源,而这两个声源发出的钢琴声和小提琴声对应得到的声音频谱都包括在所述输入声音频谱中。
本步骤中,可以将输入视频帧作为第二网络的输入,可以得到包括多个视觉特征向量的视觉特征图。其中,每一个视觉特征向量可以对应输入视频帧中的一个声源,并且,每个视觉特征向量可以是k维向量。此外,上述的第二网络也可以是U-Net网络。
在步骤206中,根据其中一个所述视觉特征向量和所述k个基本分量,获得一个分离出来的预测声音频谱。
在一个示例性的例子中,请结合图3的示例,可以由多个视觉特征向量中选择一个视觉特征向量,将该k维的视觉特征向量与k个基本分量进行相乘,就可以得到当前分离出来的预测声音频谱。上述的k维的视觉特征向量与k个基本分量进行相乘,是视觉特征向量的每一维元素分别与其中一个基本分量相乘,具体可以参见下面的公式(1)。该预测声音频谱的声源是所选择的那个视觉特征向量对应的声源。
例如,k个基本分量可以用如下表示
V(x,y,j)即视觉特征图,该视觉特征图是一个x*y*k的三维张量,j的取值是由1到k。
如下公式(1)示例一种根据视觉特征向量和基本分量获得预测声音频谱:
即,如上述公式(1),将所述k个基本分量
和其中一个所述视觉特征向量中的k维元素,分别相乘后加和,得到所述预测声音频谱
其中,视觉特征向量在j维度的k个元素可以分别表示每个基本分量与视频帧不同空间位置的视频内容之间的关联程度的估计值。
在另一实施方式中,还可以如下得到预测声音频谱:
首先,将所述k个基本分量和其中一个所述视觉特征向量中的k维元素,分别相乘后加和;对加和结果进行非线性激活处理,获得预测掩模。该预测掩模就是基本分量与视觉特征向量之间的运算操作得到的结果,且该结果的作用类似于用于选定对输入声音频谱中的处理对象,以分离出输入声音频谱中的预测声音频谱。如下的公式(2)示例了预测掩模M的获得:
其中,σ表示非线性激活函数,例如可以是sigmoid函数。可选的,M可以进行二值化处理,得到二值化掩模。
接着,可以将所述预测掩模和首次迭代时初始的输入声音频谱进行点乘,得到所述预测声音频谱。如下公式(3)示例了预测声音频谱的获得:需要说明的是,每次迭代该预测掩模都是与首次迭代时初始的输入声音频谱进行点乘,尽管每次迭代后都会更新输入声音频谱,但是该输入声音频谱在下一次迭代是用于生成k个基本分量,该基本分量又使得预测掩模M进行更新,而M如公式(3)所示的,每次迭代都是与初始的输入声音频谱Smix进行点乘。
公式(3)中,M是预测掩模,S
mix表示第一次迭代时首次输入的声音频谱,
表示本次迭代分离出来的预测声音频谱。
在步骤208中,所述输入声音频谱中去除所述预测声音频谱,得到更新后的输入声音频谱。
例如,请参见如下的公式(4):本次迭代后更新的输入声音频谱
可以是由本次迭代的输入声音频谱
中去除本次迭代分离的预测声音频谱
得到。
其中,
表示声音频谱之间的元素级(element-wise)的相减。
在步骤210中,判断该更新后的输入声音频谱是否包含声源对应的声音频谱。
例如,可以设置一个预设阈值,若更新后的输入声音频谱的平均能量小于该预设阈值,则表示更新后的输入声音频谱中只包含无意义的噪声或者为空。
若判断结果为否,则结束迭代,表示已经分离完视频中所有的声源声音。
若判断结果为是,则返回执行步骤202,继续根据更新后的输入声音频谱和输入视频帧,执行下一次迭代,以继续获得下一个分离的预测声音频谱。
本实施例的声音分离方法,具有如下优点:
第一、该方法是一个迭代式分离的过程,由输入声音频谱获得一个分离的预测声音频谱,再进行下一次迭代,即每次迭代都能够分离出一个预测声音频谱。并且,每次迭代获得的预测声音频谱要由输入声音频谱中去除,再开始下一次迭代。在预测声音频谱被去除之后,能够减小这部分预测声音频谱对剩余声音的干扰。例如可以先将音量大的声音分离出去,从而减少音量大的声音对音量小的声音的干扰,从而使得剩余声音能够随着迭代的进行而逐步的更加突出,更利于分离。从而提高了声音分离的准确度,分离效果更好。
第二、该迭代式分离声音的过程,其终止条件是更新后的输入声音频谱中未包含声源声音,比如输入声音频谱的平均能量小于某个阈值,这种终止条件并没有限制固定的声源数量,使得该方法能够适用于声源个数不确定的场景,模型的泛化能力得到提高。
根据上述描述的基于视觉分离声音的方法,例如可以分离一个视频中包括的多种声音,并识别出各声音对应的发声声源。示例性的,一个视频中包括两个演奏音乐的女孩,一个女孩在吹长笛,另一个女孩在拉小提琴,在这个视频中,两种乐器的声音是混合在一起的。那么,根据上述的声音分离过程可以将长笛和小提琴的声音分离开,并且能够识别出长笛的声音是与视频中的声源物体“长笛”相对应,小提琴的声音是与视频中的声源物体“小提琴”对应。
图4是本公开提供的另一种声音分离的方法,该方法对图2所示的方法进行了进一步的改进,在图2得到的预测声音频谱的基础上,又对该预测声音频谱进行调整,得到了频谱更为完整的完整预测声音频谱,使得声音分离的效果进一步提高。图5是对应图4的网络结构示意图。请结合图4和图5来看,该方法如下:
该网络结构包括两部分:减网络(Minus Network,简称M-Net)和加网络(PlusNetwork,简称P-Net),该网络的整体可以称为减-加网络(Minus-Plus Net)。
其中,M-Net的网络结构和所做的处理,可以详细参见图5。即M-Net的主要作用就是通过迭代式的过程由输入声音频谱中分离出各个声音即预测声音频谱,每次迭代可以分离出一种预测声音频谱,并且将预测声音频谱与视频帧中对应的声源关联。M-Net每次分离的预测声音频谱可以用
表示,第i次迭代获得的预测声音频谱。
对该M-Net的处理过程,本实施例还示例如下内容:
首先,请参见图5的示例,第一网络以U-Net为例,输入声音频谱通过U-Net处理后,得到k个基本分量。第二网络以特征提取网络比如ResNet(Residual Network,残差网络)18为例,输入视频帧通过ResNet18的处理后,该ResNet18可以输出输入视频帧的视频特征。对该视频特征可以在时间维度进行最大池化,得到包含多个视觉特征向量的视觉特征图。该视觉特征是具有时间维度特性的特征,可以将该视觉特征在时间维度上进行取最大值的池化处理。
其次,预测声音频谱的获得在图5中以输入声音频谱与预测掩模点乘得到为例。
再次,在根据其中一个视觉特征向量和k个基本分量获得预测声音频谱时,该视觉特征向量的选择也可以有多种方式。
例如,可以由视觉特征图中包括的多个视觉特征向量中,随机选取一个视觉特征向量用于生成预测声音频谱。
又例如,还可以是选取输入声音频谱中音量最大的那个声源对应的视觉特征向量。可选的,该最大音量对应的视觉特征向量可以根据公式(5)得到:
如上述公式(5),视觉特征图中的每一个视觉特征向量,都分别做如下处理:该向量与所述k个基本分量相乘,得到第一相乘结果
对该第一相乘结果进行非线性激活处理后,并与首次迭代的初始输入声音频谱S
mix相乘,得到第二相乘结果;再对该第二相乘结果求取平均能量。然后,每一个视觉特征向量都进行上述处理后,选取平均能量最大值对应的那个视觉特征向量的坐标。简单说,这个过程就是在选取振幅最大的那个音量。其中,E(.)表示括号内内容的平均能量,(x
*,y
*)即预测声音频谱对应的声源的位置,该向量的视频内容即预测声音频谱对应的视频特征。
即M-Net的迭代分离过程,可以在每次迭代时都选择去分离最大音量的声音,按照音量由大到小的顺序将其中的各个声音分离出来。采取这种顺序的好处包括:随着音量大的声音分量被逐渐去除,输入声音频谱中的音量较小的分量就会逐渐凸显,从而有助于将音量较小的声音分量较好的分离出来。
此外,本实施例中,M-Net在获得预测声音频谱后,还可以通过P-Net对预测声音频谱进行完善调整,以将之前历次迭代中去除的那些声音以及本次迭代获得的声音所共享的一些声音成分进行补充,从而使得本次迭代的分离声音的频谱更加完整。请参见图5所示,其中的历史累计频谱是当前迭代之前的历次完整预测声音频谱的加和,比如,若本次迭代是第一次迭代,那么可以设历史累计频谱是0;第一次迭代结束后,P-Net将输出一个完整预测声音频谱,那等第二次迭代时使用的历史累计频谱就是“0+第一次迭代得到的完整预测声音频谱”。
请继续参见图5和图4,加网络所做的处理包括如下:
在步骤400中,预测声音频谱和历史累计频谱拼接,并输入第三网络。
预测声音频谱和历史累计频谱在拼接(Concatenate)后,可以作为第三网络的输入。例如,该第三网络也可以是一个U-Net网络。
在步骤402中,通过第三网络输出,得到余量掩模。
第三网络输出后经过sigmoid函数非线性激活,就可以得到余量掩模。
在步骤404中,基于所述余量掩模和历史累计频谱,得到余量频谱。
例如,如下的公式(6),余量掩模M
r与历史累计频谱
点乘,可以得到余量频谱
在步骤406中,将所述余量频谱和预测声音频谱相加,得到当前迭代输出的完整预测声音频谱。
例如,如下的公式(7)示出该过程,最终得到了完整预测声音频谱
当然,该完整预测声音频谱(也可以称为完整预测频谱)可以结合其对应的相位信息,通过逆短时傅里叶变换,即可得到当前分离出来的声音波形。
此外,本实施例中,本次迭代输出的完整预测声音频谱将从本次迭代的输入声音频谱中去除,得到更新后的输入声音频谱;该更新后的输入声音频谱作为下一次迭代的输入声音频谱。并且,本次迭代的完整预测声音频谱也将被累加至图5中的历史累计频谱,该更新后的历史累计频谱参与下一次迭代。
可选的,在其他的实施方式中,所述历史累计频谱还可以是当前迭代之前的历次预测声音频谱的加和,该预测声音频谱是指减网络M-Net分离出的预测声音频谱。在更新输入声音频谱时,也可以是由本次迭代的输入声音频谱中去除本次迭代分离出的预测声音频谱
本实施例的声音分离方法,不仅可以通过迭代式分离过程使得输入声音频谱中的各种音量的声音逐渐凸显,从而得到更好的分离效果;而且还通过增加了加网络的处理,使得最终得到的完整预测声音频谱更加完整,频谱质量更高。
介绍对于该减-加网络(Minus-Plus Net)的训练过程:
关于训练样本的获得:
为了获得混合声音中每个声音分量的真实值,可以随机选取N个只包含单个声音的视频,然后将这N个声音的波形直接相加求平均,把这个平均值作为混合声,那些单个声音就是混合声中每个声音分量的真实值。而对于输入视频帧,可以直接拼接,也可以对单个视频帧做空间-时间池化,得到一个k维向量,总共可以得到N个视觉特征向量。
另外,这种单声混合得到的视频的制作数量,可以是足够模型训练的数量。
关于训练方法:
例如,以图5所示的减-加网络为例,该减-加网络涉及到如下几个网络:第一网络、第二网络和第三网络。训练过程就可以调整这三个网络中的至少任一网络的网络参数,比如可以调整三个网络的网路参数,或者也可以调整其中某一个网络的网络参数。
比如,单声混合得到的视频中共有N种声音,那么训练过程就进行N次迭代预测。训练阶段时的声音分离过程可以参见上述任一实施例的声音分离方法,不再详述。每一次迭代都能够分离出一种声音,得到完整预测声音频谱。
示例性的,训练过程使用的损失函数可以包括第一损失函数和第二损失函数。例如,每次迭代的第一损失函数,可以是用于衡量预测掩模与余量掩模(M+Mr)的真实值和预测值之间的误差。比如,当掩模采用二值化掩模时,可以使用二值化交叉熵损失函数。此外,当N次迭代都执行完后,可以再使用一个第二损失函数,来用于衡量最后一次迭代完后更新的输入声音频谱与空的声音频谱之间的误差。一个包含N个声音的单声混合视频可以是一个训练样本,多个样本一起组成一个batch。
一个样本的N次迭代结束之后进行一次反向传播。当一个单声混合得到的视频进行N次迭代结束后,可以综合上述提到的第一损失函数和第二损失函数,进行反向传播,调整第一网络、第二网络和第三网络。接着,继续通过下一个单声混合得到的视频对模型参数进行训练调整,直至小于预定的误差阈值或者达到预设的迭代次数。
此外,图5所示的减-加网络的训练可以分为三步:第一步,单独训练M-Net,第二步,在固定M-Net参数的情况下单独训练P-Net,第三步,对M-Net和P-Net进行联合训练。当然,也可以是只通过M-Net和P-Net联合的方式训练。
若声音分离采用的网络是只有一个减网络,没有加网络时,可以采用同上述类似的方法,对减网络中的第一网络和第二网络的网络参数进行调整。
图6提供一个实施例中的声音分离装置的结构示意图,该装置可以执行本公开任一实施例的声音分离方法。如下的实施例对装置部分简单描述,该装置各个模块的执行步骤详细可以结合参见方法实施例部分。如图6所示,该装置可以包括:输入获取模块61、频谱分离模块62和频谱更新模块63。
输入获取模块61,用于获取输入声音频谱,所述输入声音频谱中包括对应多种声源的声音频谱;
频谱分离模块62,用于对所述输入声音频谱进行频谱分离处理,由所述输入声音频谱中分离出一个预测声音频谱,所述预测声音频谱对应所述输入声音频谱中的其中一种声源;还用于通过更新后的输入声音频谱,继续获得下一个分离的预测声音频谱,直至更新后的输入声音频谱未包含声源对应的声音频谱时结束迭代;
频谱更新模块63,用于从所述输入声音频谱中去除所述预测声音频谱,得到所述更新后的输入声音频谱。
在一个实施例中,如图7所示,该装置的频谱分离模块62可以包括:视频处理子模块621和声音分离子模块622。
视频处理子模块621,用于获取所述输入声音频谱对应的输入视频帧,其中,所述输入视频帧中包含多个声源,所述输入声音频谱中的各声音频谱对应于所述输入视频帧的各声源;
声音分离子模块622,用于根据所述输入视频帧对所述输入声音频谱进行频谱分离处理,由所述输入声音频谱中分离出一个预测声音频谱。
在一个实施例中,所述视频处理子模块621,用于根据所述输入视频帧,得到视觉特征图,所述视觉特征图包括多个k维的视觉特征向量,每个视觉特征向量对应所述输入视频帧中的一个声源;
所述声音分离子模块622,具体用于:根据所述输入声音频谱得到k个基本分量,所述k个基本分量分别表示所述输入声音频谱中的不同声音特征,所述k为自然数;以及根据其中一个所述视觉特征向量和所述k个基本分量,获得一个分离出来的预测声音频谱,所述预测声音频谱的声源是所述视觉特征向量对应的声源。
在一个实施例中,所述视频处理子模块621,在用于根据所述输入视频帧得到视觉特征图时,包括:将所述输入视频帧输入特征提取网络,输出所述输入视频帧的视频特征;对所述视频特征在时间维度进行最大池化,得到包含多个视觉特征向量的所述视觉特征图。
在一个实施例中,所述声音分离子模块622,在用于根据其中一个所述视觉特征向量和所述k个基本分量获得一个分离出来的预测声音频谱时,包括:将所述k个基本分量和其中一个所述视觉特征向量中的k维元素,分别相乘后加和,得到所述预测声音频谱。
在一个实施例中,声音分离子模块622,在用于根据其中一个所述视觉特征向量和所述k个基本分量获得一个分离出来的预测声音频谱时,包括:将所述k个基本分量和其中一个所述视觉特征向量中的k维元素,分别相乘后加和;对加和结果进行非线性激活处理,获得预测掩模;将所述预测掩模和首次迭代时初始的输入声音频谱进行点乘,得到所述预测声音频谱。
在一个实施例中,所述声音分离子模块622,在用于根据其中一个所述视觉特征向量和所述k个基本分量获得一个分离出来的预测声音频谱时,包括:由所述多个视觉特征向量中,随机选取一个视觉特征向量。
在一个实施例中,所述声音分离子模块622,在用于根据其中一个所述视觉特征向量和所述k个基本分量获得一个分离出来的预测声音频谱时,包括:由所述多个视觉特征向量中,选取音量最大的声源所对应的所述视觉特征向量。
在一个实施例中,所述声音分离子模块622,在用于选取音量最大的声源所对应的所述视觉特征向量时,包括:将所述多个视觉特征向量中的每一个向量,执行如下处理:所述向量与所述k个基本分量相乘,得到第一相乘结果;对非线性激活后的第一相乘结果与首次迭代的初始输入声音频谱相乘,得到第二相乘结果;求取所述第二相乘结果的平均能量;选取平均能量最大值位置对应的视觉特征向量。
在一个实施例中,如图8所示,该装置还可以包括:频谱调整模块64,用于根据所述预测声音频谱和历史累计频谱,得到余量掩模,所述历史累计频谱是当前迭代之前历次分离的预测声音频谱的加和;基于所述余量掩模和历史累计频谱,得到余量频谱;将所述余量频谱和预测声音频谱相加,得到所述完整预测声音频谱。
在一个实施例中,所述频谱调整模块64,具体用于:所述输入声音频谱中去除所述完整预测声音频谱,得到更新后的输入声音频谱;所述历次预测声音频谱的加和,具体是历次完整预测声音频谱的加和。
在一个实施例中,所述频谱分离模块62,在用于确定所述更新后的输入声音频谱未包含声源对应的声音频谱时,具体包括:当所述更新后的输入声音频谱的平均能量小于一个预设阈值时,确定所述输入声音频谱未包含声源对应的声音频谱。
本公开实施例还提供了一种电子设备,该设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现本公开任一实施例的声音分离方法。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开任一实施例所述的声音分离方法。
本领域技术人员应明白,本公开一个或多个实施例可提供为方法、***或计算机程序产品。因此,本公开一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开实施例还提供一种计算机可读存储介质,该存储介质上可以存储有计算机程序,所述程序被处理器执行时实现本公开任一实施例描述的用于文字识别的神经网络的训练方法的步骤,和/或,实现本公开任一实施例描述的文字识别方法的步骤。其中,所述的“和/或”表示至少具有两者中的其中一个,例如,“多和/或B”包括三种方案:多、B、以及“多和B”。
本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本公开中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本公开中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本公开中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本公开中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPG多(现场可编程门阵列)或多SIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PD多)、移动音频或视频播放器、游戏操纵台、全球定位***(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本公开包含许多具体实施细节,但是这些不应被解释为限制任何公开的范围或所要求保护的范围,而是主要用于描述特定公开的具体实施例的特征。本公开内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种***模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和***通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本公开一个或多个实施例的较佳实施例而已,并不用以限制本公开一个或多个实施例,凡在本公开一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开一个或多个实施例保护的范围之内。