一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

语音盲水印注入方法、装置、设备及存储介质与流程

2021-06-22 17:08:00 来源:中国专利 TAG:水印 注入 语音 装置 计算机
语音盲水印注入方法、装置、设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种语音盲水印注入方法、装置、设备及存储介质。



背景技术:

由于深度学习的发展,个人版权的保护变得越来越重要。语音版权的保护面临巨大挑战。

在商业应用中,常常需要保护语音的版权,并且需要确定语音版权的来源,一个未经过加水印的语音,一旦被盗用,常常难以进行追查。水印中的信息常常需要加密,没有经过加密的信息,很容易被盗窃者利用,信息安全的保密也面临着挑战。在有大量语音需要加水印时,一个高效的语音加密算法,可以更好的保证商业应用。现有的语音水印注入方法,一般为基于频谱或能量谱的水印注入,这种传统的方法有可能通过逆向工程,反推出原有水印并去除。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种语音盲水印注入方法、装置、设备及存储介质,旨在解决现有的语音水印注入方法生成的带有水印的语音,可以通过逆向工程反推出原有水印并去除的技术问题。

为实现上述目的,本发明提供了一种语音盲水印注入方法,所述方法包括以下步骤:

对待处理语音进行预处理,得到多个预设长度的语音段;

根据预设编码策略对待处理水印进行编码,得到初始水印编码;

根据所述预设长度对所述初始水印编码进行标准化处理,得到处理后的水印编码;

将所述语音段以及所述水印编码输入至训练好的预设神经网络,得到注入水印的语音段;

对所述注入水印的语音段进行后处理,得到注入水印的音频。

可选地,所述将所述语音段以及所述水印编码输入至训练好的预设神经网络,得到注入水印的语音段之前,所述方法还包括:

对样本语音集中的样本语音进行预处理,得到各样本语音对应的多个预设长度的样本语音段;

根据预设编码策略对样本水印进行编码,得到初始样本水印编码;

根据所述预设长度对所述初始样本水印编码进行标准化处理,得到处理后的样本水印编码;

将所述样本语音段以及所述样本水印编码输入至预设神经网络,获取所述预设神经网络的损失值;

当所述损失值小于或者等于预设损失阈值时,得到训练好的预设神经网络。

可选地,所述预设神经网络至少包括:加密层、变分编码器以及解密层;

所述将所述样本语音段以及所述样本水印编码输入至预设神经网络,获取所述预设神经网络的损失值,包括:

将所述样本语音段以及所述样本水印编码输入至所述加密层,得到注入水印的样本语音段;

将所述注入水印的样本语音段输入至所述变分编码器,获取所述变分编码器对应的均值和方差;

将所述注入水印的样本语音段输入至所述解密层,得到对应的复原语音段以及复原水印编码;

根据所述样本语音段、所述样本水印编码、所述注入水印的样本语音段、所述均值、所述方差、所述复原语音段以及所述复原水印编码确定所述预设神经网络的损失值。

可选地,所述根据所述样本语音段、所述样本水印编码、所述注入水印的样本语音段、所述均值、所述方差、所述复原语音段以及所述复原水印编码确定所述预设神经网络的损失值,包括:

根据所述样本语音段与所述注入水印的样本语音段确定第一距离;

根据所述样本水印编码与所述复原水印编码确定第二距离;

根据所述样本语音段与所述复原语音段确定第三距离;

根据所述均值以及所述方差确定与正态分布之间的第四距离;

根据所述第一距离、所述第二距离、所述第三距离以及所述第四距离确定所述预设神经网络的损失值。

可选地,所述对待处理语音进行预处理,得到多个预设长度的语音段,包括:

按照预设长度对所述待处理语音进行分割,得到分割后的待处理语音;

判断所述分割后的待处理语音的长度是否达到所述预设长度;

在所述分割后的待处理语音的长度未达到所述预设长度时,对所述分割后的待处理语音进行赘语填充,得到多个预设长度的语音段;

相应地,所述对所述注入水印的语音段进行后处理,得到注入水印的音频,包括:

对所述注入水印的语音段进行拼接以及赘语清除,得到注入水印的音频。

