一种声纹检测模型训练方法及声纹识别方法与流程



1.本发明涉及语音识别技术领域,特别涉及一种声纹检测模型训练方法及声纹识别方法。


背景技术:



2.声纹是用声学仪器显示出的携带信息的声波频谱。人的发声器官个体差异性很大,而每个人的声学特征具有相对稳定性。声纹识别,又称说话人识别,通过从说话人的语音中提取出声纹特征,来建立模型以识别说话人的身份。声纹相较虹膜、指纹、人脸等其他生物特征,具有非接触、易采集、特征稳定、不易盗取和模仿等特点。因此,声纹识别的应用领域十分广泛,在刑侦鉴定、金融安全、智能家居等领域的需求颇多。
3.现有的声纹识别技术多采用文本相关的方式,即训练和测试语音均为固定内容,类似于固定的密码,泛化性能差且应用场景具有局限性。随着动态口令的推广,安全性高且无需记忆的随机口令密码,要求声纹识别技术向着文本无关的方向发展。文本无关的声纹识别难度更大、要求更高,但因其灵活性强、操作简便,实际应用范围更为广泛。声纹识别的研究聚焦于特征参数与识别模型两方面。声纹特征用于表征说话人发声状态下的个性信息,早期的声纹特征主要基于频谱分析,对原始输入信号只进行较少层次的处理。但是,这类浅层信息不涉及相邻帧之间的联系,无法体现语音信号的动态变化,具有局限性,声纹识别效果和泛化性能较差。


技术实现要素:



