1.本发明涉及声纹识别领域,特别是涉及一种声纹识别防语音合成攻击的方法、装置及存储介质。
背景技术:2.随着声纹识别技术的日益普及,防攻击变得越来越受重视,其中声纹识别防语音合成攻击的主要研究目的是实现检测一段录音是真人还是人工合成的音频,避免被他人盗用声纹信息。防攻击是任何声纹识别系统必不可少的,是其系统的重要组成部分,其中语音合成攻击随着近年来技术的进步如语音克隆变得越来越容易实现,攻击类型多样,已经成为主要的攻击手段之一。声纹识别系统需要根据音频来区分用户身份,完成用户授权。
3.现有的声纹识别系统对语音合成攻击缺乏有效的检测机制,主要的检测手段还是通过人工设计特征,根据提取的特征进行分类。但是现在的防语音合成攻击方法存在一定的局限性:
4.首先,音频特征提取主要是人工设计的,比如梅尔倒谱系数(mfcc),这类特征多是为语音识别系统设计,符合人类听觉系统特征,但是有时人耳也很难区分是否是合成语音,因此不一定适用于语音合成检测;
5.其次,环境噪声、录音设备和攻击方法对防语音合成攻击检测结果影响较大,场景和攻击类型覆盖较少;
6.最后,随着技术的进步,语音克隆技术已经能够非常容易的实现对一个人的语音特征进行模仿,已经能够做到真假难辨,实现技术呈现多样化,难以有效的预测;而且由于没有利用说话人信息,无法充分的利用说话人相关的语音信息,识别准确率低。
技术实现要素:7.针对现有技术的上述问题,本发明的实施例提供了一种声纹识别防语音合成攻击的方法、装置及存储介质,以提高声纹识别防合成语音攻击的识别i性能及提高泛化能力。
8.为了实现上述目的,一方面提供了一种声纹识别防语音合成攻击的方法,包括:
9.s1,获取待识别语音数据,将所述待识别语音数据经预处理后转换为音频序列数据;
10.s2,将所述音频序列数据输入经合成检测和声纹识别联合训练的防语音攻击神经网络模型进行识别,输出识别结果,并基于所述识别结果确定所述待识别语音数据为真实语音还是合成语音。
11.进一步地,所述的方法,其中,所述防语音攻击神经网络模型通过如下步骤进行合成检测和声纹识别联合训练:
12.获取训练用语音,所述训练用语音包括合成语音和真实语音,分别将所述合成语音和真实语音人工标注标签;
13.对所述训练用语音进行预处理,获得所述训练用语音的音频序列数据;
14.将所述训练用语音的音频序列数据输入图神经网络以提取音频特征;
15.将所提取的音频特征分别输入合成检测模块和声纹识别模块进行联合优化,其中,所述合成检测模块的任务是识别真实语音和合成语音,所述合成检测模块利用所述真实语音和合成语音的标签进行训练,所述声纹识别模块的任务是识别说话人,所述声纹识别模块利用所述训练用语音中说话人的信息进行训练。
16.进一步地,所述的方法,其中,将所述训练用语音的音频序列数据输入图神经网络以提取音频特征包括:
17.将所述训练用语音的音频序列数据输入一维卷积网络进行初步特征提取;
18.将所提取的初步特征输入6层的卷积神经网络,完成对时间和频率两个维度的特征提取;
19.分别对提取的时间维度特征和频率维度特征进行加权平均;
20.对加权平均后的时间维度特征和频率维度特征进行融合;
21.将融合后的特征通过注意力层、池化层和映射层的处理,获得用于输入所述合成检测模块和所述声纹识别模块以进行联合优化的音频特征。
22.进一步地,所述的方法,其中,所述联合优化的联合任务损失函数是:
23.loss=l
as
+λl
sr
,其中:
24.为合成检测损失,采用的是加权交叉熵损失函数,在l
as
的公式中c表示分类个数,n表示样本个数,x
n,c
表示这条输入是类别c,wc为某一分类的权重,在数据不均衡时可以调节权重;
25.为声纹识别损失,在l
sr
的公式中c表示说话人个数,x
n,c
表示该条语音属于c这个人,采用的是常用交叉熵损失函数;
26.λ∈(0,1)为用于调节两个任务重要程度的权重。
27.进一步地,所述的方法,其中,所述l
as
中,根据各个分类的样本个数来设置所述wc,wc的大小与分类重要性的高低对应。
28.进一步地,所述的方法,其中,在所述联合训练中,使用随机梯度下降法sgd来调整神经网络参数,学习率使用指数衰减方式动态调整,选择准确率最高的模型作为最终的训练结果,并将所选择的模型中的声纹识别模块去除后剩余的模型作为所述步骤s2中、经合成检测和声纹识别联合训练的防语音攻击神经网络模型。
29.进一步地,所述的方法,其中,所述l
as
的公式中c=2,所述λ=0.5。
30.进一步地,所述的方法,其中,所述训练用语音满足如下条件中的一个或多个:
31.所述训练用语音中的合成语音来自选定的商用语音合成引擎和已有的比赛数据;
32.所述训练用语音中的合成语音和真实语音的个数相等;
33.所述训练用语音包括中英文混合数据;
34.所述训练用语音使用数据扩增方法进行了扩增。
35.另一方面,提供了一种声纹识别防语音合成攻击的装置,其中,包括存储器和处理器,所述存储器存储有至少一段程序,所述至少一段程序由所述处理器执行以实现如上文所述的声纹识别防语音合成攻击的方法。
36.又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一段程序,所述至少一段程序由所述处理器执行以实现上文所述的声纹识别防语音合成攻击的方法。
37.上述技术方案具有如下技术效果:
38.本发明实施例的声纹识别防语音合成攻击的方案实现了基于深度学习技术从音频中直接获取音频中的特征信息,为防攻击系统提供重要的特征信息,并利用此特征信息最终实现稳定准确的检测,识别出攻击的合成语音,能对未见过的合成攻击也能具有良好的泛化能力,能预防多场景、多攻击类型语音合成攻击,有效地提高了防攻击系统的识别性能;且由于能够直接利用语音信息作为输入进行防攻击识别,有效简化了声纹识别防语音合成攻击装置或系统的构建过程。
附图说明
39.图1为本发明一实施例的声纹识别防语音合成攻击的方法的流程示意图;
40.图2为本发明一实施例的声纹识别防语音合成攻击的方法中训练防语音合成攻击神经网络模型的流程示意图;
41.图3为本发明一实施例的声纹识别防语音合成攻击的方法中使用的防语音合成攻击神经网络模型的结构示意图;
42.图4为本发明一实施例的声纹识别防语音合成攻击的装置的结构示意图。
具体实施方式
43.为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
44.现结合附图和具体实施方式对本发明进一步说明。
45.实施例一:
46.图1为本发明一实施例的声纹识别防语音合成攻击的方法的流程示意图。如图1,本发明一实施例的声纹识别防语音合成攻击的方法包括如下步骤:
47.s1,获取待识别语音数据,将待识别语音数据经预处理后转换为音频序列数据;
48.s2,将上述音频序列数据输入经合成检测和声纹识别联合训练的防语音攻击神经网络模型进行识别,输出识别结果,并基于识别结果确定待识别语音数据为真实语音还是合成语音。
49.本发明实施例中,真实语音即指的是非人工合成的、真人语音。由此可以避免合成语音的攻击。
50.具体地,如图2所示,防语音攻击神经网络模型通过如下步骤进行合成检测和声纹识别联合训练:
51.s201,获取训练用语音,训练用语音包括合成语音和真实语音,分别将合成语音和真实语音人工标注标签;
52.s202,对训练用语音进行预处理,获得训练用语音的音频序列数据;
53.s203,将训练用语音的音频序列数据输入图神经网络以提取音频特征;
54.s204,将所提取的音频特征分别输入合成检测模块和声纹识别模块进行联合优化,其中,合成检测模块的任务是识别真实语音和合成语音,合成检测模块利用真实语音和合成语音的标签进行训练,声纹识别模块的任务是识别说话人,声纹识别模块利用训练用语音中说话人的信息进行训练。
55.实施例二:
56.图3为本发明另一实施例的声纹识别防语音合成攻击的方法中,用于实现合成检测和声纹识别联合训练的防语音攻击神经网络模型的结构示意图。现结合图3的神经网络模型来描述本发明一实施例的声纹识别防语音合成攻击的方法的具体实现。具体地,该实施例的方法包括:
57.s301,获取训练用语音,包括合成语音和真实语音。其中,通过收集大量的语音合成音频来获取训练用合成语音,具体包括:对市面上主流的商用语音合成引擎进行数据采集,并且结合各种已有的比赛数据。针对获得的语音,人工标注是合成语音还是原始录音即真实语音。对获得的语音进行预处理,保留说话人信息,截取有效音频,去除静音部分,获得对应的音频序列数据。获取尽量多类型的合成语音来进行训练,数据类型的多样性使得本发明实施例的方法能够有效识别出攻击用的合成语音,再结合图3的模型进行训练,能够有效的提升模型的泛化能力。
58.该步骤中,优选地,采集尽可能多的语音合成数据,各个商业引擎都有提供相应的接口方便调用,除了商业引擎之外,开源的免费数据同样是重要的来源。这里的人工标注总共分为两类,一类是语音合成,一类是真实语音即真人语音。优选性地,在采集的过程中即可完成标注,不需要额外的人工。优选地,采集的合成语音和真人语音都是比较理想环境下的,但是现实场景中的语音多伴有背景噪声和回声,对采集的数据进行加噪处理,能够有效的提升模型的泛化能力,应对多种场景下的应用。
59.s302,将所获取的训练用语音及其标签,输入图3的神经网络模型进行训练,得到一个稳定泛化能力较强的模型,利用该经过训练的模型进行防合成语音攻击识别有较佳的效果,识别速度快、不需要人工设计特征、且能够跨越各种场景和攻击类型。优选地,该步骤中,将经s301获得的音频序列数据和对应的标签输入到神经网络之中,调整网络参数,训练模型参数。优选地,这里神经网络的训练采用通用的sgd算法,使用pytorch开源框架。
60.示例性地,利用图3的模型进行训练包括如下步骤:
61.接收经步骤s301处理之后的音频序列数据作为模型的输入,如接收时间序列的音频数据,具体如波形形式的音频数据;
62.利用图神经网络提取音频特征向量。该提取步骤与传统的人工设计特征如mfcc不同。本发明实施例的方法利用图神经网络所提取的音频特征向量是二维数据,主要利用与图像相同的二维卷积。本发明实施例的方法所使用的神经网络可以直接利用时间序列的音频数据,如波形形式的音频数据,结合一维卷积网络(convnet)和注意力神经网络(attention neural network),进行特征提取,进而完成分类任务。
63.如图3,接收音频数据waveform后,首先利用一维卷积网络对waveform进行初步特征提取。示例性地,一维卷积网络使用sinc卷积。sinc卷积类似于滤波算法,但是其参数可学。然后经过6层卷积神经网络(res-net),完成对时间(t)和频率(f)两个维度的特征提取。
这里的特征对应图3中的s(higher-level feature map,高级特征映射)经过卷积网络之后提取的特征。接着由图3中的频率维度注意力(spectral attention)和时间维度注意力(temporal attention)部分分别对时间维度和频率维度进行加权平均。该例中使用的是图注意力机制,在其他实现中也可以替换为其他的注意力网络,对应于图3中的:注意力层(attention layer)、池化层(pooling)和映射层(projection),以对特征进行进一步压缩精炼,为下一步的模型融合做准备。传统的模型融合一般是在整个神经网络训练完成之后才对权重进行平均,而在该例中,是在训练过程中进行了模型融合,对应融合层,用于分别对时间维度和频率维度进行融合,这里的融合包括相加、相乘和拼接。最后再经过频率-时间注意力(spectral-temporal attention)网络的注意力、池化和映射操作。
64.经过频率-时间注意力网络处理之后,将所提取的特征分别输入合成检测模块和声音识别模块以进行合成检测(anti-spoof)与声纹识别两个任务的联合优化。
65.如图3,合成检测模块在此指的是合成检测模块网络,包括输出层和带权重的加权交叉熵损失,该模块的任务是进行真实语音和合成语音的分类,其考虑了权重。
66.声音识别模块在此指的是声音识别模块网络,包括embedding、输出层和交叉熵损失,输出层输出的是说话人的数目。该模块的任务是进行人的声纹识别,考虑了人的因素。只要是同一个人的语音,无论是合成的语音还是真实的语音只看是否是同一个人的。因为人很多,所以该模块在此不考虑权重。将声纹识别加入训练,增加了一个维度的数据,即增加了同一个人的数据。
67.在此,两个任务的输入是一样的,都是提取的特征。两个任务互相影响,共同对前面的网络参数进行优化,达到既能通过声纹识别模块进行声纹识别,利用说话人信息进行训练,又能通过合成检测模块进行合成检测,利用真实语音与合成语音标签进行训练,使得网络学到更多的特征信息。
68.训练时,使得训练用语音数据尽量保持均衡,即合成语音和真实语音个数相等。训练用语音包含中英文混合数据,使得模型能够同时学习中文和英文语音特征。还可以对语音数据使用数据扩增方法如加噪、编码变换、加混响等来扩增训练用语音数据,以有效地提高模型的泛化能力。
69.联合训练中,整个联合任务的损失函数即联合loss是:loss=l
as
+λl
sr
,为合成检测损失,其中c表示分类个数,优选地,c=2;n表示样本个数,x
n,c
表示这条输入是类别c,wc为某一分类的权重。权重wc的大小与分类的重要性相关,权重wc越大表示该分类越重要。通常根据各个类别的样本个数来设置权重wc,样本少的类别的权重wc可以设置得大一点,例如:正样本有100个,负样本有1000个,则可以将正样本的权重设为1,负样本的权重设为0.1。合成检测损失采用的是加权交叉熵损失函数,在数据不均衡时可以调节权重;
70.为声纹识别损失函数,这里的c表示说话人个数,x
n,c
表示该条语音属于c这个人,采用的是常用交叉熵损失函数。λ∈(0,1)为权重,用于调节合成检测和语音识别这两个任务的重要程度。优选地,取λ=0.5,表示这两个任务同样重要。
71.在模型训练过程中,联合loss分别经过声纹识别模块和合成检测模块。使用随机梯度下降法(sgd)调整神经网络参数,学习率使用指数衰减方式动态调整,不断观察和记录训练中间结果,调整模型的参数,并完成模型训练,使用准确率最高的模型作为最终的训练结果。
72.在一具体实现中,在防语音攻击神经网络模型训练完成之后,就可以删除只用作训练用的声纹识别模块了。只留下语音合成攻击模块,利用图3中删除了声纹识别模块的模型的其他部分作为经过训练即训练好的声纹识别防语音攻击神经网络模型来对待识别语音数据进行合成语音和真实语音的识别,并最终输出识别结果,如输出真实语音和合成语音的概率。这是一个二分类问题,进而可以根据预设的阈值τ∈(0,1)来判断待识别的语音数据是否是合成语音。上述的阈值可以通过验证数据集进行来预先设定。
73.本发明实施例的声纹识别防语音合成攻击方法,直接接收语音序列数据作为输入数据,无需进行特征设计,采集了大量的跨越场景和攻击类型的语音合成数据,并针对输入的语音数据进行模型参数的调整,通过严谨的模型训练参数的设计,完成了防语音合成检测模型训练。进一步地,本发明实施例的方法在通用的图神经网络之外,还增加了声纹识别的训练,将这两种分类的结果通过损失函数进行融合,使得神经网络学到的特征更泛化,考虑了更多的情况,能得到更好的训练结果,多考虑了一个维度的数据,使得模型能表现得更佳。尤其是,通过合成检测和声纹识别联合优化,充分利用了语音数据,对与说话人相关的合成语音攻击效果更优。
74.实施例三:
75.本发明还提供一种声纹识别防语音合成攻击的装置,如图3所示,该装置包括处理器401、存储器402、总线403、以及存储在所述存储器402中并可在所述处理器401上运行的计算机程序,处理器401包括一个或一个以上处理核心,存储器402通过总线403与处理器401相连,存储器402用于存储程序指令,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
76.进一步地,作为一个可执行方案,所述识别微塑料的装置可以是计算机单元,该计算机单元可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机单元可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述计算机单元的组成结构仅仅是计算机单元的示例,并不构成对计算机单元的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件。例如所述计算机单元还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
77.进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机单元的控制中心,利用各种接口和线路连接整个计算机单元的各个部分。
78.所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述
计算机单元的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
79.实施例四:
80.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
81.所述计算机单元集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,random access memory)以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
82.本发明实施例的方案可以部署到声纹识别系统的前端,防止有人冒充他人。本发明实施例的方案可以应用于包含声纹识别的所有对话交互系统,比如用于验证是否是同一说话人,在进行声纹验证之前首先进行合成检测,防止有人盗用他人声纹信息。
83.尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。