可选地,所述根据所述预设长度对所述初始水印编码进行标准化处理,得到处理后的水印编码,包括:

在所述初始水印编码中加入起始编码,得到起始水印编码;

根据所述预设长度将所述起始水印编码循环预设次数,得到循环后的目标水印编码;

在所述目标水印编码的长度大于所述预设长度时,根据所述预设长度对所述目标水印编码进行截取,以得到处理后的水印编码;

在所述目标水印编码的长度小于所述预设长度时,添加赘语,以得到处理后的水印编码。

可选地,所述对所述注入水印的语音段进行后处理,得到注入水印的音频之后,所述方法还包括:

将多个包含水印的语音段输入至所述预设神经网络,得到解码后的原语音段以及原水印编码;

对所述原语音段进行拼接以及赘语清除,得到原语音;

搜索所述原水印编码中的起始位置,根据所述预设编码策略进行反向解码,得到原水印。

此外,为实现上述目的,本发明还提出一种语音盲水印注入装置,所述语音盲水印注入装置包括:

预处理模块,用于对待处理语音进行预处理,得到多个预设长度的语音段;

编码模块,用于根据预设编码策略对待处理水印进行编码,得到初始水印编码;

标准化处理模块,用于根据所述预设长度对所述初始水印编码进行标准化处理,得到处理后的水印编码;

水印注入模块,用于将所述语音段以及所述水印编码输入至训练好的预设神经网络,得到注入水印的语音段;

后处理模块,用于对所述注入水印的语音段进行后处理,得到注入水印的音频。

此外,为实现上述目的,本发明还提出一种语音盲水印注入设备,所述语音盲水印注入设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的语音盲水印注入程序,所述语音盲水印注入程序配置为实现如上文所述的语音盲水印注入方法的步骤。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有语音盲水印注入程序,所述语音盲水印注入程序被处理器执行时实现如上文所述的语音盲水印注入方法的步骤。

本发明通过对待处理语音进行预处理,得到多个预设长度的语音段;根据预设编码策略对待处理水印进行编码,得到初始水印编码;根据预设长度对初始水印编码进行标准化处理,得到处理后的水印编码;将语音段以及水印编码输入至训练好的预设神经网络,得到注入水印的语音段;对注入水印的语音段进行后处理,得到注入水印的音频。通过预设神经网络在语音中添加水印编码,得到注入水印的音频,保护了语音的版权;并且通过预设编码策略对水印进行了编码,防止信息被盗窃者利用,且保证了水印的隐蔽性;通过本申请提出的方法进行语音水印注入,只要窃取方在没有获取模型的情况下,可以保证水印以及敏感信息不被侦测到,不能通过逆向工程反推出水印并去除,解决了现有的语音水印注入方法生成的带有水印的语音,可以通过逆向工程反推出原有水印并去除的技术问题。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的语音盲水印注入设备的结构示意图;

图2为本发明语音盲水印注入方法第一实施例的流程示意图;

图3为本发明语音盲水印注入方法第二实施例的流程示意图;

图4为本发明语音盲水印注入方法一实施例的预设神经网络结构示意图;

图5为本发明语音盲水印注入方法一实施例的盲水印注入示意图;

图6为本发明语音盲水印注入方法第三实施例的流程示意图;

图7为本发明语音盲水印注入方法一实施例的盲水印提取示意图;

图8为本发明语音盲水印注入装置第一实施例的结构框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的语音盲水印注入设备结构示意图。