4.鉴于上述的分析,本发明旨在提供一种基于声纹识别与声纹确认的声纹检测模型训练方法;解决了现有技术中声纹识别方法依赖于文本内容,或无法明显区分说话人的问题,提高了在不同场景下语音识别的准确率。
5.本发明的目的主要是通过以下技术方案实现的:
6.一方面,本发明公开了一种声纹检测模型训练方法,其中,声纹检测模型包括声纹识别模型和声纹确认模型;训练方法包括以下步骤:
7.构建声纹识别训练数据集;声纹识别训练数据集包括语音数据及对应的标签;标签用于表示语音所属人;
8.利用声纹识别训练数据集训练模型,得到声纹识别模型;声纹识别模型用于对输入语音进行特征提取,得到输入语音对应的特征向量
9.根据声纹识别模型输出的语音数据的特征向量和对应的标签,随机选则两条语音特征向量构成语料对,构建得到声纹确认训练数据集;
10.利用声纹确认训练数据集训练模型,得到声纹确认模型;声纹确认模型用于判断两条语音是否属于同一人。
11.进一步的,利用声纹识别训练数据集训练模型,得到声纹识别模型,包括:
12.利用声纹识别训练数据集中的语音数据,基于wav2vec2模型,采用mask的无监督
预训练方式进行第一次训练,得到模型的预训练参数和语音上下文信息的增强表示;
13.利用声纹识别训练数据集中的语音数据和对应的标签对模型进行第二次训练,用于对第一次训练得到的预训练参数进行微调,并基于输入语音对应的特征向量和预测得到的标签进行损失迭代,得到声纹识别模型。
14.进一步的,声纹识别模型包括原型网络层、特征提取层和全连接层;
15.原型网络层用于提取输入语音的特征,并编码到固定维度向量;
16.特征提取层用于提取原型网络层所输出的特征,转换为与内容无关的特征向量;
17.全连接层用于根据特征提取层输出的特征向量预测输入语音的所属类别标签的概率分布,并进行特征整合得到输入语音的分类特征。
18.进一步的,利用下述公式进行损失迭代:
[0019][0020]
其中,x为输入语音序列,y为输入语音对应的标签,为预测的标签向量,p(y|x)为根据给定输入语音预测得到对应标签的概率。
[0021]
进一步的,所述特征提取层包括:
[0022]
卷积维度变换模块,用于对原型网络层输出的向量进行维度变换和归一化,得到维度转换后的隐层特征向量;
[0023]
se block模块,包括三个se层,用于对维度变换后的语音序列分别依次进行特征编码、压缩和激励操作,得到具有全局信息的特征向量;
[0024]
连接卷积模块,用于连接三个所述se层输出的特征向量并进行特征提取,得到隐层特征表示;
[0025]
注意力机制池化模块,用于为每个特征向量分配不同的权重;
[0026]
输出模块,用于基于注意力机制池化模块的输出对特征向量进行计算和维度变换,输出与内容无关的特征向量。
[0027]
进一步的,所述注意力机制池化层利用下述公式得到注意力得分:
[0028][0029][0030]
其中,vc为模型学习参数;t表示将vc转置;h
t
代表第t个特征向量;表示将维度投影到更小维度c1中;经过非线函数f()变化后,经过线性层vc和偏置kc得到自注意力分数e
t,c
;采用softmax功能将e
t,c
归一化得到α
t,c
,α
t,c
表示第t个向量中第c个特征的分数,即特征的权重,c为1≤c≤特征数量的整数。
[0031]
进一步的,所述构建声纹识别训练数据集,包括:
[0032]
获取数据集;所述数据集包括多个说话人的语音数据;
[0033]
根据说话人id标注语音数据对应的标签;
[0034]
通过声道拆分、语音切割和统一格式对所述语音数据进行预处理,得到单声道、固定长度的语音数据,得到声纹识别训练数据集。
[0035]
进一步的,随机选则两条语音特征向量构成语料对,构建得到声纹确认训练数据集,包括:
[0036]
当所述语料对中两个特征向量的标签相同时,设置声纹确认标签为1,否则为0;
[0037]
选取多个语料对,并标注声纹确认标签,构成声纹确认训练数据集。
[0038]
另一方面,还公开了一种声纹识别方法,包括以下步骤:
[0039]
对用户语音进行注册,得到用户语音注册库;
[0040]
通过预先训练的声纹检测模型中的声纹识别模型对待识别语音进行特征提取,得到待识别语音的特征向量;
[0041]
将所述用户语音注册库中的任一条注册语音与待识别语音的所述特征向量构成语料对输入预先训练的声纹检测模型中的声纹确认模型,计算待识别语音与任一条注册语音的得分,并根据所述得分进行排序,判断得分最高且大于预先设置的阈值的注册语音与待识别语音属于同一用户;
[0042]
其中,所述声纹检测模型通过前述的声纹检测模型训练方法训练得到。
[0043]
进一步的,对用户语音进行注册,得到用户语音注册库,包括:将待注册用户的语音输入预先训练的所述声纹识别模型,得到所述待注册语音的特征向量,将待注册语音的所述特征向量与预先构建的标准语音数据集中的特征向量输入所述声纹确认模型进行计算,得到对应的多个得分,根据多个得分计算均值,所述均值作为当前注册语音的阈值保存到所述语音注册库。
[0044]
本发明至少可实现以下有益效果之一:
[0045]
1、本发明采用声纹识别和声纹确认两种任务,首先判断输入的语音属于哪个人,属于分类任务,然后通过声纹确认判断两段语音是否属于同一人,解决了现有的声纹识别方法无法明显区分说话人,同时减少了文本内容对声纹识别的影响,提高了声纹检测的准确率。
[0046]
2、本发明使用少量的语音标记数据能达到较好的识别效果,减少了获取大量标记数据耗费的人力成本、时间成本,并且对陌生数据有很好的泛化能力。
[0047]
3、本发明基于nplda模型进行训练,得到声纹确认模型,声纹确认模型计算得分方式考虑同一说话人之间的空间分布,可以最大化不同人之间的距离,最小化同一人之间距离,将相同人和不同人的声音的分数严格区分开,提高了声纹识别的准确性。
[0048]
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
[0049]
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
[0050]
图1为本发明实施例的声纹检测模型训练方法流程图。
[0051]
图2为本发明实施例的模型训练过程示意图。
[0052]
图3为本发明实施例的声纹识别模型预训练流程示意图。
[0053]
图4为本发明实施例的声纹识别模型微调方法结构示意图。
[0054]
图5为本发明实施例的声纹确认模型打分方法结构示意图。
[0055]
图6为本发明实施例的预训练、微调和打分流程示意图。
具体实施方式
[0056]
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本技术一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
[0057]
本实施例公开了一种声纹检测模型训练方法,其中声纹检测模型包括声纹识别模型和声纹确认模型;如图1所示,本实施例的声纹检测模型训练方法包括以下步骤:
[0058]
构建声纹识别训练数据集;所述声纹识别训练数据集包括语音数据及对应的标签;所述标签用于表示语音所属人;其中,语音数据通过对中文语音数据集中的无约束条件说话人的语音进行预处理得到。标签通过对不同说话人的语音进行分类标注得到,例如,对每个说话人的语音标注一个编号,表示每个语音对应的标签类别。
[0059]
利用声纹识别训练数据集训练模型,得到声纹识别模型;所述声纹识别模型用于对输入语音进行特征提取,得到输入语音对应的特征向量;
[0060]
根据所述声纹识别模型输出的语音数据的特征向量和对应的标签,随机选则两条语音特征向量构成语料对,构建得到声纹确认训练数据集;如标签一致的两条语音则标注属于同一人的标签,否则标注不属于同一人的标签,得到包括语料对及对应标签的声纹确认训练数据集。
[0061]
利用声纹确认训练数据集训练模型,得到声纹确认模型;所述声纹确认模型用于判断两条语音是否属于同一人。
[0062]
本发明提供一种基于声纹识别和声纹确认的声纹检测模型训练方法,该方法包括声纹识别和声纹确认两种任务。如图2所示,利用训练数据进行训练后得到模型参数和语音特征表示,最后通过声纹确认模型去计算语音之间的特征分数,分数越高越相似。即,声纹识别用于判断输入的语音属于哪个人,属于分类任务;声纹确认用于判断两段语音是否属于同一人。本方案解决了现有的声纹识别方法无法明显区分说话人,同时减少文本内容对声纹识别的影响,提高了同一人对不同场景的语音识别准确率。
[0063]
作为一个具体的实施例,本发明的声纹检测模型训练方法可以通过如下步骤实现:
[0064]
步骤s1、构建声纹识别训练数据集;声纹识别训练数据集包括语音数据及对应的标签;标签用于表示语音所属人;
[0065]
具体的,构建声纹识别训练数据集包括:
[0066]
获取数据集;所述数据集包括多个说话人的语音数据;
[0067]
构建语音数据标签,所述语音数据标签为所述语音数据对应的说话人id;
[0068]
通过声道拆分、语音切割和统一格式对所述语音数据进行预处理,得到单声道、固定长度的语音数据,构成声纹识别训练数据集。
[0069]
优选的,本实施例采用的数据集来源为无约束条件说话人识别的中文语音数据集cn-celeb1和cn-celeb2,其中cn-celeb1收录997个人的录音或采访,cn-celeb2收录1996个人的录音或采访,删除语音片段不足五十段的说话人语音,对剩余的cn-celeb1和cn-celeb2数据集中的数据根据说话人id分别标注标签,并按95:2:3的比例划分为训练数据、验证数据和测试数据。
[0070]
进一步的,对数据进行预处理,步骤如下:
[0071]
声道拆分:将声道数大于1的语音全部拆分为单声道语音,每个声道的数据单独做
静音去除操作:使用语音端点检测方法检测语音片段,首先将输入的语音以每20ms作为一个语音片段,将原始语音切分为若干个片段,并分别检测该片段是否为静音,如果是,则删除该片段,否则保留。
[0072]
语音切割:根据min_token和max_token将语音切割为固定长度范围的语音;舍弃低于min_token长度的语音,将高于max_token长度的语音进行截断,本实施例中min_token为56000,代表长度不低于5s的语音,max_token为480000,代表长度不高于30s的语音。
[0073]
格式统一:将切割后的语音统一转换为采样率为16000,采样精度为16bit的格式。
[0074]
经过预处理后的语音数据及对应标签构成声纹识别数据集,其中的训练数据作为声纹识别训练数据集使用。
[0075]
步骤s2:利用声纹识别训练数据集训练模型,得到声纹识别模型;声纹识别模型用于对输入语音进行特征提取,得到输入语音对应的特征向量。
[0076]
具体的,利用声纹识别训练数据集中的语音数据,基于wav2vec2模型,采用mask的无监督预训练方式进行第一次训练,得到模型的预训练参数和语音上下文信息的增强表示;
[0077]
利用声纹识别训练数据集中的语音数据和对应的标签对模型进行第二次训练,用于对第一次训练得到的预训练参数进行微调,并基于输入语音对应的特征向量和预测得到的标签进行损失迭代,得到声纹识别模型。
[0078]
声纹识别模型包括原型网络层、特征提取层和全连接层;
[0079]
所述原型网络层用于提取输入语音特征,编码到固定维度向量;本实施例中,通过原型网络层将维度为(1,l,512)的向量转换为[1,l,768]维度的向量,用于后续通过特征提取层进行分类特征提取。
[0080]
所述特征提取层用于提取原型网络所输出的特征,转换为与内容无关的特征;
[0081]
所述全连接层用于根据特征提取层输出的特征向量预测输入语音的所属类别标签的概率分布,并进行特征整合得到输入语音的分类特征。
[0082]
优选的,本实施例采用wav2vec2的预训练模型作为初始模型,模型结构如图3所示,训练过程中不改动模型结构。使用本实施例构建的训练样本中的语音数据进行训练,即输入为语音数据,使用mask的无监督预训练方式,进行第一次训练,第一次预训练的任务是去预测输入的语音片段来获得对语音上下文信息的增强表示,迭代10000步以后结束预训练。
[0083]
进一步的,在进行第二次训练时,加载预训练后得到的预训练参数并进行微调,微调过程如图4所示,首先通过原型网络层进行特征提取;具体的,以原始语音数据x=(x0,x1,...,x
l
)和对应标签作为输入,输入语音经过7层卷积网络,每一层的输出作为下一层的输入,每一层的步长分别为(5,2,2,2,2,2,2),卷积核宽度分别为(10,3,3,3,3,2,2);通过卷积网络特征编码后产生固定维度为512维的语音特征向量,得到隐层特征c=(c0,c1,...,c
l
),其维度为(1,l,512)(l等于l/320)。将隐层特征c输入12层的transformer block进行语音帧间的“注意力”计算,每个transformer block包含768个隐层单元的transformer结构和自注意力网络,隐层特征c经过12层的transformer block后得到隐层特征,其维度为[1,768,l],对其进行维度转换,得到维度为[1,l,768]的隐层特征h=(h0,h1,...,h
l
)。
[0084]
本实施例充分利用了transformer强大的时序关系处理功能,对每个语音帧特征
进行充分上下文编码,得到的语音特征向量具有时序关系且包含上下文关系信息。
[0085]
在原型网络层的基础上,本实施例还增加了特征提取层和全连接层,通过特征提取层得到语音特征向量,进一步通过全连接层得到输入语音对应各类别标签的概率分布。
[0086]
优选的,特征提取层的结构如图4所示,包括:卷积维度变换模块,对原型网络层输出的向量进行维度变换和归一化,得到维度转换后的隐层特征向量;se block模块,包括三个se层,用于对维度变换后的语音序列进行特征编码、压缩和激励操作,得到具有全局信息的特征向量;连接卷积模块,用于连接三个所述se层输出的特征向量并进行特征提取,得到隐层特征表示;注意力机制池化模块,用于为每个特征向量分配不同的权重;输出模块,用于基于注意力机制池化模块的输出对特征向量进行计算、维度变换并提取特征,输出与内容无关的特征向量。
[0087]
具体的,首先对原型网络层输出的隐层特征h通过卷积操作进行维度变换:
[0088]
h=f
bn
(f
relu
(f
conv
(h))))
[0089]
其中,f
conv
代表卷积操作,卷积核是5,padding等于2,步长为1,把输入的768维度转换为512维,f
bn
和f
relu
分别代表relu激活层和bn归一化,得到维度转换后的特征h。
[0090]
维度转换后的特征向量采用squeeze-excitation(se)blocks模块进行特征编码、squeeze(压缩)和excitation(激励)操作,然后经过激活层和归一化层,为每个特征赋予不同的权重。
[0091]
更具体的,对于se block层,首先进行特征编码,然后进行squeeze操作:即,将每一帧frame-level features按时间取平均,对于输入特征[n,r,l],通过求平均值,将特征压缩为[n,r,1],其中n为batch size,l为特征向量的长度,r为向量维度:
[0092]
即:
[0093]
其中,l为语音特征数量,z为压缩后的特征,h
t
为第t个特征向量。特征压缩之后进行excitation操作,得到向量s:
[0094]
s=σ(w2f(w1z+b1)+b2);
[0095]h′
=sh;
[0096]
其中,b1,b2为可学习参数,h

