一种基于复数神经网络的加密域语音识别方法及系统

文档序号:30181212发布日期:2022-05-26 13:25阅读:254来源:国知局
一种基于复数神经网络的加密域语音识别方法及系统

1.本发明涉及加密域语音识别的技术领域,更具体地,涉及一种基于复数神经网络的加密域语音识别方法及系统。


背景技术:

2.语音识别是语音处理的重要课题之一,然而,在云计算的场景下进行语音识别可能会引起隐私泄露的问题,现有的加密信号处理技术(sped)为云服务器提供了在保证隐私安全的同时完成对大量语音数据的处理能力,使得云服务器可以实现语音识别、语音验证和说话人识别等工作。从数据收集环节来看,用户将需要进行语音识别的音频数据等隐私资源存放在客户端上,在云环境下进行语音识别的过程中,客户端将隐私资源传送至云服务器上,在这个过程中,由于目前传输的数据均为加密数据,因此,用户的隐私数据往往由云服务器或主动或被动地泄露,而这种隐私数据泄露所带来的潜在的安全风险十分严重,可能会被人用于获利,更甚者被犯罪分子捕获,并用于非法活动。
3.目前,ckks密码系统是最流行的全同态加密系统之一,基于同态加密的语音识别技术被广泛应用,如2019年,s.zhang,y.gong,和d.y u等人在ieee international conference on acoustics,speech and signal processing 2019上发表了“encrypted speech recognition using deep polynomial networks”的文章,该文章中指出语音拥有者通过公钥对语音数据提取出的特征加密,然后传输至服务器,服务器在密文域下进行语音识别,然后基于加密域神经网络提取出的特征进行识别,并传输至语音拥有者进行解密,最后对解密出的数据进行解码得到语音识别结果。在此方法下,服务器不需要使用私钥即可进行加密域神经网络的运算,而语音拥有者通过安全通道接收到的私钥解密结果,非法敌手无法获取私钥,使语音在识别过程中的隐私安全性得到了保障,但一方面该文章中利用同态加密占用的计算资源大,单位加密语音数据识别时间开销大;另一方面,语音拥有者需要从本地音频中提取特征再进行加密,并且在本地解码网络输出,因此,给语音拥有者带来了一定的计算负担。


技术实现要素:

4.为解决现有基于同态加密的语音识别方法在语音识别过程中的单位加密语音识别时间开销大,且语音拥有者计算负担大的问题,本发明提出一种基于复数神经网络的加密域语音识别方法及系统,在保证隐私安全性的同时,语音拥有者仅需对本地音频进行简单的加密操作,无须进行特征提取,并且能够对多条语音数据同时进行识别,降低了单位加密语音识别时间开销。
5.为了达到上述技术效果,本发明的技术方案如下:
6.一种基于复数神经网络的加密域语音识别方法,包括:
7.s1.采集语音数据集,将语音数据集划分为训练集和测试集,训练集和测试集中的语音数据均视作复数;
8.s2.构建复数神经网络模型,并利用训练集训练复数神经网络模型,利用测试集测试复数神经网络模型的精度,得到最终的复数神经网络模型,并封装于语音识别执行服务器中;
9.s3.利用隐私服务器生成公钥pk和私钥sk,将公钥pk和私钥sk均发送至客户端,将公钥pk发送给语音识别执行服务器;
10.s4.客户端利用公钥pk对待识别语音进行数据编码加密,每一待识别语音均有若干个标签,将加密后的待识别语音的每个语音数据视作复数,并发送至语音识别执行服务器;
11.s5.语音识别执行服务器中的复数神经网络模型对加密后的语音在加密域中进行语音识别,获取该加密语音对应的若干个标签的加密概率;
12.s6.语音识别执行服务器将若干个标签的加密概率发送给客户端,客户端利用私钥sk解密后,将概率值最大的标签作为语音识别的结果。
13.在本技术方案中,首先采集语音数据集,然后构建复数神经网络模型,利用语音数据集训练测试复数神经网络模型,训练好的复数神经网络模型封装于语音识别执行服务器中备用,该复数神经网络模型适应匹配加密的语音形式;在语音加解密阶段,利用隐私服务器生成公钥和私钥发送至客户端,并将公钥发送至语音识别执行服务器,然后客户端对语音数据进行编码加密并发送给语音识别执行服务器,语音识别执行服务器利用复数神经网络模型在加密域对加密语音进行识别,复数神经网络模型的适应匹配性便于语音识别执行服务器在加密域对加密语音进行高效识别,然后将识别结果发送给客户端,客户端进行解密得到语音识别结果,该方案能让语音识别执行服务器同时进行多条语音的识别,并且客户端无须进行本地音频的特征提取,语音识别服务器和客户端之间传输的数据皆为密文,而加密的数据仅能由语音拥有者进行解密,符合语音识别执行服务器和客户端双方对隐私性的要求,确保在隐私安全的情况下进行语音识别。
14.优选地,在步骤s1中,语音数据集中的每个关键字均由一组来自不同语音源的z秒语音数据组成,语音数据设有标签,每条语音数据用若干个关键字中的其中一个标记。
15.优选地,采集语音数据集之后,对语音数据集中的语音数据进行采样,使其成为采样频率q下、长度为z秒的语音数据,匹配复数神经网络模型的输入维度。
16.优选地,步骤s2所述构建的复数神经网络模型包括一维卷积网络单元及全连接网络单元,语音数据通过一维卷积网络单元输出为一维特征向量,一维特征向量作为全连接网络单元的输入;所述一维卷积网络单元包括六个卷积块,每一个卷积块由一个复数卷积层、一个复数激活层及一个平均池化层组成,复数卷积层将输入至复数神经网络模型的语音数据拆分成实部和虚部,且复数卷积层内设计有复数卷积核,以模拟复数运算;设输入至复数神经网络模型的语音数据为 m=x+iy,x、y分别为语音数据m的实部分量和虚部分量,复数卷积核向量为k=a+ib,a、b为复数卷积核的实部和虚部,则通过复数卷积层对语音数据m进行运算,输出为:
17.m*k=(x*a-y*b)+i(x*b+y*a)
18.转换成符合复数卷积核运算的形式,表示为;
19.20.其中,*表示卷积操作,(m*k)
real
、(m*k)
imag
分别表示m*k的实部分量和虚部分量;
21.复数激活层的激活函数为perelu函数或pcrelu函数,对于输入复数神经网络模型的语音数据c,perelu函数的表达式为:
22.perelu(c)=ec3+fc2+gc+h
23.pcrelu函数的表达式为:
[0024][0025]
其中,c
real
、c
imag
分别表示c的实部和虚部,e、f、g、h为perelu函数的多项式系数,e1、f1、g1、h1为perelu函数实部的多项式系数,e2、f2、 g2、h2为perelu函数虚部的多项式系数;
[0026]
所述全连接网络单元包括第一复数全连接层、激活函数层及第二复数全连接层,激活函数层位于第一复数全连接层和第二复数全连接层之间,激活函数层的激活函数为perelu函数或pcrelu函数,第一复数全连接层与第二复数全连接层均通过拆分复数向量、模拟复数运算实现,第二复数全连接层的输出作为全连接网络单元的输出层。
[0027]
在此,构建的复数神经网络模型与加密语音形式的适应匹配性以及激活函数的设计,便于后续语音识别执行服务器在加密域对加密语音进行高效准确的识别。
[0028]
优选地,在训练复数神经网络模型时,将训练集的语音数据作为复数神经网络模型的输入,将训练集的语音数据对应的标签作为复数神经网络模型的输出标签,损失函数采用交叉熵,通过梯度下降法训练。
[0029]
优选地,在步骤s4中,客户端利用公钥pk对待识别语音进行数据编码加密的过程为:
[0030]
设待识别语音中存在n条语音数据,表征为:v0,v1,

,v
n-1
,每一条语音数据均有m个点:s=0,1,

,n-1,对所有语音数据执行公式:
[0031][0032]
其中,j=0,1,

,m-1;
[0033]
将n条语音数据编码为m个向量v0,v1,

,v
m-1
,其中:
[0034][0035]
利用公钥pk对m个向量v0,v1,