如图1所示,该语音盲水印注入设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(randomaccessmemory,ram)存储器,也可以是稳定的非易失性存储器(non-volatilememory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对语音盲水印注入设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及语音盲水印注入程序。

在图1所示的语音盲水印注入设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明语音盲水印注入设备中的处理器1001、存储器1005可以设置在语音盲水印注入设备中,所述语音盲水印注入设备通过处理器1001调用存储器1005中存储的语音盲水印注入程序,并执行本发明实施例提供的语音盲水印注入方法。

本发明实施例提供了一种语音盲水印注入方法,参照图2,图2为本发明语音盲水印注入方法第一实施例的流程示意图。

本实施例中,所述语音盲水印注入方法包括以下步骤:

步骤s10:对待处理语音进行预处理,得到多个预设长度的语音段。

可以理解的是,本实施例的执行主体为语音盲水印注入设备,所述语音盲水印注入设备可以为计算机、服务器、云端服务器、虚拟机以及移动终端等设备,也可以为其他功能相同或相似的设备,本实施例对此不加以限制。

需要说明的是,预设长度可以由用户提前设置,预设长度可以表征语音段的帧数,也可以表征语音的二进制形式长度,待处理语音可以为以二进制形式存储的数字语音信号。一个待处理语音分段后对应多个预设长度的语音段,例如,待处理语音为9帧,预设长度为3帧,对待处理语音进行处理,得到3个长度为3帧的语音段;待处理语音为2000长度的二进制比特串,预设长度为50,对待处理语音进行处理,得到40个长度为50的二进制语音段。

具体地,为了得到多个长度一致的语音段,所述步骤s10,包括:按照预设长度对所述待处理语音进行分割,得到分割后的待处理语音;判断所述分割后的待处理语音的长度是否达到所述预设长度;在所述分割后的待处理语音的长度未达到所述预设长度时,对所述分割后的待处理语音进行赘语填充,得到多个预设长度的语音段。

在具体实现中,待处理语音的长度不一定是预设长度的倍数,因此,设置预处理方式,对待处理语音进行预处理,使得多个语音段的长度一致,且长度为预设长度,具体方式为:先按照预设长度对待处理语音进行分割,如果分割完成后,多个语音段的长度都为预设长度,则直接将这些语音段作为处理得到的语音段,如果多个语音段的长度不是都为预设长度,一般是最后分割出来的语音段长度不足预设长度,此时,对这一长度不足的语音段进行赘语填充,从而得到多个预设长度的语音段。

可以理解的是,对分割后的待处理语音进行赘语填充的过程可以为对长度不足预设长度的语音段用padding'0'填充。

步骤s20:根据预设编码策略对待处理水印进行编码,得到初始水印编码。

需要说明的是,预设编码策略可以为转为ascii码,也可以为将文字转换通过机器语音转换为语音帧,例如,待处理水印为英文字母,对待处理水印采用转为ascii码的编码策略进行编码,从而得到待处理水印对应的ascii码,即为初始水印编码。

步骤s30:根据所述预设长度对所述初始水印编码进行标准化处理,得到处理后的水印编码。

可以理解的是,标准化处理可以为将水印编辑成预设长度,例如,对水印进行编辑,在长度达不到预设长度时,进行赘语填充,在长度超过预设长度时,进行截取。

具体地,为了使后续水印添加过程中不需对水印进行重新编辑,对水印进行量化以及标准化,从而在大量语音需要加水印时,能够高效进行,所述步骤s30,包括:在所述初始水印编码中加入起始编码,得到起始水印编码;根据所述预设长度将所述起始水印编码循环预设次数,得到循环后的目标水印编码;在所述目标水印编码的长度大于所述预设长度时,根据所述预设长度对所述目标水印编码进行截取,以得到处理后的水印编码;在所述目标水印编码的长度小于所述预设长度时,添加赘语,以得到处理后的水印编码。

需要说明的是,起始编码为全局唯一编码,例如“0000”,用于识别起始位置,在初始水印编码的起始处加入一段起始编码,并将整段水印编码重复数次,使之与预设长度一致,若不一致则截断,不足部分以"0"做填充,该过程主要是为了将不同形式的水印进行量化和标准化处理,预设次数根据预设长度决定,例如,预设长度为50字节,整段水印编码的长度为6,预设次数即为8或者9,在预设次数为8时,对长度未达到预设长度的水印编码进行赘语填充,在预设次数为9时,对长度超过预设长度的水印编码进行截取。

步骤s40:将所述语音段以及所述水印编码输入至训练好的预设神经网络,得到注入水印的语音段。

可以理解的是,预设神经网络可以为深度混合密度网络(dmdn),也可以为深度双向长短时记忆网络(dblstm-rnn),也可以为其他神经网络模型。将语音段以及水印编码输入至训练好的预设神经网络,从而对语音进行合成,得到注入水印的语音段。

需要说明的是,预设神经网络优选地包括encoder(加密层)、vae(变分编码器)和decoder(解密层),其中编码器由mlp(多层感知器)以及wavenet组成,其中mlp为骨干网络,由多层全连接层、标准化层和激活层组成,解码器由vae、wavenet以及mlp构成。注入水印的语音段由编码器输出。

步骤s50:对所述注入水印的语音段进行后处理,得到注入水印的音频。

需要说明的是,由于对待处理语音进行了预处理,得到了多个预设长度的语音段,分别输入至预设神经网络,因此,得到了多个注入水印的语音段,对编码器输出的参数进行后处理,后处理可以包括将多个语音段依次采集以及拼接,从而得到注入水印的音频。

具体地,为了对预处理包括分割以及赘语填充的注入水印的语音段进行处理,所述步骤s50,包括:对所述注入水印的语音段进行拼接以及赘语清除,得到注入水印的音频。

可以理解的是,赘语清除为对拼接后的语音中的填充的padding'0'进行清除,从而得到更精确的注入水印的音频。

本实施例通过对待处理语音进行预处理,得到多个预设长度的语音段;根据预设编码策略对待处理水印进行编码,得到初始水印编码;根据预设长度对初始水印编码进行标准化处理,得到处理后的水印编码;将语音段以及水印编码输入至训练好的预设神经网络,得到注入水印的语音段;对注入水印的语音段进行后处理,得到注入水印的音频。通过预设神经网络在语音中添加水印编码,得到注入水印的音频,保护了语音的版权;并且通过预设编码策略对水印进行了编码,防止信息被盗窃者利用,且保证了水印的隐蔽性;通过本实施例提出的方法进行语音水印注入,只要窃取方在没有获取模型的情况下,可以保证水印以及敏感信息不被侦测到,不能通过逆向工程反推出水印并去除,解决了现有的语音水印注入方法生成的带有水印的语音,可以通过逆向工程反推出原有水印并去除的技术问题。

参考图3,图3为本发明语音盲水印注入方法第二实施例的流程示意图。

基于上述第一实施例,本实施例语音盲水印注入方法在所述步骤s40之前,还包括:

步骤s401:对样本语音集中的样本语音进行预处理,得到各样本语音对应的多个预设长度的样本语音段。

可以理解的是,预设长度可以由用户提前设置,样本语音集可以为人工录入的语音集,也可以采用现有的网络语音集。预处理可以包括:语音分割以及赘语填充,对样本语音集中的多个样本语音进行语音分割以及赘语填充,得到多个样本语音对应的长度一致的样本语音段。

步骤s402:根据预设编码策略对样本水印进行编码,得到初始样本水印编码。

需要说明的是,预设编码策略可以为转为ascii码,也可以为将文字转换通过机器语音转换为语音帧,例如,样本水印为英文字母,对样本水印采用转为ascii码的编码策略进行编码,从而得到样本水印对应的ascii码,即为初始样本水印编码。

步骤s403:根据所述预设长度对所述初始样本水印编码进行标准化处理,得到处理后的样本水印编码。

需要说明的是,标准化处理包括:在初始样本水印编码中加入起始编码,将整段编码重复循环数次,得到循环后的目标样本水印编码,在目标样本水印编码的长度大于预设长度时,根据预设长度对目标样本水印编码进行截取,以得到处理后的样本水印编码;在目标样本水印编码的长度小于预设长度时,添加赘语,以得到处理后的样本水印编码。

步骤s404:将所述样本语音段以及所述样本水印编码输入至预设神经网络,获取所述预设神经网络的损失值。

具体地,所述预设神经网络至少包括:加密层、变分编码器以及解密层;

参照图4,图4为本发明语音盲水印注入方法一实施例的预设神经网络结构示意图;根据图4可知,虚线为各层输出,用于训练损失函数,采用mlp作为骨干网络,采用wavenet作为语音编码和解码的方式,并用变分编码器泛化模型。预设神经网络包括编码器以及解码器,编码器由mlp(多层感知器)以及wavenet组成,解码器由vae、wavenet以及mlp组成,其中mlp为骨干网络,由多层全连接层、标准化层和激活层组成。

具体地,在预设神经网络至少包括:加密层、变分编码器以及解密层时,所述步骤s404,包括:将所述样本语音段以及所述样本水印编码输入至所述加密层,得到注入水印的样本语音段;将所述注入水印的样本语音段输入至所述变分编码器,获取所述变分编码器对应的均值和方差;将所述注入水印的样本语音段输入至所述解密层,得到对应的复原语音段以及复原水印编码;根据所述样本语音段、所述样本水印编码、所述注入水印的样本语音段、所述均值、所述方差、所述复原语音段以及所述复原水印编码确定所述预设神经网络的损失值。

其中编码器分别将样本语音段v和样本水印编码l送入mlp(主干网络)后,将输出送入wavenet中进一步编码,之后得到注入水印的样本语音段v'。

其中解码器中的vae为变分编码器,由于训练数据的不连续性,vae用于填充不连续的空间。通过wavenet以及mlp恢复出语音v”与水印l”。

参照图5,图5为本发明语音盲水印注入方法一实施例的盲水印注入示意图,在使用如图5所示的预设神经网络中的编码器进行盲水印的注入时,将裁剪后的语音段和水印编码分别送入编码器,可以得到注入盲水印的语音,将所有语音段进行拼接得到完整的注入水印的语音,之后将语音中末尾的padding去掉,从而得到注入水印的音频。

进一步地,为了保证注入水印后保持原有语音的音质、解码后语音和水印与原语音以及原水印尽量一致,所述根据所述样本语音段、所述样本水印编码、所述注入水印的样本语音段、所述均值、所述方差、所述复原语音段以及所述复原水印编码确定所述预设神经网络的损失值,包括:根据所述样本语音段与所述注入水印的样本语音段确定第一距离;根据所述样本水印编码与所述复原水印编码确定第二距离;根据所述样本语音段与所述复原语音段确定第三距离;根据所述均值以及所述方差确定与正态分布之间的第四距离;根据所述第一距离、所述第二距离、所述第三距离以及所述第四距离确定所述预设神经网络的损失值。

可以理解的是,训练期望是注入水印的语音段v'和原语音v的距离尽量的接近,以保证注入水印的语音段保持原有语音的音质;复原语音段v”与原语音v的距离尽量的接近,以保证解码后的语音与原语音一致;复原水印l”与原水印l的距离尽量的接近,以保证解码后的水印与原水印一致;通过变分编码器使隐含向量遵循标准正态分布,保证预设神经网络模型的准确性。因此,在训练模型时,计算注入水印的语音段v'和原语音v的第一距离、复原水印l”与原水印l的第二距离、复原语音段v”与原语音v的距离的第三距离以及变分编码对应的均值以及方差与正态分布之间的第四距离,根据第一距离、第二距离、第三距离以及第四距离构成损失函数,最小化损失函数,并采用优化器对模型的参数进行训练。优化器一般可采用sgd(stochasticgradientdescent,随机梯度下降),也可以采用其他方式,本实施例对此不加以限制。

需要说明的是,损失函数如公式(1)所示:

loss=kl(μ,σ2||n(0,i)) dist(v,v') dist(l,l”) dist(v,v”)公式(1)

其中,kl为散度,用于计算两个分布间的距离,kl(μ,σ2||n(0,i))用于使vae中的μ、σ2尽量接近正态分布。dist(a,a')用于计算两个变量间的距离,可以采用欧式距离,此时,dist(a,a')=(a-a')2,μ为服从正态分布的随机变量的均值,σ2为方差,v为样本语音段,v'为注入水印的样本语音段,l为样本水印编码,l”为复原水印编码,v”为复原语音段。

其中,kl散度的计算公式如公式(2)所示:

kl(μ,σ2||n(0,i))=-log(σ2) σ2 μ2-1公式(2)

应当理解的是,最小化损失函数可以理解为最小化第一距离、第二距离、第三距离以及第四距离,从而尽量使注入水印后的语音保留原有音质,并使解码后的语音与原语音相似,解码后的水印和原水印尽量相似。

步骤s405:当所述损失值小于或者等于预设损失阈值时,得到训练好的预设神经网络。

可以理解的是,当所述损失值大于预设损失阈值时,调整各网络层对应的权重,经过多次训练,直到所述损失值小于或者等于预设损失阈值,从而得到训练好的预设神经网络。预设损失阈值为最小值,可以设置为0,也可以设置为其他训练模型参数的最小值,本实施例对此不加以限制。

本实施例通过样本语音集对预设神经网络进行训练,得到预设神经网络的损失函数,最小化损失函数,也就是当损失值小于或者等于预设损失阈值时,得到训练好的预设神经网络,根据训练好的预设神经网络对语音段以及水印进行编码,从而得到注入水印的语音段,保护了语音的版权,只要窃取方在没有获取到预设神经网络的模型的情况下,可以保证水印以及敏感信息不被侦测到,不能通过逆向工程反推出水印并去除,解决了现有的语音水印注入方法生成的带有水印的语音,可以通过逆向工程反推出原有水印并去除的技术问题。

参考图6,图6为本发明语音盲水印注入方法第三实施例的流程示意图。

基于上述第一实施例,本实施例语音盲水印注入方法在所述步骤s50之后,还包括:

步骤s501:将多个包含水印的语音段输入至所述预设神经网络,得到解码后的原语音段以及原水印编码。

可以理解的是,多个包含水印的语音段可以为预设神经网络模型中编码层输出的注入水印的语音段,也可以为根据获取到的包含水印的语音进行分割以及赘语填充得到的,例如,语音盲水印注入设备通过网络获取到包含水印的语音,对该语音进行分割以及赘语填充,得到多个预设长度的包含水印的语音段。

需要说明的是,参照图4,预设神经网络的解码器对包含水印的语音段进行解码,得到对应的原语音段以及原水印编码,多个包含水印的语音段对应多个原语音段以及原水印编码。

步骤s502:对所述原语音段进行拼接以及赘语清除,得到原语音。

可以理解的是,将通过解码器得到的多个原语音段进行拼接,在具体实现中,可以对同一条语音的分割出的多个语音段进行编号,依次输入至预设神经网络模型,在拼接时,按照顺序依次拼接,赘语清除为对拼接后的语音中的填充的padding'0'进行清除,从而得到去除水印后的原语音。

步骤s503:搜索所述原水印编码中的起始位置,根据所述预设编码策略进行反向解码,得到原水印。

可以理解的是,对编码器所生成的包含水印的语音段进行解码,得到的原水印编码中包含预先加入的起始编码,预先在水印的头部加入起始编码,便于解码阶段定位到起始点。

参照图7,图7为本发明语音盲水印注入方法一实施例的盲水印提取示意图,在使用如图7所示的预设神经网络中的解码器进行盲水印的提取时,将注入水印的语音v'送入解码器后,得到恢复后的水印l”和恢复后的语音v”。采用hamming距离(不局限于hamming距离)在l”中搜索编码起始编码,然后通过预设编码策略反推出原有水印,如,ascii码可直接查询ascii码表,反推出原文。

具体地,由于恢复的水印编码可能含有噪声,在根据所述预设编码策略进行反向解码之后,所述方法还包括:对解码得到的多个重复的原水印进行投票,选择重复次数最多的水印作为最终结果。

可以理解的是,采用公式(3)在l”中搜索编码起始编码:

其中,a、b分别为两个等长的字符串,^为异或。

需要说明的是,在一实施例中,使用训练好的预设神经网络对语音进行注入水印的过程可以描述为:

步骤1:对语音进行切片,将语音分割成固定长度的语音段,长度不足的填充padding。

步骤2:对水印进行编码,加入起始编码s,将整段编码重复若干次,使之与语音等长,若不一致,则截断。

步骤3:将语音和水印编码送入编码器,对语音进行盲水印注入可得到注入盲水印的语音。

步骤4:用解码器对注入盲水印的语音进行解码,得到解码后的语音段以及水印编码,将输出的语音段进行拼接,去掉末尾填充的padding,得到最后的语音结果,搜索水印编码的起始位置,反向解码,获得水印。

本实施例通过将多个包含水印的语音段输入至预设神经网络,得到解码后的原语音段以及原水印编码,对原语音段进行拼接以及赘语清除,得到原语音,搜索原水印编码中的起始位置,根据预设编码策略进行反向解码,得到原水印,本实施例提供对包含水印的语音进行解码的方法,从而在音频传播过程中,在接收方拥有相同神经网络模型,发送方向接收方发送预设编码策略的情况下,接收方可以对水印进行清除,获取原语音以及水印中包含的信息,水印的去除不能通过逆向工程反推,解决了现有的语音水印注入方法生成的带有水印的语音,可以通过逆向工程反推出原有水印并去除的技术问题。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有语音盲水印注入程序,所述语音盲水印注入程序被处理器执行时实现如上文所述的语音盲水印注入方法的步骤。

参照图8,图8为本发明语音盲水印注入装置第一实施例的结构框图。

如图8所示,本发明实施例提出的语音盲水印注入装置包括:

预处理模块10,用于对待处理语音进行预处理,得到多个预设长度的语音段;

需要说明的是,预设长度可以由用户提前设置,预设长度可以表征语音段的帧数,也可以表征语音的二进制形式长度,待处理语音可以为以二进制形式存储的数字语音信号。一个待处理语音分段后对应多个预设长度的语音段,例如,待处理语音为9帧,预设长度为3帧,对待处理语音进行处理,得到3个长度为3帧的语音段;待处理语音为2000长度的二进制比特串,预设长度为50,对待处理语音进行处理,得到40个长度为50的二进制语音段。

具体地,为了得到多个长度一致的语音段,所述预处理模块10,还用于:按照预设长度对所述待处理语音进行分割,得到分割后的待处理语音;判断所述分割后的待处理语音的长度是否达到所述预设长度;在所述分割后的待处理语音的长度未达到所述预设长度时,对所述分割后的待处理语音进行赘语填充,得到多个预设长度的语音段。

在具体实现中,待处理语音的长度不一定是预设长度的倍数,因此,设置预处理方式,对待处理语音进行预处理,使得多个语音段的长度一致,且长度为预设长度,具体方式为:先按照预设长度对待处理语音进行分割,如果分割完成后,多个语音段的长度都为预设长度,则直接将这些语音段作为处理得到的语音段,如果多个语音段的长度不是都为预设长度,一般是最后分割出来的语音段长度不足预设长度,此时,对这一长度不足的语音段进行赘语填充,从而得到多个预设长度的语音段。

可以理解的是,对分割后的待处理语音进行赘语填充的过程可以为对长度不足预设长度的语音段用padding'0'填充。

编码模块20,用于根据预设编码策略对待处理水印进行编码,得到初始水印编码;

需要说明的是,预设编码策略可以为转为ascii码,也可以为将文字转换通过机器语音转换为语音帧,例如,待处理水印为英文字母,对待处理水印采用转为ascii码的编码策略进行编码,从而得到待处理水印对应的ascii码,即为初始水印编码。

标准化处理模块30,用于根据所述预设长度对所述初始水印编码进行标准化处理,得到处理后的水印编码;

可以理解的是,标准化处理可以为将水印编辑成预设长度,例如,对水印进行编辑,在长度达不到预设长度时,进行赘语填充,在长度超过预设长度时,进行截取。

具体地,为了使后续水印添加过程中不需对水印进行重新编辑,对水印进行量化以及标准化,从而在大量语音需要加水印时,能够高效进行,所述标准化处理模块30,还用于:在所述初始水印编码中加入起始编码,得到起始水印编码;根据所述预设长度将所述起始水印编码循环预设次数,得到循环后的目标水印编码;在所述目标水印编码的长度大于所述预设长度时,根据所述预设长度对所述目标水印编码进行截取,以得到处理后的水印编码;在所述目标水印编码的长度小于所述预设长度时,添加赘语,以得到处理后的水印编码。

需要说明的是,起始编码为全局唯一编码,例如“0000”,用于识别起始位置,在初始水印编码的起始处加入一段起始编码,并将整段水印编码重复数次,使之与预设长度一致,若不一致则截断,不足部分以"0"做填充,该过程主要是为了将不同形式的水印进行量化和标准化处理,预设次数根据预设长度决定,例如,预设长度为50字节,整段水印编码的长度为6,预设次数即为8或者9,在预设次数为8时,对长度未达到预设长度的水印编码进行赘语填充,在预设次数为9时,对长度超过预设长度的水印编码进行截取。

水印注入模块40,用于将所述语音段以及所述水印编码输入至训练好的预设神经网络,得到注入水印的语音段;

可以理解的是,预设神经网络可以为深度混合密度网络(dmdn),也可以为深度双向长短时记忆网络(dblstm-rnn),也可以为其他神经网络模型。将语音段以及水印编码输入至训练好的预设神经网络,从而对语音进行合成,得到注入水印的语音段。

需要说明的是,预设神经网络优选地包括encoder(加密层)、vae(变分编码器)和decoder(解密层),其中编码器由mlp(多层感知器)以及wavenet组成,其中mlp为骨干网络,由多层全连接层、标准化层和激活层组成,解码器由vae、wavenet以及mlp构成。注入水印的语音段由编码器输出。

后处理模块50,用于对所述注入水印的语音段进行后处理,得到注入水印的音频。

需要说明的是,由于对待处理语音进行了预处理,得到了多个预设长度的语音段,分别输入至预设神经网络,因此,得到了多个注入水印的语音段,对编码器输出的参数进行后处理,后处理可以包括将多个语音段依次采集以及拼接,从而得到注入水印的音频。

具体地,为了对预处理包括分割以及赘语填充的注入水印的语音段进行处理,所述后处理模块50,还用于:对所述注入水印的语音段进行拼接以及赘语清除,得到注入水印的音频。

可以理解的是,赘语清除为对拼接后的语音中的填充的padding'0'进行清除,从而得到更精确的注入水印的音频。

应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。

本实施例通过对待处理语音进行预处理,得到多个预设长度的语音段;根据预设编码策略对待处理水印进行编码,得到初始水印编码;根据预设长度对初始水印编码进行标准化处理,得到处理后的水印编码;将语音段以及水印编码输入至训练好的预设神经网络,得到注入水印的语音段;对注入水印的语音段进行后处理,得到注入水印的音频。通过预设神经网络在语音中添加水印编码,得到注入水印的音频,保护了语音的版权;并且通过预设编码策略对水印进行了编码,防止信息被盗窃者利用,且保证了水印的隐蔽性;通过本实施例提出的方法进行语音水印注入,只要窃取方在没有获取模型的情况下,可以保证水印以及敏感信息不被侦测到,不能通过逆向工程反推出水印并去除,解决了现有的语音水印注入方法生成的带有水印的语音,可以通过逆向工程反推出原有水印并去除的技术问题。

需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的语音盲水印注入方法,此处不再赘述。

在一实施例中,所述语音盲水印注入装置还包括,训练模块;

所述训练模块,用于:

对样本语音集中的样本语音进行预处理,得到各样本语音对应的多个预设长度的样本语音段;

根据预设编码策略对样本水印进行编码,得到初始样本水印编码;

根据所述预设长度对所述初始样本水印编码进行标准化处理,得到处理后的样本水印编码;

将所述样本语音段以及所述样本水印编码输入至预设神经网络,获取所述预设神经网络的损失值;

当所述损失值小于或者等于预设损失阈值时,得到训练好的预设神经网络。

在一实施例中,所述预设神经网络至少包括:加密层、变分编码器以及解密层;

所述训练模块,还用于:

将所述样本语音段以及所述样本水印编码输入至所述加密层,得到注入水印的样本语音段;

将所述注入水印的样本语音段输入至所述变分编码器,获取所述变分编码器对应的均值和方差;

将所述注入水印的样本语音段输入至所述解密层,得到对应的复原语音段以及复原水印编码;

根据所述样本语音段、所述样本水印编码、所述注入水印的样本语音段、所述均值、所述方差、所述复原语音段以及所述复原水印编码确定所述预设神经网络的损失值。

在一实施例中,所述训练模块,还用于:

根据所述样本语音段与所述注入水印的样本语音段确定第一距离;

根据所述样本水印编码与所述复原水印编码确定第二距离;

根据所述样本语音段与所述复原语音段确定第三距离;

根据所述均值以及所述方差确定与正态分布之间的第四距离;

根据所述第一距离、所述第二距离、所述第三距离以及所述第四距离确定所述预设神经网络的损失值。

此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(readonlymemory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