为最终向量表示,w1∈r
r*c
,w2∈r
c*r
,σ是sigmoid函数。
[0097]
即,本实施例通过一个sigmoid的门获得0~1之间归一化的权重,最后再将其与输入进行点乘,将归一化后的权重加权到每个通道的特征上。
[0098]
本实施例的模型考虑到全局的信息。经过卷积进行维度变化和seblock进行特征编码得到特征表示的有益效果在于:具有更多的非线性,可以更好地拟合通道间复杂的相关性;且极大地减少了参数量和计算量。
[0099]
在经过三个se层后,通过一个连接卷积层将每一个res2blocks的输出连接起来,连接卷积层保持维度不变。:
[0100]
h=f
conv
([h
′1,h
′2,h
′3]);
[0101]
这一步操作可以将底层更细粒度的特征进行提取得到更加鲁棒的说话人表示。
[0102]
在连接卷积层之后接入一个注意力机制池化层,为每一个特征分配不一样的权重。注意力机制可以在不同的帧集上提取特定的说话人属性。基于这种特性,将时间注意机
制进一步扩展到向量维度,在本实施例中的注意机制:
[0103][0104][0105]
其中,vc为模型学习参数;t表示将vc转置;h
t
代表第t个特征向量;表示将维度投影到更小维度c1中;经过非线函数f()变化后,经过线性层vc和偏置kc得到自注意力分数e
t,c
;采用softmax功能将e
t,c
归一化得到α
t,c
,α
t,c
表示第t个向量中第c个特征的分数,即每个特征的权重,c为1≤c≤特征数量的整数。
[0106]
进一步的,经过下述公式得到每个特征的加权平均向量和标准差
[0107][0108][0109]
基于得到的平均向量和标准差经过向量拼接和维度变换,得到说话人语音声纹特征feature:
[0110][0111]
基于声纹特征feature,经过全连接层进行维度变换和归一化得到声纹识别模型最终的输出,即说话人语音分类特征proj:
[0112]
proj=f
bn2
(w2(f
bn1
(w1feature+b1))+b2));
[0113]
其中,feature表示声纹特征;proj表示说话人语音分类特征,w∈r
c*r
,表示特征维度经过加权最终回到的原始语音特征维度,w1∈r
r*s
,w2∈r
s*p
,s代表最终得到语音的特征维度,本实施例中为512,p代表说话人的类别数量,即标签类别数量;f
bn1
,f
bn2
表示批次归一化操作。
[0114]
本实施例的全连接层经过一个softmax层来预测输入语音对应的标签类别概率分布;对于第i个数据,其输出向量维度为声纹识别训练数据集中标签类别的数量。经过softmax层得到预测的标签向量
[0115]
经过下述损失函数进行迭代:
[0116][0117]
其中,x为输入的语音,y为输入语音对应的标签,p(y|x)为根据给定输入语音预测得到对应标签的概率。
[0118]
经过迭代更新得到收敛的模型,即声纹识别模型。
[0119]
表1为本实施例声纹识别准确率的部分统计结果,表中的数据包括12个说话人的数据,每个说话人随机划分为训练集、开发集、测试集3部分。其中,只有部分样本因为训练数据很少,导致准确率、召回率和f1较差外,其余数据无论是准确率、召回率还是f1均取得了较好的效果。
[0120]
表1声纹识别装置实施结果
[0121][0122][0123]
步骤s3:根据所述声纹识别模型输出的语音数据的特征向量和对应的标签,随机选则两条语音特征向量构成语料对,构建得到声纹确认训练数据集,包括:
[0124]
当所述语料对中两个特征向量的标签相同时,设置声纹确认标签为1,否则为0;
[0125]
选取多个语料对,并标注声纹确认标签,构成声纹确认训练数据集。
[0126]
本方案使用前述训练好的声纹识别模型提取语音特征,输入训练数据集中的语音片段和对应标签,经过声纹识别模型得到语音特征和对应的标签。利用声纹识别模型输出的语音特征和对应标签进行声纹确认训练数据构建,随机选择两条语音特征向量,当标签相同时,声纹确认标签设为1,否则为0,选取2000000对语音特征向量作为训练样本,且保持0和1样本的比例基本相同。
[0127]
步骤s4:利用声纹确认训练数据集训练模型,得到声纹确认模型;所述声纹确认模型用于判断两条语音是否属于同一人。
[0128]
在本实施例中,一条语音通过声纹识别模型后会得到一条长度为512的向量,代表有512个特征。然后通过比较两条语音特征之间的相似度判断是否为同一说话人。
[0129]
nplda是一个后端建模的神经网络方法,其中生成plda模型的似然比分数被设定为一个判别相似函数,分数函数的可学习参数通过验证代价进行优化。其结构如图5所示,首先对需计算的两条向量进行长度标准化、lda变化、归一化得到其中,分别为两条语音处理后的结果:
[0130][0131][0132]
其中ω是高斯分布为x~n(0,i)的潜在说话人因子,φ表示说话人子空间矩阵,以及εr是假设分布为n(0,∑)的残差。
[0133]
首先,基于和计算对数似然比评分:
[0134][0135]
其中,
[0136][0137][0138]