,v
m-1
进行加密,得到加密数据:
[0036]
优选地,在步骤s5中,语音识别执行服务器中的复数神经网络模型对加密后的语音在加密域中进行语音识别时,使用的乘法为加密域的同态乘法。
[0037]
优选地,在步骤s5中,语音识别执行服务器中的复数神经网络模型对加密后的语音在加密域中进行语音识别时,使用的加法为加密域的同态加法。
[0038]
本技术还提出一种基于复数神经网络的加密域语音识别系统,包括:
[0039]
数据集采集单元,用于采集语音数据集,并将语音数据集划分为训练集和测试集,
训练集和测试集中的语音数据均视作复数;
[0040]
复数神经网络构建训练模块,用于构建复数神经网络模型,并利用训练集训练复数神经网络模型,利用测试集测试复数神经网络模型的精度,得到最终的复数神经网络模型,位于语音识别执行服务器中;
[0041]
隐私服务器,用于生成公钥pk和私钥sk,并将公钥pk和私钥sk均发送至客户端,将公钥pk发送给语音识别执行服务器;
[0042]
客户端,利用公钥pk对待识别语音进行数据编码加密,每一待识别语音均有若干个标签,将加密后的待识别语音的每个语音数据视作复数,并发送至语音识别执行服务器;
[0043]
语音识别执行服务器,内设有复数神经网络构建训练模块,对加密后的语音在加密域中进行语音识别,获取该加密语音对应的若干个标签的加密概率,并发送至客户端;
[0044]
所述客户端还利用私钥sk对若干个标签的加密概率进行解密后,将概率值最大的标签作为语音识别的结果。
[0045]
优选地,所述系统还包括:采样处理模块,在数据集采集单元采集语音数据集之后,采样处理模块对语音数据集中的语音数据进行采样,使其成为采样频率 q下、长度为z秒的语音数据,匹配复数神经网络模型的输入维度。
[0046]
与现有技术相比,本发明技术方案的有益效果是:
[0047]
本发明提出一种基于复数神经网络的加密域语音识别方法及系统,首先采集语音数据集,然后构建复数神经网络模型,利用语音数据集训练测试复数神经网络模型,训练好的复数神经网络模型封装于语音识别执行服务器中备用;在语音加解密阶段,利用隐私服务器生成公钥和私钥发送至客户端,并将公钥发送至语音识别执行服务器,然后客户端对语音数据进行编码加密并发送给语音识别执行服务器,语音识别执行服务器利用复数神经网络模型在加密域对加密语音进行识别,复数神经网络模型的适应匹配性便于语音识别执行服务器在加密域对加密语音进行高效识别,然后将识别结果发送给客户端,客户端进行解密得到语音识别结果,该方案在保证隐私安全性的同时,客户端的语音拥有者仅需对本地音频进行简单的加密操作,无须进行特征提取,能使语音识别执行服务器同时进行多条语音的识别,降低了单位加密语音识别时间开销。
附图说明
[0048]
图1表示本发明实施例1中提出的基于复数神经网络的加密域语音识别方法的流程示意图;
[0049]
图2表示本发明实施例3中提出的一种基于复数神经网络的加密域语音识别系统的结构图;
[0050]
图3表示本发明实施例3中提出的第二种基于复数神经网络的加密域语音识别系统的结构图。
具体实施方式
[0051]
附图仅用于示例性说明,不能理解为对本专利的限制;
[0052]
为了更好地说明本实施例,附图某些部位会有省略、放大或缩小,并不代表实际尺寸;
[0053]
对于本领域技术人员来说,附图中某些公知内容说明可能省略是可以理解的。
[0054]
下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0055]
附图中描述位置关系的仅用于示例性说明,不能理解为对本专利的限制;
[0056]
实施例1
[0057]
在本实施例中,如图1所示,提出一种基于复数神经网络的加密域语音识别方法,该方法包括:
[0058]
s1.采集语音数据集,将语音数据集划分为训练集和测试集,训练集和测试集中的语音数据均视作复数;
[0059]
s2.构建复数神经网络模型,并利用训练集训练复数神经网络模型,利用测试集测试复数神经网络模型的精度,得到最终的复数神经网络模型,并封装于语音识别执行服务器中;
[0060]
s3.利用隐私服务器生成公钥pk和私钥sk,将公钥pk和私钥sk均发送至客户端,将公钥pk发送给语音识别执行服务器;
[0061]
s4.客户端利用公钥pk对待识别语音进行数据编码加密,每一待识别语音均有若干个标签,将加密后的待识别语音的每个语音数据视作复数,并发送至语音识别执行服务器;
[0062]
s5.语音识别执行服务器中的复数神经网络模型对加密后的语音在加密域中进行语音识别,获取该加密语音对应的若干个标签的加密概率;
[0063]
s6.语音识别执行服务器将若干个标签的加密概率发送给客户端,客户端利用私钥sk解密后,将概率值最大的标签作为语音识别的结果。
[0064]
在整体上,本实施例提出的方法在实施过程中,实际分为离线阶段和在线阶段,所述的离线阶段为复数神经网络模型构建、训练以备用的阶段,对应步骤 s1~s2,所述的在线阶段为利用离线训练好的复数神经网络模型进行语音在线识别的阶段,对应步骤s3~s6。离线阶段和在线阶段组成的方案能让语音识别执行服务器同时进行多条语音的识别,并且客户端无须进行本地音频的特征提取,语音识别服务器和客户端之间传输的数据皆为密文,而加密的数据仅能由语音拥有者进行解密,符合语音识别执行服务器和客户端双方对隐私性的要求,确保在隐私安全的情况下进行语音识别。
[0065]
在步骤s1中,语音数据集中的每个关键字均由一组来自不同语音源的z秒语音数据组成,语音数据设有标签,每条语音数据用若干个关键字中的其中一个标记。在本实施例中,采集的语音数据集使用的是谷歌大脑团队所开源的speech commands数据集,语音数据集中的每个关键字均由一组来自不同演讲者的z秒语音数据组成,总共有105,829条语音数据用于训练和预测,每条语音数据均用 35个关键字中的一个标记。
[0066]
采集语音数据集之后,对语音数据集中的语音数据进行采样,使其成为采样频率q下、长度为z秒的语音数据,匹配复数神经网络模型的输入维度。在本实施例中,语音数据采样成8000hz的长度,在本实施例中,z取1秒。
[0067]
如图2所示,构建的复数神经网络模型包括一维卷积网络单元及全连接网络单元,语音数据通过一维卷积网络单元输出为一维特征向量,一维特征向量作为全连接网络单元的输入;一维卷积网络单元包括六个卷积块,每一个卷积块由一个复数卷积层、一个复数激活层及一个平均池化层组成,复数卷积层将输入至复数神经网络模型的语音数据拆分成实
部和虚部,且复数卷积层内设计有复数卷积核,以模拟复数运算;设输入至复数神经网络模型的语音数据为m=x+iy,x、 y分别为语音数据m的实部分量和虚部分量,复数卷积核向量为k=a+ib,a、 b为复数卷积核的实部和虚部,则通过复数卷积层对语音数据m进行运算,输出为:
[0068]
m*k=(x*a-y*b)+i(x*b+y*a)
[0069]
转换成符合复数卷积核运算的形式,表示为;
[0070][0071]
其中,*表示卷积操作,(m*k)
real
、(m*k)
imag
分别表示m*k的实部分量和虚部分量;
[0072]
复数激活层的激活函数为perelu函数或pcrelu函数,对于输入复数神经网络模型的语音数据c,perelu函数的表达式为:
[0073]
perelu(c)=ec3+fc2+gc+h
[0074]
pcrelu函数的表达式为:
[0075][0076]
其中,c
real
、c
imag
分别表示c的实部和虚部,e、f、g、h为perelu函数的多项式系数,e1、f1、g1、h1为perelu函数实部的多项式系数,e2、f2、 g2、h2为perelu函数虚部的多项式系数;在本实施例中,
[0077]
perelu(c)=3.5
×
10-6
c3+0.188c2+0.5c+0.234
[0078]
pcrelu函数的表达式为:
[0079][0080]
其中,c
real
、c
imag
分别表示c的实部和虚部;
[0081]
全连接网络单元包括第一复数全连接层、激活函数层及第二复数全连接层,激活函数层位于第一复数全连接层和第二复数全连接层之间,激活函数层的激活函数为perelu函数或pcrelu函数,perelu函数的表达式为:
[0082]
perelu(c)=3.5
×
10-6
c3+0.188c2+0.5c+0.234
[0083]
pcrelu函数的表达式为:
[0084][0085]
其中,c
real
、c
imag
分别表示c的实部和虚部;这里的函数是对某个给定区间,利用最小二乘法拟合目标函数或者其导数得出,第一复数全连接层与第二复数全连接层的实现方式与复数卷积层相同,均通过拆分复数向量、模拟复数运算实现,第二复数全连接层的输出作为全连接网络单元的输出层,构建的复数神经网络模型与加密语音形式的适应匹配性以及激活函数的设计,便于后续语音识别执行服务器在加密域对加密语音进行高效准确的识别。
[0086]
在本实施例步骤s2训练复数神经网络模型时,将训练集的语音数据作为复数神经
网络模型的输入,将训练集的语音数据对应的标签作为复数神经网络模型的输出标签,损失函数采用交叉熵,通过梯度下降法训练,具体过程此处不再赘述,训练好的复数神经网络模型封装于语音识别执行服务器中备用。
[0087]
在步骤s4中,客户端利用公钥pk对待识别语音进行数据编码加密的过程为:
[0088]
设待识别语音中存在n条语音数据,表征为:v0,v1,

