一种基于3DCNN-LSTM的说话人识别方法及存储介质与流程
本发明属于语音信号处理与模式识别领域,是一种基于3dcnn-lstm的说话人识别方法。
背景技术:
说话人识别,又称声纹识别,是生物特征信号识别的重要组成部分之一。相较于目前流行的指纹、手形、视网膜、虹膜、面孔等生物特征识别方式,语音是人类交流过程中最方便的、最直接的方式,与此同时,说话人的语音采集较为方便,成本可控,说话人的隐私也可以得到较好的保护。
说话人识别的任务是在已建立的说话人库中识别出是哪个说话人在讲话。说话人识别方法可以根据说话人的说话内容是否预定义,可分为文本相关和文本无关的说话人识别。也可以根据识别说话人的语音数量是否单一,可分为说话人确定和说话人辨认。其基本的系统框架主要分为特征提取以及说话人模型。
特征提取是提取说话人语音信号特征矢量,这些特征矢量能够充分反映个体差异且能够长期保持稳定。说话人特征分为时域特征和变换域特征,常见的时域特征有幅度、能量、平均过零率等,但这类特征往往是将语音信号直接通过滤波器得到的特征矢量,处理过程简单,但其稳定性较差,表达说话人身份信息的能力也较弱,故现已很少应用。变换域是指将语音信号经过某种变换得到的矢量特征,常见的变换域特征有线性预测系数(linearpredictioncoefficient,lpc)[2]对参数(linespectralpair,lsp)、mel倒谱系数(melfrequencycepstrumcoefficient,mfcc)巴频率倒谱系数(barkfrequencycepstrumcoefficient,bfcc),变换域的特征参数能够更好地仿生人类的声音特性,因此其鲁棒性更强,稳定性更好,由此得到更广泛的应用。
传统的说话人模型有基于模板匹配的动态时间规划算法,该方法简单,实时性强,但数据存储量小,鲁棒性差;基于高斯混合模型gmm尔科夫模型hmm的经典概率统计算法,这种方法曾广泛地应用于各种模式识别并取得了较好的效果,但随着对识别准确度要求的提升,模型所需确定的参数也增多,计算复杂度高,识别过程时间也相应地增加;直到目前应用较广泛的i-vector识别算法,配合多种信道补偿技术能够很好地表达说话人之间的差异,尽管取得了较好的识别效果,但其在训练阶段和测试阶段仍有较大的差异,这点在文本无关的说话人识别中表现特别明显,并且对环境的抗噪声能力较弱。
受深度学习在生物信号识别领域成功的推动,早期在说话人识别方面的一些工作着眼于如何使用神经网络的瓶颈结构训练帧级说话人语音从而鉴别个体特征,这种建模方式能够有效地提高了特征信息的信噪比,也减少了训练过程中拟合现象的发生次数,使模型拥有了更好的泛化性能,但其瓶颈特征中依然还有较多冗余特征,个体说话人的表征能力还较弱。为解决特征冗余的问题,国内外专家学者提出将长度不一的语句映射为固定维度的表征向量embeddings特征,可以把说话人的每个语音帧输入到dnn神经网络,将隐藏层的最后一层输出激活值作为说话人的特征矢量d-vector,但这种处理方式相对简单,因此随后snyde提出时延神经网络(time-delayneuralnetworks,tdnn)从说话人语音中提取x-vector特征矢量,网络结构中的统计池化层将帧级特征转化为段级特征,因此相比于d-vector矢量具有更好的鲁棒性,加入的时延结构能够更好地捕获语音特征的长相关性,但这对于短语音说话人识别性能则并没有较大地提升,原因是在语音时长较短的环境下tdnn网络结构并没有充分利用上时间因素,说话人识别率反而可能会下降。随后提出紧凑型的说话人特征结构e-vector,避免说话人语音过长所导致的系统性能下降的问题,在产生更加精确的说话人子空间的同时,对比标准i-vector系统没有增加额外的内存和计算成本。
本发明主要是针对语音时长不同环境下对说话人识别系统鲁棒性造成的影响进行改进,以及针对目前在对说话人语音降维提取特征的过程中,高维的说话人语音特征丢失的问题进行改进。
技术实现要素:
本发明旨在解决以上现有技术的问题。提出了一种方法。本发明的技术方案如下:
一种基于3dcnn-lstm的说话人识别方法,其特征在于,包括以下步骤:
s1、获取语音信号,并对语音信号进行包括预加重、加窗分帧、快速傅里叶变换、mfec变换在内的半文本化处理;mfec变换指的是梅尔滤波器组、取对数能量谱、去离散余弦变化的梅尔倒谱系数特征;
s2、将步骤s1处理后的语音信号通过堆叠多个连续帧的mfec特征的方式将二维语谱图处理成三维数据,三维数据作为3dcnn的输入;3dcnn表示三维卷积神经网络
s3、3dcnn从语谱图中提取说话人语音的时空特征,3dcnn中设计了一种改进的3d卷积核,改进的3d卷积核改进在于设计的内部结构参数,包括卷积核的个数,卷积的步长以及内置的bn层进行优化,用于提取深层次的特征,将三维数据经过3d卷积核的卷积池化后的数据是一种序列形式,引入lstm网络进行时序特征提取;
s4、将3dnn的输出作为lstm模型的输入,通过lstm提取时空特征特征的长期依赖关系,对卷积神经网络的输出进行时序排列学习说话人语音的上下文内容;
s5、模型训练优化阶段,采用优化器设置为adam,全连接层的节点数设置为3026,使用dropout方法,将其初始值设置为0.95并运用于每一层网络,并在计算损失函数的时候,选择交叉熵损失函数;
s6、使用测试集对训练后的模型验证,调整模型的各个参数,得到最终网络模型,最后利用softmax层进行说话人分类。
2、根据权利要求1所述的一种基于3dcnn-lstm的说话人识别方法,其特征在于,所述步骤s1根据语音信号的短时平稳性,对其进行半文本化处理得到mfec特征,具体步骤如下:
步骤a1:将语音信号通过一个高通滤波器,增强信号的高频部分,让语音信号趋于平坦,其传递函数为h(z)=1-az-1,a取值0.95,预加重处理后的信号为x(t);
步骤a2:将语音信号分割为短时的帧窗以减少语音的边缘效应,对预加重后的信号进行分帧,变为x(m,n),n为帧长,m为帧的个数,采用汉明窗进行加窗:
加窗分帧后语音信号为:sw(m,n)=x(m,n)*w(n),其中每一帧含有n个采样点;
a3:接下来先将语音数据x(n)从时域变换到频域,对加窗后的信号进行快速傅里叶变换,得到的线性频谱e(k)为:
对进行傅里叶变换后的数据取其模量:
x(k)=[e(k)]2
步骤a4:将经过fft变换得到的线性频谱通过一个mel滤波器组转换为mel频谱,mel滤波器组由一系列三角形的带通滤波器hm(k)组成,滤波器的频率响应函数表达式为:
式中,f(m)表示中心频率;k表示频率;
步骤a5:对mel滤波器的输出取对数,通过对数运算得到的对数频谱s(m)为:
进一步的,所述步骤s2将处理后语音信号转换为二维语谱图,通过堆叠多张连续帧的语谱图的方法将二维语谱图处理成三维数据,其处理步骤如下:
步骤b1:对长为m秒的说话人语音信号作每间隔n毫秒的语音帧叠加作半文本化处理;
步骤b2:通过mfec变换将b1处理后的信号从时域数据变换到频域,得到s(m)二维语谱图;
步骤b3:将说话人的多条语音作b2处理后得到三维数据,再将三维数据与3d卷积核进行卷积提取深层次的说话人特征,通过堆叠多个连续帧的语谱图组成一个立方体,然后在立方体中与3d卷积核进行卷积操作,这里的输入数据设置为time×frequency×c,c表示说话人的话语量。
进一步的,所述步骤s3设计的3d卷积核从三维语谱图中提取说话人语音的短期时空特征,前两层的卷积核的个数设置为16个,其大小分别为3x1x5和3x9x5的三维卷积核,对说话人语音信号的时间-频率-话语量进行三维卷积,提取说话人的深层次特征;第三和第四个卷积核的个数设置为32,其大小分别为3x1x4,3x8x1。每两层进行pool池化处理,此外,前四层的步长分别为1x1x1和1x2x1交替进行,同时每层网络还设置了bn层对数据进行规范化处理;
第五层和第六层的卷积核的个数设置为64,其大小分别为3x1x3和3x7x1;步长设置为1x1x1;第七层和第八层的卷积核的个数设置为128,其大小跟步长同前两层一致,每层网络同样设置bn层,最终进行池化处理得到说话人的深层个性特征;
bn对深度神经网络中间层激活进行归一化,算法关键在于引入了两个可学习参数γ和β:
一个批次中,bn是对每个特征而言的,有m个训练样本,j个维度(j个神经元节点),对第j维进行规范化:
其中,
进一步的,所述步骤s4将3dcnn的输出作为lstm模型的输入,提取这些时空特征的长期依赖关系,传统lstm单元由三个门结构组成,分别是遗忘门、输入们和输出门,使用遗忘门来确定在前一时刻的单元状态中应该丢弃哪些信息,并直接参与更新单元状态,单元状态的更新算法与前一刻的隐藏层输出和当前时刻的输入有关,并将前一个时刻的单元状态作为更新当前状态的参数;
遗忘门算法:ft=σ(wf×[ht-1,xt]+bf)
单元状态更新算法:it=σ(wi×[ht-1,xt]+bi)
其中ct-1和ht-1分别是前一时刻的单元状态和隐藏层输出,xt是当前时刻的输入,
进一步的,所述步骤s5在模型训练优化阶段,采用初始学习率为0.01,β1=0.9,β2=0.999,ε=10e-8,优化器设置为adam,全连接层的节点数设置为3026,同时为防止训练过程中发生梯度消失的现象,使用dropout方法,将其初始值设置为0.95并运用于每一层网络,并在计算损失函数的时候,选择交叉熵损失函数;
交叉熵算法定义如下:
其中,
yj:第j个样本的网络模型的预测输出。
进一步的,所述步骤s6利用softmax层进行说话人分类,softmax函数的的公式如下:
该式表示的数组中第i元素的softmax值。
一种存储介质,所述存储介质为计算机可读存储介质,其存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以上任一项所述的方法。
本发明的优点及有益效果如下:
综上所述,由于采用了上述技术方案,相同的实验环境下,基于3dcnn-lstm的说话人识别方法,能够更好地解决说话人语音低维特征丢失以及时空关联性弱的问题,本文化的处理方式结合lstm后端网络能够更好地记忆说话人语音的上下文信息,3dcnn的网络结构提取说话人的深层个性特征,提高说话人识别准确率。总之,本发明提出的基于3dcnn-lstm的说话人识别方法在较大程度上提升了说话人识别系统的性能。
本发明的创新主要是步骤s1和步骤s3,步骤s1主要是将文本无关的说话人识别方式转换为了一种“半文本”相关的说话人识别方式,叠加的语音信号在说话人识别中虽然破坏了说话人所想表达的文本信息内容,但却加强了说话人语音的个性特征从而提高了说话人识别系统的识别率;步骤s3是设计了一种全新结构的3d卷积神经网络的卷积核,其创新型在于卷积神经网络广泛地应用于图像识别领域并取得了良好的效果,而很少应用于说话人识别,难点在于传统说话人识别算法的识别率普遍高于目前流行的神经网络结构,而本文设计的3d卷积神经网络能在中长语音的说话人识别中优于传统算法。
附图说明
图1是本发明提供优选实施例基于3dcnn-lstm的说话人识别方法的总体框图;
图2是半文本化处理过程;
图3是3dcnn结构图;
图4是lstm网络结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
如图1所示,本发明提供了一种基于3dcnn-lstm的说话人识别方法,其特征在于,包括以下步骤:
s1根据语音信号的短时平稳性,对其进行半文本化处理得到mfec特征,主要包括预加重、加窗分帧,快速傅里叶变换,mel滤波器组,log对数能量,具体步骤如下:
步骤a1:将语音信号通过一个高通滤波器,增强信号的高频部分,让语音信号趋于平坦。其传递函数为h(z)=1-az-1,a取值0.95,预加重处理后的信号为x(t);
步骤a2:将语音信号分割为短时的帧窗以减少语音的边缘效应。对预加重后的信号进行分帧,变为x(m,n)(n为帧长,m为帧的个数)。我们采用汉明窗进行加窗:
加窗分帧后语音信号为:sw(m,n)=x(m,n)*w(n),其中每一帧含有n个采样点。
a3:接下来先将语音数据x(n)从时域变换到频域,对加窗后的信号进行快速傅里叶变换(fastfouriertransformation,fft),得到的线性频谱e(k)为:
对进行傅里叶变换后的数据取其模量:
x(k)=[e(k)]2
步骤a4:为了更好模拟人耳的听觉特性,将经过fft变换得到的线性频谱通过一个mel滤波器组转换为mel频谱。mel滤波器组由一系列三角形的带通滤波器hm(k)组成,滤波器的频率响应函数表达式为:
式中,f(m)表示中心频率。
步骤a5:对mel滤波器的输出取对数,可以更好反应人们的感知响度,也可用于补偿频率幅度谱的自然向下倾斜。通过对数运算得到的对数频谱s(m)为:
s2:将处理后语音信号转换为二维语谱图,通过堆叠多张连续帧的语谱图的方法将二维语谱图处理成三维数据,具体过程如图2所示,其处理步骤如下:
步骤b1:对长为m秒的说话人语音信号作每间隔n毫秒的语音帧叠加作半文本化处理。
步骤b2:通过mfec变换将b1处理后的信号从时域数据变换到频域,得到s(m)二维语谱图。
步骤b3:将说话人的多条语音作b2处理后得到三维数据,再将三维数据与本发明设计的3d卷积核进行卷积提取深层次的说话人特征。本发明通过堆叠多个连续帧的语谱图组成一个立方体,然后在立方体中与3d卷积核进行卷积操作,这里的输入数据设置为time×frequency×c,c表示说话人的话语量。
s3:本发明设计3d卷积核从三维语谱图中提取说话人语音的短期时空特征,其结构如图3所示。前两层的卷积核的个数设置为16个,其大小分别为3x1x5和3x9x5的三维卷积核,可以对说话人语音信号的时间-频率-话语量进行三维卷积,提取说话人的深层次特征;第三和第四个卷积核的个数设置为32,其大小分别为3x1x4,3x8x1。每两层进行pool池化处理。此外,前四层的步长分别为1x1x1和1x2x1交替进行,既能充分提取说话人的个性特征,又能保证参数学习的高效,同时每层网络还设置了bn层(batchnormalization,bn)对数据进行规范化处理,保证了参数的稳定性从而避免出现梯度消失或者爆炸的问题。
第五层和第六层的卷积核的个数设置为64,其大小分别为3x1x3和3x7x1;步长设置为1x1x1;第七层和第八层的卷积核的个数设置为128,其大小跟步长同前两层一致,每层网络同样设置bn层,最终进行池化处理得到说话人的深层个性特征。
bn对深度神经网络中间层激活进行归一化,算法关键在于引入了两个可学习参数γ和β:
一个批次中,bn是对每个特征而言的,有m个训练样本,j个维度(j个神经元节点)。对第j维进行规范化:
其中,
s4:将3dcnn的输出作为lstm模型的输入,提取这些时空特征的长期依赖关系。传统lstm单元由三个门结构组成,分别是遗忘门、输入们和输出门,其结构如图4所示。使用遗忘门来确定在前一时刻的单元状态中应该丢弃哪些信息,并直接参与更新单元状态,单元状态的更新算法与前一刻的隐藏层输出和当前时刻的输入有关,并将前一个时刻的单元状态作为更新当前状态的参数。
遗忘门算法:ft=σ(wf×[ht-1,xt]+bf)
单元状态更新算法:it=σ(wi×[ht-1,xt]+bi)
其中ct-1和ht-1分别是前一时刻的单元状态和隐藏层输出,xt是当前时刻的输入,
s5:在模型训练优化阶段,本文采用初始学习率为0.01,β1=0.9,β2=0.999,ε=10e-8,优化器设置为adam,全连接层的节点数设置为3026,同时为防止训练过程中发生梯度消失的现象,本文使用dropout方法,将其初始值设置为0.95并运用于每一层网络,并在计算损失函数的时候,选择交叉熵损失函数。
s6:用训练集对模型进行训练,采用交叉熵作为损失函数。
交叉熵算法定义如下:
其中,
yj:第j个样本的网络模型的预测输出
利用softmax层进行语音情感分类,softmax函数的的公式如下:
该式表示的数组中第i元素的softmax值。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除