tot
=φφ
t
+∑;
[0139]

ac
=φφ
t

[0140]
在这里实现一个对角变换,将同一说话人内部和不同说话人之间的协方差进行对角化,将p和q简化为对角矩阵;const为常数,本实施例中取值为0,t代表矩阵的转置。
[0141]
在nplda模型训练过程中,对代表目标(同一说话人)和非目标(不同说话人)的向量特征进行计算。
[0142]
损失定义如下:
[0143]cnorm
(β,θ)=p
miss
(θ)+βp
fa
(θ)
[0144][0145]
其中c
miss
和c
fa
分别是没有命中(costs assigned to miss)和检测错误(false alarm)的数量,p
target
是预测标签的先验概率,p
miss
和p
fa
是未命中和检测错误的概率,β表示c
miss
和c
fa
权重比例,θ为阈值,通过模型学习得到。
[0146]
通过阈值θ计算对数似然估计概率,归一化结果p
miss
(θ)和p
fa
(θ)可以近似等于:
[0147][0148][0149]
其中,si是第i对语料对经过模型计算得到分数进行归一化后的分值,ti代第i对语料对的标签,σ是sigmoid函数,n是标签总数,α是翘曲系数,本实施例取值为20。
[0150]
在现有的声纹识别方法中,大多采用余弦相似度方法计算特征之间相似度,它的优势是计算方便、不用训练、适用各种情况、且分布在0到1之间,但是其忽略了各特征之间的权重关系,并且分布在0-1之间的广泛区域,很少集中在极端分布,同时对于声音相近的不同人和不同发音情况的同一人无法有效区分。针对上述问题,本实施例采用nplda模型进行训练以计算分数。nplda的计算方式考虑同一说话人之间的空间分布,可以最大化不同人之间的距离,最小化同一人之间距离,使相同人和不同人声音对分数严格区分开。
[0151]
表2展示了声纹确认准确率的部分统计结果,表中的数据包括100个说话人共18066条语音数据,说话人语音片段在1到1000之间,实验随机选出两条语音片段,如是同一人标签设为1,不同人标签设为0。表2展示了在不同阈值情况下准确率、召回率和f1的统计结果。
[0152]
表2声纹确认模型实施结果
[0153]
阈值测试集正样本负样本准确率%召回率%f1%0.2180661396.1795.2495.570.418066463897.1794.2495.680.518066331697.4694.9496.180.618066337398.4693.9496.180.818066611698.7292.1395.31
[0154]
在实验过程中,通过人为设置阈值,发现模型的准确率和召回率受阈值影响,而每个人的声音纹理不同,阈值也随之变化,纹理较为平缓者语音特征不易区分,与不同人的得分会较高,阈值设置相应较高。在实际应用中,可通过用户注册流程,利用经训练的声纹检测模型对注册语音与多条非注册语音进行打分,并自动设置阈值,以更好的区分不同说话人的语音,提高声纹识别的准确性。
[0155]
本发明的另一个实施例,公开了一种声纹识别方法,如图6所示,包括以下步骤:
[0156]
对用户语音进行注册,得到用户语音注册库;用户指待声纹识别的所有说话人;用户语音注册库中包含所有待声纹识别的说话人的语音注册数据,包括注册语音通过声纹识别模型得到的特征向量、经过声纹确认模型得到的得分和注册用户的编号;具体的,将待注册用户进行编号,并将待注册用户的语音输入预先训练的声纹识别模型,得到待注册语音的特征向量,将待注册语音的特征向量与预先构建的标准语音数据集中的特征向量输入声纹确认模型进行计算,得到对应的多个得分,根据多个得分计算均值和方差,并将均值和方差作为当前注册语音的阈值保存到语音注册库。其中,本实施例选择200条标准语音构建标准语音数据集中,且其中的标准语音均为非注册人语音。
[0157]
通过预先训练的声纹检测模型中的声纹识别模型对待识别语音进行特征提取,得到待识别语音的特征向量;具体的,在进行特征提取前,还需要对待识别语音进行采样、去静音等预处理操作。待识别语音的所属人应为注册用户的说话人之一。
[0158]
将用户语音注册库中的任一条注册语音与待识别语音的特征向量构成语料对输入预先训练的声纹检测模型中的声纹确认模型,计算待识别语音与任一条注册语音的得分,并根据得分进行排序,判断得分最高且大于预先设置的阈值的注册语音与待识别语音属于同一用户;
[0159]
其中,声纹检测模型通过前述实施例的声纹检测模型训练方法训练得到。
[0160]
本实施例中,对于未注册的说话人语音,经过声纹识别模型进行特征提取后并通过声纹确认模型进行打分后,其得分将小于任一注册语音的阈值,则提示无匹配用户。
[0161]
综上所述,本发明采用声纹识别和声纹确认两种任务,首先判断输入的语音属于哪个人,属于分类任务,然后通过声纹确认判断两段语音是否属于同一人,解决了现有的声纹识别方法无法明显区分说话人的问题,同时减少了文本内容对声纹识别的影响,提高了声纹检测的准确率。且本发明利用卷积神经网络模型提取深层次空间特征,基于
transformer神经网络进行模型的构建与训练,将transformer神经网络长期学习的优势与深层次空间特征有效结合,实现了文本无关的声纹识别方法。
[0162]
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
[0163]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