,v
n-1
,每一条语音数据均有m个点:s=0,1,

,n-1,对所有语音数据执行公式:
[0089][0090]
其中,j=0,1,

,m-1;
[0091]
将n条语音数据编码为m个向量v0,v1,

,v
m-1
,其中:
[0092][0093]
利用公钥pk对m个向量v0,v1,

,v
m-1
进行加密,得到加密数据:
[0094]
在语音加解密阶段,利用隐私服务器生成公钥和私钥发送至客户端,并将公钥发送至语音识别执行服务器,然后客户端对语音数据进行编码加密并发送给语音识别执行服务器,语音识别执行服务器利用复数神经网络模型在加密域对加密语音进行识别,语音识别执行服务器中的复数神经网络模型对加密后的语音在加密域中进行语音识别时,使用的乘法为加密域的同态乘法,使用的加法为加密域的同态加法,复数神经网络模型的适应匹配性便于语音识别执行服务器在加密域对加密语音进行高效识别,然后将识别结果发送给客户端,客户端进行解密得到语音识别结果。
[0095]
实施例2
[0096]
本实施例对实施例1中提出的卷积神经网络模型进行具体说明,一维卷积网络单元包括六个卷积块,每一个卷积块由一个复数卷积层,一个复数激活层和一个平均池化层组成;其中,复数激活层的激活函数选择perelu函数,输入的语音数据是采样成8000hz的长度为1s的语音信号,即第一个复数卷积层的输入维度是(1,8000)的语音数据。
[0097]
第一个复数卷积层的卷积核大小为1
×
13,卷积核个数为32,步长为3,平均池化层选择步长和尺寸均为3的平均池化层,第二个复数卷积层的卷积核大小为1
×
11,卷积核个数为32,步长为3。平均池化层选择步长和尺寸均为3的平均池化层。第三个复数卷积层的卷积核大小为1
×
9,卷积核个数为64,步长为 3,平均池化层选择步长和尺寸都为3的平均池化层。第四个复数卷积层的卷积核大小为1
×
7,卷积核个数为128,步长为3,平均池化层选择步长和尺寸均为 3的平均池化层。第五个复数卷积层的卷积核大小为1
×
5,卷积核个数为128,步长为3,平均池化层池化层选择步长和尺寸均为3的平均池化层。第六个复数卷积层的卷积核大小为1
×
3,卷积核个数为192,步长为3,平均池化层选择步长和尺寸都为3的平均池化层。
[0098]
一维卷积网络单元输出的结果作为全连接网络单元的输入,全连接网络单元包括两个复数全连接层和一个激活函数层,其中,激活函数层位于第一复数全连接层和第二复数全连接层之间,采用perelu函数,第二复数全连接层作为网络的输出层,两个全连接层依
次包含256,35个神经元,最后一层全连接层作为输出层,将输出结果线性映射到35个类别,最后取输出的模作为最终分类结果。
[0099]
实施例3
[0100]
如图3所示,本技术还提出一种基于复数神经网络的加密域语音识别系统,包括:
[0101]
数据集采集单元1,用于采集语音数据集,并将语音数据集划分为训练集和测试集,训练集和测试集中的语音数据均视作复数;
[0102]
复数神经网络构建训练模块2,用于构建复数神经网络模型,并利用训练集训练复数神经网络模型,利用测试集测试复数神经网络模型的精度,得到最终的复数神经网络模型,位于语音识别执行服务器3中;
[0103]
隐私服务器4,用于生成公钥pk和私钥sk,并将公钥pk和私钥sk均发送至客户端5,将公钥pk发送给语音识别执行服务器3;
[0104]
客户端5,利用公钥pk对待识别语音进行数据编码加密,每一待识别语音均有若干个标签,将加密后的待识别语音的每个语音数据视作复数,并发送至语音识别执行服务器3;
[0105]
语音识别执行服务器3,内设有复数神经网络构建训练模块2,对加密后的语音在加密域中进行语音识别,获取该加密语音对应的若干个标签的加密概率,并发送至客户端5;
[0106]
所述客户端5还利用私钥sk对若干个标签的加密概率进行解密后,将概率值最大的标签作为语音识别的结果。
[0107]
参见图3,所述系统还包括:采样处理模块6,在数据集采集单元1采集语音数据集之后,采样处理模块6对语音数据集中的语音数据进行采样,使其成为采样频率8000hz下、长度为1秒的语音数据,匹配复数神经网络模型的输入维度。
[0108]
显然,本发明的上述实施例仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1