一种应对复杂声学环境的说话人确认方法、系统及存储介质与流程
本发明涉及数据处理领域,尤其涉及一种应对复杂声学环境的说话人确认方法、系统及存储介质。
背景技术:
目前,智能手机、智能音箱、对话机器人等产品中都会加入目标说话人声纹确认的功能,来提高这类电子设备对用户的专用性。但是,当具备说话人确认功能的语音产品工作在一些复杂的应用场景时,如存在各式各样背景噪音的环境、周围有其他人说话干扰的场景等,产品的声纹识别准确率较低。除此之外,当目标说话人由于感冒或其他疾病而导致自身的声音发生一些变化时,目前市面上的语音产品也难以正确地识别目标说话人的声纹。
技术实现要素:
本发明提供了一种应对复杂声学环境的说话人确认方法,包括执行以下步骤:
步骤1:输入说话人音频;
步骤2:接收步骤1的说话人音频,再采用梅尔倒谱系数提取模块和线性预测提取模块提取出所接收的说话人音频中的人工声纹特征,最后将提取的人工声纹特征送到特征增强模块;
步骤3:采用特征增强模块接收步骤2提取的人工声纹特征,并通过特征增强模块对所接收的人工声纹特征进行降噪处理,得到增强后的人工声纹特征,最后将增强后的人工声纹特征送到声纹识别模块;
步骤4:采用声纹识别模块接收增强后的人工声纹特征,进行更深层次的抽象表示分析,再在神经网络的输出层得到新的特征表示形式,最后计算不同语句之间的相似值,输出相似度向量,并做出是否是目标说话人的判决。
作为本发明的进一步改进,在所述步骤2中,所述梅尔倒谱系数提取模块还包括依次执行以下步骤:
预处理步骤:将原始语音信号进行采样量化、预加重、加窗分帧预处理,得到每一帧语音信号的语音序列s(n);
傅里叶变换步骤:对预处理后得到的语音序列s(n)进行快速傅里叶变换,将其从时域变换到频域,得到其频谱,并求得频谱的幅度值s(k);
滤波步骤:将幅度值s(k)通过梅尔频率滤波器组hm(k)得到的输出为pm(m=0,1,…,m-1),参数pm的表达公式如下:
其中,hm(k)是梅尔频率滤波器组的传递函数,其定义表达如下式所示:
公式(2)中m为三角形滤波器的数量,即梅尔滤波器组的阶数,f(m)是三角形滤波器的中心频率;f(m-1)和f(m+1)分别表示一个三角形滤波器的上限频率与下限频率;
梅尔倒谱系数计算步骤:对参数pm进行对数能量计算,输出得到的参数为lm(m=0,1,…,m-1),再将参数lm进行离散余弦变换,将得到的参数lm转换到倒谱域中,这样就得到了梅尔倒谱系数cmel,其具体过程如下:
lm=ln(pm),(m=0,1,…,m-1)(3)
上式(4)中的cmel(k)就是所需要求取的mfcc特征参数,n表示梅尔倒谱系数的阶数,这里我们取n=40,也就是提取40维的mfcc特征。
作为本发明的进一步改进,在所述步骤2中,所述线性预测提取模块还包括依次执行以下步骤:
步骤s1:对输入的语音信号进行预加重、分帧加窗和滤波的预处理;
步骤s2:为了求解线性预测系数,令
其中r(j)是自相关函数,拆写加权式子,便得到如下的toeplize矩阵表达形式:
步骤s3:使用durbin算法来求解toeplize矩阵,即可计算出滤波器系数ai,也就是线性预测系数,进而求得线性预测系数的残差值e(n),取p=38,也就是提取38维的线性预测系数;
步骤s4:对残差信号e(n)进行快速傅里叶变换,使其从时域变换到频域,得到其频谱,将残差频谱的一阶矩、二阶矩也作为特征参数,与提取的38维线性预测系数一起组成该模块的40维线性预测特征。
作为本发明的进一步改进,在所述步骤3中,所述特征增强模块采用了前馈神经网络构建降噪模型,该模型一共由五层神经网络层构成,其中输入层输入的是人工提取的80维声纹特征,后面连接着三层隐藏层,每层隐藏层有1024个神经元,并采用relu非线性函数作为激活函数,输出层为线性层,采用80个神经元用来实现增强特征的重构。
作为本发明的进一步改进,在所述步骤4中,所述声纹识别模块一共由四层神经网络构成,包括一层输入层,两层长短期记忆神经网络层和一层输出层,输入层需要与特征增强模块的输出层对接,因此输入层的维度是80维;中间的两层长短期记忆网络层均为512维,并且采用relu激活函数进行非线性映射;最后的输出层采用的是线性层,维度为256,来实现声纹特征的进一步抽象表示,将输出层中说话人一整句话的所有帧进行累加平均,得到一个句子级的特征表示形式,如下式(10)所示:
其中,
作为本发明的进一步改进,该说话人确认方法还包括对特征增强模块的数据训练,其执行步骤依次如下:
构建训练带噪特征矩阵步骤:将每批次输入的音频都加入不同信噪比程度的噪声干扰,在经过梅尔倒谱系数提取模块和线性预测特征提取模块后,得到带噪音频的特征矩阵;
构建训练纯净特征矩阵步骤:将未受噪声干扰的与构建训练带噪特征矩阵步骤同批次的纯净音频经过特征提取模块进行特征提取,得到一个纯净音频的特征矩阵;
特征增强模块降噪步骤:对特征增强模块的神经网络进行训练,利用反向传播算法更新神经网络的参数,使特征增强模块具备了对特征进行降噪处理的能力。
作为本发明的进一步改进,在所述构建训练带噪特征矩阵步骤中,将每批次输入的500句音频都加入了-5db到15db不同信噪比程度的噪声干扰。
作为本发明的进一步改进,该说话人确认方法还包括对声纹识别模块的数据训练,其执行步骤如下:
步骤y1:将不同的说话人的每一句话都表示成公式(10)中的向量形式
再定义第n个说话人的语音质心如下:
得到一个相似矩阵,如下式(13)所示:
sm,n,k=ω·cos(em,n,ck)+b(13)
其中,1≤n,k≤50,1≤m≤10,ω与b为神经网络中的学习参数且ω>0,ck表示第k个人的语音质心,当k=n时,式子(12)中的m取值为9;而当k≠n时,m的取值为10;
步骤y3:将计算的相似度sm,n,k映射成概率的形式,进一步对公式(13)进行sigmoid函数映射,如下式(14)所示,
其中σm,n,k为sigmoid函数映射后得到的神经网络模型的输出;
步骤y4:由神经网络模型的输出σm,n,k计算出一个与事先构建的理想相似度矩阵同维度的相似度矩阵,并以理想相似度矩阵为目标进行反向传播调优训练,从输出层一直更新至特征增强模块的输入层,实现神经网络的整体调优。
本发明还公开了一种应对复杂声学环境的说话人确认系统,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现本发明所述的说话人确认方法的步骤。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本发明所述的说话人确认方法的步骤。
本发明的有益效果是:1.本发明的说话人确认方法利用梅尔倒谱特征和线性预测特征级联的方式,进行说话人声纹建模,提高了算法对目标声纹的辨识能力;2.本发明的说话人确认方法利用深层神经网络模型实现端到端的说话人确认,减少了模型假设,利于提取出更具区分性的抽象声纹特征,进一步提高了算法的识别准确率;3.本发明的说话人确认方法采用神经网络模型进行声纹特征的增强处理,提高了算法在噪声干扰环境中的识别鲁棒性;4.本发明的说话人确认方法训练过程不依赖说话人文本,使算法对说话人的说话内容不敏感,目标说话人说的任何句子,都可以进行精确的声纹确认。
附图说明
图1(a)是本发明说话人确认方法训练过程原理框图;
图1(b)是本发明说话人确认方法测试应用过程原理框图;
图2是本发明说话人确认方法mfcc特征提取流程图;
图3是本发明说话人确认方法lpc及其残差特征的提取流程图;
图4是本发明每个训练批次中理想的相似矩阵形式原理框图。
具体实施方式
如图1所示,本发明公开了一种应对复杂声学环境的说话人确认方法,该说话人确认方法利用梅尔倒谱系数特征和线性预测特征进行人工声纹特征建模,并利用前馈神经网络和长短期记忆神经网络分别实现对人工特征的降噪处理和相似度判决,保证了算法在噪声干扰的应用场景中也具备较好的声纹确认准确率,该说话人确认方法包括执行以下步骤:
步骤1:输入说话人音频;
步骤2:接收步骤1的说话人音频,再采用梅尔倒谱系数提取模块和线性预测提取模块提取出所接收的说话人音频中的人工声纹特征,最后将提取的人工声纹特征送到特征增强模块;
步骤3:采用特征增强模块接收步骤2提取的人工声纹特征,并通过特征增强模块对所接收的人工声纹特征进行降噪处理,得到增强后的人工声纹特征,最后将增强后的人工声纹特征送到声纹识别模块;
步骤4:采用声纹识别模块接收增强后的人工声纹特征,进行更深层次的抽象表示分析,再在神经网络的输出层得到新的特征表示形式,最后计算不同语句之间的相似值,输出相似度向量,并做出是否是目标说话人的判决。
在所述步骤2中,梅尔倒谱系数特征提取模块,实现了对语音信号的梅尔倒谱系数特征提取,该特征是为了描述人耳的听觉感知能力对频率不同的语音信号的灵敏度存在差别的特性,而提出的一种声学特征。如图2所示,所述梅尔倒谱系数提取模块还包括依次执行以下步骤:
预处理步骤:将原始语音信号进行采样量化、预加重、加窗分帧等一系列的预处理,得到每一帧语音信号的语音序列s(n),这里采用16khz的采样率,帧长16ms,重叠50%。每条输入语音的长度为2s,一共分成250帧;
傅里叶变换步骤:对预处理后得到的语音序列s(n)进行快速傅里叶变换(fft),将其从时域变换到频域,得到其频谱,并求得频谱的幅度值s(k);
滤波步骤:将幅度值s(k)通过梅尔频率滤波器组hm(k)得到的输出为pm(m=0,1,…,m-1),参数pm的表达公式如下:
其中,hm(k)是梅尔频率滤波器组的传递函数,其定义表达如下式所示:
公式(2)中m为三角形滤波器的数量,即梅尔滤波器组的阶数,f(m)是三角形滤波器的中心频率;f(m-1)和f(m+1)分别表示一个三角形滤波器的上限频率与下限频率;
梅尔倒谱系数计算步骤:对参数pm进行对数能量计算,输出得到的参数为lm(m=0,1,…,m-1),再将参数lm进行离散余弦变换(dct),将得到的参数lm转换到倒谱域中,这样就得到了梅尔倒谱系数cmel,其具体过程如下:
lm=ln(pm),(m=0,1,…,m-1)(3)
上式(4)中的cmel(k)就是所需要求取的mfcc特征参数,n表示梅尔倒谱系数的阶数,这里我们取n=40,也就是提取40维的mfcc特征。
在所述步骤2中,线性预测特征提取模块,实现了对语音的线性预测系数(lpc)及其残差特征的提取,这些线性特征序列表征了声道模型的线性时变系统特性,反映了说话人的声道特征,特别适合对人的声纹特征进行建模。如图3所示,所述线性预测提取模块还包括依次执行以下步骤:
步骤s1:对输入的语音信号进行预加重、分帧加窗和滤波的预处理,帧长16ms,重叠50%,每句话250帧,表示成语音序列s(n),n=1,2,…,250,p阶的线性预测分析就可以表示为由语音信号在某一时刻之前的p个取样值的线性组合来对这一时刻的取样值s(n)进行预测,设
那么,线性预测值与实际取样值之间的误差(也称为残差)计算公式为:
线性预测系数ai(i=1,2,...,p)的选择应使误差的均方值e(e2(n))最小。令这个最小均方误差为ep:
步骤s2:为了求解线性预测系数,令
其中r(j)是自相关函数,拆写加权式子,便可以进一步得到如下的toeplize矩阵表达形式:
步骤s3:使用durbin算法来求解toeplize矩阵,即可计算出滤波器系数ai,也就是线性预测系数,进而可以求得线性预测系数的残差值e(n),取p=38,也就是提取38维的线性预测系数;
步骤s4:对残差信号e(n)进行快速傅里叶变换(fft),使其从时域变换到频域,得到其频谱,将残差频谱的一阶矩、二阶矩也作为特征参数,与提取的38维线性预测系数一起组成该模块的40维线性预测特征。
在所述步骤3中,所述特征增强模块主要对提取的人工声纹特征进行降噪处理,使算法能够在噪声干扰的情况下,依然能够正确地识别目标说话人的声纹。所述特征增强模块采用了前馈神经网络构建降噪模型,该模型一共由五层神经网络层构成,其中输入层输入的是人工提取的80维(40维mfcc和40维lpc)声纹特征,后面连接着三层隐藏层,每层隐藏层有1024个神经元,并采用relu非线性函数作为激活函数,输出层为线性层,采用80个神经元用来实现增强特征的重构。为了保证神经网络降噪模型良好的泛化能力,每层隐藏层均采用批归一化处理,并进行丢弃率为0.2的随机神经元失活处理。
在所述步骤4中,所述声纹识别模块将进行增强处理后的特征相似度估计,来实现说话人的声纹确认。所述声纹识别模块一共由四层神经网络构成,包括一层输入层,两层长短期记忆神经网络层和一层输出层,输入层需要与特征增强模块的输出层对接,因此输入层的维度是80维;中间的两层长短期记忆网络层均为512维,并且采用relu激活函数进行非线性映射;最后的输出层采用的是线性层,维度为256,来实现声纹特征的进一步抽象表示;为了捕捉说话人的句子级特征,将输出层中说话人一整句话的所有帧进行累加平均,得到一个句子级的特征表示形式,如下式(10)所示:
其中,
该说话人确认方法还包括对特征增强模块的数据训练,因为在处理过程中,特征增强模块和声纹识别模块都用到了神经网络技术,所以需要对两个模块的神经网络进行大量的数据训练,才能保证算法具备优秀的降噪和声纹确认能力。如图1(a)所示,算法进行训练时,训练集一共有20000个不同的说话人,每人10句话,一共是200000句话,每个训练批次随机输入50个说话人,每人10句话的音频数据,每句话的内容不定。为了保证一致性,输入的音频长度是定长的,每句话均不超过两秒,不足两秒的音频可以补零至两秒。所述特征增强模块的数据训练其执行步骤依次如下:
构建训练带噪特征矩阵步骤:将每批次输入的500句音频都加入了-5db到15db不同信噪比程度的噪声干扰,因此在经过梅尔倒谱系数提取模块和线性预测特征提取模块后,会得到一个带噪音频的特征矩阵;
构建训练纯净特征矩阵步骤:将未受噪声干扰的与构建训练带噪特征矩阵步骤同批次的500句纯净音频也会经过特征提取模块进行特征提取,会得到一个纯净音频的特征矩阵,然后对特征增强模块的神经网络进行训练,利用反向传播算法更新神经网络的参数,训练完毕以后,特征增强模块就具备了对特征进行降噪处理的能力;
特征增强模块降噪步骤:对特征增强模块的神经网络进行训练,利用反向传播算法更新神经网络的参数,使特征增强模块训练完毕以后,特征增强模块就具备了对特征进行降噪处理的能力。
为了避免特征增强模块造成的失真影响声纹识别的效果,必须和后面的声纹识别模块进行整体调优训练。该说话人确认方法还包括对声纹识别模块的数据训练,其执行步骤如下:
步骤y1:在声纹识别模块的训练阶段,每一轮都随机抽取50个说话人,每个说话人有10句话,即以500个语句为一个处理批次,将不同的说话人的每一句话都表示成公式(10)中的向量形式
步骤y2:对每一句话的输出向量
那么可以定义第n个说话人的语音质心如下:
语音质心,即同一个说话人的多条语音的嵌入向量的中心点,多个说话人就会产生多个中心点。输入待测试的说话人语音,它与哪个语音质心的距离较近,就可以被确认为哪个说话人的声纹。
接下来,需要计算不同语句之间的相似度,得到一个相似矩阵,如下式(13)所示:
sm,n,k=ω·cos(em,n,ck)+b(13)
其中,1≤n,k≤50,1≤m≤10,ω与b为神经网络中的学习参数且ω>0,ck表示第k个人的语音质心,当k=n时,式子(12)中的m取值为9,因为此时有一句话被用作了测试语句;而当k≠n时,m的取值为10;
步骤y3:将计算的相似度sm,n,k映射成概率的形式,进一步对公式(13)进行sigmoid函数映射,如下式(14)所示,
其中σm,n,k为sigmoid函数映射后得到的神经网络模型的输出;
步骤y4:在声纹识别模块的训练阶段,每批次输入500条语句,由神经网络模型的输出计算出一个与事先构建的理想相似度矩阵同维度的相似度矩阵,并以理想相似度矩阵为目标进行反向传播调优训练,从输出层一直更新至特征增强模块的输入层,实现神经网络的整体调优。训练完成以后,便得到了一个具备声纹确认能力的神经网络模型。图4展示了训练时理想的相似矩阵的形式。
如图1(b)模型训练完毕以后,模型的测试应用的处理流程不变,仍然是由特征提取到特征增强,再到最后的相似度估计。当进行模型的测试应用时,不再需要输入500句的批次数据,只需要事先将所有需要进行声纹确认的说话人语音预存下来,然后一一进行相似度对比即可。例如,目标说话人有5个人,每人录制10句话存好,测试时只需要输入一句现场录制的测试语音和预存语音库中某一个说话人的10条语句到神经网络模型,求取预存语音的质心,并与测试语音进行相似度计算,得到一个相似度值。随后,与预存语音库中的每个说话人都进行对比,就会得到一个5维的相似度向量,取出向量中最大的一个元素,将其与一个预设阈值(本说话人确认方法中设置为0.95)进行比较,当元素大于该阈值时,则确认是其对应的目标说话人声纹,否则测试语音不属于任何一个目标说话人。
本发明还公开了一种应对复杂声学环境的说话人确认系统,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现本发明所述的说话人确认方法的步骤。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本发明所述的说话人确认方法的步骤。
本发明的有益效果是:1.本发明的说话人确认方法利用梅尔倒谱特征和线性预测特征级联的方式,进行说话人声纹建模,提高了算法对目标声纹的辨识能力;2.本发明的说话人确认方法利用深层神经网络模型实现端到端的说话人确认,减少了模型假设,利于提取出更具区分性的抽象声纹特征,进一步提高了算法的识别准确率;3.本发明的说话人确认方法采用神经网络模型进行声纹特征的增强处理,提高了算法在噪声干扰环境中的识别鲁棒性;4.本发明的说话人确认方法训练过程不依赖说话人文本,使算法对说话人的说话内容不敏感,目标说话人说的任何句子,都可以进行精确的声纹确认。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除