技术特征:


1.一种声纹检测模型训练方法,其特征在于,所述声纹检测模型包括声纹识别模型和声纹确认模型;所述训练方法包括以下步骤:构建声纹识别训练数据集;所述声纹识别训练数据集包括语音数据及对应的标签;所述标签用于表示语音所属人;利用声纹识别训练数据集训练模型,得到声纹识别模型;所述声纹识别模型用于对输入语音进行特征提取,得到输入语音对应的特征向量;根据所述声纹识别模型输出的语音数据的特征向量和对应的标签,随机选则两条语音特征向量构成语料对,构建得到声纹确认训练数据集;利用声纹确认训练数据集训练模型,得到声纹确认模型;所述声纹确认模型用于判断两条语音是否属于同一人。2.根据权利要求1所述的声纹检测模型训练方法,其特征在于,所述利用声纹识别训练数据集训练模型,得到声纹识别模型,包括:利用声纹识别训练数据集中的语音数据,基于wav2vec2模型,采用mask的无监督预训练方式进行第一次训练,得到模型的预训练参数和语音上下文信息的增强表示;利用声纹识别训练数据集中的语音数据和对应的标签对所述模型进行第二次训练,用于对第一次训练得到的所述预训练参数进行微调,并基于输入语音对应的特征向量和预测得到的标签进行损失迭代,得到所述声纹识别模型。3.根据权利要求2所述的声纹检测模型训练方法,其特征在于,所述声纹识别模型包括原型网络层、特征提取层和全连接层;所述原型网络层用于提取输入语音的特征,并编码到固定维度向量;所述特征提取层用于提取原型网络层所输出的特征,转换为与内容无关的特征向量;所述全连接层用于根据特征提取层输出的特征向量预测输入语音的所属类别标签的概率分布,并进行特征整合得到输入语音的分类特征。4.根据权利要求2所述的声纹检测模型训练方法,其特征在于,利用下述公式进行损失迭代:其中,x为输入语音序列,y为输入语音对应的标签,为预测的标签向量,p(y|x)为根据给定输入语音预测得到对应标签的概率。5.根据权利要求3所述的声纹检测模型训练方法,其特征在于,所述特征提取层包括:卷积维度变换模块,用于对原型网络层输出的向量进行维度变换和归一化,得到维度转换后的隐层特征向量;se block模块,包括三个se层,用于对维度变换后的语音序列分别依次进行特征编码、压缩和激励操作,得到具有全局信息的特征向量;连接卷积模块,用于连接三个所述se层输出的特征向量并进行特征提取,得到隐层特征表示;注意力机制池化模块,用于为每个特征向量分配不同的权重;输出模块,用于基于注意力机制池化模块的输出对特征向量进行计算和维度变换,输出与内容无关的特征向量。
6.根据权利要求5所述的声纹检测模型训练方法,其特征在于,所述注意力机制池化层利用下述公式得到注意力得分:利用下述公式得到注意力得分:其中,v
c
为模型学习参数;t表示将vc转置;h
t
代表第t个特征向量;表示将维度投影到更小维度c1中;经过非线函数f()变化后,经过线性层v
c
和偏置k
c
得到自注意力分数e
t,c
;采用softmax功能将e
t,c
归一化得到α
t,c
,α
t,c
表示第t个向量中第c个特征的分数,即特征的权重,c为1≤c≤特征数量的整数。7.根据权利要求1所述的声纹检测模型训练方法,其特征在于,所述构建声纹识别训练数据集,包括:获取数据集;所述数据集包括多个说话人的语音数据;根据说话人id标注语音数据对应的标签;通过声道拆分、语音切割和统一格式对所述语音数据进行预处理,得到单声道、固定长度的语音数据,得到声纹识别训练数据集。8.根据权利要求1所述的声纹检测模型训练方法,其特征在于,随机选则两条语音特征向量构成语料对,构建得到声纹确认训练数据集,包括:当所述语料对中两个特征向量的标签相同时,设置声纹确认标签为1,否则为0;选取多个语料对,并标注声纹确认标签,构成声纹确认训练数据集。9.一种声纹识别方法,其特征在于,包括以下步骤:对用户语音进行注册,得到用户语音注册库;通过预先训练的声纹检测模型中的声纹识别模型对待识别语音进行特征提取,得到待识别语音的特征向量;将所述用户语音注册库中的任一条注册语音与待识别语音的所述特征向量构成语料对并输入预先训练的声纹检测模型中的声纹确认模型,计算待识别语音与任一条注册语音的得分,并根据所述得分进行排序,判断得分最高且大于预先设置的阈值的注册语音与待识别语音属于同一用户;其中,所述声纹检测模型通过权利要求1-8任一项所述的声纹检测模型训练方法训练得到。10.根据权利要求9所述的声纹识别方法,其特征在于,所述对用户语音进行注册,得到用户语音注册库,包括:将待注册用户的语音输入预先训练的所述声纹识别模型,得到所述待注册语音的特征向量,将待注册语音的所述特征向量与预先构建的标准语音数据集中的特征向量输入所述声纹确认模型进行计算,得到对应的多个得分,根据多个得分计算均值,所述均值作为当前注册语音的阈值保存到所述语音注册库。

技术总结


本发明涉及一种声纹检测模型训练方法及声纹识别方法,属于语音识别技术领域;其中训练方法包括以下步骤:构建声纹识别训练数据集;声纹识别训练数据集包括语音数据及对应的标签;利用声纹识别训练数据集训练模型,得到声纹识别模型;声纹识别模型用于对输入语音进行特征提取,得到输入语音对应的特征向量;根据声纹识别模型输出的语音数据的特征向量和对应的标签,构建得到声纹确认训练数据集;利用声纹确认训练数据集训练模型,得到声纹确认模型;声纹确认模型用于判断两条语音是否属于同一人。本发明解决了现有技术中的声纹识别方法依赖于文本内容,或无法明显区分说话人的问题,提高了在不同场景下声纹识别的准确率。提高了在不同场景下声纹识别的准确率。提高了在不同场景下声纹识别的准确率。


技术研发人员:

陈玮 冯少辉 张建业

受保护的技术使用者:

北京中科智加科技有限公司

技术研发日:

2022.06.24

技术公布日:

2022/9/23

本文发布于:2024-09-20 20:19:45,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/76815.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:语音   特征   向量   模型
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议